diff --git a/DEPS b/DEPS index d9556a5..815cde0 100644 --- a/DEPS +++ b/DEPS
@@ -312,11 +312,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '82a498a1162a45f02fa3ce187d2232b5428a60a3', + 'v8_revision': 'ed391a50ddfcbb23344e0a6140411a2b58abfdc4', # 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': '3e25d37f23d0432aa1a43bf920ae4110f48fd36c', + 'angle_revision': 'd0a024f9c750394213694fce66daea405b45c0ed', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -359,7 +359,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. - 'freetype_revision': '15f687349528fb0d7cba1ee7a8becf0af29116ec', + 'freetype_revision': '141d979af74e09bd01f6956b5cc8dfa73047c779', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling freetype # and whatever else without interference from each other. @@ -907,7 +907,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'm3m-IfPLI78fDQSCLjKg_NCEYfPUlAzCwbG9nqDpYa4C', + 'version': 'CczSursHGZqJAqbkoutLP2yh5bCTosbcrypKNungR3wC', }, ], 'dep_type': 'cipd', @@ -918,7 +918,7 @@ 'packages': [ { 'package': 'chromium/rts/model/mac-amd64', - 'version': 'snYRY60Q2P5psR5ej5NJSKJlKlrl5wG_8u0VHQ4DSsAC', + 'version': '6SwR5DiHqVAru9-KSC7a1OvKQ-l2IkC2ww2FfqmSQfAC', }, ], 'dep_type': 'cipd', @@ -929,7 +929,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'QwZKU9qmfRM0hiDn2z9KHnwXq3yxBSCA6v7VMmFj4KAC', + 'version': 'DDGxqUV23L7HACChKGCWo0nuHWT3OY8aAuBA5FHdvgYC', }, ], 'dep_type': 'cipd', @@ -1212,7 +1212,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '5aedd8da0ae2159a81d77158463d6a0da221bde7', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7cae7924a1c72ffcbbf5fa69cd63e04eed4e5a47', 'condition': 'checkout_chromeos', }, @@ -1661,7 +1661,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '9e3155013cd72ac43b4e07e47823e6d00cef48e9', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '9198c3c0f9f54a55299615b94c34a41bbb6fcb64', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1695,7 +1695,7 @@ }, 'src/third_party/re2/src': - Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'cc1c9db8bf5155d89d10d65998cdb226f676492c', + Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '96abaeaa517a79ec2b1823e77690899d6ed4235c', 'src/third_party/r8': { 'packages': [ @@ -1715,7 +1715,7 @@ 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': 'eY1JQSP1ngqJAq0m54TQZX2a2XY51h0EsqqZJZwmn-MC', + 'version': 'PxudYa-trdKc3TlOeEnF0JqsErmHQN-v8sAhJTxahZcC', }, ], 'condition': 'checkout_android', @@ -1846,7 +1846,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '74b1f15354f71608a0c08416b21988423e13b65b', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '5c9b7da038caa1972c6f3df83aa3028f3e4551da', + Var('webrtc_git') + '/src.git' + '@' + '828ef91817f617c341ca3cae9680f29c8379f870', # 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. @@ -1916,7 +1916,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ce03f1f74baab1a98523fa315e0e60b7639d5a26', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@9d3d93b32ded64c1c25a6db644e26e4583766b7b', 'condition': 'checkout_src_internal', }, @@ -1946,7 +1946,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': '-T3bPgx42mqt722T-5CKMbYi8v3Oy_dlZHkIhPvXgRoC', + 'version': 'QOcTmMuLrJIg2QVOv_IzSeZBdeVa-9K93QwM6O-qVkoC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1957,7 +1957,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'poyb3e4WUvmoxcwMmpwfEcu7Fjd5Dbt1HzHlSLFZT58C', + 'version': 'EoO0pkeEWvk63vpA4iPzQ382eFzD6KWzpWk5lGUwH7AC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java index 0dc5382..bb20bb9 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -177,8 +177,6 @@ Flag.baseFeature(AutofillFeatures.AUTOFILL_PARSE_MERCHANT_PROMO_CODE_FIELDS, "When enabled, Autofill will attempt to find merchant promo/coupon/gift code " + "fields when parsing forms."), - Flag.baseFeature(AutofillFeatures.AUTOFILL_ENABLE_NAME_SURENAME_PARSING, - "Adds new name surname field combinations to the parsing logic"), Flag.baseFeature(AutofillFeatures.AUTOFILL_RATIONALIZE_STREET_ADDRESS_AND_ADDRESS_LINE, "Rationalizes (street address, address line 2) field sequences to " + "(address line1, address line 2)."),
diff --git a/ash/app_list/app_list_controller_impl_unittest.cc b/ash/app_list/app_list_controller_impl_unittest.cc index 7153ffd7..14b05ba 100644 --- a/ash/app_list/app_list_controller_impl_unittest.cc +++ b/ash/app_list/app_list_controller_impl_unittest.cc
@@ -975,34 +975,6 @@ EXPECT_EQ(1.0f, search_box->layer()->GetTargetOpacity()); } -class AppListControllerImplMetricsTest : public AshTestBase { - public: - AppListControllerImplMetricsTest() = default; - - AppListControllerImplMetricsTest(const AppListControllerImplMetricsTest&) = - delete; - AppListControllerImplMetricsTest& operator=( - const AppListControllerImplMetricsTest&) = delete; - - ~AppListControllerImplMetricsTest() override = default; - - void SetUp() override { - AshTestBase::SetUp(); - controller_ = Shell::Get()->app_list_controller(); - ui::PresentationTimeRecorder::SetReportPresentationTimeImmediatelyForTest( - true); - } - - void TearDown() override { - ui::PresentationTimeRecorder::SetReportPresentationTimeImmediatelyForTest( - false); - AshTestBase::TearDown(); - } - - AppListControllerImpl* controller_; - const base::HistogramTester histogram_tester_; -}; - // Tests with the bubble launcher enabled. This is a separate test suite // because the feature must be enabled before ash::Shell constructs the // AppListControllerImpl.
diff --git a/ash/app_list/views/app_list_view.h b/ash/app_list/views/app_list_view.h index 80262be..02012ec 100644 --- a/ash/app_list/views/app_list_view.h +++ b/ash/app_list/views/app_list_view.h
@@ -49,8 +49,6 @@ class StateTransitionNotifier; FORWARD_DECLARE_TEST(AppListControllerImplTest, - CheckAppListViewBoundsWhenVKeyboardEnabled); -FORWARD_DECLARE_TEST(AppListControllerImplTest, CheckAppListViewBoundsWhenDismissVKeyboard); // The fraction of app list height that the app list must be released at in @@ -318,11 +316,7 @@ private: FRIEND_TEST_ALL_PREFIXES(AppListControllerImplTest, - CheckAppListViewBoundsWhenVKeyboardEnabled); - FRIEND_TEST_ALL_PREFIXES(AppListControllerImplTest, CheckAppListViewBoundsWhenDismissVKeyboard); - FRIEND_TEST_ALL_PREFIXES(AppListControllerImplMetricsTest, - PresentationTimeRecordedForDragInTabletMode); class StateAnimationMetricsReporter;
diff --git a/ash/login/ui/login_auth_user_view.cc b/ash/login/ui/login_auth_user_view.cc index 12fb86e9..a6517d1 100644 --- a/ash/login/ui/login_auth_user_view.cc +++ b/ash/login/ui/login_auth_user_view.cc
@@ -58,7 +58,6 @@ #include "ui/compositor/layer_animator.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/gfx/canvas.h" -#include "ui/gfx/color_analysis.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/interpolated_transform.h" #include "ui/gfx/paint_vector_icon.h"
diff --git a/ash/login/ui/pin_request_view.cc b/ash/login/ui/pin_request_view.cc index 61512f6..4d12443f9 100644 --- a/ash/login/ui/pin_request_view.cc +++ b/ash/login/ui/pin_request_view.cc
@@ -20,8 +20,6 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/compositor/layer.h" #include "ui/gfx/canvas.h" -#include "ui/gfx/color_analysis.h" -#include "ui/gfx/color_utils.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/background.h" #include "ui/views/controls/button/label_button.h"
diff --git a/ash/shelf/shelf_app_button.cc b/ash/shelf/shelf_app_button.cc index 4bf68d6..3cd8315 100644 --- a/ash/shelf/shelf_app_button.cc +++ b/ash/shelf/shelf_app_button.cc
@@ -34,7 +34,6 @@ #include "ui/gfx/animation/animation_delegate.h" #include "ui/gfx/animation/throb_animation.h" #include "ui/gfx/canvas.h" -#include "ui/gfx/color_analysis.h" #include "ui/gfx/geometry/transform_util.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/gfx/image/image_skia_operations.h"
diff --git a/ash/shelf/shelf_background_animator.cc b/ash/shelf/shelf_background_animator.cc index 66abef99..22dc890f 100644 --- a/ash/shelf/shelf_background_animator.cc +++ b/ash/shelf/shelf_background_animator.cc
@@ -20,11 +20,7 @@ #include "shelf_widget.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" #include "ui/gfx/animation/slide_animation.h" -#include "ui/gfx/color_analysis.h" - -using ColorProfile = color_utils::ColorProfile; -using LumaRange = color_utils::LumaRange; -using SaturationRange = color_utils::SaturationRange; +#include "ui/gfx/animation/tween.h" namespace ash {
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb index dc6673e0..d5b35ab 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb
@@ -16,7 +16,7 @@ <translation id="1510238584712386396">লঞ্চাৰ</translation> <translation id="1516966594427080024">ইনক’গনিট’ ম’ডত এখন নতুন ৱিণ্ড’ খোলক</translation> <translation id="152892567002884378">ভলিউম বঢ়াওক</translation> -<translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, তাৰ পিছত <ph name="ESC" /></translation> +<translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, তাৰ পাছত <ph name="ESC" /></translation> <translation id="1586324912145647027">ডেস্ক ১ৰ পৰা ৮লৈ যাওক</translation> <translation id="1652741121070700329">পূৰ্বৰ শব্দটোৰ আৰম্ভণিলৈ নিয়ক</translation> <translation id="1679841710523778799">উজ্জ্বলতা বঢ়াওক</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index f43f173..39593a45 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">পাছৱৰ্ড পাহৰিলে</translation> <translation id="181103072419391116">ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation> <translation id="1812997170047690955">মোৰ স্ক্ৰীণত কি আছে?</translation> +<translation id="1823280932251546115">স্থিতিৰ ট্ৰে’, সময় <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ইথাৰনেট: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" />ক আন-পিন কৰা হৈছে</translation> <translation id="1836215606488044471">Assistant (ল’ড হৈ আছে...)</translation> @@ -402,7 +411,7 @@ <translation id="3290356915286466215">অসুৰক্ষিত</translation> <translation id="3294437725009624529">অতিথি</translation> <translation id="3307642347673023554">লেপটপ ম’ডলৈ সলনি হ’ল</translation> -<translation id="3308453408813785101"><ph name="USER_EMAIL_ADDRESS" />এ তথাপিও পিছত ছাইন ইন কৰিব পাৰে।</translation> +<translation id="3308453408813785101"><ph name="USER_EMAIL_ADDRESS" />এ তথাপিও পাছত ছাইন ইন কৰিব পাৰে।</translation> <translation id="3321628682574733415">পেৰেণ্ট ক'ডটো ভুল</translation> <translation id="3339826665088060472">স্ক্ৰীন কেপচাৰ, স্ক্ৰীনশ্বট আৰু স্ক্ৰীন ৰেকৰ্ডিং কৰিবৰ বাবে সঁজুলি</translation> <translation id="3340978935015468852">ছেটিংসমূহ</translation> @@ -429,7 +438,7 @@ <translation id="3445288400492335833"><ph name="MINUTES" /> মিনিট</translation> <translation id="3445925074670675829">ইউএছবি চি ডিভাইচ</translation> <translation id="3455468639467374593">টেম্পলে’ট, <ph name="TEMPLATE_NAME" /></translation> -<translation id="3465223694362104965">আপুনি অন্তিমবাৰ ছাইন ইন কৰাৰ পিছত আন এখন কীব’ৰ্ড সংযোগ কৰা হৈছে। ব্যৱহাৰ কৰাৰ আগেয়ে আপুনি সেইখনক যে বিশ্বাস কৰে তাক নিশ্চিত কৰক।</translation> +<translation id="3465223694362104965">আপুনি অন্তিমবাৰ ছাইন ইন কৰাৰ পাছত আন এখন কীব’ৰ্ড সংযোগ কৰা হৈছে। ব্যৱহাৰ কৰাৰ আগেয়ে আপুনি সেইখনক যে বিশ্বাস কৰে তাক নিশ্চিত কৰক।</translation> <translation id="3465356146291925647">আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation> <translation id="3477079411857374384">Control-Shift-Space</translation> <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" /></translation> @@ -457,6 +466,8 @@ <translation id="3600061223661453002">অফ কৰক</translation> <translation id="3604801046548457007"><ph name="DESK_TITILE" /> ডেস্কখন সৃষ্টি কৰা হ’ল</translation> <translation id="3606978283550408104">ব্ৰেইল ডিছপ্লে’ সংযোগ কৰা হৈছে।</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">ম’বাইল ডেটা সক্ষম কৰিলে ব্লুটুথ সক্ষম হ’ব</translation> <translation id="3616883743181209306">স্ক্ৰীনখনৰ ওপৰৰ সোঁফালৰ কোণটোলৈ মেনুখন নিয়া হৈছে।</translation> <translation id="3619536907358025872">স্ক্ৰীন কেপচাৰৰ ছেটিং</translation> @@ -808,7 +819,7 @@ <translation id="5652575806481723716"><ph name="FOCUSED_APP_NAME" />এ আপোনাৰ মনোযোগ বিচাৰি অনুৰোধ কৰিছে।</translation> <translation id="5662709761327382534">মাইক্ৰ’ফ’ন ৰেকৰ্ড কৰক <ph name="CURRENT_STATE" />, মাইক্ৰ’ফ’ন ৰেকৰ্ডিং অন কৰিবলৈ এণ্টাৰ টিপক <ph name="NEW_STATE" /></translation> <translation id="5669267381087807207">সক্ৰিয় কৰা হৈছে</translation> -<translation id="5673434351075758678">আপোনাৰ ছেটিংসমূহ ছিংক কৰাৰ পিছত "<ph name="FROM_LOCALE" />"ৰ পৰা "<ph name="TO_LOCALE" />"লৈ।</translation> +<translation id="5673434351075758678">আপোনাৰ ছেটিংসমূহ ছিংক কৰাৰ পাছত "<ph name="FROM_LOCALE" />"ৰ পৰা "<ph name="TO_LOCALE" />"লৈ।</translation> <translation id="5675363643668471212">শ্বেল্ফৰ বস্তু</translation> <translation id="5677928146339483299">অৱৰোধিত</translation> <translation id="5678564054339031017">পৰৱৰ্তী সপ্তাহ দেখুৱাওক</translation> @@ -1419,7 +1430,7 @@ <translation id="9133335900048457298">সুৰক্ষিত সমল ৰেকৰ্ড কৰিব নোৱাৰি</translation> <translation id="9161053988251441839">পৰামর্শ হিচাপে পোৱা এপ্</translation> <translation id="9166331175924255663">নিকটৱৰ্তী শ্বেয়াৰৰ উচ্চ দৃশ্যমানতা ট’গল কৰক।</translation> -<translation id="9168436347345867845">এইটো পিছত কৰিব</translation> +<translation id="9168436347345867845">এইটো পাছত কৰিব</translation> <translation id="9178475906033259337"><ph name="QUERY" />ৰ বাবে ১ টা ফলাফল দেখুৱাই থকা হৈছে</translation> <translation id="9179259655489829027">এই সুবিধাটোৱে আপোনাক যিকোনো ছাইন ইন হৈ থকা ব্যৱহাৰকাৰীৰ প্ৰ’ফাইললৈ পাছৱর্ডৰ অবিহনেই এক্সেছ কৰিবলৈ দিয়ে। আপুনি বিশ্বাস কৰা একাউণ্টসমূহৰ ক্ষেত্ৰতহে কেৱল এই সুবিধা ব্যৱহাৰ কৰক।</translation> <translation id="9183456764293710005">পূৰ্ণ স্ক্রীনৰ বিৱৰ্ধক</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 3a268b69..d7a4100 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -257,6 +257,7 @@ <translation id="2405664212338326887">কানেক্ট করা নেই</translation> <translation id="2408955596600435184">আপনার পিন লিখুন</translation> <translation id="2412593942846481727">আপডেট উপলভ্য</translation> +<translation id="2417486498593892439">নেটওয়ার্কে সাইন-ইন করুন</translation> <translation id="2426051945783024481">ক্যামেরা ফ্রেম অটোমেটিক কেন্দ্রে আছে</translation> <translation id="2427507373259914951">বাঁদিকের বোতামে ক্লিক করুন</translation> <translation id="2429753432712299108">ব্লুটুথ ডিভাইস "<ph name="DEVICE_NAME" />" যুক্ত করার অনুমতি চাইছে। স্বীকার করার আগে, এই পাস কীটি ডিভাইসে প্রদর্শিত হয়েছে কিনা নিশ্চিত করুন: <ph name="PASSKEY" /></translation> @@ -414,6 +415,7 @@ <translation id="3368922792935385530">সংযুক্ত</translation> <translation id="3371140690572404006">USB-C ডিভাইস (ডান দিকের সামনের পোর্ট)</translation> <translation id="3375634426936648815">কানেক্ট করা আছে</translation> +<translation id="3378438761594387761">আপনি এখানে আপনার সাম্প্রতিক ডাউনলোড এবং স্ক্রিন ক্যাপচার পাবেন</translation> <translation id="3378442621503952303">প্রোফাইলের সাথে কানেক্ট করা হচ্ছে। কয়েক মিনিট অপেক্ষা করুন।</translation> <translation id="3386978599540877378">ফুল-স্ক্রিন ম্যাগনিফায়ার</translation> <translation id="3387527074123400161">ChromiumOS</translation> @@ -719,6 +721,7 @@ <translation id="5083553833479578423">অ্যাসিস্ট্যান্ট-এর আরও বৈশিষ্ট্য আনলক করুন।</translation> <translation id="509790653408515442">আপনি ফোনের অ্যাপ স্ট্রিম করলে, সেগুলি এখানে দেখা যাবে</translation> <translation id="5098537242461068432">ডেস্ক ও উইন্ডো আবার খোলা হয়েছে</translation> +<translation id="5104236669533825617">স্ক্রিনকাস্ট তৈরি করা যাচ্ছে না</translation> <translation id="5107522548814527560">ওয়েব</translation> <translation id="5117590920725113268">পরবর্তী মাস দেখান</translation> <translation id="5136175204352732067">বিভিন্ন কীবোর্ড কানেক্ট করা হয়েছে</translation> @@ -764,6 +767,7 @@ <translation id="5344128444027639014"><ph name="BATTERY_PERCENTAGE" />% (ডানদিক)</translation> <translation id="5352250171825660495">ডার্ক থিম চালু আছে</translation> <translation id="5356963482258194581">ডার্ক ও লাইট থিমের মধ্যে বদল করুন। ডেস্কটপে মাউসের ডানদিকের বোতামে ক্লিক করে ওয়ালপেপার ও স্টাইল বেছে নিন।</translation> +<translation id="536019650977002321">আপনার অ্যাডমিনিস্ট্রেটর অডিও ক্যাপচারের অনুমতি দেয় না। আরও তথ্যের জন্য আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="5363163447017455357"><ph name="DELIMITER" /> এই ট্যাবে যান</translation> <translation id="5379115545237091094">অনেক বেশি চেষ্টা করেছেন</translation> <translation id="5391307769715781764">সেভ করা ডেস্ক পরিবর্তন করবেন?</translation> @@ -1383,6 +1387,7 @@ <translation id="8936501819958976551">বন্ধ আছে</translation> <translation id="8938800817013097409">USB-C ডিভাইস (পিছনের ডান পোর্ট)</translation> <translation id="8940956008527784070">(<ph name="PERCENTAGE" />%) কম ব্যাটারি</translation> +<translation id="8949925099261528566">কানেক্ট করা আছে, ইন্টারনেট নেই</translation> <translation id="8951539504029375108">শুধুমাত্র অনুমোদিত Thunderbolt ডিভাইসে আপনার Chromebook ব্যবহার করা যাবে</translation> <translation id="8982906748181120328">'নিয়ারবাই শেয়ার'-এর ডিভাইস দৃশ্যমানতা</translation> <translation id="8983038754672563810">HSPA</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index af7140d..886d2aa 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">He oblidat la contrasenya</translation> <translation id="181103072419391116"><ph name="SIGNAL_STRENGTH" /> d'intensitat del senyal, xarxa gestionada per l'administrador</translation> <translation id="1812997170047690955">Què hi ha a la pantalla?</translation> +<translation id="1823280932251546115">Safata d'estat, hora <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> s'ha deixat de fixar</translation> <translation id="1836215606488044471">Assistent (s'està carregant...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Desactivat</translation> <translation id="3604801046548457007">S'ha creat l'escriptori <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">S'ha connectat la pantalla Braille.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">En activar les dades mòbils s'activarà el Bluetooth</translation> <translation id="3616883743181209306">El menú s'ha mogut a l'extrem superior dret de la pantalla.</translation> <translation id="3619536907358025872">Configuració de la captura de pantalla</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 577021e..eb50f12 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Zapomenuté heslo</translation> <translation id="181103072419391116">Síla signálu: <ph name="SIGNAL_STRENGTH" />, spravováno vaším administrátorem</translation> <translation id="1812997170047690955">Co je na obrazovce?</translation> +<translation id="1823280932251546115">Stavový panel, čas <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" />, + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" />, + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Položka <ph name="ITEM_TITLE" /> byla odepnuta</translation> <translation id="1836215606488044471">Asistent (načítání...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Vypnuto</translation> <translation id="3604801046548457007">Byla vytvořena plocha <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Je připojen hmatový displej.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Zapnutím mobilních dat aktivujete Bluetooth</translation> <translation id="3616883743181209306">Nabídka byla přesunuta do pravého horního rohu obrazovky.</translation> <translation id="3619536907358025872">Nastavení záznamu obrazovky</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb index af84847..e43d2d1 100644 --- a/ash/strings/ash_strings_cy.xtb +++ b/ash/strings/ash_strings_cy.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Wedi anghofio'ch cyfrinair</translation> <translation id="181103072419391116">Cryfder Signal <ph name="SIGNAL_STRENGTH" />, Rheolir gan eich Gweinyddwr</translation> <translation id="1812997170047690955">Beth sydd ar fy sgrîn?</translation> +<translation id="1823280932251546115">Hambwrdd statws, amser <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ether-rwyd: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Cafodd <ph name="ITEM_TITLE" /> ei ddadbinio</translation> <translation id="1836215606488044471">Assistant (wrthi'n llwytho...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Diffodd</translation> <translation id="3604801046548457007">Mae'r ddesg <ph name="DESK_TITILE" /> wedi'i chreu</translation> <translation id="3606978283550408104">Wedi cysylltu sgrîn braille.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Bydd galluogi data symudol yn galluogi Bluetooth</translation> <translation id="3616883743181209306">Cafodd y ddewislen ei symud i gornel dde uchaf y sgrîn.</translation> <translation id="3619536907358025872">Gosodiadau Ciplun</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index c1981fb..dfd3210 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Glemt adgangskode</translation> <translation id="181103072419391116">Signalstyrke <ph name="SIGNAL_STRENGTH" />, administreret af din administrator</translation> <translation id="1812997170047690955">Hvad vises der på min skærm?</translation> +<translation id="1823280932251546115">Statusbakke, klokkeslæt <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> blev frigjort</translation> <translation id="1836215606488044471">Assistent (indlæser...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Fra</translation> <translation id="3604801046548457007">Skrivebord <ph name="DESK_TITILE" /> blev oprettet</translation> <translation id="3606978283550408104">Der er tilsluttet en brailleskærm.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Bluetooth aktiveres, når du aktiverer mobildata</translation> <translation id="3616883743181209306">Menuen blev flyttet til øverste højre hjørne af skærmen.</translation> <translation id="3619536907358025872">Indstillinger for Screenshot</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 2f5f3a6..2c34471 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Ξέχασα τον κωδικό πρόσβασης</translation> <translation id="181103072419391116">Ισχύς σήματος <ph name="SIGNAL_STRENGTH" />, Διαχειριζόμενο από τον διαχειριστή σας</translation> <translation id="1812997170047690955">Τι υπάρχει στην οθόνη μου;</translation> +<translation id="1823280932251546115">Περιοχή κατάστασης, ώρα <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Το στοιχείο <ph name="ITEM_TITLE" /> ξεκαρφιτσώθηκε</translation> <translation id="1836215606488044471">Βοηθός (φόρτωση…)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Ανενεργή</translation> <translation id="3604801046548457007">Δημιουργήθηκε επιφάνεια εργασίας <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Συνδέθηκε η οθόνη Braille.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Με την ενεργοποίηση των δεδομένων κινητής τηλεφωνίας θα ενεργοποιηθεί το Bluetooth.</translation> <translation id="3616883743181209306">Το μενού μεταφέρθηκε στην επάνω δεξιά γωνία της οθόνης.</translation> <translation id="3619536907358025872">Ρυθμίσεις καταγραφής οθόνης</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index aef66303..fef62291 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Olvidé mi contraseña</translation> <translation id="181103072419391116">Intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, administrada por tu administrador</translation> <translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation> +<translation id="1823280932251546115">Bandeja de estado, hora <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Se dejó de fijar <ph name="ITEM_TITLE" /></translation> <translation id="1836215606488044471">Asistente (cargando…)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">No</translation> <translation id="3604801046548457007">Se creó el escritorio <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Dispositivo braille conectado</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Si habilitas los datos móviles, se habilitará la conexión Bluetooth.</translation> <translation id="3616883743181209306">Se movió el menú a la esquina superior derecha de la pantalla.</translation> <translation id="3619536907358025872">Configuración de Captura de pantalla</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index e721196..6d1b784 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">He olvidado la contraseña</translation> <translation id="181103072419391116">Intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, gestionada por el administrador</translation> <translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation> +<translation id="1823280932251546115">Bandeja de estado; hora: <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> ya no está fijado</translation> <translation id="1836215606488044471">Asistente (cargando...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Desactivado</translation> <translation id="3604801046548457007">Se ha creado el escritorio <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">La pantalla braille está conectada.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">El Bluetooth se activará al habilitar los datos móviles</translation> <translation id="3616883743181209306">Se ha movido el menú a la esquina superior derecha de la pantalla.</translation> <translation id="3619536907358025872">Ajustes de captura de pantalla</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 27d90b0..88391e5 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">فراموش کردن گذرواژه</translation> <translation id="181103072419391116">قدرت سیگنال <ph name="SIGNAL_STRENGTH" />، تحتمدیریت سرپرست</translation> <translation id="1812997170047690955">چه چیزی در صفحهنمایش من نشان داده میشود؟</translation> +<translation id="1823280932251546115">سینی وضعیت، زمان <ph name="TIME" />، + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />، + <ph name="PRIVACY" />، + <ph name="MANAGED" />، + <ph name="NOTIFICATION" />، + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">اترنت: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">پین <ph name="ITEM_TITLE" /> برداشته شد</translation> <translation id="1836215606488044471">دستیار (درحال بار کردن…)</translation> @@ -459,6 +468,7 @@ <translation id="3600061223661453002">خاموش</translation> <translation id="3604801046548457007">میز <ph name="DESK_TITILE" /> ایجاد شد</translation> <translation id="3606978283550408104">نمایشگر بریل متصل شد.</translation> +<translation id="3609301425104788351"><ph name="MIC" />، <ph name="CAMERA" /></translation> <translation id="3615926715408477684">فعال کردن داده تلفن همراه، بلوتوث را فعال میکند</translation> <translation id="3616883743181209306">منو به گوشه چپ بالای صفحه منتقل شد.</translation> <translation id="3619536907358025872">تنظیمات ضبط صفحه</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index dce0ab2a..2666efb2 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Nakalimutan ang password</translation> <translation id="181103072419391116">Lakas ng Signal <ph name="SIGNAL_STRENGTH" />, Pinapamahalaan ng iyong Administrator</translation> <translation id="1812997170047690955">Ano ang nasa screen ko?</translation> +<translation id="1823280932251546115">Status tray, oras <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Na-unpin ang <ph name="ITEM_TITLE" /></translation> <translation id="1836215606488044471">Assistant (naglo-load...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">I-off</translation> <translation id="3604801046548457007">Ginawa ang Desk <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Nagkonekta ng braille display.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Kapag na-enable ang mobile data, mae-enable din ang Bluetooth</translation> <translation id="3616883743181209306">Inilipat ang menu sa kanang sulok sa itaas ng screen.</translation> <translation id="3619536907358025872">Mga setting ng screen capture</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 36c2fc0a..d42f14ef 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">પાસવર્ડ ભૂલી ગયા</translation> <translation id="181103072419391116">સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે</translation> <translation id="1812997170047690955">મારી સ્ક્રીન પર શું છે?</translation> +<translation id="1823280932251546115">સ્ટેટસ ટ્રે, સમય <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ઇથરનેટ: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" />ને અનપિન કરી હતી</translation> <translation id="1836215606488044471">Assistant (લોડ થઈ રહ્યું છે…)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">બંધ છે</translation> <translation id="3604801046548457007">ડેસ્ક <ph name="DESK_TITILE" /> બનાવ્યું</translation> <translation id="3606978283550408104">બ્રેઇલ ડિસ્પ્લે કનેક્ટ થયું.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">મોબાઇલ ડેટા ચાલુ કરવાથી બ્લૂટૂથ ચાલુ થશે</translation> <translation id="3616883743181209306">મેનૂને સ્ક્રીનની ઉપરના જમણા ખૂણામાં ખસેડ્યું.</translation> <translation id="3619536907358025872">સ્ક્રીન કૅપ્ચરના સેટિંગ</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index 11221c1..b99acd4 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Lupa sandi</translation> <translation id="181103072419391116">Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" />, Dikelola oleh Administrator Anda</translation> <translation id="1812997170047690955">Konten apa yang ada di layar saya?</translation> +<translation id="1823280932251546115">Menu status, waktu <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> telah dilepas pinnya</translation> <translation id="1836215606488044471">Asisten (sedang dimuat...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Nonaktif</translation> <translation id="3604801046548457007">Desktop <ph name="DESK_TITILE" /> dibuat</translation> <translation id="3606978283550408104">Penampil Braille terhubung.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Mengaktifkan data seluler akan mengaktifkan Bluetooth</translation> <translation id="3616883743181209306">Menu dipindahkan ke pojok kanan atas layar.</translation> <translation id="3619536907358025872">Setelan screenshot</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 9a9fec0a..83b7f4a 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">ಪಾಸ್ವರ್ಡ್ ಮರೆತಿರುವಿರಿ</translation> <translation id="181103072419391116">ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />, ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸಿದ್ದಾರೆ</translation> <translation id="1812997170047690955">ನನ್ನ ಪರದೆಯಲ್ಲಿ ಏನಿದೆ?</translation> +<translation id="1823280932251546115">ಸ್ಟೇಟಸ್ ಟ್ರೇ, ಸಮಯ <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ಇಥರ್ನೆಟ್: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> ಅನ್ನು ಅನ್ಪಿನ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="1836215606488044471">ಸಹಾಯಕ (ಲೋಡ್ ಆಗುತ್ತಿದೆ...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">ಆಫ್ ಮಾಡಿ</translation> <translation id="3604801046548457007"><ph name="DESK_TITILE" /> ಡೆಸ್ಕ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ</translation> <translation id="3606978283550408104">ಬ್ರೈಲ್ ಡಿಸ್ಪ್ಲೇ ಸಂಪರ್ಕಗೊಳಿಸಲಾಗಿದೆ.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">ಮೊಬೈಲ್ ಡೇಟಾವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ</translation> <translation id="3616883743181209306">ಮೆನುವನ್ನು ಪರದೆಯ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಬಲತುದಿಗೆ ಸರಿಸಲಾಗಿದೆ.</translation> <translation id="3619536907358025872">ಸ್ಕ್ರಿನ್ ಕ್ಯಾಪ್ಚರ್ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 6af898a..3ba1984 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">പാസ്വേഡ് മറന്നു</translation> <translation id="181103072419391116">സിഗ്നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />, നിങ്ങളുടെ അഡ്മിൻ മാനേജ് ചെയ്യുന്നത്</translation> <translation id="1812997170047690955">എന്റെ സ്ക്രീനിൽ എന്താണുള്ളത്?</translation> +<translation id="1823280932251546115">സ്റ്റാറ്റസ് ട്രേ, സമയം <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ഇതർനെറ്റ്: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> അൺപിൻ ചെയ്തു</translation> <translation id="1836215606488044471">സഹായി (ലോഡുചെയ്യുന്നു...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">ഓഫാണ്</translation> <translation id="3604801046548457007">ഡെസ്ക് <ph name="DESK_TITILE" /> സൃഷ്ടിച്ചു</translation> <translation id="3606978283550408104">ബ്രെയ്ലി ഡിസ്പ്ലേ കണക്റ്റ് ചെയ്തു.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">മൊബൈൽ ഡാറ്റ പ്രവർത്തനക്ഷമമാക്കുന്നത് Bluetooth-ഉം പ്രവർത്തനക്ഷമമാക്കും.</translation> <translation id="3616883743181209306">സ്ക്രീനിന്റെ മുകളിൽ വലത് കോണിലേക്ക് മെനു നീക്കിയിരിക്കുന്നു.</translation> <translation id="3619536907358025872">സ്ക്രീൻ ക്യാപ്ച്ചർ ക്രമീകരണം</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 46251fa..9394850 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">पासवर्ड विसरलात</translation> <translation id="181103072419391116">सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />, तुमच्या अॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले</translation> <translation id="1812997170047690955">माझ्या स्क्रीनवर काय आहे?</translation> +<translation id="1823280932251546115">स्टेटस ट्रे, वेळ <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">इथरनेट: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> अनपिन केला गेला</translation> <translation id="1836215606488044471">साहाय्यक (लोड होत आहे...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">बंद आहे</translation> <translation id="3604801046548457007">डेस्क <ph name="DESK_TITILE" /> तयार केले</translation> <translation id="3606978283550408104">ब्रेल डिस्प्ले कनेक्ट केला.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">मोबाइल डेटा सुरू केल्याने ब्लूटूथ सुरू होईल</translation> <translation id="3616883743181209306">मेनू स्क्रीनच्या वरच्या उजव्या कोपर्यात हलवला.</translation> <translation id="3619536907358025872">स्क्रीन कॅप्चर सेटिंग्ज</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index b852a27..2748a56 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">पासवर्ड बिर्सनुभयो</translation> <translation id="181103072419391116">सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />, तपाईंका प्रशासकले व्यवस्थित गर्नुभएको छ</translation> <translation id="1812997170047690955">मेरो स्क्रिनमा के छ?</translation> +<translation id="1823280932251546115">स्ट्याटस ट्रे, समय <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">इथरनेट: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> अनपिन गरिएको थियो</translation> <translation id="1836215606488044471">सहायक (लोड गर्दै...)</translation> @@ -457,6 +466,8 @@ <translation id="3600061223661453002">अफ गर्नुहोस्</translation> <translation id="3604801046548457007">डेस्क <ph name="DESK_TITILE" /> सिर्जना गरियो</translation> <translation id="3606978283550408104">ब्रेल प्रदर्शन जडित छ।</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">तपाईंले मोबाइल डेटा अन गर्नुभयो भने ब्लुटुथ अन हुने छ</translation> <translation id="3616883743181209306">मेनु सारेर स्क्रिनको सिरानको दायाँ कुनामा लगियो।</translation> <translation id="3619536907358025872">स्क्रिन क्याप्चरसम्बन्धी सेटिङ</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 7830fd6..14d2920b 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -299,7 +299,7 @@ <translation id="2620436844016719705">Systém</translation> <translation id="2621713457727696555">Zabezpečená</translation> <translation id="263399434338050016">Vybrať všetko</translation> -<translation id="2645435784669275700">Chrome OS</translation> +<translation id="2645435784669275700">ChromeOS</translation> <translation id="2653019840645008922">Snímanie okna</translation> <translation id="2653659639078652383">Odoslať</translation> <translation id="2658778018866295321">Kliknúť a presunúť</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index dc8b5ee..e43d44d6 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Harrova fjalëkalimin</translation> <translation id="181103072419391116">Fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />, menaxhuar nga administratori yt</translation> <translation id="1812997170047690955">Çfarë ka në ekranin tim?</translation> +<translation id="1823280932251546115">Tabakaja e statusit, ora <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Eternet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> u zhgozhdua</translation> <translation id="1836215606488044471">Asistenti (po ngarkohet...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Joaktiv</translation> <translation id="3604801046548457007">U krijua tavolina e punës <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Ekrani "Braille" është i lidhur.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Aktivizimi i të dhënave celulare do të aktivizojë Bluetooth</translation> <translation id="3616883743181209306">Menyja u zhvendos në këndin lart djathtas të ekranit.</translation> <translation id="3619536907358025872">Cilësimet e "Regjistrimit të ekranit"</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 1f7dd974..a0b2639 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">கடவுச்சொல் மறந்துவிட்டது</translation> <translation id="181103072419391116">சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />, உங்கள் நிர்வாகி நிர்வகிக்கிறார்</translation> <translation id="1812997170047690955">எனது திரையில் இருப்பவையா?</translation> +<translation id="1823280932251546115">நிலைத் தட்டு, நேரம் <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">ஈதர்நெட்: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> ஷெல்ஃபிலிருந்து அகற்றப்பட்டது</translation> <translation id="1836215606488044471">அசிஸ்டண்ட் (ஏற்றுகிறது...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">முடக்கு</translation> <translation id="3604801046548457007">டெஸ்க் <ph name="DESK_TITILE" /> உருவாக்கப்பட்டது</translation> <translation id="3606978283550408104">பிரெய்ல் திரை இணைக்கப்பட்டது.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">மொபைல் டேட்டாவை இயக்கினால் புளூடூத் இயக்கப்படும்</translation> <translation id="3616883743181209306">திரையின் மேல் வலது மூலைக்கு மெனு நகர்த்தப்பட்டது.</translation> <translation id="3619536907358025872">ஸ்கிரீன் கேப்சர் அமைப்புகள்</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index 9b38959..156b10e0 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Şifremi unuttum</translation> <translation id="181103072419391116"><ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, Yöneticiniz tarafından yönetiliyor</translation> <translation id="1812997170047690955">Ekranımda ne var?</translation> +<translation id="1823280932251546115">Durum tepsisi, saat <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064"><ph name="ITEM_TITLE" /> sabitlemesi kaldırıldı</translation> <translation id="1836215606488044471">Asistan (yükleniyor...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Kapalı</translation> <translation id="3604801046548457007">Masa <ph name="DESK_TITILE" /> oluşturuldu</translation> <translation id="3606978283550408104">Braille ekranı bağlandı.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Mobil veri etkinleştirildiğinde Bluetooth açılır</translation> <translation id="3616883743181209306">Menü, ekranın sağ üst köşesine taşındı.</translation> <translation id="3619536907358025872">Ekran görüntüsü ayarları</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 541ac680..025d718 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">Quên mật khẩu</translation> <translation id="181103072419391116">Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />, Do quản trị viên của bạn quản lý</translation> <translation id="1812997170047690955">Trên màn hình của tôi có nội dung gì?</translation> +<translation id="1823280932251546115">Khay trạng thái, thời gian <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> <translation id="1830308660060964064">Đã bỏ ghim <ph name="ITEM_TITLE" /></translation> <translation id="1836215606488044471">Trợ lý (đang tải...)</translation> @@ -459,6 +468,8 @@ <translation id="3600061223661453002">Tắt</translation> <translation id="3604801046548457007">Đã tạo Không gian làm việc <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">Đã kết nối màn hình Braille.</translation> +<translation id="3609301425104788351"><ph name="MIC" />, + <ph name="CAMERA" /></translation> <translation id="3615926715408477684">Bật chế độ dữ liệu di động tức là cũng bật Bluetooth</translation> <translation id="3616883743181209306">Đã di chuyển trình đơn vào góc trên cùng bên phải màn hình.</translation> <translation id="3619536907358025872">Cài đặt tính năng Chụp ảnh màn hình</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 1550480..d0bf3ea5 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">忘記密碼</translation> <translation id="181103072419391116">訊號強度係 <ph name="SIGNAL_STRENGTH" />,由管理員管理</translation> <translation id="1812997170047690955">我嘅畫面上面有咩?</translation> +<translation id="1823280932251546115">狀態匣,時間 <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">以太網:<ph name="ADDRESS" /></translation> <translation id="1830308660060964064">已經將<ph name="ITEM_TITLE" />取消置頂</translation> <translation id="1836215606488044471">小幫手 (正在載入…)</translation> @@ -459,6 +468,7 @@ <translation id="3600061223661453002">關閉</translation> <translation id="3604801046548457007">已建立桌面 <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">已連接點字顯示器。</translation> +<translation id="3609301425104788351"><ph name="MIC" />,<ph name="CAMERA" /></translation> <translation id="3615926715408477684">如果您啟用流動數據,藍牙亦會隨之開啟</translation> <translation id="3616883743181209306">已經將選單移去螢幕右上角。</translation> <translation id="3619536907358025872">螢幕截圖設定</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index 896dbef..95f3ef34 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -159,6 +159,15 @@ <translation id="1797271123677381264">忘記密碼</translation> <translation id="181103072419391116">訊號強度 <ph name="SIGNAL_STRENGTH" />,由系統管理員管理</translation> <translation id="1812997170047690955">我的畫面上有哪些內容?</translation> +<translation id="1823280932251546115">狀態匣,時間 <ph name="TIME" />, + <ph name="BATTERY" /> + <ph name="CHANNEL" /> + <ph name="NETWORK" />, + <ph name="PRIVACY" />, + <ph name="MANAGED" /> + <ph name="NOTIFICATION" />, + <ph name="IME" /> + <ph name="LOCALE" /></translation> <translation id="1823873187264960516">乙太網路:<ph name="ADDRESS" /></translation> <translation id="1830308660060964064">已取消固定「<ph name="ITEM_TITLE" />」</translation> <translation id="1836215606488044471">小幫手 (載入中…)</translation> @@ -459,6 +468,7 @@ <translation id="3600061223661453002">關閉</translation> <translation id="3604801046548457007">已建立桌面 <ph name="DESK_TITILE" /></translation> <translation id="3606978283550408104">已連接點字顯示器。</translation> +<translation id="3609301425104788351"><ph name="MIC" />,<ph name="CAMERA" /></translation> <translation id="3615926715408477684">如果啟用行動數據,藍牙功能也會一併開啟</translation> <translation id="3616883743181209306">已將選單移至畫面右上角。</translation> <translation id="3619536907358025872">螢幕畫面擷取設定</translation>
diff --git a/ash/system/privacy_hub/camera_privacy_switch_controller.cc b/ash/system/privacy_hub/camera_privacy_switch_controller.cc index f9f2b11..05ff537e 100644 --- a/ash/system/privacy_hub/camera_privacy_switch_controller.cc +++ b/ash/system/privacy_hub/camera_privacy_switch_controller.cc
@@ -62,11 +62,14 @@ ->AddCameraPrivacySwitchObserver(this)) { + media::CameraHalDispatcherImpl::GetInstance()->AddActiveClientObserver(this); Shell::Get()->session_controller()->AddObserver(this); } CameraPrivacySwitchController::~CameraPrivacySwitchController() { Shell::Get()->session_controller()->RemoveObserver(this); + media::CameraHalDispatcherImpl::GetInstance()->RemoveActiveClientObserver( + this); media::CameraHalDispatcherImpl::GetInstance() ->RemoveCameraPrivacySwitchObserver(this); } @@ -87,8 +90,15 @@ void CameraPrivacySwitchController::OnPreferenceChanged( const std::string& pref_name) { DCHECK_EQ(pref_name, prefs::kUserCameraAllowed); - switch_api_->SetCameraSWPrivacySwitch(GetUserSwitchPreference()); + const CameraSWPrivacySwitchSetting pref_val = GetUserSwitchPreference(); + switch_api_->SetCameraSWPrivacySwitch(pref_val); ClearSWSwitchNotifications(); + if (is_camera_active_ && + pref_val == CameraSWPrivacySwitchSetting::kDisabled) { + // Show notification in case we switch off the camera when the camera is + // used by an app. + ShowCameraOffNotification(); + } } CameraSWPrivacySwitchSetting @@ -210,4 +220,15 @@ } } +void CameraPrivacySwitchController::OnActiveClientChange( + cros::mojom::CameraClientType type, + bool is_active) { + is_camera_active_ = is_active; + + if (is_active) { + if (GetUserSwitchPreference() == CameraSWPrivacySwitchSetting::kDisabled) + ShowCameraOffNotification(); + } +} + } // namespace ash
diff --git a/ash/system/privacy_hub/camera_privacy_switch_controller.h b/ash/system/privacy_hub/camera_privacy_switch_controller.h index 278e0299..1d0f070 100644 --- a/ash/system/privacy_hub/camera_privacy_switch_controller.h +++ b/ash/system/privacy_hub/camera_privacy_switch_controller.h
@@ -44,7 +44,8 @@ // preference setting. class ASH_EXPORT CameraPrivacySwitchController : public SessionObserver, - public media::CameraPrivacySwitchObserver { + public media::CameraPrivacySwitchObserver, + public media::CameraActiveClientObserver { public: CameraPrivacySwitchController(); @@ -62,6 +63,10 @@ int32_t camera_id, cros::mojom::CameraPrivacySwitchState state) override; + // media::CameraActiveClientObserver: + void OnActiveClientChange(cros::mojom::CameraClientType type, + bool is_active) override; + // Handles user toggling the camera switch on Privacy Hub UI. void OnPreferenceChanged(const std::string& pref_name); @@ -75,10 +80,10 @@ // Displays the camera off notification. void ShowCameraOffNotification(); - private: // Retrieves the current value of the user pref. CameraSWPrivacySwitchSetting GetUserSwitchPreference(); + private: // Displays the "Do you want to turn the camera off" notification. void ShowHWCameraSwitchOffSWCameraSwitchOnNotification(); @@ -95,6 +100,7 @@ std::unique_ptr<PrefChangeRegistrar> pref_change_registrar_; std::unique_ptr<CameraPrivacySwitchAPI> switch_api_; cros::mojom::CameraPrivacySwitchState camera_privacy_switch_state_; + bool is_camera_active_ = false; }; } // namespace ash
diff --git a/ash/system/privacy_hub/camera_privacy_switch_controller_unittest.cc b/ash/system/privacy_hub/camera_privacy_switch_controller_unittest.cc index afca22b..02c6a0f8 100644 --- a/ash/system/privacy_hub/camera_privacy_switch_controller_unittest.cc +++ b/ash/system/privacy_hub/camera_privacy_switch_controller_unittest.cc
@@ -152,7 +152,10 @@ ASSERT_FALSE( message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); - controller_->ShowCameraOffNotification(); + // Emulate camera activity + controller_->OnActiveClientChange(cros::mojom::CameraClientType::ASH_CHROME, + true); + // A notification should be fired. EXPECT_TRUE( message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); EXPECT_FALSE(GetUserPref()); @@ -174,7 +177,10 @@ ASSERT_FALSE( message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); - controller_->ShowCameraOffNotification(); + // Emulate camera activity + controller_->OnActiveClientChange(cros::mojom::CameraClientType::ASH_CHROME, + true); + // A notification should be fired. EXPECT_TRUE( message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); EXPECT_FALSE(GetUserPref()); @@ -186,4 +192,30 @@ message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); } +TEST_F(PrivacyHubCameraControllerTests, InSessionSwitchNotification) { + SetUserPref(true); + message_center::MessageCenter* const message_center = + message_center::MessageCenter::Get(); + ASSERT_TRUE(message_center); + message_center->RemoveNotification(kPrivacyHubCameraOffNotificationId, false); + + // Emulate camera activity + controller_->OnActiveClientChange(cros::mojom::CameraClientType::ASH_CHROME, + true); + // Disable camera + SetUserPref(false); + + // A notification should be fired. + EXPECT_TRUE( + message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); + EXPECT_FALSE(GetUserPref()); + + // Enabling camera via clicking on the button should clear the notification + message_center->ClickOnNotificationButton(kPrivacyHubCameraOffNotificationId, + 0); + EXPECT_TRUE(GetUserPref()); + EXPECT_FALSE( + message_center->FindNotificationById(kPrivacyHubCameraOffNotificationId)); +} + } // namespace ash
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_bn.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_bn.xtb index 3e4c30a5..3067c924 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_bn.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_bn.xtb
@@ -9,6 +9,7 @@ <translation id="1300209025925956156">আপনার ডকুমেন্ট স্ক্যান করুন</translation> <translation id="1309250603447638106">ডকুমেন্ট স্ক্যান করার জন্য আপডেট ডাউনলোড করা হচ্ছে</translation> <translation id="137991641490787891"><ph name="ASPECT_RATIO_WIDTH" />। অ্যাক্সেস করতে Search কীয়ের সাথে 'বাঁদিকের তীরচিহ্ন' একসাথে প্রেস করুন।</translation> +<translation id="1417314334557041815">পৃষ্ঠা <ph name="INDEX" /> এডিট করুন</translation> <translation id="1430915738399379752">প্রিন্ট</translation> <translation id="1467231725790366244"><ph name="CAMERA" /> আনপ্লাগ করা হয়েছে।</translation> <translation id="1473110567575736769">৩ সেকেন্ডের টাইমার</translation> @@ -20,6 +21,7 @@ <translation id="1627744224761163218">৪ x ৪</translation> <translation id="1664224225747386870">কিছুই রেকর্ড করা হয়নি</translation> <translation id="1838104802459806957">উপরের দিকে টিল্ট করুন</translation> +<translation id="1843105061469674856">অতিরিক্ত পৃষ্ঠা স্ক্যান করুন</translation> <translation id="1851169887664797861">ক্যামেরার জন্য অতিরিক্ত কন্ট্রোল উপলভ্য</translation> <translation id="1851616744363735765">পজ করা হয়েছে</translation> <translation id="1862930711583847113"><ph name="FILE" /> এক্সপোর্ট করা যাচ্ছে না</translation> @@ -77,6 +79,7 @@ <translation id="414641094616694804">এই ক্যামেরা রেজোলিউশন পরিবর্তন করতে পারে না</translation> <translation id="4269820728363426813">লিঙ্ক অ্যাড্রেস কপি করুন</translation> <translation id="4281620174117014503">মাঝারি রেজোলিউশন</translation> +<translation id="428234092390943511">পৃষ্ঠা থাম্বনেল</translation> <translation id="4329152592498422850">চৌকো ফটো তুলতে মোড পাল্টান</translation> <translation id="4340659173795395806">আপনি এখন মাল্টি-পেজ পিডিএফ তৈরি করতে পারবেন</translation> <translation id="4383571725254449280">প্রিন্ট পারফর্ম্যান্স লগ</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_fil.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_fil.xtb index d30ba2a..a418730 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_fil.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_fil.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fil"> +<translation id="1057925581724305206">Full HD (1080p)</translation> <translation id="1113173431709655881">Camera mode</translation> <translation id="1153190633558910465">Naka-off ang Grid</translation> <translation id="1175958423215084756">Na-detect na link. <ph name="HOSTNAME" /></translation> @@ -19,6 +20,7 @@ <translation id="1588438908519853928">Normal</translation> <translation id="1620510694547887537">Camera</translation> <translation id="1627744224761163218">4 x 4</translation> +<translation id="1644345013557678440">HD (720p)</translation> <translation id="1664224225747386870">Walang na-record</translation> <translation id="1838104802459806957">Mag-tilt pataas</translation> <translation id="1843105061469674856">Mag-scan ng karagdagang page</translation> @@ -93,6 +95,7 @@ <translation id="4705093842003735294">Buong resolution</translation> <translation id="4890010094662541459">3 x 3</translation> <translation id="491895758387112773">Pag-record ng multistream video</translation> +<translation id="4984613436295737187">Quad HD (1440p)</translation> <translation id="5034763830503483128">Aspect ratio ng larawan</translation> <translation id="5057360777601936059">Kasalukuyang hindi available ang iyong camera. Pakitingnan kung maayos na nakakonekta ang camera.</translation> @@ -101,6 +104,7 @@ <translation id="5266635337630551423">Kaliwang sulok sa itaas ng dokumento</translation> <translation id="5317780077021120954">I-save</translation> <translation id="5320594929574852403">Gumagalaw pakaliwa</translation> +<translation id="5374917190292010970">4K (2160p)</translation> <translation id="5444515100983837161">Ilagay sa loob ng frame ang lahat ng gilid ng dokumento. Pinakamahusay na gumagana ang pag-scan kung magkaiba ng kulay ang dokumento at background.</translation> <translation id="5662366948659129155">Sina-scan ang page <ph name="COUNT" /></translation> <translation id="5671277269877808209">Parisukat</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ka.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ka.xtb index 429a2d4..71c59a9 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ka.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ka.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ka"> +<translation id="1057925581724305206">სრული HD (1080p)</translation> <translation id="1113173431709655881">კამერის რეჟიმი</translation> <translation id="1153190633558910465">ბადის გარეშე</translation> <translation id="1175958423215084756">აღმოჩენილია ბმული. <ph name="HOSTNAME" /></translation> @@ -19,6 +20,7 @@ <translation id="1588438908519853928">ნორმალური</translation> <translation id="1620510694547887537">კამერა</translation> <translation id="1627744224761163218">4 x 4</translation> +<translation id="1644345013557678440">HD (720p)</translation> <translation id="1664224225747386870">ჩაწერილი არაფერია</translation> <translation id="1838104802459806957">ზემოთკენ დახრა</translation> <translation id="1843105061469674856">დამატებითი გვერდის სკანირება</translation> @@ -93,6 +95,7 @@ <translation id="4705093842003735294">სრული გარჩევადობა</translation> <translation id="4890010094662541459">3 x 3</translation> <translation id="491895758387112773">მრავალნაკადოვანი ვიდეოჩაწერა</translation> +<translation id="4984613436295737187">Quad HD (1440p)</translation> <translation id="5034763830503483128">ფოტოს თანაფარდობა</translation> <translation id="5057360777601936059">თქვენი კამერა ამჟამად მიუწვდომელია. შეამოწმეთ, რომ კამერა სწორად არის დაკავშირებული.</translation> @@ -101,6 +104,7 @@ <translation id="5266635337630551423">დოკუმენტის ზედა მარცხენა კუთხე</translation> <translation id="5317780077021120954">შენახვა</translation> <translation id="5320594929574852403">გადატანა ხდება მარცხენა მიმართულებით</translation> +<translation id="5374917190292010970">4K (2160p)</translation> <translation id="5444515100983837161">მოათავსეთ დოკუმენტის ყველა კიდე ჩარჩოში. საუკეთესო შედეგების მისაღებად დოკუმენტისა და ფონის ფერები განსხვავებული უნდა იყოს.</translation> <translation id="5662366948659129155">სკანირდება გვერდი <ph name="COUNT" /></translation> <translation id="5671277269877808209">კვადრატი</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_mn.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_mn.xtb index bad565a..846cdd6 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_mn.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_mn.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mn"> +<translation id="1057925581724305206">Бүрэн HD (1080p)</translation> <translation id="1113173431709655881">Камерын горим</translation> <translation id="1153190633558910465">Хүснэгтлэхийг унтраах</translation> <translation id="1175958423215084756">Холбоос илэрсэн. <ph name="HOSTNAME" /></translation> @@ -19,6 +20,7 @@ <translation id="1588438908519853928">Хэвийн</translation> <translation id="1620510694547887537">Камер</translation> <translation id="1627744224761163218">4 x 4</translation> +<translation id="1644345013557678440">HD (720p)</translation> <translation id="1664224225747386870">Бичсэн зүйл алга</translation> <translation id="1838104802459806957">Дээш хазайлгах</translation> <translation id="1843105061469674856">Нэмэлт хуудас скан хийх</translation> @@ -93,6 +95,7 @@ <translation id="4705093842003735294">Бүрэн нягтрал</translation> <translation id="4890010094662541459">3 x 3</translation> <translation id="491895758387112773">Олон дамжуулалттай видео бичлэг</translation> +<translation id="4984613436295737187">Quad HD (1440p)</translation> <translation id="5034763830503483128">Зургийн харьцаа</translation> <translation id="5057360777601936059">Tаны камер одоогоор боломжгүй байна. Камераа зөв залгасан эсэхээ шалгана уу.</translation> @@ -101,6 +104,7 @@ <translation id="5266635337630551423">Документын зүүн дээд булан</translation> <translation id="5317780077021120954">Хадгалах</translation> <translation id="5320594929574852403">Зүүн тийш зөөж байна</translation> +<translation id="5374917190292010970">4000 (2160p)</translation> <translation id="5444515100983837161">Документын бүх ирмэгийг хүрээнд байрлуулна уу. Документ болон дэвсгэр өөр өөр өнгөтэй тохиолдолд илүү сайн скан хийнэ.</translation> <translation id="5662366948659129155"><ph name="COUNT" />-р хуудсыг скан хийж байна</translation> <translation id="5671277269877808209">Дөрвөлжин</translation>
diff --git a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc index e6b4e93..7dcbe14 100644 --- a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc +++ b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
@@ -18,8 +18,6 @@ #include "ui/compositor/layer_animation_observer.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/display/screen.h" -#include "ui/gfx/color_analysis.h" -#include "ui/gfx/color_utils.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/coordinate_conversion.h"
diff --git a/base/android/jni_generator/README.md b/base/android/jni_generator/README.md index b0d9e66a..42fc0e4f 100644 --- a/base/android/jni_generator/README.md +++ b/base/android/jni_generator/README.md
@@ -253,7 +253,7 @@ the object. For example, have a `close()` that deletes the native object. The best way to pass "compound" types across in either direction is to -create an inner class with PODs and a factory function. If possible, make mark +create an inner class with PODs and a factory function. If possible, mark all the fields as "final". ## Build Rules
diff --git a/base/memory/raw_ptr_exclusion.h b/base/memory/raw_ptr_exclusion.h index 82c06d3d..9b0ec224 100644 --- a/base/memory/raw_ptr_exclusion.h +++ b/base/memory/raw_ptr_exclusion.h
@@ -6,8 +6,10 @@ #define BASE_MEMORY_RAW_PTR_EXCLUSION_H_ #include "base/allocator/buildflags.h" +#include "base/compiler_specific.h" #include "build/build_config.h" +#if HAS_ATTRIBUTE(annotate) #if defined(OFFICIAL_BUILD) && !BUILDFLAG(FORCE_ENABLE_RAW_PTR_EXCLUSION) // The annotation changed compiler output and increased binary size so disable // for official builds. @@ -18,5 +20,8 @@ // Example: RAW_PTR_EXCLUSION Foo* foo_; #define RAW_PTR_EXCLUSION __attribute__((annotate("raw_ptr_exclusion"))) #endif +#else +#define RAW_PTR_EXCLUSION +#endif #endif // BASE_MEMORY_RAW_PTR_EXCLUSION_H_
diff --git a/build/fuchsia/PRESUBMIT.py b/build/fuchsia/PRESUBMIT.py index 06656a9..6f496e7 100644 --- a/build/fuchsia/PRESUBMIT.py +++ b/build/fuchsia/PRESUBMIT.py
@@ -25,6 +25,9 @@ J('binary_size_differ_test.py'), J('device_target_test.py'), J('ermine_ctl_test.py'), + J('gcs_download_test.py'), + J('update_images_test.py'), + J('update_sdk_test.py'), ] # TODO(1309977): enable on Windows when fixed.
diff --git a/build/fuchsia/common.py b/build/fuchsia/common.py index d75723c7..6e0fccb9 100644 --- a/build/fuchsia/common.py +++ b/build/fuchsia/common.py
@@ -5,11 +5,11 @@ import logging import os import platform +import shutil import signal import socket import subprocess import sys -import time import threading DIR_SOURCE_ROOT = os.path.abspath( @@ -165,3 +165,10 @@ """ # Chromium tests only for the presence of the variable, so match that here. return 'CHROME_HEADLESS' in os.environ + + +def MakeCleanDirectory(directory_name): + """If the directory exists, delete it and then remake it with no contents.""" + if os.path.exists(directory_name): + shutil.rmtree(directory_name) + os.mkdir(directory_name)
diff --git a/build/fuchsia/gcs_download.py b/build/fuchsia/gcs_download.py new file mode 100644 index 0000000..7c8f021 --- /dev/null +++ b/build/fuchsia/gcs_download.py
@@ -0,0 +1,46 @@ +# 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 logging +import os +import subprocess +import sys +import tarfile + +from common import DIR_SOURCE_ROOT + +sys.path.append(os.path.join(DIR_SOURCE_ROOT, 'build')) +import find_depot_tools + + +def DownloadAndUnpackFromCloudStorage(url, output_dir): + """Fetches a tarball from GCS and uncompresses it to |output_dir|.""" + + # Pass the compressed stream directly to 'tarfile'; don't bother writing it + # to disk first. + cmd = [ + sys.executable, + os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), 'cp', url, + '-' + ] + + logging.debug('Running "%s"', ' '.join(cmd)) + task = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) + tar_data = task.stdout + task.stdout = None # don't want Popen.communicate() to eat the output + + try: + tarfile.open(mode='r|gz', fileobj=tar_data).extractall(path=output_dir) + except tarfile.ReadError as exc: + _, stderr_data = task.communicate() + stderr_data = stderr_data.decode() + raise subprocess.CalledProcessError( + task.returncode, cmd, + 'Failed to read a tarfile from gsutil.py.\n{}'.format( + stderr_data if stderr_data else '')) from exc + + if task.wait(): + _, stderr_data = task.communicate() + stderr_data = stderr_data.decode() + raise subprocess.CalledProcessError(task.returncode, cmd, stderr_data)
diff --git a/build/fuchsia/gcs_download_test.py b/build/fuchsia/gcs_download_test.py new file mode 100755 index 0000000..c78cfe3 --- /dev/null +++ b/build/fuchsia/gcs_download_test.py
@@ -0,0 +1,49 @@ +#!/usr/bin/env vpython3 +# 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 subprocess +import tarfile +import unittest +from unittest import mock + +from gcs_download import DownloadAndUnpackFromCloudStorage + + +def _mock_task(status_code: int = 0, stderr: str = '') -> mock.Mock: + task_mock = mock.Mock() + attrs = { + 'returncode': status_code, + 'wait.return_value': status_code, + 'communicate.return_value': (None, stderr.encode()), + } + task_mock.configure_mock(**attrs) + + return task_mock + + +@mock.patch('subprocess.Popen') +@mock.patch('tarfile.open') +class TestDownloadAndUnpackFromCloudStorage(unittest.TestCase): + def testHappyPath(self, mock_tarfile, mock_popen): + mock_popen.return_value = _mock_task() + + DownloadAndUnpackFromCloudStorage('', '') + + def testFailedTarOpen(self, mock_tarfile, mock_popen): + mock_popen.return_value = _mock_task(stderr='some error') + mock_tarfile.side_effect = tarfile.ReadError() + + with self.assertRaises(subprocess.CalledProcessError): + DownloadAndUnpackFromCloudStorage('', '') + + def testBadTaskStatusCode(self, mock_tarfile, mock_popen): + mock_popen.return_value = _mock_task(stderr='some error', status_code=1) + + with self.assertRaises(subprocess.CalledProcessError): + DownloadAndUnpackFromCloudStorage('', '') + + +if __name__ == '__main__': + unittest.main()
diff --git a/build/fuchsia/update_images.py b/build/fuchsia/update_images.py index 49b14cc..8c76121 100755 --- a/build/fuchsia/update_images.py +++ b/build/fuchsia/update_images.py
@@ -11,46 +11,22 @@ import logging import os import re -import shutil import subprocess import sys -import tarfile +from typing import Dict, Optional -from common import GetHostOsFromPlatform, GetHostArchFromPlatform, \ - DIR_SOURCE_ROOT, IMAGES_ROOT +from common import DIR_SOURCE_ROOT +from common import GetHostOsFromPlatform +from common import IMAGES_ROOT +from common import MakeCleanDirectory -sys.path.append(os.path.join(DIR_SOURCE_ROOT, 'build')) -import find_depot_tools +from gcs_download import DownloadAndUnpackFromCloudStorage + +from update_sdk import GetSDKOverrideGCSPath IMAGE_SIGNATURE_FILE = '.hash' -def DownloadAndUnpackFromCloudStorage(url, output_dir): - """Fetches a tarball from GCS and uncompresses it to |output_dir|.""" - - # Pass the compressed stream directly to 'tarfile'; don't bother writing it - # to disk first. - cmd = [ - os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), 'cp', url, - '-' - ] - logging.debug('Running "%s"', ' '.join(cmd)) - task = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) - try: - tarfile.open(mode='r|gz', fileobj=task.stdout).extractall(path=output_dir) - except tarfile.ReadError as exc: - task.wait() - stderr = task.stderr.read() - raise subprocess.CalledProcessError( - task.returncode, cmd, - "Failed to read a tarfile from gsutil.py.\n{}".format( - stderr if stderr else "")) from exc - task.wait() - if task.returncode: - raise subprocess.CalledProcessError(task.returncode, cmd, - task.stderr.read()) - - # TODO(crbug.com/1138433): Investigate whether we can deprecate # use of sdk_bucket.txt. def GetOverrideCloudStorageBucket(): @@ -58,12 +34,6 @@ return ReadFile('sdk-bucket.txt').strip() -def MakeCleanDirectory(directory_name): - if (os.path.exists(directory_name)): - shutil.rmtree(directory_name) - os.mkdir(directory_name) - - def ReadFile(filename): """Read a file in this directory.""" with open(os.path.join(os.path.dirname(__file__), filename), 'r') as f: @@ -151,8 +121,8 @@ if os.path.exists(image_output_dir): continue - logging.info('Downloading Fuchsia boot images for %s.%s...' % - (device_type, arch)) + logging.info('Downloading Fuchsia boot images for %s.%s...', device_type, + arch) # Legacy images use different naming conventions. See fxbug.dev/85552. legacy_delimiter_device_types = ['qemu', 'generic'] @@ -173,6 +143,48 @@ image_to_download, images_tarball_url) +def _GetImageOverrideInfo() -> Optional[Dict[str, str]]: + """Get the bucket location from sdk_override.txt.""" + location = GetSDKOverrideGCSPath() + if not location: + return None + + m = re.match(r'gs://([^/]+)/development/([^/]+)/?(?:sdk)?', location) + if not m: + raise ValueError('Badly formatted image override location %s' % location) + + return { + 'bucket': m.group(1), + 'image_hash': m.group(2), + } + + +def GetImageLocationInfo(default_bucket: str) -> Dict[str, str]: + """Figures out where to pull the image from. + + Defaults to the provided default bucket and generates the hash from defaults. + If sdk_override.txt exists, it uses that bucket instead. + + Args: + default_bucket: a given default for what bucket to use + + Returns: + A dictionary containing the bucket and image_hash + """ + # if sdk_override.txt exists, use the image from that bucket + override = _GetImageOverrideInfo() + if override: + return override + + # Use the bucket in sdk-bucket.txt if an entry exists. + # Otherwise use the default bucket. + bucket = GetOverrideCloudStorageBucket() or default_bucket + return { + 'bucket': bucket, + 'image_hash': GetImageHash(bucket), + } + + def main(): parser = argparse.ArgumentParser() parser.add_argument('--verbose', @@ -206,11 +218,11 @@ # Check whether there's Fuchsia support for this platform. GetHostOsFromPlatform() - # Use the bucket in sdk-bucket.txt if an entry exists. - # Otherwise use the default bucket. - bucket = GetOverrideCloudStorageBucket() or args.default_bucket + image_info = GetImageLocationInfo(args.default_bucket) - image_hash = GetImageHash(bucket) + bucket = image_info['bucket'] + image_hash = image_info['image_hash'] + if not image_hash: return 1 @@ -219,7 +231,8 @@ if os.path.exists(signature_filename) else '') new_signature = GetImageSignature(image_hash, args.boot_images) if current_signature != new_signature: - logging.info('Downloading Fuchsia images %s...' % image_hash) + logging.info('Downloading Fuchsia images %s from bucket %s...', image_hash, + bucket) MakeCleanDirectory(args.image_root_dir) try: @@ -227,10 +240,10 @@ args.image_root_dir) with open(signature_filename, 'w') as f: f.write(new_signature) - except subprocess.CalledProcessError as e: - logging.error(("command '%s' failed with status %d.%s"), " ".join(e.cmd), - e.returncode, " Details: " + e.output if e.output else "") + logging.exception("command '%s' failed with status %d.%s", + ' '.join(e.cmd), e.returncode, + ' Details: ' + e.output if e.output else '') return 0
diff --git a/build/fuchsia/update_images_test.py b/build/fuchsia/update_images_test.py new file mode 100755 index 0000000..49d7f2f --- /dev/null +++ b/build/fuchsia/update_images_test.py
@@ -0,0 +1,81 @@ +#!/usr/bin/env vpython3 +# 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 unittest +from unittest import mock + +from parameterized import parameterized + +from update_images import _GetImageOverrideInfo +from update_images import GetImageLocationInfo + + +@mock.patch('update_images.GetSDKOverrideGCSPath') +class TestGetImageOverrideInfo(unittest.TestCase): + def testLocationIsNone(self, mock_sdk_loc): + mock_sdk_loc.return_value = None + + actual = _GetImageOverrideInfo() + self.assertIsNone(actual) + + def testBadLocationStr(self, mock_sdk_loc): + mock_sdk_loc.return_value = 'bad-format-string' + + with self.assertRaises(Exception): + _GetImageOverrideInfo() + + @parameterized.expand([ + ('gs://my-bucket/development/my-hash/sdk', { + 'bucket': 'my-bucket', + 'image_hash': 'my-hash' + }), + ('gs://my-bucket/development/my-hash', { + 'bucket': 'my-bucket', + 'image_hash': 'my-hash' + }), + ('gs://my-bucket/development/my-hash/', { + 'bucket': 'my-bucket', + 'image_hash': 'my-hash' + }), + ]) + def testValidLocation(self, mock_sdk_loc, in_path, expected): + mock_sdk_loc.return_value = in_path + + actual = _GetImageOverrideInfo() + self.assertEqual(actual, expected) + + +@mock.patch('update_images.GetImageHash') +@mock.patch('update_images.GetOverrideCloudStorageBucket') +@mock.patch('update_images._GetImageOverrideInfo') +class TestGetImageLocationInfo(unittest.TestCase): + def testNoOverride(self, mock_image_override, mock_override_bucket, + mock_image_hash): + mock_image_override.return_value = None + mock_override_bucket.return_value = None + mock_image_hash.return_value = 'image-hash' + + actual = GetImageLocationInfo('my-bucket') + self.assertEqual(actual, { + 'bucket': 'my-bucket', + 'image_hash': 'image-hash', + }) + + def testOverride(self, mock_image_override, mock_override_bucket, + mock_image_hash): + override_info = { + 'bucket': 'override-bucket', + 'image_hash': 'override-hash', + } + mock_image_override.return_value = override_info + mock_override_bucket.return_value = None + mock_image_hash.return_value = 'image-hash' + + actual = GetImageLocationInfo('my-bucket') + self.assertEqual(actual, override_info) + + +if __name__ == '__main__': + unittest.main()
diff --git a/build/fuchsia/update_sdk.py b/build/fuchsia/update_sdk.py index 3b30992..aba2743 100755 --- a/build/fuchsia/update_sdk.py +++ b/build/fuchsia/update_sdk.py
@@ -12,10 +12,13 @@ import platform import subprocess import sys +from typing import Optional -from common import GetHostOsFromPlatform, SDK_ROOT -from update_images import DownloadAndUnpackFromCloudStorage, \ - MakeCleanDirectory +from common import GetHostOsFromPlatform +from common import MakeCleanDirectory +from common import SDK_ROOT + +from gcs_download import DownloadAndUnpackFromCloudStorage def _GetHostArch(): @@ -28,6 +31,27 @@ raise Exception('Unsupported host architecture: %s' % host_arch) +def GetSDKOverrideGCSPath(path: Optional[str] = None) -> Optional[str]: + """Fetches the sdk override path from a file. + + Args: + path: the full file path to read the data from. + defaults to sdk_override.txt in the directory of this file. + + Returns: + The contents of the file, stripped of white space. + Example: gs://fuchsia-artifacts/development/some-id/sdk + """ + if not path: + path = os.path.join(os.path.dirname(__file__), 'sdk_override.txt') + + if not os.path.isfile(path): + return None + + with open(path, 'r') as f: + return f.read().strip() + + def _GetTarballPath(gcs_tarball_prefix: str) -> str: """Get the full path to the sdk tarball on GCS""" platform = GetHostOsFromPlatform() @@ -54,10 +78,10 @@ logging.warning('Fuchsia SDK is not supported on this platform.') return 0 - sdk_override = os.path.join(os.path.dirname(__file__), 'sdk_override.txt') + gcs_tarball_prefix = GetSDKOverrideGCSPath() # Download from CIPD if there is no override file. - if not os.path.isfile(sdk_override): + if not gcs_tarball_prefix: if not args.cipd_prefix: parser.exit(1, '--cipd-prefix must be specified.') if not args.version: @@ -71,9 +95,6 @@ input=ensure_file) return 0 - with open(sdk_override, 'r') as f: - gcs_tarball_prefix = f.read() - # Always re-download the SDK. logging.info('Downloading GN SDK from GCS...') MakeCleanDirectory(SDK_ROOT)
diff --git a/build/fuchsia/update_sdk_test.py b/build/fuchsia/update_sdk_test.py new file mode 100755 index 0000000..912f31c --- /dev/null +++ b/build/fuchsia/update_sdk_test.py
@@ -0,0 +1,69 @@ +#!/usr/bin/env vpython3 +# 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 unittest +from unittest import mock + +from parameterized import parameterized + +from update_sdk import _GetHostArch +from update_sdk import _GetTarballPath +from update_sdk import GetSDKOverrideGCSPath + + +@mock.patch('platform.machine') +class TestGetHostArch(unittest.TestCase): + @parameterized.expand([('x86_64', 'amd64'), ('AMD64', 'amd64'), + ('aarch64', 'arm64')]) + def testSupportedArchs(self, mock_machine, arch, expected): + mock_machine.return_value = arch + self.assertEqual(_GetHostArch(), expected) + + def testUnsupportedArch(self, mock_machine): + mock_machine.return_value = 'bad_arch' + with self.assertRaises(Exception): + _GetHostArch() + + +@mock.patch('builtins.open') +@mock.patch('os.path.isfile') +class TestGetSDKOverrideGCSPath(unittest.TestCase): + def testFileNotFound(self, mock_isfile, mock_open): + mock_isfile.return_value = False + + actual = GetSDKOverrideGCSPath('this-file-does-not-exist.txt') + self.assertIsNone(actual) + + def testDefaultPath(self, mock_isfile, mock_open): + mock_isfile.return_value = False + + with mock.patch('os.path.dirname', return_value='./'): + GetSDKOverrideGCSPath() + + mock_isfile.assert_called_with('./sdk_override.txt') + + def testRead(self, mock_isfile, mock_open): + fake_path = '\n\ngs://fuchsia-artifacts/development/abc123/sdk\n\n' + + mock_isfile.return_value = True + mock_open.side_effect = mock.mock_open(read_data=fake_path) + + actual = GetSDKOverrideGCSPath() + self.assertEqual(actual, 'gs://fuchsia-artifacts/development/abc123/sdk') + + +@mock.patch('update_sdk._GetHostArch') +@mock.patch('common.GetHostOsFromPlatform') +class TestGetTarballPath(unittest.TestCase): + def testGetTarballPath(self, mock_get_host_os, mock_host_arch): + mock_get_host_os.return_value = 'linux' + mock_host_arch.return_value = 'amd64' + + actual = _GetTarballPath('gs://bucket/sdk') + self.assertEqual(actual, 'gs://bucket/sdk/linux-amd64/gn.tar.gz') + + +if __name__ == '__main__': + unittest.main()
diff --git a/chrome/VERSION b/chrome/VERSION index 1a2ca1b..2a91de6c 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=108 MINOR=0 -BUILD=5352 +BUILD=5353 PATCH=0
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb index 4471a8b..dc9ca676 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">মূল্যাংকন</translation> <translation id="3291470810748040983">খোলা থকা কোনো টেবত কম মূল্যৰ তথ্য উপলব্ধ হ’লে আপুনি এটা সতৰ্কবাৰ্তা লাভ কৰিব</translation> <translation id="3328308545011660196">পৰামৰ্শ: <ph name="NUMBER_OF_TABS" />টা টেব জড়িত যেন লাগিছে। সেইকেইটা একগোট কৰিবনে?</translation> +<translation id="3499853001094440183">টেবৰ গোট ভংগ কৰক</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> টা টেব সংকোচন কৰক।}one{<ph name="TABS_COUNT_MANY" /> টা টেবযুক্ত <ph name="TITLE_OF_GROUP" /> টেবৰ গোটটো সংকোচন কৰক।}other{<ph name="TABS_COUNT_MANY" /> টা টেবযুক্ত <ph name="TITLE_OF_GROUP" /> টেবৰ গোটটো সংকোচন কৰক।}}</translation> <translation id="3882834874697329510">খোলা থকা কোনো টেবত কম মূল্যৰ তথ্য উপলব্ধ হ’লে সতৰ্কবাৰ্তা লাভ কৰিবলৈ ছেটিঙলৈ গৈ জাননী অন কৰক।</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">টেবসমূহ বাছনি কৰক</translation> <translation id="6228793724645064692">(ষ্ট’ৰৰ মূল্যাংকন)</translation> <translation id="6333260925957816943">এই দোকানৰ বিষয়ে তথ্য</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{বাছনি কৰা <ph name="TABS_COUNT_ONE" /> টা টেবৰ গোট ভংগ কৰক}one{বাছনি কৰা <ph name="TABS_COUNT_MANY" /> টা টেবৰ গোট ভংগ কৰক}other{বাছনি কৰা <ph name="TABS_COUNT_MANY" /> টা টেবৰ গোট ভংগ কৰক}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> টা টেব}one{<ph name="TABS_COUNT_MANY" /> টা টেব}other{<ph name="TABS_COUNT_MANY" /> টা টেব}}</translation> <translation id="6510648526783655549">টেবৰ ষ্ট্রিপ বন্ধ কৰক</translation> <translation id="6549021453810473782">ষ্ট’ৰৰ তথ্য চাওক</translation> <translation id="6562820390860419811">টেবটো বাওঁফাললৈ নিয়ক</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb index 0de1cd1c..ce0df9e9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">puntuació</translation> <translation id="3291470810748040983">Rebràs una alerta quan hi hagi un preu més baix en una pestanya oberta</translation> <translation id="3328308545011660196">Suggeriment: sembla que hi ha <ph name="NUMBER_OF_TABS" /> pestanyes relacionades. Vols agrupar-les?</translation> +<translation id="3499853001094440183">Desagrupa les pestanyes</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Replega <ph name="TABS_COUNT_ONE" /> pestanya.}other{Replega el grup <ph name="TITLE_OF_GROUP" /> format per <ph name="TABS_COUNT_MANY" /> pestanyes.}}</translation> <translation id="3882834874697329510">Per rebre una alerta quan hi hagi un preu més baix en una pestanya oberta, activa les notificacions a Configuració.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Selecciona pestanyes</translation> <translation id="6228793724645064692">(puntuació de la botiga)</translation> <translation id="6333260925957816943">Informació sobre aquesta botiga</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Desagrupa la pestanya seleccionada (<ph name="TABS_COUNT_ONE" />)}other{Desagrupa les <ph name="TABS_COUNT_MANY" /> pestanyes seleccionades}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> pestanya}other{<ph name="TABS_COUNT_MANY" /> pestanyes}}</translation> <translation id="6510648526783655549">Tanca la barra de pestanyes</translation> <translation id="6549021453810473782">Consulta la informació de la botiga</translation> <translation id="6562820390860419811">Mou la pestanya cap a l'esquerra</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb index 2825476..8a68c9c 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">hodnocení</translation> <translation id="3291470810748040983">Když bude na otevřené kartě nižší cena, dostanete upozornění</translation> <translation id="3328308545011660196">Návrh: Některé karty (<ph name="NUMBER_OF_TABS" />) spolu pravděpodobně souvisejí. Chcete je seskupit?</translation> +<translation id="3499853001094440183">Zrušit seskupení karet</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Sbalit <ph name="TABS_COUNT_ONE" /> kartu.}few{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> se <ph name="TABS_COUNT_MANY" /> kartami.}many{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> s <ph name="TABS_COUNT_MANY" /> karty.}other{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> s <ph name="TABS_COUNT_MANY" /> kartami.}}</translation> <translation id="3882834874697329510">Pokud chcete dostat upozornění, když bude na otevřené kartě nižší cena, v Nastavení zapněte oznámení.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Vyberte karty</translation> <translation id="6228793724645064692">(hodnocení v obchodu)</translation> <translation id="6333260925957816943">Informace o této prodejně</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Zrušit seskupení <ph name="TABS_COUNT_ONE" /> vybrané karty}few{Zrušit seskupení <ph name="TABS_COUNT_MANY" /> vybraných karet}many{Zrušit seskupení <ph name="TABS_COUNT_MANY" /> vybrané karty}other{Zrušit seskupení <ph name="TABS_COUNT_MANY" /> vybraných karet}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> karta}few{<ph name="TABS_COUNT_MANY" /> karty}many{<ph name="TABS_COUNT_MANY" /> karty}other{<ph name="TABS_COUNT_MANY" /> karet}}</translation> <translation id="6510648526783655549">Zavřít lištu karet</translation> <translation id="6549021453810473782">Zobrazit informace o prodejně</translation> <translation id="6562820390860419811">Přesunout kartu doleva</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb index cbe9b7b..d8c4a593 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">sgôr</translation> <translation id="3291470810748040983">Byddwch yn cael hysbysiad pan fydd pris is mewn tab sydd ar agor</translation> <translation id="3328308545011660196">Awgrym: Mae <ph name="NUMBER_OF_TABS" /> o dabiau yn ymddangos yn berthnasol. Grwpio nhw?</translation> +<translation id="3499853001094440183">Dadgrwpio tabiau</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Crebachu <ph name="TABS_COUNT_ONE" /> tab.}zero{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> tab.}two{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> dab.}few{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> thab.}many{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> thab.}other{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> tab.}}</translation> <translation id="3882834874697329510">I gael hysbysiad pan fydd pris is mewn tab sydd ar agor, trowch hysbysiadau ymlaen yn y Gosodiadau.</translation> @@ -50,6 +51,7 @@ <translation id="5073204694187207510">Cuddio'r grid sgrîn lawn</translation> <translation id="5076161749301278626">Gweld adolygiadau'r siop?</translation> <translation id="5082793167783849073">Cymharwch dudalennau'n gyflym drwy wneud grŵp. I ddechrau, cyffyrddwch a daliwch ddolen.</translation> +<translation id="5453029940327926427">Cau tabiau</translation> <translation id="5490235265819901748">Mae'r grŵp tabiau wedi'i ehangu</translation> <translation id="5494920125229734069">Dewis pob un</translation> <translation id="5533021382642990449">Dangos yn nes ymlaen</translation> @@ -65,6 +67,8 @@ <translation id="6193448654517602979">Dewis tabiau</translation> <translation id="6228793724645064692">(sgôr siop)</translation> <translation id="6333260925957816943">Gwybodaeth am y siop hon</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Dadgrwpio'r <ph name="TABS_COUNT_ONE" /> tab a ddewiswyd}zero{Dadgrwpio'r <ph name="TABS_COUNT_MANY" /> tab a ddewiswyd}two{Dadgrwpio'r <ph name="TABS_COUNT_MANY" /> dab a ddewiswyd}few{Dadgrwpio'r <ph name="TABS_COUNT_MANY" /> tab a ddewiswyd}many{Dadgrwpio'r <ph name="TABS_COUNT_MANY" /> tab a ddewiswyd}other{Dadgrwpio'r <ph name="TABS_COUNT_MANY" /> tab a ddewiswyd}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> tab}zero{<ph name="TABS_COUNT_MANY" /> tab}two{<ph name="TABS_COUNT_MANY" /> dab}few{<ph name="TABS_COUNT_MANY" /> tab}many{<ph name="TABS_COUNT_MANY" /> tab}other{<ph name="TABS_COUNT_MANY" /> tab}}</translation> <translation id="6510648526783655549">Cau'r stribed tabiau</translation> <translation id="6549021453810473782">Gweld gwybodaeth siop</translation> <translation id="6562820390860419811">Symud tab i'r chwith</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb index 29826dc..98e1cdd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">bedømmelse</translation> <translation id="3291470810748040983">Du får en notifikation, når der er en lavere pris på en åben fane</translation> <translation id="3328308545011660196">Forslag: <ph name="NUMBER_OF_TABS" /> faner ser ud til at være relateret. Vil du gruppere dem?</translation> +<translation id="3499853001094440183">Ophæv gruppering af faner</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Skjul <ph name="TABS_COUNT_ONE" /> fane.}one{Skjul fanegruppen <ph name="TITLE_OF_GROUP" /> med <ph name="TABS_COUNT_MANY" /> fane.}other{Skjul fanegruppen <ph name="TITLE_OF_GROUP" /> med <ph name="TABS_COUNT_MANY" /> faner.}}</translation> <translation id="3882834874697329510">Slå notifikationer til i indstillingerne for at få en underretning, når der er en lavere pris på en åben fane.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Vælg faner</translation> <translation id="6228793724645064692">(butiksanmeldelse)</translation> <translation id="6333260925957816943">Oplysninger om denne butik</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Ophæv grupperingen af <ph name="TABS_COUNT_ONE" /> valgt fane}one{Ophæv grupperingen af <ph name="TABS_COUNT_MANY" /> valgt fane}other{Ophæv grupperingen af <ph name="TABS_COUNT_MANY" /> valgte faner}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> fane}one{<ph name="TABS_COUNT_MANY" /> fane}other{<ph name="TABS_COUNT_MANY" /> faner}}</translation> <translation id="6510648526783655549">Luk fanelinje</translation> <translation id="6549021453810473782">Se butiksinfo</translation> <translation id="6562820390860419811">Flyt fane til venstre</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb index 5bac5f9..79bc188 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">αξιολόγηση</translation> <translation id="3291470810748040983">Θα λαμβάνετε ειδοποίηση όταν υπάρχει χαμηλότερη τιμή σε μια ανοικτή καρτέλα.</translation> <translation id="3328308545011660196">Πρόταση: <ph name="NUMBER_OF_TABS" /> καρτέλες φαίνονται σχετικές. Να γίνει ομαδοποίηση;</translation> +<translation id="3499853001094440183">Κατάργηση ομαδοπ. καρτελών</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Συμπτύξτε <ph name="TABS_COUNT_ONE" /> καρτέλα.}other{Συμπτύξτε την ομάδα καρτελών <ph name="TITLE_OF_GROUP" /> με τις <ph name="TABS_COUNT_MANY" /> καρτέλες.}}</translation> <translation id="3882834874697329510">Για να λαμβάνετε μια ειδοποίηση όταν υπάρχει χαμηλότερη τιμή σε μια ανοικτή καρτέλα, ενεργοποιήστε τις ειδοποιήσεις στις Ρυθμίσεις.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Επιλογή καρτελών</translation> <translation id="6228793724645064692">(αξιολόγηση καταστήματος)</translation> <translation id="6333260925957816943">Πληροφορίες για αυτό το κατάστημα</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Κατάργηση ομαδοποίησης <ph name="TABS_COUNT_ONE" /> επιλεγμένης καρτέλας}other{Κατάργηση ομαδοποίησης <ph name="TABS_COUNT_MANY" /> επιλεγμένων καρτελών}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> καρτέλα}other{<ph name="TABS_COUNT_MANY" /> καρτέλες}}</translation> <translation id="6510648526783655549">Κλείσιμο γραμμής καρτελών</translation> <translation id="6549021453810473782">Προβολή πληροφοριών καταστήματος</translation> <translation id="6562820390860419811">Μετακίνηση καρτέλας αριστερά</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb index a069b5c..fc95a3b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">calificación</translation> <translation id="3291470810748040983">Recibirás una alerta cuando baje el precio de uno de los artículos de las pestañas abiertas.</translation> <translation id="3328308545011660196">Sugerencia: <ph name="NUMBER_OF_TABS" /> pestañas parecen estar relacionadas. ¿Deseas agruparlas?</translation> +<translation id="3499853001094440183">Desagrupar pestañas</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Contraer <ph name="TABS_COUNT_ONE" /> pestaña}other{Contraer el grupo de pestañas <ph name="TITLE_OF_GROUP" />, el cual tiene <ph name="TABS_COUNT_MANY" /> pestañas}}</translation> <translation id="3882834874697329510">Para recibir una alerta cuando hay un precio más bajo en una pestaña abierta, activa las notificaciones en la Configuración.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Seleccionar pestañas</translation> <translation id="6228793724645064692">(calificación de la tienda)</translation> <translation id="6333260925957816943">Hoja de información sobre esta tienda</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Desagrupar <ph name="TABS_COUNT_ONE" /> pestaña seleccionada}other{Desagrupar <ph name="TABS_COUNT_MANY" /> pestañas seleccionadas}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> pestaña}other{<ph name="TABS_COUNT_MANY" /> pestañas}}</translation> <translation id="6510648526783655549">Cierra la barra de pestañas</translation> <translation id="6549021453810473782">Consulta la información sobre la tienda.</translation> <translation id="6562820390860419811">Mover la pestaña a la izquierda</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb index 59ba91dcc..a735070 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">puntuación</translation> <translation id="3291470810748040983">Recibirás una alerta cuando haya un precio más bajo en una pestaña abierta.</translation> <translation id="3328308545011660196">Sugerencia: Hay <ph name="NUMBER_OF_TABS" /> pestañas que parecen relacionadas. ¿Quieres agruparlas?</translation> +<translation id="3499853001094440183">Desagrupar pestañas</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Ocultar <ph name="TABS_COUNT_ONE" /> pestaña}other{Ocultar grupo de pestañas <ph name="TITLE_OF_GROUP" /> con <ph name="TABS_COUNT_MANY" /> pestañas.}}</translation> <translation id="3882834874697329510">Para recibir una alerta cuando haya un precio más bajo en una pestaña abierta, activa las notificaciones en Ajustes.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Selecciona pestañas</translation> <translation id="6228793724645064692">(valoración de la tienda)</translation> <translation id="6333260925957816943">Información sobre esta tienda</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Desagrupar <ph name="TABS_COUNT_ONE" /> pestaña seleccionada}other{Desagrupar <ph name="TABS_COUNT_MANY" /> pestañas seleccionadas}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> pestaña}other{<ph name="TABS_COUNT_MANY" /> pestañas}}</translation> <translation id="6510648526783655549">Cerrar barra de pestañas</translation> <translation id="6549021453810473782">Ver información de la tienda</translation> <translation id="6562820390860419811">Mover pestaña a la izquierda</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb index 8d0e7d1..de76ba4b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">ردهبندی</translation> <translation id="3291470810748040983">وقتی در یکی از برگههای باز، قیمت کمتری وجود داشت، اعلان دریافت خواهید کرد</translation> <translation id="3328308545011660196">پیشنهاد: به نظر میرسد <ph name="NUMBER_OF_TABS" /> برگه مرتبط باشند. گروهبندی شوند؟</translation> +<translation id="3499853001094440183">لغو گروهبندی برگهها</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{جمع کردن <ph name="TABS_COUNT_ONE" /> برگه.}one{جمع کردن گروه برگه <ph name="TITLE_OF_GROUP" /> با <ph name="TABS_COUNT_MANY" /> برگه.}other{جمع کردن گروه برگه <ph name="TITLE_OF_GROUP" /> با <ph name="TABS_COUNT_MANY" /> برگه.}}</translation> <translation id="3882834874697329510">اعلانها را در «تنظیمات» روشن کنید تا اگر قیمت کمتری در برگهای باز وجود داشت هشدار دریافت کنید.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">انتخاب برگهها</translation> <translation id="6228793724645064692">(ردهبندی فروشگاه)</translation> <translation id="6333260925957816943">اطلاعات مربوط به این فروشگاه</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{لغو گروهبندی <ph name="TABS_COUNT_ONE" /> برگه انتخابشده}one{لغو گروهبندی <ph name="TABS_COUNT_MANY" /> برگه انتخابشده}other{لغو گروهبندی <ph name="TABS_COUNT_MANY" /> برگه انتخابشده}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> برگه}one{<ph name="TABS_COUNT_MANY" /> برگه}other{<ph name="TABS_COUNT_MANY" /> برگه}}</translation> <translation id="6510648526783655549">بستن نوار برگه</translation> <translation id="6549021453810473782">مشاهده اطلاعات فروشگاه</translation> <translation id="6562820390860419811">انتقال برگه به راست</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb index 10a4a4d..63f9f7027 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">rating</translation> <translation id="3291470810748040983">Makakatanggap ka ng alerto kapag may mas mababang presyo sa isang nakabukas na tab</translation> <translation id="3328308545011660196">Suhestyon: Mukhang magkaugnay ang <ph name="NUMBER_OF_TABS" /> (na) tab. Igrupo ang mga ito?</translation> +<translation id="3499853001094440183">Mag-ungroup ng mga tab</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{I-collapse ang <ph name="TABS_COUNT_ONE" /> tab.}one{I-collapse ang grupo ng tab na <ph name="TITLE_OF_GROUP" /> na may <ph name="TABS_COUNT_MANY" /> tab.}other{I-collapse ang grupo ng tab na <ph name="TITLE_OF_GROUP" /> na may <ph name="TABS_COUNT_MANY" /> na tab.}}</translation> <translation id="3882834874697329510">Para makakuha ng alerto sa isang bukas na tab kapag may mas mababang presyo, i-on ang mga notification sa Mga Setting.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Pumili ng mga tab</translation> <translation id="6228793724645064692">(rating ng store)</translation> <translation id="6333260925957816943">Impormasyon tungkol sa store na ito</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{I-ungroup ang <ph name="TABS_COUNT_ONE" /> napiling tab}one{I-ungroup ang <ph name="TABS_COUNT_MANY" /> napiling tab}other{I-ungroup ang <ph name="TABS_COUNT_MANY" /> na napiling tab}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> tab}one{<ph name="TABS_COUNT_MANY" /> tab}other{<ph name="TABS_COUNT_MANY" /> na tab}}</translation> <translation id="6510648526783655549">Isara ang tab strip</translation> <translation id="6549021453810473782">Tingnan ang impormasyon ng store</translation> <translation id="6562820390860419811">Ilipat ang tab sa kaliwa</translation> @@ -80,11 +83,13 @@ <translation id="753732157349120914">Tab Switcher</translation> <translation id="7545727119051420814">{REVIEWS,plural, =1{<ph name="REVIEWS_COUNT_ONE" /> review mula sa Google}one{<ph name="REVIEWS_COUNT_MANY" /> review mula sa Google}other{<ph name="REVIEWS_COUNT_MANY" /> na review mula sa Google}}</translation> <translation id="7559245342362162951">Ipakita ang mga tab ng grupo sa fullscreen grid</translation> +<translation id="7699041944097291312">{TABS_COUNT,plural, =1{Ibahagi ang <ph name="TABS_COUNT_ONE" /> piniling tab}one{Ibahagi ang <ph name="TABS_COUNT_MANY" /> piniling tab}other{Ibahagi ang <ph name="TABS_COUNT_MANY" /> na piniling tab}}</translation> <translation id="7792771145871471484">Suriin ang mga suhestyon.</translation> <translation id="7838146321400849846">{TABS_COUNT,plural, =1{Igrupo ang <ph name="TABS_COUNT_ONE" /> napiling tab}one{Igrupo ang <ph name="TABS_COUNT_MANY" /> napiling tab}other{Igrupo ang <ph name="TABS_COUNT_MANY" /> na napiling tab}}</translation> <translation id="7854360405711302755">{REVIEWS,plural, =1{ <ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> rating, <ph name="REVIEWS_COUNT_ONE" /> review}one{<ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> rating, <ph name="REVIEWS_COUNT_MANY" /> review}other{<ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> rating, <ph name="REVIEWS_COUNT_MANY" /> na review}}</translation> <translation id="7885132941432959125">Ilipat ang tab sa kanan</translation> <translation id="7966321538264951561">I-dismiss ang mga suhestyon.</translation> +<translation id="8018192911041116887">Magbahagi ng mga tab</translation> <translation id="8029301326595421733">Binuksan ang impormasyon tungkol sa store na ito nang buo ang taas</translation> <translation id="814503310257431685">Tingnan lahat</translation> <translation id="8205266828577616993">Ilipat ang tab sa itaas</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb index f9ae856..6a255fa0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">રેટિંગ</translation> <translation id="3291470810748040983">ખોલવામાં આવેલી ટૅબમાં જ્યારે કોઈ આઇટમની કિંમત ઓછી થશે, ત્યારે તમને અલર્ટ મળશે</translation> <translation id="3328308545011660196">સૂચન: <ph name="NUMBER_OF_TABS" /> ટૅબ સંબંધિત હોય તેમ જણાય છે. તેમનું ગ્રૂપ બનાવીએ?</translation> +<translation id="3499853001094440183">ટૅબ અનગ્રૂપ કરો</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ટૅબ નાની કરો.}one{<ph name="TABS_COUNT_MANY" /> ટૅબ ધરાવતા <ph name="TITLE_OF_GROUP" /> ટૅબ ગ્રૂપને નાનું કરો.}other{<ph name="TABS_COUNT_MANY" /> ટૅબ ધરાવતા <ph name="TITLE_OF_GROUP" /> ટૅબ ગ્રૂપને નાનું કરો.}}</translation> <translation id="3882834874697329510">ખોલવામાં આવેલી ટૅબમાં જ્યારે કોઈ આઇટમની કિંમત ઓછી થાય ત્યારે અલર્ટ મેળવવા માટે, સેટિંગમાં જઈને નોટિફિકેશન ચાલુ કરો.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">ટૅબ પસંદ કરો</translation> <translation id="6228793724645064692">(સ્ટોરનું રેટિંગ)</translation> <translation id="6333260925957816943">આ સ્ટોર વિશેની માહિતી</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{પસંદ કરેલું <ph name="TABS_COUNT_ONE" /> ટૅબ અનગ્રૂપ કરો}one{પસંદ કરેલું <ph name="TABS_COUNT_MANY" /> ટૅબ અનગ્રૂપ કરો}other{પસંદ કરેલા <ph name="TABS_COUNT_MANY" /> ટૅબ અનગ્રૂપ કરો}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ટૅબ}one{<ph name="TABS_COUNT_MANY" /> ટૅબ}other{<ph name="TABS_COUNT_MANY" /> ટૅબ}}</translation> <translation id="6510648526783655549">ટૅબ સ્ટ્રિપ બંધ કરો</translation> <translation id="6549021453810473782">સ્ટોરની માહિતી જુઓ</translation> <translation id="6562820390860419811">ટૅબને ડાબે ખસેડો</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb index b0d126b..ae42eb6 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">rating</translation> <translation id="3291470810748040983">Anda akan mendapatkan notifikasi saat terdapat harga lebih rendah di tab yang terbuka</translation> <translation id="3328308545011660196">Saran: <ph name="NUMBER_OF_TABS" /> tab sepertinya berkaitan. Masukkan ke grup?</translation> +<translation id="3499853001094440183">Pisahkan tab</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Ciutkan <ph name="TABS_COUNT_ONE" /> tab.}other{Ciutkan grup tab <ph name="TITLE_OF_GROUP" /> yang berisi <ph name="TABS_COUNT_MANY" /> tab.}}</translation> <translation id="3882834874697329510">Untuk mendapatkan notifikasi saat terdapat harga lebih rendah di tab yang terbuka, aktifkan notifikasi di Setelan.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Pilih tab</translation> <translation id="6228793724645064692">(rating toko)</translation> <translation id="6333260925957816943">Informasi tentang toko ini</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Pisahkan <ph name="TABS_COUNT_ONE" /> tab yang dipilih}other{Pisahkan <ph name="TABS_COUNT_MANY" /> tab yang dipilih}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> tab}other{<ph name="TABS_COUNT_MANY" /> tab}}</translation> <translation id="6510648526783655549">Tutup tab setrip</translation> <translation id="6549021453810473782">Lihat info toko</translation> <translation id="6562820390860419811">Pindahkan tab ke kiri</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb index d02f850c..3ff014b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
@@ -83,11 +83,13 @@ <translation id="753732157349120914">ჩანართების გადამრთველი</translation> <translation id="7545727119051420814">{REVIEWS,plural, =1{<ph name="REVIEWS_COUNT_ONE" /> მიმოხილვა Google-იდან}other{<ph name="REVIEWS_COUNT_MANY" /> მიმოხილვა Google-იდან}}</translation> <translation id="7559245342362162951">ჯგუფის ჩანართების სრულეკრანიან ბადეში ჩვენება</translation> +<translation id="7699041944097291312">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> არჩეული ჩანართის გაზიარება}other{<ph name="TABS_COUNT_MANY" /> არჩეული ჩანართის გაზიარება}}</translation> <translation id="7792771145871471484">შემოთავაზებების გადახედვა.</translation> <translation id="7838146321400849846">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> არჩეული ჩანართის დაჯგუფება}other{<ph name="TABS_COUNT_MANY" /> არჩეული ჩანართის დაჯგუფება}}</translation> <translation id="7854360405711302755">{REVIEWS,plural, =1{ შეფასება: <ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" />, <ph name="REVIEWS_COUNT_ONE" /> მიმოხილვა}other{შეფასება: <ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" />, <ph name="REVIEWS_COUNT_MANY" /> მიმოხილვა}}</translation> <translation id="7885132941432959125">ჩანართის მარჯვნივ გადატანა</translation> <translation id="7966321538264951561">შემოთავაზებების დახურვა.</translation> +<translation id="8018192911041116887">ჩანართების გაზიარება</translation> <translation id="8029301326595421733">ამ მაღაზიის შესახებ ინფორმაცია გახსნილია სრულ სიმაღლეზე</translation> <translation id="814503310257431685">ყველას ნახვა</translation> <translation id="8205266828577616993">ჩანართის ზემოთ გადატანა</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb index ad54891b..f4a27a0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">ರೇಟಿಂಗ್</translation> <translation id="3291470810748040983">ತೆರೆದ ಟ್ಯಾಬ್ನಲ್ಲಿ ಬೆಲೆ ಕಡಿಮೆಯಿದ್ದಾಗ ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಪಡೆಯುತ್ತೀರಿ</translation> <translation id="3328308545011660196">ಸಲಹೆ: <ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳು ಸಂಬಂಧಿಸಿರುವ ಹಾಗೆ ಕಾಣುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಗುಂಪು ಮಾಡುವುದೇ?</translation> +<translation id="3499853001094440183">ಟ್ಯಾಬ್ಗಳ ಗುಂಪನ್ನು ರದ್ದುಮಾಡಿ</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ಟ್ಯಾಬ್ ಅನ್ನು ಕುಗ್ಗಿಸಿ.}one{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಕುಗ್ಗಿಸಿ.}other{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಕುಗ್ಗಿಸಿ.}}</translation> <translation id="3882834874697329510">ತೆರೆದ ಟ್ಯಾಬ್ನಲ್ಲಿ ಬೆಲೆ ಕಡಿಮೆಯಿದ್ದಾಗ ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಪಡೆಯಲು, ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೆರೆಯಿರಿ.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">ಟ್ಯಾಬ್ ಆಯ್ಕೆ</translation> <translation id="6228793724645064692">(ಸ್ಟೋರ್ ರೇಟಿಂಗ್)</translation> <translation id="6333260925957816943">ಈ ಸ್ಟೋರ್ನ ಕುರಿತಾದ ಮಾಹಿತಿ</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ಆಯ್ಕೆಮಾಡಿದ ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ರದ್ದುಮಾಡಿ}one{<ph name="TABS_COUNT_MANY" /> ಆಯ್ಕೆಮಾಡಿದ ಟ್ಯಾಬ್ಗಳ ಗುಂಪನ್ನು ರದ್ದುಮಾಡಿ}other{<ph name="TABS_COUNT_MANY" /> ಆಯ್ಕೆಮಾಡಿದ ಟ್ಯಾಬ್ಗಳ ಗುಂಪನ್ನು ರದ್ದುಮಾಡಿ}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ಟ್ಯಾಬ್}one{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳು}other{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳು}}</translation> <translation id="6510648526783655549">ಟ್ಯಾಬ್ ಸ್ಟ್ರೈಪ್ ಮುಚ್ಚಿ</translation> <translation id="6549021453810473782">ಸ್ಟೋರ್ ಮಾಹಿತಿಯನ್ನು ನೋಡಿ</translation> <translation id="6562820390860419811">ಟ್ಯಾಬ್ ಅನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb index 9297cceb..ae8dccd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">റേറ്റിംഗ്</translation> <translation id="3291470810748040983">തുറന്നിരിക്കുന്ന ടാബിൽ, വിലക്കുറവുള്ളപ്പോൾ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് ലഭിക്കും</translation> <translation id="3328308545011660196">നിർദ്ദേശം: <ph name="NUMBER_OF_TABS" /> ടാബുകൾ സമാനമാണെന്ന് തോന്നുന്നു. അവ ഗ്രൂപ്പ് ചെയ്യണോ?</translation> +<translation id="3499853001094440183">ടാബുകൾ അൺഗ്രൂപ്പ് ചെയ്യുക</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ടാബ് ചുരുക്കുക.}other{<ph name="TABS_COUNT_MANY" /> ടാബുകളുള്ള <ph name="TITLE_OF_GROUP" /> ടാബ് ഗ്രൂപ്പ് ചുരുക്കുക.}}</translation> <translation id="3882834874697329510">തുറന്നിരിക്കുന്ന ടാബിൽ വിലക്കുറവുള്ളപ്പോൾ അറിയിപ്പ് ലഭിക്കാൻ ക്രമീകരണത്തിൽ അറിയിപ്പുകൾ ഓണാക്കുക.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">തിരഞ്ഞെടുക്കൂ</translation> <translation id="6228793724645064692">(സ്റ്റോർ റേറ്റിംഗ്)</translation> <translation id="6333260925957816943">ഈ സ്റ്റോറിനെ കുറിച്ചുള്ള വിവരങ്ങൾ</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{തിരഞ്ഞെടുത്ത <ph name="TABS_COUNT_ONE" /> ടാബ് അൺഗ്രൂപ്പ് ചെയ്യുക}other{തിരഞ്ഞെടുത്ത <ph name="TABS_COUNT_MANY" /> ടാബുകൾ അൺഗ്രൂപ്പ് ചെയ്യുക}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ടാബ്}other{<ph name="TABS_COUNT_MANY" /> ടാബുകൾ}}</translation> <translation id="6510648526783655549">തുറന്ന് വച്ചിട്ടുള്ള ടാബുകൾ അടയ്ക്കുക</translation> <translation id="6549021453810473782">സ്റ്റോർ വിവരങ്ങൾ കാണുക</translation> <translation id="6562820390860419811">ടാബ് ഇടത്തേക്ക് നീക്കുക</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb index 48e0e6c61..df3b177e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb
@@ -83,11 +83,13 @@ <translation id="753732157349120914">Таб хооронд шилжүүлэгч</translation> <translation id="7545727119051420814">{REVIEWS,plural, =1{Google-н <ph name="REVIEWS_COUNT_ONE" /> шүүмж}other{Google-н <ph name="REVIEWS_COUNT_MANY" /> шүүмж}}</translation> <translation id="7559245342362162951">Бүлгийн табуудыг бүтэн дэлгэцийн торонд харуулах</translation> +<translation id="7699041944097291312">{TABS_COUNT,plural, =1{Сонгосон <ph name="TABS_COUNT_ONE" /> табыг хуваалцах}other{Сонгосон <ph name="TABS_COUNT_MANY" /> табыг хуваалцах}}</translation> <translation id="7792771145871471484">Зөвлөмжийг шалгах.</translation> <translation id="7838146321400849846">{TABS_COUNT,plural, =1{Сонгосон <ph name="TABS_COUNT_ONE" /> табыг бүлэглэх}other{Сонгосон <ph name="TABS_COUNT_MANY" /> табыг бүлэглэх}}</translation> <translation id="7854360405711302755">{REVIEWS,plural, =1{ <ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> үнэлгээ, <ph name="REVIEWS_COUNT_ONE" /> шүүмж}other{<ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> үнэлгээ, <ph name="REVIEWS_COUNT_MANY" /> шүүмж}}</translation> <translation id="7885132941432959125">Табыг баруун тийш зөөх</translation> <translation id="7966321538264951561">Зөвлөмжийг үл хэрэгсэх.</translation> +<translation id="8018192911041116887">Табуудыг хуваалцах</translation> <translation id="8029301326595421733">Энэ дэлгүүрийн талаарх мэдээллийг бүтэн өндөртэйгээр нээсэн</translation> <translation id="814503310257431685">Бүгдийг харах</translation> <translation id="8205266828577616993">Табыг дээш зөөх</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb index bff272b..bf827fe 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">रेटिंग</translation> <translation id="3291470810748040983">उघड्या टॅबमध्ये किंमत कमी असताना तुम्हाला सूचना मिळेल</translation> <translation id="3328308545011660196">सूचना: <ph name="NUMBER_OF_TABS" /> टॅब संबंधित वाटतात. त्यांचा गट बनवायचा का?</translation> +<translation id="3499853001094440183">टॅब गटामधून काढून टाका</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> टॅब कोलॅप्स करा.}other{<ph name="TABS_COUNT_MANY" /> टॅबचा गट असलेले <ph name="TITLE_OF_GROUP" /> टॅब कोलॅप्स करा.}}</translation> <translation id="3882834874697329510">कमी किंमत उपलब्ध असताना उघड्या टॅबमध्ये सूचना मिळवण्यासाठी, सेंटिंग्ज मध्ये सूचना सुरू करा.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">टॅब निवडा</translation> <translation id="6228793724645064692">(स्टोअरचे रेटिंग)</translation> <translation id="6333260925957816943">या स्टोअरविषयी माहिती</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{निवडलेला <ph name="TABS_COUNT_ONE" /> टॅब गटामधून काढून टाका}other{निवडलेले <ph name="TABS_COUNT_MANY" /> टॅब गटामधून काढून टाका}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> टॅब}other{<ph name="TABS_COUNT_MANY" /> टॅब}}</translation> <translation id="6510648526783655549">टॅब स्ट्रिप बंद करा</translation> <translation id="6549021453810473782">स्टोअरची माहिती पहा</translation> <translation id="6562820390860419811">टॅब डावीकडे हलवा</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb index 7fd2b712..9f66f9fd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">मूल्याङ्कन</translation> <translation id="3291470810748040983">तपाईंले खोल्नुभएको ट्याबमा कुनै वस्तुको मूल्य कम हुँदा तपाईंलाई अलर्ट पठाइने छ</translation> <translation id="3328308545011660196">सुझाव: <ph name="NUMBER_OF_TABS" /> ट्याबहरू एकअर्कासँग सम्बन्धित देखिन्छन्। यिनलाई एउटै समूहमा राख्ने हो?</translation> +<translation id="3499853001094440183">ट्याबहरू समूहबाट हटाउनुहोस्</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ट्याब संक्षिप्त गर्नुहोस्।}other{<ph name="TABS_COUNT_MANY" /> वटा ट्याब भएको <ph name="TITLE_OF_GROUP" /> ट्याब समूह संक्षिप्त गर्नुहोस्।}}</translation> <translation id="3882834874697329510">तपाईंले खोल्नुभएको ट्याबमा कुनै वस्तुको मूल्य घट्दा अलर्ट प्राप्त गर्न सेटिङमा गई सूचना प्राप्त गर्ने सुविधा अन गर्नुहोस्।</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">ट्याबहरू चयन गर्नुहोस्</translation> <translation id="6228793724645064692">(स्टोरको रेटिङ)</translation> <translation id="6333260925957816943">यो स्टोरसम्बन्धी जानकारी</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{चयन गरिएको <ph name="TABS_COUNT_ONE" /> वटा ट्याब समूहबाट हटाउनुहोस्}other{चयन गरिएका <ph name="TABS_COUNT_MANY" /> वटा ट्याब समूहबाट हटाउनुहोस्}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> वटा ट्याब}other{<ph name="TABS_COUNT_MANY" /> वटा ट्याब}}</translation> <translation id="6510648526783655549">ट्याब स्ट्रिप बन्द गर्नुहोस्</translation> <translation id="6549021453810473782">स्टोरसम्बन्धी जानकारी हेर्नुहोस्</translation> <translation id="6562820390860419811">ट्याब सारेर बायाँतिर लैजानुहोस्</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb index b3ba5be..29b04c7 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">vlerësimi</translation> <translation id="3291470810748040983">Do të marrësh një alarm sinjalizues kur ka një çmim më të ulët në një skedë të hapur</translation> <translation id="3328308545011660196">Sugjerim: <ph name="NUMBER_OF_TABS" /> skeda duken të lidhura. Dëshiron t'i gruposh?</translation> +<translation id="3499853001094440183">Anulo grupimin e skedave</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Palos <ph name="TABS_COUNT_ONE" /> skedë.}other{Palos grupin e skedave "<ph name="TITLE_OF_GROUP" />" me <ph name="TABS_COUNT_MANY" /> skeda.}}</translation> <translation id="3882834874697329510">Për të marrë një alarm sinjalizues kur ka një çmim më të ulët në një skedë të hapur, aktivizo njoftimet te "Cilësimet".</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Zgjidh skedat</translation> <translation id="6228793724645064692">(vlerësimi i dyqanit)</translation> <translation id="6333260925957816943">Informacioni për këtë dyqan</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Anulo grupimin për <ph name="TABS_COUNT_ONE" /> skedë të zgjedhur}other{Anulo grupimin për <ph name="TABS_COUNT_MANY" /> skeda të zgjedhura}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> skedë}other{<ph name="TABS_COUNT_MANY" /> skeda}}</translation> <translation id="6510648526783655549">Mbyll shiritin e skedave</translation> <translation id="6549021453810473782">Shiko informacionet për dyqanin</translation> <translation id="6562820390860419811">Lëviz skedën majtas</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb index 4c8ed43..9dc54fa 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">ரேட்டிங்</translation> <translation id="3291470810748040983">திறந்திருக்கும் தாவலில் குறைவான விலை இருக்கும்போது விழிப்பூட்டலைப் பெறுவீர்கள்</translation> <translation id="3328308545011660196">பரிந்துரை: <ph name="NUMBER_OF_TABS" /> தாவல்கள் தொடர்புடையவையாகத் தெரிகின்றன. அவற்றைக் குழுவாக்கவா?</translation> +<translation id="3499853001094440183">பக்கங்களைப் பிரி</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> தாவலைச் சுருக்கும்.}other{<ph name="TABS_COUNT_MANY" /> தாவல்கள் உள்ள <ph name="TITLE_OF_GROUP" /> பக்கக் குழுவைச் சுருக்கும்.}}</translation> <translation id="3882834874697329510">திறந்திருக்கும் தாவலில் குறைவான விலை இருக்கும்போது விழிப்பூட்டலைப் பெற, அமைப்புகளில் அறிவிப்புகளை இயக்குங்கள்.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">தாவல்களைத் தேர்ந்தெடுக்கவும்</translation> <translation id="6228793724645064692">(ஸ்டோர் ரேட்டிங்)</translation> <translation id="6333260925957816943">இந்த ஸ்டோர் குறித்த தகவல்கள்</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{தேர்ந்தெடுத்த <ph name="TABS_COUNT_ONE" /> பக்கத்தைப் பிரிக்கும்}other{தேர்ந்தெடுத்த <ph name="TABS_COUNT_MANY" /> பக்கங்களைப் பிரிக்கும்}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> பக்கம்}other{<ph name="TABS_COUNT_MANY" /> பக்கங்கள்}}</translation> <translation id="6510648526783655549">தாவல் பட்டையை மூடும்</translation> <translation id="6549021453810473782">ஸ்டோர் தகவலைக் காட்டும்</translation> <translation id="6562820390860419811">தாவலை இடப்புறம் நகர்த்து</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb index 91646cf..c4ba7c5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">puan</translation> <translation id="3291470810748040983">Açık bir sekmede daha düşük fiyat varsa uyarı alırsınız</translation> <translation id="3328308545011660196">Öneri: <ph name="NUMBER_OF_TABS" /> sekme birbiriyle ilgili görünüyor. Bunlar gruplandırılsın mı?</translation> +<translation id="3499853001094440183">Sekme grubunu iptal edin</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> sekmeyi daralt.}other{<ph name="TABS_COUNT_MANY" /> sekmeli <ph name="TITLE_OF_GROUP" /> sekme grubunu daralt.}}</translation> <translation id="3882834874697329510">Açık bir sekmede daha düşük fiyat olduğunda uyarı almak için Ayarlar'da bildirimleri açın.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Sekmeleri seçin</translation> <translation id="6228793724645064692">(mağaza puanı)</translation> <translation id="6333260925957816943">Bu mağazayla ilgili bilgiler</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Seçilen <ph name="TABS_COUNT_ONE" /> sekme grubunu iptal et}other{Seçilen <ph name="TABS_COUNT_MANY" /> sekme grubunu iptal et}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> sekme}other{<ph name="TABS_COUNT_MANY" /> sekme}}</translation> <translation id="6510648526783655549">Sekme şeridini kapat</translation> <translation id="6549021453810473782">Mağaza bilgilerini görün</translation> <translation id="6562820390860419811">Sekmeyi sola taşı</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb index f770e06..3d39f94 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">điểm xếp hạng</translation> <translation id="3291470810748040983">Bạn sẽ nhận được thông báo khi có ưu đãi giảm giá trong một thẻ đang mở</translation> <translation id="3328308545011660196">Đề xuất: <ph name="NUMBER_OF_TABS" /> thẻ có vẻ liên quan đến nhau. Bạn có muốn nhóm các thẻ đó lại không?</translation> +<translation id="3499853001094440183">Huỷ nhóm các thẻ</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Thu gọn <ph name="TABS_COUNT_ONE" /> thẻ.}other{Thu gọn nhóm thẻ <ph name="TITLE_OF_GROUP" /> có <ph name="TABS_COUNT_MANY" /> thẻ.}}</translation> <translation id="3882834874697329510">Để nhận thông báo khi có ưu đãi giảm giá trong một thẻ đang mở, hãy bật thông báo trong phần Cài đặt.</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">Chọn các thẻ</translation> <translation id="6228793724645064692">(điểm xếp hạng cửa hàng)</translation> <translation id="6333260925957816943">Thông tin về cửa hàng này</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{Huỷ nhóm <ph name="TABS_COUNT_ONE" /> thẻ đã chọn}other{Huỷ nhóm <ph name="TABS_COUNT_MANY" /> thẻ đã chọn}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> thẻ}other{<ph name="TABS_COUNT_MANY" /> thẻ}}</translation> <translation id="6510648526783655549">Đóng dải thẻ</translation> <translation id="6549021453810473782">Xem thông tin cửa hàng</translation> <translation id="6562820390860419811">Chuyển thẻ sang trái</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb index f4f6911..65c8dc00 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">評分</translation> <translation id="3291470810748040983">當開啟的分頁中有產品降價,您就會收到通知</translation> <translation id="3328308545011660196">建議:似乎有 <ph name="NUMBER_OF_TABS" /> 個相關嘅分頁。要唔要將佢哋分組?</translation> +<translation id="3499853001094440183">將分頁移出群組</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{收合 <ph name="TABS_COUNT_ONE" /> 個分頁。}other{收合有 <ph name="TABS_COUNT_MANY" /> 個分頁嘅「<ph name="TITLE_OF_GROUP" />」分頁群組。}}</translation> <translation id="3882834874697329510">如要在開啟的分頁有降價產品時收到通知,請在「設定」中啟用通知功能。</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">選取分頁</translation> <translation id="6228793724645064692">(商店評分)</translation> <translation id="6333260925957816943">此商店的資料</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{將 <ph name="TABS_COUNT_ONE" /> 個所選分頁移出群組}other{將 <ph name="TABS_COUNT_MANY" /> 個所選分頁移出群組}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> 個分頁}other{<ph name="TABS_COUNT_MANY" /> 個分頁}}</translation> <translation id="6510648526783655549">關閉分頁列</translation> <translation id="6549021453810473782">查看商店資料</translation> <translation id="6562820390860419811">將分頁左移</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb index 8e774a6..d0d167f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
@@ -33,6 +33,7 @@ <translation id="3194464645767632461">評分</translation> <translation id="3291470810748040983">每當開啟的分頁中有降價商品,你就會收到通知</translation> <translation id="3328308545011660196">建議:似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要將這些分頁加入群組嗎?</translation> +<translation id="3499853001094440183">將分頁移出群組</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{收合 <ph name="TABS_COUNT_ONE" /> 個分頁。}other{收合包含 <ph name="TABS_COUNT_MANY" /> 個分頁的「<ph name="TITLE_OF_GROUP" />」分頁群組。}}</translation> <translation id="3882834874697329510">如要在開啟的分頁有降價商品時收到通知,請在設定中啟用通知功能。</translation> @@ -66,6 +67,8 @@ <translation id="6193448654517602979">選取分頁</translation> <translation id="6228793724645064692">(商店評分)</translation> <translation id="6333260925957816943">這間店的資訊</translation> +<translation id="639823877092900621">{TABS_COUNT,plural, =1{將 <ph name="TABS_COUNT_ONE" /> 個所選分頁移出群組}other{將 <ph name="TABS_COUNT_MANY" /> 個所選分頁移出群組}}</translation> +<translation id="6422650314852876533">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> 個分頁}other{<ph name="TABS_COUNT_MANY" /> 個分頁}}</translation> <translation id="6510648526783655549">關閉分頁列</translation> <translation id="6549021453810473782">查看商店資訊</translation> <translation id="6562820390860419811">將分頁向左移</translation>
diff --git a/chrome/android/java/res/drawable/ic_select_tabs.xml b/chrome/android/java/res/drawable/ic_select_tabs.xml index 451baca..2dd25f9fa 100644 --- a/chrome/android/java/res/drawable/ic_select_tabs.xml +++ b/chrome/android/java/res/drawable/ic_select_tabs.xml
@@ -9,8 +9,12 @@ android:viewportWidth="24" android:viewportHeight="24" android:tint="@macro/default_icon_color"> - <path - android:pathData="M17.71,3.63C18.1,4.02 18.1,4.65 17.71,5.04L15.88,6.87L12.13,3.12L13.96,1.29C14.35,0.9 14.98,0.9 15.37,1.29L17.71,3.63ZM0,19V15.25L11.06,4.19L14.81,7.94L3.75,19H0Z" - android:fillColor="@android:color/white" - android:fillType="evenOdd"/> + <group + android:translateX="3" + android:translateY="2"> + <path + android:pathData="M17.71,3.63C18.1,4.02 18.1,4.65 17.71,5.04L15.88,6.87L12.13,3.12L13.96,1.29C14.35,0.9 14.98,0.9 15.37,1.29L17.71,3.63ZM0,19V15.25L11.06,4.19L14.81,7.94L3.75,19H0Z" + android:fillColor="@android:color/white" + android:fillType="evenOdd"/> + </group> </vector>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java index e802803..52173bd4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -584,7 +584,7 @@ && mTabModelSelector.getTabModelFilterProvider() .getCurrentTabModelFilter() .getCount() - > 1; + != 0; } else { isMenuGroupTabsVisible = isTabSelectionEditorContext; isMenuGroupTabsEnabled = !isIncognitoReauthShowing && isMenuGroupTabsVisible
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 dd2297c..aaf9a4dc 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
@@ -558,6 +558,9 @@ mSignInState = null; notifyCallbacksWaitingForOperation(); + RecordHistogram.recordEnumeratedHistogram("Signin.SigninAbortedAccessPoint", + signInState.getAccessPoint(), SigninAccessPoint.MAX); + if (signInState.mCallback != null) { signInState.mCallback.onSignInAborted(); }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java index 5dc7691..c1a2b52 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java
@@ -1047,6 +1047,27 @@ @Test @SmallTest + public void testSelectTabsOption_IsEnabledOneTab_InRegularMode_IndependentOfIncognitoReauth() { + setTabSelectionEditorV2Enabled(true); + setUpMocksForOverviewMenu(); + when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); + when(mTabModelFilter.getTabModel()).thenReturn(mTabModel); + when(mTabModelFilter.getCount()).thenReturn(1); + when(mTabModel.getCount()).thenReturn(1); + Tab mockTab1 = mock(Tab.class); + when(mTabModel.getTabAt(0)).thenReturn(mockTab1); + + Menu menu = createTestMenu(); + mAppMenuPropertiesDelegate.prepareMenu(menu, null); + // Check group tabs enabled decision in regular mode doesn't depend on re-auth. + verify(mIncognitoReauthControllerMock, times(0)).isReauthPageShowing(); + + MenuItem item = menu.findItem(R.id.menu_select_tabs); + assertTrue(item.isEnabled()); + } + + @Test + @SmallTest public void testSelectTabsOption_IsDisabled_InRegularMode_IndependentOfIncognitoReauth() { setTabSelectionEditorV2Enabled(true); setUpMocksForOverviewMenu();
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 059fe0a0..a4677dc1 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -13823,6 +13823,9 @@ <!-- Automated Password Change on Desktop strings --> <if expr="not is_android"> + <message name="IDS_ACCESSIBLE_AUTOFILL_ASSISTANT_PASSWORD_CHANGE" desc="The text announced by screenreaders once focus in brought to automatic password change side panel UI."> + Automatic password change + </message> <message name="IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_TITLE" desc="The title for the Automated Password Change on Desktop onboarding dialog. The onboarding dialog is a modal dialog that is shown if a user has not previously consented to using Assistant features."> Let Google Assistant help you change your password </message> @@ -13835,6 +13838,9 @@ <message name="IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE" desc="The text displayed on a link on the onboarding dialog that a user can click to navigate to a Google website with detailed information on how Automated Password Change on Desktop/ Assistant works and what data is collected."> Learn more </message> + <message name="IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE_ABOUT_AUTOMATIC_PASSWORD_CHANGE" desc="The text displayed on a link on the onboarding dialog that a user can click to navigate to a Google website with detailed information on how Automated Password Change on Desktop/ Assistant works and what data is collected."> + Learn more about automatic password change + </message> <message name="IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_BUTTON_CANCEL_TEXT" desc="The text on the button that declines the onboarding for Automated Password Change on Desktop."> Cancel </message>
diff --git a/chrome/app/generated_resources_grd/IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE_ABOUT_AUTOMATIC_PASSWORD_CHANGE.png.sha1 b/chrome/app/generated_resources_grd/IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE_ABOUT_AUTOMATIC_PASSWORD_CHANGE.png.sha1 new file mode 100644 index 0000000..94f8a63 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE_ABOUT_AUTOMATIC_PASSWORD_CHANGE.png.sha1
@@ -0,0 +1 @@ +8437e4c911ac0e8b53f1c89dc563bceecb364eaa \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_as.xtb b/chrome/app/resources/chromium_strings_as.xtb index 59c18e84..4d4c32e 100644 --- a/chrome/app/resources/chromium_strings_as.xtb +++ b/chrome/app/resources/chromium_strings_as.xtb
@@ -12,6 +12,7 @@ <translation id="1131805035311359397">আপোনাৰ পাছৱৰ্ডসমূহ ডেটা উলংঘন আৰু আন সুৰক্ষা সম্পৰ্কীয় সমস্যাৰ পৰা নিৰাপদে আছেনে নাই পৰীক্ষা কৰিবলৈ <ph name="BEGIN_LINK" />Chromiumত ছাইন ইন কৰক<ph name="END_LINK" />।</translation> <translation id="1185134272377778587">Chromiumৰ বিষয়ে</translation> <translation id="1203500561924088507">ইনষ্টল কৰাৰ বাবে ধন্যবাদ। আপুনি <ph name="BUNDLE_NAME" /> ব্যৱহাৰ কৰাৰ পূৰ্বে আপোনাৰ ব্ৰাউজাৰটো ৰিষ্টাৰ্ট কৰিবই লাগিব।</translation> +<translation id="1261119230216066228">মেম’ৰী সঞ্চয়কাৰীয়ে Chromiumক দ্ৰুত কৰি তুলিছে</translation> <translation id="1315551408014407711">আপোনাৰ নতুন Chromium প্ৰ'ফাইল ছেট আপ কৰক</translation> <translation id="1385859895174722837">Chromiumত Google Assistant</translation> <translation id="1396446129537741364">Chromiumএ পাছৱর্ডসমূহ দেখুৱাবলৈ চেষ্টা কৰি আছে।</translation> @@ -210,6 +211,7 @@ <translation id="6055895534982063517">Chromiumৰ এটা নতুন সংস্কৰণ উপলব্ধ যিটো সকলোতকৈ দ্ৰুত।</translation> <translation id="6063093106622310249">&Chromiumত খোলক</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromiumত যোগ কৰা হ’ল</translation> +<translation id="6072463441809498330">Chromiumক দ্ৰুত কৰি তোলক</translation> <translation id="608006075545470555">এই ব্ৰাউজাৰত কৰ্মস্থানৰ প্ৰ’ফাইল যোগ দিয়ক</translation> <translation id="6096348254544841612">Chromium কাষ্টমাইজ আৰু নিয়ন্ত্ৰণ কৰক। আপডে'ট আছে।</translation> <translation id="6119438414301547735">Chromium টুলবাৰত এক্সেছৰ অনুৰোধসমূহ দেখুৱাবলৈ এক্সটেনশ্বনক অনুমতি দিয়ক</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb index 6e4a1f2..ed67fd0 100644 --- a/chrome/app/resources/chromium_strings_bn.xtb +++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -10,6 +10,7 @@ <translation id="1131805035311359397">আপনার পাসওয়ার্ড ডেটার নিরাপত্তা লঙ্ঘন এবং অন্যান্য নিরাপত্তা সংক্রান্ত সমস্যা থেকে সুরক্ষিত কিনা তা চেক করতে <ph name="BEGIN_LINK" />Chromium-এ সাইন-ইন করুন<ph name="END_LINK" />।</translation> <translation id="1185134272377778587">Chromium সম্পর্কে</translation> <translation id="1203500561924088507">ইনস্টল করার জন্য ধন্যবাদ। <ph name="BUNDLE_NAME" /> ব্যবহার করার আগে আপনাকে অবশ্যই ব্রাউজার রিস্টার্ট করতে হবে।</translation> +<translation id="1231839967188101156">চালু থাকাকালীন, Chromium ইনঅ্যাক্টিভ ট্যাব থেকে মেমরি খালি করে। এটি অ্যাক্টিভ ট্যাব এবং অন্যান্য অ্যাপ্লিকেশনের জন্য আরও কম্পিউটার রিসোর্স প্রদান করে এবং Chromium-এর স্পিড বেশি রাখে। আপনার ইনঅ্যাক্টিভ ট্যাবগুলি আবার ব্যবহার করা শুরু করলে অটোমেটিক সেগুলি অ্যাক্টিভ হয়ে যাবে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> <translation id="1315551408014407711">আপনার নতুন Chromium প্রোফাইল সেট আপ করুন</translation> <translation id="1385859895174722837">Chromium-এ Google Assistant</translation> <translation id="1396446129537741364">Chromium পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে৷</translation> @@ -249,6 +250,7 @@ <translation id="668175097507315160">সাইন-ইনে সমস্যা থাকার জন্য ChromiumOS আপনার ডেটা সিঙ্ক করতে পারেনি।</translation> <translation id="6709350901466051922">এই সাইটের জন্য Chromium-এর মাইক্রোফোন অ্যাক্সেসের অনুমতি প্রয়োজন</translation> <translation id="6717134281241384636">আপনার প্রোফাইলটি ব্যবহার করা যাবে না কারণ এটি একটি Chromium-এর নতুন ভার্সন৷ কিছু বিষয় অনুপলব্ধ হতে পারে৷ একটি ভিন্ন প্রোফাইল ডিরেক্টরি উল্লেখ করুন অথবা Chromium-এর একটি নতুন ভার্সন ব্যবহার করুন৷</translation> +<translation id="6730677189742196061">মেমরি সেভার Chromium-এর স্পিড বাড়িয়ে দেয়</translation> <translation id="6734291798041940871">Chromium ইতোমধ্যে আপনার কম্পিউটারের সকল ব্যবহারকারীর জন্য ইনস্টল করা হয়েছে।</translation> <translation id="673636774878526923">সব ডিভাইস জুড়ে Chromium-এ থাকা ডেটা অ্যাক্সেস করতে, প্রথমে সাইন-ইন করে সিঙ্ক চালু করুন।</translation> <translation id="6774082503108938489">তোমার অভিভাবক Chromium-এ "সাইট, অ্যাপ ও এক্সটেনশনের অনুমতি" বন্ধ করে দিয়েছেন। এই <ph name="EXTENSION_TYPE_PARAMETER" /> চালু করার অনুমতি নেই।</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb index bed9e36..97c4186 100644 --- a/chrome/app/resources/chromium_strings_ca.xtb +++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Quant a Chromium</translation> <translation id="1203500561924088507">T'agraïm la instal·lació. Has de reiniciar el navegador abans d'utilitzar <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Quan aquesta opció està activada, Chromium allibera memòria de les pestanyes inactives. Així, les pestanyes actives i altres aplicacions disposen de més recursos de l'ordinador i es manté l'agilitat de Chromium. Les pestanyes inactives s'activen de nou automàticament quan hi tornes. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">L'Estalvi de memòria ha fet que Chromium sigui més ràpid</translation> <translation id="1315551408014407711">Configura el teu perfil de Chromium nou</translation> <translation id="1385859895174722837">L'Assistent de Google a Chromium</translation> <translation id="1396446129537741364">Chromium està provant de mostrar les contrasenyes.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Hi ha disponible una versió nova de Chromium, i és més ràpida que mai.</translation> <translation id="6063093106622310249">&Obre a Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> s'ha afegit a Chromium</translation> +<translation id="6072463441809498330">Fes que Chromium sigui més ràpid</translation> <translation id="608006075545470555">Afegeix un perfil de treball a aquest navegador</translation> <translation id="6096348254544841612">Personalitza i controla Chromium. Hi ha una actualització disponible.</translation> <translation id="6119438414301547735">Permet que l'extensió mostri sol·licituds d'accés a la barra d'eines de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb index c7f484e..0ab6295 100644 --- a/chrome/app/resources/chromium_strings_cs.xtb +++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">O prohlížeči Chromium</translation> <translation id="1203500561924088507">Děkujeme za instalaci aplikace <ph name="BUNDLE_NAME" />. Před jejím použitím je potřeba restartovat prohlížeč.</translation> <translation id="1231839967188101156">Když je tato funkce zapnutá, uvolňuje Chromium paměť obsazenou neaktivními kartami. Aktivní karty a jiné aplikace tak mají k dispozici více výpočetních zdrojů a prohlížeč Chromium zůstává rychlý. Když se k neaktivním kartám vrátíte, automaticky se aktivují. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Prohlížeč Chromium byl zrychlen pomocí Spořiče paměti</translation> <translation id="1315551408014407711">Nastavení nového profilu Chromium</translation> <translation id="1385859895174722837">Asistent Google v prohlížeči Chromium</translation> <translation id="1396446129537741364">Chromium se pokouší zobrazit hesla.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">K dispozici je nová verze prohlížeče Chromium, ještě rychlejší než ty předchozí.</translation> <translation id="6063093106622310249">&Otevřít v prohlížeči Chromium</translation> <translation id="6072279588547424923">Do prohlížeče Chromium bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation> +<translation id="6072463441809498330">Zrychlete si Chromium</translation> <translation id="608006075545470555">Přidat do tohoto prohlížeče pracovní profil</translation> <translation id="6096348254544841612">Přizpůsobte si prohlížeč Chromium a ovládejte jej. Je k dispozici aktualizace.</translation> <translation id="6119438414301547735">Povolit rozšíření zobrazovat na liště prohlížeče Chromium žádosti o přístup</translation>
diff --git a/chrome/app/resources/chromium_strings_cy.xtb b/chrome/app/resources/chromium_strings_cy.xtb index 983cd49..02900ea 100644 --- a/chrome/app/resources/chromium_strings_cy.xtb +++ b/chrome/app/resources/chromium_strings_cy.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Ynghylch Chromium</translation> <translation id="1203500561924088507">Diolch am osod. Rhaid i chi ailgychwyn eich porwr cyn defnyddio <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Pan fydd ymlaen, mae Chromium yn rhyddhau cof o dabiau anweithredol. Mae hyn yn rhoi mwy o adnoddau cyfrifiadurol i dabiau gweithredol ac apiau eraill ac yn cadw Chromium yn gyflym. Mae eich tabiau anweithredol yn dod yn weithredol eto yn awtomatig pan fyddwch yn dychwelyd atynt. <ph name="BEGIN_LINK" />Dysgu rhagor<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Mae Arbedwr Cof wedi gwneud Chromium yn Gyflymach</translation> <translation id="1315551408014407711">Gosod eich proffil Chromium newydd</translation> <translation id="1385859895174722837">Google Assistant yn Chromium</translation> <translation id="1396446129537741364">Mae Chromium yn ceisio dangos cyfrineiriau.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">Mae fersiwn newydd o Chromium ar gael, ac mae'n gyflymach nag erioed.</translation> <translation id="6063093106622310249">&Agor yn Chromium</translation> <translation id="6072279588547424923">Mae <ph name="EXTENSION_NAME" /> wedi'i ychwanegu at Chromium</translation> +<translation id="6072463441809498330">Gwneud Chromium yn Gyflymach</translation> <translation id="608006075545470555">Ychwanegu Proffil Gwaith i'r porwr hwn</translation> <translation id="6096348254544841612">Personoleiddio a rheoli Chromium. Mae diweddariad ar gael.</translation> <translation id="6119438414301547735">Caniatáu i estyniad ddangos ceisiadau am fynediad ym mar offer Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb index 7d836360..f4443e7 100644 --- a/chrome/app/resources/chromium_strings_da.xtb +++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Om Chromium</translation> <translation id="1203500561924088507">Tak for installationen. Du skal genstarte browseren, før du bruger <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Når indstillingen er aktiveret, frigør Chromium hukommelse fra inaktive faner. Dette tildeler aktive faner og andre apps flere computerressourcer og gør Chromium hurtig. Dine inaktive faner bliver automatisk aktive igen, når du vender tilbage til dem. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Hukommelsessparefunktion har gjort Chromium hurtigere</translation> <translation id="1315551408014407711">Konfigurer din nye Chromium-profil</translation> <translation id="1385859895174722837">Google Assistent i Chromium</translation> <translation id="1396446129537741364">Chromium forsøger at vise adgangskoder.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Der findes en ny version af Chromium, som er hurtigere end nogensinde før.</translation> <translation id="6063093106622310249">Åbn i Chr&omium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> er føjet til Chromium</translation> +<translation id="6072463441809498330">Gør Chromium hurtigere</translation> <translation id="608006075545470555">Føj arbejdsprofilen til denne browser</translation> <translation id="6096348254544841612">Tilpas og administrer Chromium. Der er en tilgængelig opdatering.</translation> <translation id="6119438414301547735">Tillad, at udvidelsen viser adgangsanmodninger på Chromium-værktøjslinjen</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb index 817db4a8..01f0bc9 100644 --- a/chrome/app/resources/chromium_strings_el.xtb +++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Σχετικά με το Chromium</translation> <translation id="1203500561924088507">Ευχαριστούμε για την εγκατάσταση. Πρέπει να επανεκκινήσετε το πρόγραμμα περιήγησής σας πριν από τη χρήση του <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Όταν η ρύθμιση είναι ενεργή, το Chromium αποδεσμεύει μνήμη από τις ανενεργές καρτέλες. Αυτό προσφέρει στις ενεργές καρτέλες και σε άλλες εφαρμογές περισσότερους πόρους υπολογιστή και διατηρεί το Chromium γρήγορο. Οι ανενεργές καρτέλες σας ενεργοποιούνται ξανά αυτόματα, όταν επιστρέψετε σε αυτές. <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Η Εξοικονόμηση μνήμης έκανε το Chromium πιο γρήγορο</translation> <translation id="1315551408014407711">Ρυθμίστε το νέο σας προφίλ στο Chromium</translation> <translation id="1385859895174722837">Βοηθός Google στο Chromium</translation> <translation id="1396446129537741364">Το Chromium επιχειρεί να εμφανίσει κωδικούς πρόσβασης.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Υπάρχει μια νέα έκδοση του Chromium και είναι ταχύτερη από ποτέ.</translation> <translation id="6063093106622310249">&Άνοιγμα στο Chromium</translation> <translation id="6072279588547424923">Η επέκταση <ph name="EXTENSION_NAME" /> έχει προστεθεί στο Chromium</translation> +<translation id="6072463441809498330">Κάντε το Chromium πιο γρήγορο</translation> <translation id="608006075545470555">Προσθήκη προφίλ εργασίας σε αυτό το πρόγραμμα περιήγησης</translation> <translation id="6096348254544841612">Προσαρμόστε και ελέγξτε το Chromium. Υπάρχει διαθέσιμη ενημέρωση.</translation> <translation id="6119438414301547735">Να επιτρέπεται στην επέκταση να εμφανίζει αιτήματα πρόσβασης στη γραμμή εργαλείων του Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb index 4fba8e01..7ddfa82c 100644 --- a/chrome/app/resources/chromium_strings_es-419.xtb +++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Acerca de Chromium</translation> <translation id="1203500561924088507">Gracias por instalar <ph name="BUNDLE_NAME" />. Debes reiniciar tu navegador antes de usarlo.</translation> <translation id="1231839967188101156">Cuando está activado, Chromium libera memoria de las pestañas inactivas. Esto brinda más recursos informáticos a las pestañas activas y a otras apps y permite que Chromium siga funcionando rápido. Las pestañas inactivas se vuelven a activar automáticamente cuando regresas a ellas. <ph name="BEGIN_LINK" />Obtén más información<ph name="END_LINK" />.</translation> +<translation id="1261119230216066228">El Ahorro de memoria hizo que Chromium sea más rápido</translation> <translation id="1315551408014407711">Configura tu nuevo perfil de Chromium</translation> <translation id="1385859895174722837">Asistente de Google en Chromium</translation> <translation id="1396446129537741364">Chromium está intentando mostrar contraseñas.</translation> @@ -207,6 +208,7 @@ <translation id="6055895534982063517">Hay una nueva versión de Chromium disponible, y es más rápida que nunca.</translation> <translation id="6063093106622310249">&Abrir en Chromium</translation> <translation id="6072279588547424923">Se agregó <ph name="EXTENSION_NAME" /> a Chromium</translation> +<translation id="6072463441809498330">Logra que Chromium sea más rápido</translation> <translation id="608006075545470555">Agrega un perfil de trabajo a este navegador</translation> <translation id="6096348254544841612">Personaliza y controla Chromium. Hay una actualización disponible.</translation> <translation id="6119438414301547735">Permitir que la extensión muestre solicitudes de acceso en la barra de herramientas de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb index e6b0363..c35896e48 100644 --- a/chrome/app/resources/chromium_strings_es.xtb +++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Información de Chromium</translation> <translation id="1203500561924088507">Gracias por realizar la instalación. Debes reiniciar tu navegador para poder usar <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Cuando esta opción está activada, Chromium libera memoria de las pestañas inactivas. Esto proporciona más recursos informáticos a las pestañas activas y a otras aplicaciones, y permite que Chromium siga funcionando con rapidez. Tus pestañas inactivas volverán a activarse automáticamente cuando vuelvas a ellas. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Ahorro de memoria ha hecho que Chromium sea más rápido</translation> <translation id="1315551408014407711">Configura tu nuevo perfil de Chromium</translation> <translation id="1385859895174722837">Asistente de Google en Chromium</translation> <translation id="1396446129537741364">Chromium está intentando mostrar contraseñas.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">Hay una nueva versión de Chromium disponible que funciona a una velocidad sin precedentes.</translation> <translation id="6063093106622310249">&Abrir en Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> se ha añadido a Chromium</translation> +<translation id="6072463441809498330">Haz que Chromium sea más rápido</translation> <translation id="608006075545470555">Añadir perfil de trabajo a este navegador</translation> <translation id="6096348254544841612">Personaliza y controla Chromium. Hay una actualización disponible.</translation> <translation id="6119438414301547735">Permitir que la extensión muestre solicitudes de acceso en la barra de herramientas de Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb index f2239a9..7305de9c 100644 --- a/chrome/app/resources/chromium_strings_fa.xtb +++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">درباره Chromium</translation> <translation id="1203500561924088507">بابت نصب از شما سپاسگزاریم. قبلاز استفاده از <ph name="BUNDLE_NAME" />، باید مرورگر را بازراهاندازی کنید.</translation> <translation id="1231839967188101156">وقتی روشن باشد، Chromium حافظه را از برگههای غیرفعال آزاد میکند. با این کار، منابع بیشتری در رایانه به برگهها و سایر برنامهها اختصاص داده میشود و سرعت Chromium حفظ میشود. هرزمان به برگههای غیرفعال برگردید، بهطور خودکار دوباره فعال میشوند. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">«بهینهسازی حافظه» سرعت Chromium را بیشتر کرده است</translation> <translation id="1315551408014407711">راهاندازی نمایه Chromium جدید</translation> <translation id="1385859895174722837">«دستیار Google» در Chromium</translation> <translation id="1396446129537741364">Chromium میخواهد گذرواژهها را نشان دهد.</translation> @@ -208,6 +209,7 @@ <translation id="6055895534982063517">نسخه جدیدی از Chromium وجود دارد که سریعتر از همیشه است.</translation> <translation id="6063093106622310249">&باز کردن در Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> به Chromium اضافه شد</translation> +<translation id="6072463441809498330">سرعت Chromium را افزایش دهید</translation> <translation id="608006075545470555">افزودن نمایه کاری به این مرورگر</translation> <translation id="6096348254544841612">سفارشی کردن و کنترل Chromium. بهروزرسانی در دسترس است.</translation> <translation id="6119438414301547735">مجاز کردن افزونه برای نمایش درخواستهای دسترسی در نوارابزار Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb index 4b1e69524..a420765 100644 --- a/chrome/app/resources/chromium_strings_fil.xtb +++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Tungkol sa Chromium</translation> <translation id="1203500561924088507">Salamat sa pag-install. Dapat mong i-restart ang iyong browser bago gamitin ang <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Kapag naka-on ito, nagbabakante ng memory ang Chromium mula sa mga hindi aktibong tab. Binibigyan nito ang mga aktibong tab at iba pang app ng higit pang resource ng computer at pinapanatili nitong mabilis ang Chromium. Awtomatikong nagiging aktibo ulit ang mga hindi aktibong tab kapag bumalik ka sa mga ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Pinabilis ng Memory Saver ang Chromium</translation> <translation id="1315551408014407711">I-set up ang iyong bagong profile sa Chromium</translation> <translation id="1385859895174722837">Google Assistant sa Chromium</translation> <translation id="1396446129537741364">Sinusubukan ng Chromium na magpakita ng mga password.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">May available na bagong bersyon ng Chromium, at mas mabilis ito kaysa sa dati.</translation> <translation id="6063093106622310249">&Buksan sa Chromium</translation> <translation id="6072279588547424923">Naidagdag na ang <ph name="EXTENSION_NAME" /> sa Chromium</translation> +<translation id="6072463441809498330">Pabilisin ang Chromium</translation> <translation id="608006075545470555">Magdagdag ng Profile sa Trabaho sa browser na ito</translation> <translation id="6096348254544841612">I-customize at kontrolin ang Chromium. May available na update.</translation> <translation id="6119438414301547735">Payagan ang extension na ipakita ang mga kahilingan sa access sa toolbar ng Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index 1e1d02a..73eb128b9 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Chromium વિશે</translation> <translation id="1203500561924088507">ઇન્સ્ટૉલ કરવા બદલ આભાર. <ph name="BUNDLE_NAME" />નો ઉપયોગ કરતા પહેલાં તમારે તમારું બ્રાઉઝર ફરી શરૂ કરવું આવશ્યક છે.</translation> <translation id="1231839967188101156">જ્યારે ચાલુ હોય, ત્યારે Chromium નિષ્ક્રિય ટૅબમાંથી મેમરી ખાલી કરે છે. આ સક્રિય ટૅબ અને અન્ય ઍપને વધુ કમ્પ્યુટર સંસાધનો આપે છે અને Chromiumને વધુ ઝડપી રાખે છે. તમે તમારા નિષ્ક્રિય ટૅબ પર પાછા જાઓ ત્યારે તે ઑટોમૅટિક રીતે ફરી સક્રિય થાય છે. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">મેમરી સેવર દ્વારા Chromiumને વધુ ઝડપી બનાવવામાં આવ્યું</translation> <translation id="1315551408014407711">તમારી નવી Chromium પ્રોફાઇલ સેટઅપ કરો</translation> <translation id="1385859895174722837">Chromiumમાં Google Assistant</translation> <translation id="1396446129537741364">Chromium પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">Chromiumનું એક નવું વર્ઝન ઉપલબ્ધ છે અને તે પહેલાં કરતાંય વધુ ઝડપી છે.</translation> <translation id="6063093106622310249">અને Chromiumમાં ખોલો</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" />ને Chromiumમાં ઉમેરવામાં આવ્યું છે</translation> +<translation id="6072463441809498330">Chromiumને વધુ ઝડપી બનાવો</translation> <translation id="608006075545470555">આ બ્રાઉઝરમાં ઑફિસની પ્રોફાઇલ ઉમેરો</translation> <translation id="6096348254544841612">Chromiumને કસ્ટમાઇઝ અને નિયંત્રિત કરો. અપડેટ ઉપલબ્ધ છે.</translation> <translation id="6119438414301547735">Chromiumના ટૂલબારમાં ઍક્સેસની વિનંતીઓ બતાવવા માટે એક્સ્ટેન્શનને મંજૂરી આપો</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb index d0fd0ca..2d31b51 100644 --- a/chrome/app/resources/chromium_strings_id.xtb +++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Tentang Chromium</translation> <translation id="1203500561924088507">Terima kasih telah menginstal. Anda harus memulai ulang browser sebelum menggunakan <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Jika diaktifkan, Chromium akan membebaskan memori dari tab yang tidak aktif. Tindakan ini akan memberikan lebih banyak resource komputer untuk tab aktif dan aplikasi lainnya, serta menjaga Chromium tetap cepat. Tab yang tidak aktif akan otomatis menjadi aktif lagi saat Anda kembali ke tab tersebut. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Penghemat Memori Membuat Chromium Lebih Cepat</translation> <translation id="1315551408014407711">Siapkan profil Chromium baru Anda</translation> <translation id="1385859895174722837">Asisten Google di Chromium</translation> <translation id="1396446129537741364">Chromium mencoba menampilkan sandi.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Tersedia Chromium versi baru, dan versi ini lebih cepat dari sebelumnya.</translation> <translation id="6063093106622310249">&Buka di Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> telah ditambahkan ke Chromium</translation> +<translation id="6072463441809498330">Buat Chromium Lebih Cepat</translation> <translation id="608006075545470555">Tambahkan Profil Kerja ke browser ini</translation> <translation id="6096348254544841612">Sesuaikan dan kontrol Chromium. Update tersedia.</translation> <translation id="6119438414301547735">Izinkan ekstensi menampilkan permintaan akses di toolbar Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb index 3a43960..6ffdd577 100644 --- a/chrome/app/resources/chromium_strings_kn.xtb +++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Chromium ಕುರಿತು</translation> <translation id="1203500561924088507">ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು. <ph name="BUNDLE_NAME" /> ಅನ್ನು ಬಳಸುವ ಮೊದಲು ನೀವು ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.</translation> <translation id="1231839967188101156">ಇದು ಆನ್ ಆಗಿದ್ದಾಗ, ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್ಗಳಿಂದ Chromium ಮೆಮೊರಿಯನ್ನು ಮುಕ್ತಗೊಳಿಸುತ್ತದೆ. ಸಕ್ರಿಯ ಟ್ಯಾಬ್ಗಳು ಹಾಗೂ ಇತರ ಆ್ಯಪ್ಗಳಿಗೆ ಇದು ಹೆಚ್ಚು ಕಂಪ್ಯೂಟರ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು Chromium ಅನ್ನು ವೇಗವಾಗಿಡುತ್ತದೆ. ನಿಮ್ಮ ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್ಗಳಿಗೆ ನೀವು ಮರಳಿದಾಗ, ಅವು ಮತ್ತೆ ಸಕ್ರಿಯವಾಗುತ್ತವೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">ಮೆಮೊರಿ ಸೇವರ್ನಿಂದಾಗಿ Chromium ನ ವೇಗ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿದೆ</translation> <translation id="1315551408014407711">ನಿಮ್ಮ ಹೊಸ Chromium ಪ್ರೊಫೈಲ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation> <translation id="1385859895174722837">Chromium ನಲ್ಲಿ Google Assistant</translation> <translation id="1396446129537741364">Chromium ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation> @@ -207,6 +208,7 @@ <translation id="6055895534982063517">Chromium ನ ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ, ಮತ್ತು ಇದು ಎಂದಿಗಿಂತಲೂ ವೇಗವಾಗಿದೆ.</translation> <translation id="6063093106622310249">&Chromium ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="6072279588547424923">Chromium ಗೆ <ph name="EXTENSION_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ</translation> +<translation id="6072463441809498330">Chromium ವೇಗ ಹೆಚ್ಚಿಸಿ</translation> <translation id="608006075545470555">ಈ ಬ್ರೌಸರ್ಗೆ ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಸೇರಿಸಿ</translation> <translation id="6096348254544841612">Chromium ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ.</translation> <translation id="6119438414301547735">Chromium ಪರಿಕರಪಟ್ಟಿಯಲ್ಲಿ ಆ್ಯಕ್ಸೆಸ್ ವಿನಂತಿಗಳನ್ನು ತೋರಿಸಲು ವಿಸ್ತರಣೆಯನ್ನು ಅನುಮತಿಸಿ</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb index 5c328b72..6a258e6e 100644 --- a/chrome/app/resources/chromium_strings_ml.xtb +++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Chromium-ത്തിനെക്കുറിച്ച്</translation> <translation id="1203500561924088507">ഇൻസ്റ്റാൾ ചെയ്തതിന് നന്ദി. <ph name="BUNDLE_NAME" /> ഉപയോഗിക്കും മുമ്പ് നിങ്ങളുടെ ബ്രൗസർ റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്.</translation> <translation id="1231839967188101156">ഓണായിരിക്കുമ്പോൾ, നിഷ്ക്രിയമായ ടാബുകളിൽ നിന്നുള്ള മെമ്മറി Chromium മറ്റ് ആവശ്യങ്ങൾക്ക് ലഭ്യമാക്കും. ഇത് സജീവമായ ടാബുകൾക്കും മറ്റ് ആപ്പുകൾക്കും കൂടുതൽ കമ്പ്യൂട്ടർ ഉറവിടങ്ങൾ നൽകുകയും Chromium-നെ വേഗതയുള്ളതായി നിലനിർത്തുകയും ചെയ്യുന്നു. നിഷ്ക്രിയമായ ടാബുകളിലേക്ക് നിങ്ങൾ മടങ്ങുമ്പോൾ അവ സ്വയമേവ വീണ്ടും സജീവമാകും. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">മെമ്മറി സേവർ Chromium-ന്റെ വേഗത വർദ്ധിപ്പിക്കുന്നു</translation> <translation id="1315551408014407711">നിങ്ങളുടെ പുതിയ Chromium പ്രൊഫൈൽ സജ്ജീകരിക്കുക</translation> <translation id="1385859895174722837">Chromium-ലെ Google Assistant</translation> <translation id="1396446129537741364">Chromium പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">Chromium-ത്തിന്റെ പുതിയ പതിപ്പ് ലഭ്യമാണ്, അത് എന്നത്തേതിലും വേഗതയേറിയതാണ്.</translation> <translation id="6063093106622310249">&Chromium-ത്തിൽ തുറക്കുക</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium-ത്തിലേക്ക് ചേർത്തു</translation> +<translation id="6072463441809498330">Chromium കൂടുതൽ വേഗതയുള്ളതാക്കുക</translation> <translation id="608006075545470555">ഈ ബ്രൗസറിലേക്ക് ഔദ്യോഗിക പ്രൊഫൈൽ ചേർക്കുക</translation> <translation id="6096348254544841612">Chromium ഇഷ്ടാനുസൃതമാക്കി നിയന്ത്രിക്കുക. അപ്ഡേറ്റ് ലഭ്യമാണ്.</translation> <translation id="6119438414301547735">Chromium ടൂൾബാറിൽ ആക്സസ് അഭ്യർത്ഥനകൾ കാണിക്കാൻ വിപുലീകരണം അനുവദിക്കുക</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb index fcd68d1..906b8ca9 100644 --- a/chrome/app/resources/chromium_strings_mr.xtb +++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -12,6 +12,7 @@ <translation id="1185134272377778587">Chromium बद्दल</translation> <translation id="1203500561924088507">इंस्टॉल केल्याबद्दल धन्यवाद. तुम्ही <ph name="BUNDLE_NAME" /> वापरण्यापूर्वी तुमचा ब्राउझर रीस्टार्ट करणे आवश्यक आहे.</translation> <translation id="1231839967188101156">सुरू असेल, तेव्हा Chromium हे निष्क्रिय टॅबमधील मेमरी मोकळी करते. हे अॅक्टिव्ह टॅब आणि इतर अॅप्सना आणखी कॉंप्युटर स्रोत देते व Chromium ला जलद ठेवते. तुम्ही तुमच्या निष्क्रिय टॅबवर परत गेल्यावर ते पुन्हा आपोआप अॅक्टिव्ह होतात. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">मेमरी सेव्हरने Chromium ला आणखी जलद केले आहे</translation> <translation id="1315551408014407711">तुमची नवीन Chromium प्रोफाइल सेट करा</translation> <translation id="1385859895174722837">Chromium मधील Google Assistant</translation> <translation id="1396446129537741364">Chromium पासवर्ड दर्शविण्याचा प्रयत्न करत आहे.</translation> @@ -210,6 +211,7 @@ <translation id="6055895534982063517">Chromium ची नवीन आवृत्ती उपलब्ध आहे आणि ही नेहमीपेक्षा जलद आहे.</translation> <translation id="6063093106622310249">आणि Chromium मध्ये उघडा</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium मध्ये जोडण्यात आले आहे</translation> +<translation id="6072463441809498330">Chromium ला आणखी जलद बनवा</translation> <translation id="608006075545470555">या ब्राउझरवर कार्य प्रोफाइल जोडा</translation> <translation id="6096348254544841612">Chromium कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation> <translation id="6119438414301547735">Chromium टूलबारमध्ये अॅक्सेसशी संबंधित विनंत्या दाखवण्यासाठी एक्स्टेंशनला अनुमती द्या</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb index ed94a11..cfef986 100644 --- a/chrome/app/resources/chromium_strings_ne.xtb +++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -12,6 +12,7 @@ <translation id="1131805035311359397">तपाईंका पासवर्डहरू कतै खुलासा भएका छन् कि छैनन् तथा सुरक्षासम्बन्धी अन्य समस्याबाट सुरक्षित छन् कि छैनन् भन्ने कुरा जाँच्न <ph name="BEGIN_LINK" />Chromium मा साइन इन गर्नुहोस्<ph name="END_LINK" />।</translation> <translation id="1185134272377778587">Chromium का बारेमा</translation> <translation id="1203500561924088507">इन्स्टल गर्नुभएकोमा धन्यवाद। <ph name="BUNDLE_NAME" /> प्रयोग गर्नुअघि तपाईंले अनिवार्य रूपमा आफ्नो ब्राउजर रिस्टार्ट गर्नु पर्छ।</translation> +<translation id="1261119230216066228">मेमोरी सेभरले Chromium लाई अझ छिटो काम गर्ने बनाएको छ</translation> <translation id="1315551408014407711">Chromium मा आफ्नो नयाँ प्रोफाइल सेटअप गर्नुहोस्</translation> <translation id="1385859895174722837">Chromium मा Google सहायक उपलब्ध छ</translation> <translation id="1396446129537741364">Chromium ले पासवर्डहरू देखाउने प्रयास गर्दैछ।</translation> @@ -208,6 +209,7 @@ <translation id="6055895534982063517">क्रोमियमको नयाँ संस्करण उपलब्ध छ, र यो अहिलेसम्मकै द्रुत छ।</translation> <translation id="6063093106622310249">Chromium मा खोल्नुहोस्</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> लाई Chromium मा थपिएको छ</translation> +<translation id="6072463441809498330">Chromium लाई अझ छिटो काम गर्ने बनाउनुहोस्</translation> <translation id="608006075545470555">यो ब्राउजरमा कार्य प्रोफाइल हाल्नुहोस्</translation> <translation id="6096348254544841612">Chromium लाई आफू अनुकूल बनाउने र नियन्त्रण गर्ने कार्य गर्नुहोस्। अद्यावधिक उपलब्ध छ।</translation> <translation id="6119438414301547735">एक्स्टेन्सनलाई Chromium टुलबारमा साइट प्रयोग गर्ने अनुमतिसम्बन्धी अनुरोध देखाउने अनुमति दिनुहोस्</translation>
diff --git a/chrome/app/resources/chromium_strings_sq.xtb b/chrome/app/resources/chromium_strings_sq.xtb index 162f38f8..cb02f803 100644 --- a/chrome/app/resources/chromium_strings_sq.xtb +++ b/chrome/app/resources/chromium_strings_sq.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Rreth Chromium</translation> <translation id="1203500561924088507">Faleminderit që e instalove. Duhet të rinisësh shfletuesin përpara se të përdorësh <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Kur është aktiv, Chromium liron memorien nga skedat joaktive. Kjo u jep më shumë burime kompjuterike skedave aktive dhe aplikacioneve të tjera dhe bën që Chromium të jetë i shpejtë. Skedat e tua joaktive bëhen përsëri aktive në mënyrë automatike kur kthehesh tek ato. <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">"Kursyesi i memories" e ka bërë Chromium më të shpejtë</translation> <translation id="1315551408014407711">Konfiguro profilin tënd të ri të Chromium</translation> <translation id="1385859895174722837">"Asistenti i Google" në Chromium</translation> <translation id="1396446129537741364">Chromium po përpiqet të shfaqë fjalëkalimet.</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">Ofrohet një version i ri i Chromium dhe është më i shpejtë se kurrë.</translation> <translation id="6063093106622310249">&Hape në Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> është shtuar te Chromium</translation> +<translation id="6072463441809498330">Bëje Chromium më të shpejtë</translation> <translation id="608006075545470555">Shto profilin e punës në këtë shfletues</translation> <translation id="6096348254544841612">Personalizo dhe kontrollo Chromium. Ofrohet përditësim.</translation> <translation id="6119438414301547735">Lejo që shtesat të shfaqin kërkesat për qasje në shiritin e veglave të Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb index a6b7c3c6..3d5f554 100644 --- a/chrome/app/resources/chromium_strings_ta.xtb +++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Chromium அறிமுகம்</translation> <translation id="1203500561924088507">நிறுவியதற்கு நன்றி. <ph name="BUNDLE_NAME" /> ஐப் பயன்படுத்துவதற்கு முன் உலாவியை மீண்டும் தொடங்க வேண்டும்.</translation> <translation id="1231839967188101156">இந்த அம்சம் செயலில் இருக்கும்போது செயலில் இல்லாத உலாவிப் பக்கங்களில் இருந்து நினைவகத்தை Chromium காலியாக்கும். இதன்மூலம் செயலில் உள்ள உலாவிப் பக்கங்களுக்கும் பிற ஆப்ஸுக்கும் கம்ப்யூட்டரின் வளங்கள் அதிகமாகக் கிடைப்பதுடன் Chromiumமும் வேகமாக இயங்கும். செயலில் இல்லாத உலாவிப் பக்கங்களுக்கு நீங்கள் செல்லும்போது அவை தானாக மீண்டும் செயல்படத் தொடங்கும். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Chromium வேகத்தை நினைவகச் சேமிப்பான் அதிகரிக்கிறது</translation> <translation id="1315551408014407711">உங்கள் புதிய Chromium சுயவிவரத்தை அமைத்திடுங்கள்</translation> <translation id="1385859895174722837">Chromiumமில் Google Assistant</translation> <translation id="1396446129537741364">Chromium ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Chromium இன் புதிய பதிப்பு கிடைக்கிறது, அது முன்பு இருந்ததை விடவும் வேகமானது.</translation> <translation id="6063093106622310249">Chromium இல் &திற</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> என்ற நீட்டிப்பு Chromium இல் சேர்க்கப்பட்டது</translation> +<translation id="6072463441809498330">Chromium வேகத்தை அதிகரியுங்கள்</translation> <translation id="608006075545470555">இந்த உலாவியில் பணிக் கணக்கைச் சேர்த்தல்</translation> <translation id="6096348254544841612">Chromiumஐத் தனிப்பயனாக்கி, கட்டுப்படுத்தலாம். புதுப்பிப்பு உள்ளது.</translation> <translation id="6119438414301547735">Chromium கருவிப்பட்டியில் அணுகல் கோரிக்கைகளைக் காட்ட நீட்டிப்புகளை அனுமதி</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb index 02b2a91..854d818d 100644 --- a/chrome/app/resources/chromium_strings_tr.xtb +++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Chromium hakkında</translation> <translation id="1203500561924088507">Yüklediğiniz için teşekkürler. <ph name="BUNDLE_NAME" /> uygulamasını kullanmadan önce tarayıcınızı yeniden başlatmanız gerekir.</translation> <translation id="1231839967188101156">Bu ayar açık olduğunda Chromium, etkin olmayan sekmelerdeki belleği boşaltır. Böylece, etkin sekmeler ile diğer uygulamalar daha fazla bilgisayar kaynağına sahip olur ve Chromium hızlı çalışmaya devam eder. Geri döndüğünüz etkin olmayan sekmeler otomatik olarak tekrar etkin hale gelir. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Bellek Tasarrufu Sayesinde Chromium Artık Daha Hızlı</translation> <translation id="1315551408014407711">Yeni Chromium profilinizi oluşturun</translation> <translation id="1385859895174722837">Chromium'da Google Asistan</translation> <translation id="1396446129537741364">Chromium, şifreleri göstermeye çalışıyor.</translation> @@ -207,6 +208,7 @@ <translation id="6055895534982063517">Kullanabileceğiniz yeni bir Chromium sürümü var ve bu sürüm her zamankinden daha hızlı.</translation> <translation id="6063093106622310249">&Chromium'da aç</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium'a eklendi</translation> +<translation id="6072463441809498330">Chromium'u Daha Hızlı Hale Getirin</translation> <translation id="608006075545470555">Bu tarayıcıya İş Profili ekle</translation> <translation id="6096348254544841612">Chromium'u özelleştirin ve kontrol edin. Güncelleme mevcut.</translation> <translation id="6119438414301547735">Uzantının, Chromium araç çubuğunda erişim isteklerini göstermesine izin ver</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb index afdef1c..0685c82 100644 --- a/chrome/app/resources/chromium_strings_vi.xtb +++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Giới thiệu về Chromium</translation> <translation id="1203500561924088507">Cảm ơn bạn đã cài đặt. Bạn phải khởi động lại trình duyệt trước khi sử dụng <ph name="BUNDLE_NAME" />.</translation> <translation id="1231839967188101156">Khi bạn bật chế độ này, Chromium sẽ giải phóng bộ nhớ khỏi các thẻ không hoạt động. Nhờ đó, các thẻ đang hoạt động và ứng dụng khác sẽ được sử dụng nhiều tài nguyên máy tính hơn, còn Chromium thì hoạt động nhanh chóng. Các thẻ không hoạt động sẽ tự động hoạt động trở lại khi bạn quay lại các thẻ đó. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">Trình tiết kiệm bộ nhớ giúp Chromium hoạt động nhanh hơn</translation> <translation id="1315551408014407711">Thiết lập hồ sơ Chromium mới</translation> <translation id="1385859895174722837">Trợ lý Google trong Chromium</translation> <translation id="1396446129537741364">Chromium đang cố gắng hiển thị mật khẩu.</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">Hiện đã có phiên bản Chromium mới và phiên bản này nhanh hơn bao giờ hết.</translation> <translation id="6063093106622310249">&Mở trong Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> đã được thêm vào Chromium</translation> +<translation id="6072463441809498330">Giúp Chromium hoạt động nhanh hơn</translation> <translation id="608006075545470555">Thêm Hồ sơ công việc vào trình duyệt này</translation> <translation id="6096348254544841612">Tùy chỉnh và kiểm soát Chromium. Đã có bản cập nhật.</translation> <translation id="6119438414301547735">Cho phép tiện ích hiện các yêu cầu truy cập trong thanh công cụ của Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb index 2e1dac9..2fe99fb7 100644 --- a/chrome/app/resources/chromium_strings_zh-HK.xtb +++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">關於 Chromium</translation> <translation id="1203500561924088507">多謝安裝。您必須先重新啟動瀏覽器,才能使用 <ph name="BUNDLE_NAME" />。</translation> <translation id="1231839967188101156">開啟時,Chromium 會從閒置分頁釋出記憶體,為使用中的分頁和其他應用程式提供更多電腦資源,同時保持 Chromium 的運作速度。閒置分頁會在您使用時自動恢復為「使用中」狀態。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">記憶體節省模式可以提升 Chromium 運作速度</translation> <translation id="1315551408014407711">設定新的 Chromium 設定檔</translation> <translation id="1385859895174722837">Chromium 的「Google 助理」</translation> <translation id="1396446129537741364">Chromium 即將顯示密碼。</translation> @@ -211,6 +212,7 @@ <translation id="6055895534982063517">新版 Chromium 現已推出,速度更勝從前。</translation> <translation id="6063093106622310249">在 Chromium 中開啟</translation> <translation id="6072279588547424923">已將 <ph name="EXTENSION_NAME" /> 加到 Chromium</translation> +<translation id="6072463441809498330">提升 Chromium 的運作速度</translation> <translation id="608006075545470555">將工作設定檔新增至此瀏覽器</translation> <translation id="6096348254544841612">自訂和管理 Chromium。有可用的更新。</translation> <translation id="6119438414301547735">允許擴充程式在 Chromium 工具列中顯示存取要求</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb index 3f3619e..45812cb 100644 --- a/chrome/app/resources/chromium_strings_zh-TW.xtb +++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">關於 Chromium</translation> <translation id="1203500561924088507">感謝你安裝本服務。你必須重新啟動瀏覽器,才能使用 <ph name="BUNDLE_NAME" />。</translation> <translation id="1231839967188101156">這項設定開啟時,Chromium 會釋出閒置分頁占用的記憶體,為使用中的分頁和其他應用程式提供更多電腦資源,同時保持 Chromium 快速運作。當你切換回閒置分頁時,這些分頁會自動恢復為「使用中」狀態。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> +<translation id="1261119230216066228">記憶體節省模式可以提升 Chromium 運作速度</translation> <translation id="1315551408014407711">設定新的 Chromium 設定檔</translation> <translation id="1385859895174722837">Chromium 版 Google 助理</translation> <translation id="1396446129537741364">Chromium 即將顯示密碼。</translation> @@ -209,6 +210,7 @@ <translation id="6055895534982063517">新版 Chromium 現已推出,速度更勝以往。</translation> <translation id="6063093106622310249">在 Chromium 中開啟(&O)</translation> <translation id="6072279588547424923">已將「<ph name="EXTENSION_NAME" />」加到 Chromium</translation> +<translation id="6072463441809498330">提升 Chromium 的運作速度</translation> <translation id="608006075545470555">在這個瀏覽器中新增工作資料夾</translation> <translation id="6096348254544841612">有可用的更新,歡迎自訂及控制 Chromium。</translation> <translation id="6119438414301547735">允許擴充功能在 Chromium 工具列中顯示存取要求</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 995fe2ef..ef2986f 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -589,7 +589,7 @@ <translation id="1566049601598938765">ৱেবছাইট</translation> <translation id="15662109988763471">বাছনি কৰা প্ৰিণ্টাৰটো উপলব্ধ নহয় বা সঠিককৈ ইনষ্টল কৰা হোৱা নাই। আপোনাৰ প্ৰিণ্টাৰটো পৰীক্ষা কৰক বা অন্য এটা প্ৰিণ্টাৰ বাছনি কৰি চাওক।</translation> <translation id="1567135437923613642">বিশেষ পৰীক্ষা-নিৰীক্ষা সক্ষম কৰক</translation> -<translation id="1567387640189251553">আপুনি শেষৰবাৰ পাছৱৰ্ড দিয়াৰ পিছত অন্য এখন কীব’ৰ্ড সংযোগ কৰা হৈছিল। ই হয়তো আপোনাৰ কীষ্ট্ৰ’কবোৰ চুৰ কৰাৰ চেষ্টা কৰি আছে।</translation> +<translation id="1567387640189251553">আপুনি শেষৰবাৰ পাছৱৰ্ড দিয়াৰ পাছত অন্য এখন কীব’ৰ্ড সংযোগ কৰা হৈছিল। ই হয়তো আপোনাৰ কীষ্ট্ৰ’কবোৰ চুৰ কৰাৰ চেষ্টা কৰি আছে।</translation> <translation id="156793199942386351">‘<ph name="ACTION" />’ কাৰ্যটোৰ বাবে ‘<ph name="CURRENTKEY" />’ ইতিমধ্যে আবণ্টন কৰা হৈছে। <ph name="RESPONSE" />লৈ যিকোনো এটা কী টিপক।</translation> <translation id="1567993339577891801">JavaScriptৰ কনছ’ল</translation> <translation id="1569044524074707727">আপোনাৰ ফ’নটো আনলক কৰক</translation> @@ -789,7 +789,7 @@ <translation id="1725562816265788801">টেব স্ক্ৰ’ল কৰা</translation> <translation id="1726503915437308071">ইটালিক ফণ্ট</translation> <translation id="1729533290416704613">এইটোৱে লগতে আপুনি Omniboxৰ পৰা সন্ধান কৰিলে কি পৃষ্ঠা দেখুওৱা হয় সেয়াও নিয়ন্ত্ৰণ কৰে।</translation> -<translation id="1730917990259790240"><ph name="BEGIN_PARAGRAPH1" />এপ্ আঁতৰাবলৈ ছেটিংসমূহ > Google Play Store > Androidৰ অগ্ৰাধিকাৰ পৰিচালনা কৰক> এপ্ বা এপ্লিকেশ্বন মেনেজাৰ-লৈ যাওক। তাৰ পিছত আপুনি আনইনষ্টল কৰিব খোজা এপ্টোত টিপক (আপুনি এপ্টো বিচাৰিবলৈ সোঁফাললৈ বা বাওঁফাললৈ ছোৱাইপ কৰিবলগা হ‘ব পাৰে)। তাৰ পিছত আনইনষ্টল কৰক বা অক্ষম কৰক-ত টিপক।<ph name="END_PARAGRAPH1" /></translation> +<translation id="1730917990259790240"><ph name="BEGIN_PARAGRAPH1" />এপ্ আঁতৰাবলৈ ছেটিংসমূহ > Google Play Store > Androidৰ অগ্ৰাধিকাৰ পৰিচালনা কৰক> এপ্ বা এপ্লিকেশ্বন মেনেজাৰ-লৈ যাওক। তাৰ পাছত আপুনি আনইনষ্টল কৰিব খোজা এপ্টোত টিপক (আপুনি এপ্টো বিচাৰিবলৈ সোঁফাললৈ বা বাওঁফাললৈ ছোৱাইপ কৰিবলগা হ‘ব পাৰে)। তাৰ পাছত আনইনষ্টল কৰক বা অক্ষম কৰক-ত টিপক।<ph name="END_PARAGRAPH1" /></translation> <translation id="1730989807608739928">অন্তিম টেবটোৰ ফালে স্ক্ৰ’ল কৰক</translation> <translation id="1731911755844941020">অনুৰোধ পঠিয়াই থকা হৈছে...</translation> <translation id="1732445923934584865">ইয়াৰ সলনি ব্যক্তিগতভাৱে সোধক</translation> @@ -1855,7 +1855,7 @@ <translation id="2690024944919328218">ভাষাৰ বিকল্প দেখুৱাওক</translation> <translation id="2691385045260836588">ম’ডেল</translation> <translation id="2691440343905273290">ইনপুট ছেটিং সলনি কৰক</translation> -<translation id="2693176596243495071">আমি দুঃখিত! কোনো অজ্ঞাত আসোঁৱাহ হৈছে। অনুগ্ৰহ কৰি পিছত আকৌ চেষ্টা কৰক বা সমস্যাটো যদি হৈয়েই থাকে, নিজৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> +<translation id="2693176596243495071">আমি দুঃখিত! কোনো অজ্ঞাত আসোঁৱাহ হৈছে। অনুগ্ৰহ কৰি পাছত আকৌ চেষ্টা কৰক বা সমস্যাটো যদি হৈয়েই থাকে, নিজৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="2698147581454716013">এইটো এটা বাণ্ডল কৰা ডিভাইচ আৰু ইয়াক কিঅ’স্ক আৰু ছাইনেজ আপগ্ৰে’ডৰ সৈতে পঞ্জীয়ন কৰিব নোৱাৰি।</translation> <translation id="2699911226086014512"><ph name="RETRIES" /> ক'ডৰ সৈতে পিনৰ কাৰ্য বিফল হ'ল।</translation> <translation id="2701330563083355633"><ph name="DEVICE_NAME" />ৰ পৰা শ্বেয়াৰ কৰা হৈছে</translation> @@ -2388,6 +2388,7 @@ <translation id="3188465121994729530">গতিশীল গঢ়</translation> <translation id="3189187154924005138">ডাঙৰ কাৰ্ছৰ</translation> <translation id="3190558889382726167">পাছৱর্ড ছেভ কৰা হ'ল</translation> +<translation id="3192589799003798742">Chromebookত Steam ছেট আপ কৰি থকা হৈছে</translation> <translation id="3192947282887913208">অডিঅ’ ফাইল</translation> <translation id="3193695589337931419">ছিষ্টেমৰ ছিগনেলৰ উপযোগিতা</translation> <translation id="3194786596445804250">তৃতীয় পক্ষৰ কুকি অৱৰোধ কৰাৰ বিষয়ে সবিশেষ দেখুৱাওক</translation> @@ -2498,7 +2499,7 @@ <translation id="3308852433423051161">Google Assistant ল'ড কৰি থকা হৈছে...</translation> <translation id="3309330461362844500">প্ৰমাণপত্ৰৰ প্ৰ’ফাইলৰ আইডি</translation> <translation id="3311445899360743395">এই এপ্টোৰ সৈতে জড়িত ডেটা এই ডিভাইচটোৰ পৰা আঁতৰোৱা হ’ব পাৰে।</translation> -<translation id="3312883087018430408">কোনো এক নিৰ্দিষ্ট ছাইট অথবা Chromeৰ কোনো অংশ সন্ধান কৰিবলৈ ঠিকনাৰ বাৰত ইয়াৰ শ্বৰ্টকাটটো টাইপ কৰি তাৰ পিছত আপোনাৰ পচন্দৰ কীব’ৰ্ডৰ শ্বৰ্টকাটটো দিয়ক। উদাহৰণস্বৰূপে, কেৱল বুকমাৰ্ক সন্ধান কৰিবলৈ "@bookmarks" টাইপ কৰক আৰু তাৰ পাছত টেব অথবা স্পেচ টিপক।</translation> +<translation id="3312883087018430408">কোনো এক নিৰ্দিষ্ট ছাইট অথবা Chromeৰ কোনো অংশ সন্ধান কৰিবলৈ ঠিকনাৰ বাৰত ইয়াৰ শ্বৰ্টকাটটো টাইপ কৰি তাৰ পাছত আপোনাৰ পচন্দৰ কীব’ৰ্ডৰ শ্বৰ্টকাটটো দিয়ক। উদাহৰণস্বৰূপে, কেৱল বুকমাৰ্ক সন্ধান কৰিবলৈ "@bookmarks" টাইপ কৰক আৰু তাৰ পাছত টেব অথবা স্পেচ টিপক।</translation> <translation id="3313622045786997898">প্ৰমাণপত্ৰ চহীৰ মান</translation> <translation id="3313950410573257029">সংযোগ পৰীক্ষা কৰক</translation> <translation id="3315158641124845231"><ph name="PRODUCT_NAME" />ক লুকুৱাওক</translation> @@ -2527,6 +2528,7 @@ <translation id="3341699307020049241">ভুল পিন। আপোনাৰ <ph name="RETRIES" />টা প্ৰচেষ্টা বাকী আছে।</translation> <translation id="3341703758641437857">ফাইলৰ URL এক্সেছ কৰাৰ অনুমতি দিয়ক</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />"এ এই এক্সটেনশ্বনটো আঁতৰাব খোজে।</translation> +<translation id="3343977377045378693">ছেটআপ কৰি থকা হৈছে</translation> <translation id="3345135638360864351">আপুনি এই ছাইটৰ এক্সেছ বিচাৰি কৰা অনুৰোধ <ph name="NAME" />লৈ পঠিয়াব পৰা নগ’ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation> <translation id="3345634917232014253">এক মুহূৰ্তৰ আগতে সুৰক্ষা পৰীক্ষা চলিছে</translation> <translation id="3345886924813989455">সমৰ্থিত কোনো ব্ৰাউজাৰ বিচাৰি পোৱা নগ'ল</translation> @@ -2538,6 +2540,7 @@ <translation id="3354768182971982851">২০২২ চনৰ ডিচেম্বৰৰ পাছত Mac ডিভাইচসমূহত Chrome এপৰ পুৰণি সংস্কৰণসমূহ খোল নাখাব। নতুন সংস্কৰণ উপলব্ধ আছে নে নাই সেয়া আপুনি চাব পাৰে।</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> ডিভাইচৰ সৈতে পেয়াৰ কৰিব পৰা নগ’ল; পুনৰ চেষ্টা কৰিবলৈ ডিভাইচ বাছনি কৰক</translation> <translation id="3355936511340229503">সংযোগৰ আসোঁৱাহ</translation> +<translation id="3356036636691722598">আপোনাৰ Chromebookত গে’মিঙৰ আনন্দ লওক</translation> <translation id="3356469410714175391">(ভাৰ্চুৱেল কাৰ্ডখন সক্ষম কৰা হ’ল)</translation> <translation id="3356580349448036450">সম্পূৰ্ণ হ’ল</translation> <translation id="3359256513598016054">প্ৰমাণপত্ৰৰ নীতিৰ সীমাবদ্ধতা</translation> @@ -2808,7 +2811,7 @@ <translation id="3615596877979647433">কী নাই। কাষ্টমাইজ কৰিবলৈ কীব’ৰ্ডৰ এটা কী টিপক</translation> <translation id="3616113530831147358">অডিঅ’</translation> <translation id="3616741288025931835">&ব্ৰাউজিং ডেটা মচক...</translation> -<translation id="3617891479562106823">নেপথ্য উপলব্ধ নহয়। পিছত পুনৰ চেষ্টা কৰক।</translation> +<translation id="3617891479562106823">নেপথ্য উপলব্ধ নহয়। পাছত পুনৰ চেষ্টা কৰক।</translation> <translation id="3619115746895587757">কেপ’চিনো</translation> <translation id="3620136223548713675">জিঅ’লোকেশ্বন</translation> <translation id="3621807901162200696">ChromeOSৰ সুবিধা আৰু কাৰ্যক্ষমতা উন্নত কৰাত সহায় কৰক</translation> @@ -3074,7 +3077,7 @@ <translation id="3855676282923585394">বুকমাৰ্ক আৰু ছেটিংসমূহ আমদানি কৰক...</translation> <translation id="3856096718352044181">অনুগ্ৰহ কৰি এইটো কোনো মান্য প্ৰদানকাৰীৰ বুলি সত্যাপন কৰক অথবা পাছত আকৌ চেষ্টা কৰক</translation> <translation id="3856800405688283469">সময় মণ্ডল বাছনি কৰক</translation> -<translation id="3857807444929313943">ওপৰলৈ উঠাওক, তাৰ পিছত পুনৰ স্পৰ্শ কৰক</translation> +<translation id="3857807444929313943">ওপৰলৈ উঠাওক, তাৰ পাছত পুনৰ স্পৰ্শ কৰক</translation> <translation id="3858860766373142691">নাম</translation> <translation id="385939467708172187">বিশ্বস্ত পাছৱৰ্ড ব্যৱহাৰ কৰক</translation> <translation id="3861638017150647085">"<ph name="USERNAME" />" ব্যৱহাৰকাৰীৰ নামটো উপলব্ধ নহয়</translation> @@ -3443,6 +3446,7 @@ <translation id="4211904048067111541">Android এপৰ সৈতে ব্যৱহাৰ কৰাটো বন্ধ কৰক</translation> <translation id="42126664696688958">ৰপ্তানি কৰক</translation> <translation id="42137655013211669">ছাৰ্ভাৰে এই সম্পদটোলৈ এক্সেছ নিষিদ্ধ কৰিছে।</translation> +<translation id="4214192212360095377">এতিয়া অফ কৰক</translation> <translation id="4217558091331485702">খোলাৰ আগতে স্কেন কৰক</translation> <translation id="4217571870635786043">শ্ৰুতলিপি</translation> <translation id="4218081191298393750">এই টেবটো মিউট কৰিবলৈ স্পীকাৰ চিহ্নটোত ক্লিক কৰক</translation> @@ -3565,7 +3569,7 @@ <translation id="4341577178275615435">কেৰেট ব্ৰাউজিং অন অথবা অফ কৰিবলৈ শ্বৰ্টকাট F7 ব্যৱহাৰ কৰক</translation> <translation id="4341905082470253054">TPMৰ স্থিতি পৰীক্ষা কৰি থকা হৈছে...</translation> <translation id="434198521554309404">দ্ৰুত। সুৰক্ষিত। সহজ।</translation> -<translation id="4343250402091037179">কোনো এক নিৰ্দিষ্ট ছাইট অথবা Chromeৰ কোনো অংশ সন্ধান কৰিবলৈ ঠিকনাৰ বাৰত ইয়াৰ শ্বৰ্টকাটটো টাইপ কৰি তাৰ পিছত আপোনাৰ পচন্দৰ কীব’ৰ্ডৰ শ্বৰ্টকাটটো দিয়ক।</translation> +<translation id="4343250402091037179">কোনো এক নিৰ্দিষ্ট ছাইট অথবা Chromeৰ কোনো অংশ সন্ধান কৰিবলৈ ঠিকনাৰ বাৰত ইয়াৰ শ্বৰ্টকাটটো টাইপ কৰি তাৰ পাছত আপোনাৰ পচন্দৰ কীব’ৰ্ডৰ শ্বৰ্টকাটটো দিয়ক।</translation> <translation id="434404122609091467">আপোনাৰ বর্তমানৰ সেৱা প্ৰদানকাৰীৰ জৰিয়তে</translation> <translation id="4345587454538109430">কনফিগাৰ...</translation> <translation id="4345732373643853732">ব্যৱহাৰকাৰীৰ নাম ছার্ভাৰৰ বাবে অজ্ঞাত</translation> @@ -3639,7 +3643,7 @@ <translation id="4408599188496843485">স&হায়</translation> <translation id="4409271659088619928">আপোনাৰ সন্ধানৰ ইঞ্জিনটো হৈছে <ph name="DSE" />। যদি প্ৰযোজ্য হয়, আপোনাৰ সন্ধানৰ ইতিহাস মচিবলৈ আপোনাৰ সন্ধানৰ ইঞ্জিনৰ নিৰ্দেশাৱলী চাওক।</translation> <translation id="4409697491990005945">মাৰ্জিন</translation> -<translation id="4410545552906060960">আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ পাছৱৰ্ডৰ সলনি এটা নম্বৰ (পিন) ব্যৱহাৰ কৰক। আপোনাৰ পিনটো পিছত ছেট কৰিবলৈ ছেটিংসমূহ-লৈ যাওক।</translation> +<translation id="4410545552906060960">আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ পাছৱৰ্ডৰ সলনি এটা নম্বৰ (পিন) ব্যৱহাৰ কৰক। আপোনাৰ পিনটো পাছত ছেট কৰিবলৈ ছেটিংসমূহ-লৈ যাওক।</translation> <translation id="4411578466613447185">ক’ড ছাইন কৰোঁতা</translation> <translation id="4412698727486357573">সহায় কেন্দ্ৰ</translation> <translation id="44141919652824029">"<ph name="APP_NAME" />"ক আপোনাৰ সংলগ্ন হৈ থকা ইউএছবি ডিভাইচৰ তালিকাখন এক্সেছ কৰিব দিবনে?</translation> @@ -4332,6 +4336,7 @@ <translation id="5089763948477033443">ছাইডৰ পেনেলৰ আকাৰ সলনি কৰা হেণ্ডেল</translation> <translation id="5090637338841444533">আপোনাৰ কেমেৰাৰ স্থান ট্ৰেক কৰাৰ অনুমতি নাই</translation> <translation id="5093569275467863761">বেক-ফৰৱাৰ্ড কেশ্বত থকা ইনক’গনিট’ ছাবফ্ৰে’ম: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">ইনষ্টলেশ্বন আৰম্ভ কৰি থকা হৈছে</translation> <translation id="5094176498302660097">আপুনি Files এপৰ পৰা অথবা অন্য এপৰ জৰিয়তে সমৰ্থিত ফাইল এই এপ্টোত খুলিব আৰু সম্পাদনা কৰিব পাৰে। ডিফ’ল্ট হিচাপে কোনবোৰ ফাইলে এই এপ্টো খুলিব সেয়া নিয়ন্ত্ৰণ কৰিবলৈ <ph name="BEGIN_LINK" />আপোনাৰ ডিভাইচত ডিফ’ল্ট এপ্ কেনেকৈ ছেট কৰিব লাগে জানক<ph name="END_LINK" />।</translation> <translation id="5094721898978802975">সহযোগ কৰা স্থানীয় এপ্লিকেশ্বনৰ সৈতে যোগাযোগ কৰক</translation> <translation id="5097002363526479830">’<ph name="NAME" />’ নেটৱর্কত সংযুক্ত কৰিব পৰা নগ’ল : <ph name="DETAILS" /></translation> @@ -4563,7 +4568,7 @@ <translation id="5319359161174645648">Googleএ Chrome ব্যৱহাৰৰ চুপাৰিছ কৰে</translation> <translation id="5319712128756744240">নতুন ডিভাইচ পেয়াৰ কৰক</translation> <translation id="5320135788267874712">নতুন ডিভাইচৰ নাম</translation> -<translation id="532247166573571973">ছাৰ্ভাৰ প্ৰাপ্তব্য নহ’বও পাৰে৷ পিছত আকৌ চেষ্টা কৰক।</translation> +<translation id="532247166573571973">ছাৰ্ভাৰ প্ৰাপ্তব্য নহ’বও পাৰে৷ পাছত আকৌ চেষ্টা কৰক।</translation> <translation id="5324300749339591280">এপৰ সূচী</translation> <translation id="5324780743567488672">আপোনাৰ অৱস্থান ব্যৱহাৰ কৰি স্বয়ংক্ৰিয়ভাৱে সময় মণ্ডল ছেট কৰক</translation> <translation id="5327248766486351172">নাম</translation> @@ -4743,7 +4748,7 @@ <translation id="5494362494988149300">&ডাউনল’ড সম্পূর্ণ হ’লে খোলক</translation> <translation id="5494752089476963479">অননুমোদিত বা বিভ্ৰান্তিকৰ বিজ্ঞাপন দেখুওৱা ছাইটসমূহত বিজ্ঞাপন অৱৰোধ কৰক</translation> <translation id="5494920125229734069">সকলো বাছনি কৰক</translation> -<translation id="5495466433285976480">এই কাৰ্যই আপুনি ইয়াৰ পিছৰবাৰ ছাইন ইন কৰাৰ পিছত সকলো স্থানীয় ব্যৱহাৰকাৰী, ফাইল, ডেটা আৰু অন্য ছেটিংসমূহ আঁতৰাব। সকলো ব্যৱহাৰকাৰীয়ে আকৌ ছাইন ইন কৰাৰ প্ৰয়োজন হ’ব।</translation> +<translation id="5495466433285976480">এই কাৰ্যই আপুনি ইয়াৰ পিছৰবাৰ ছাইন ইন কৰাৰ পাছত সকলো স্থানীয় ব্যৱহাৰকাৰী, ফাইল, ডেটা আৰু অন্য ছেটিংসমূহ আঁতৰাব। সকলো ব্যৱহাৰকাৰীয়ে আকৌ ছাইন ইন কৰাৰ প্ৰয়োজন হ’ব।</translation> <translation id="5495597166260341369">ডিছপ্লে’ অন ৰাখক</translation> <translation id="5496587651328244253">শৃংখলাবদ্ধ কৰক</translation> <translation id="5496730470963166430">পপ-আপ পঠিওৱাৰ অথবা ৰিডাইৰেক্ট ব্যৱহাৰ কৰাৰ অনুমতি নাই</translation> @@ -4869,7 +4874,7 @@ <translation id="5608580678041221894">ক্ৰপ কৰা অংশ মিলাবলৈ বা আঁতৰাবলৈ তলত উল্লেখ কৰা চাবিসমূহ টিপক</translation> <translation id="5609231933459083978">এই এপ্লিকেশ্বনটো অমান্য যেন লাগিছে।</translation> <translation id="561030196642865721">এই ছাইটটোত তৃতীয় পক্ষৰ কুকীসমূহক অনুমতি দিয়া হৈছে</translation> -<translation id="5612734644261457353">আমি দুঃখিত, আপোনাৰ পাছৱর্ড তথাপিও সত্যাপন কৰিব পৰা নগ’ল। টোকা: যদি আপুনি অলপতে আপোনাৰ পাছৱৰ্ডটো সলনি কৰিছিল তেন্তে আপুনি ছাইন আউট কৰাৰ পিছত নতুন পাছৱৰ্ডটো প্ৰযোজ্য হ‘ব। অনুগ্ৰহ কৰি ইয়াত পুৰণা পাছৱৰ্ডটো ব্যৱহাৰ কৰক।</translation> +<translation id="5612734644261457353">আমি দুঃখিত, আপোনাৰ পাছৱর্ড তথাপিও সত্যাপন কৰিব পৰা নগ’ল। টোকা: যদি আপুনি অলপতে আপোনাৰ পাছৱৰ্ডটো সলনি কৰিছিল তেন্তে আপুনি ছাইন আউট কৰাৰ পাছত নতুন পাছৱৰ্ডটো প্ৰযোজ্য হ‘ব। অনুগ্ৰহ কৰি ইয়াত পুৰণা পাছৱৰ্ডটো ব্যৱহাৰ কৰক।</translation> <translation id="5614190747811328134">ব্যৱহাৰকাৰীৰ জাননী</translation> <translation id="5614553682702429503">পাছৱৰ্ড ছেভ কৰিবনে?</translation> <translation id="5616726534702877126">সংৰক্ষণৰ আকাৰ</translation> @@ -4916,7 +4921,7 @@ <translation id="5656845498778518563">Googleলৈ মতামত পঠিয়াওক</translation> <translation id="5657156137487675418">সকলো কুকিক অনুমতি দিয়ক</translation> <translation id="5657667036353380798">বাহ্যিক এক্সটেনশ্বনটোৰ বাবে chromeৰ সংস্কৰণ <ph name="MINIMUM_CHROME_VERSION" /> বা তাতোকৈ উন্নত সংস্কৰণ ইনষ্টল হৈ থকাৰ আৱশ্যক।</translation> -<translation id="5658415415603568799">অতিৰিক্ত সুৰক্ষাৰ বাবে Smart Lockএ আপোনাক ২০ ঘণ্টাৰ পিছত পাছৱৰ্ড দিবলৈ ক’ব।</translation> +<translation id="5658415415603568799">অতিৰিক্ত সুৰক্ষাৰ বাবে Smart Lockএ আপোনাক ২০ ঘণ্টাৰ পাছত পাছৱৰ্ড দিবলৈ ক’ব।</translation> <translation id="5659593005791499971">ইমেইল</translation> <translation id="5662513737565158057">Linux এপ্সমূহে কেনেদৰে কাম কৰিব সেয়া সলনি কৰক।</translation> <translation id="5663459693447872156">স্বয়ংক্ৰিয়ভাৱে halfwidthলৈ সলনি কৰক</translation> @@ -5225,7 +5230,7 @@ <translation id="5955809630138889698">এই ডিভাইচটো কেৱল অনলাইন ডেম' ম'ডৰ বাবে যোগ্য হ'ব পাৰে। অধিক সবিশেষৰ বাবে অনুগ্ৰহ কৰি আপোনাৰ সহায়তা প্ৰতিনিধিৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="5956585768868398362">আপুনি বিচৰা সন্ধানৰ পৃষ্ঠা এইটোৱেইনে?</translation> <translation id="5957918771633727933">কোনো ই-ছিমৰ প্ৰ'ফাইল উপলব্ধ নহয়। এটা নতুন <ph name="BEGIN_LINK" />প্ৰ'ফাইল<ph name="END_LINK" /> ডাউনল'ড কৰক।</translation> -<translation id="5957987129450536192">আপোনাৰ প্ৰ’ফাইল প্ৰতিচ্ছবিৰ কাষৰ ’কথা ক’বলৈ বাছনি কৰক’ আইকনত টিপক, তাৰ পিছত আপুনি কি শুনিব বিচাৰে সেয়া বাছনি কৰক।</translation> +<translation id="5957987129450536192">আপোনাৰ প্ৰ’ফাইল প্ৰতিচ্ছবিৰ কাষৰ ’কথা ক’বলৈ বাছনি কৰক’ আইকনত টিপক, তাৰ পাছত আপুনি কি শুনিব বিচাৰে সেয়া বাছনি কৰক।</translation> <translation id="5959471481388474538">নেটৱৰ্ক উপলব্ধ নহয়</translation> <translation id="595959584676692139">এই এক্সটেনশ্বনটো ব্যৱহাৰ কৰিবলৈ পৃষ্ঠাটো পুনৰ ল'ড কৰক</translation> <translation id="5963413905009737549">শাখা</translation> @@ -6334,9 +6339,10 @@ <translation id="7014174261166285193">ইনষ্টল কৰিব পৰা নগ’ল।</translation> <translation id="7014480873681694324">হাইলাইট আঁতৰাওক</translation> <translation id="7014741021609395734">জুমৰ স্তৰ</translation> +<translation id="7014961128696979283">Steam লঞ্চ কৰক</translation> <translation id="7017004637493394352">পুনৰ "Ok Google" বুলি কওক</translation> <translation id="7017219178341817193">কোনো নতুন পৃষ্ঠা যোগ কৰক</translation> -<translation id="7017354871202642555">ৱিণ্ড’ ছেট কৰা হোৱাৰ পিছত ম’ড ছেট কৰিব নোৱাৰি।</translation> +<translation id="7017354871202642555">ৱিণ্ড’ ছেট কৰা হোৱাৰ পাছত ম’ড ছেট কৰিব নোৱাৰি।</translation> <translation id="7018275672629230621">আপোনাৰ ব্ৰাউজ কৰাৰ ইতিহাস পঢ়ে আৰু সলনি কৰে</translation> <translation id="7019546817926942979">আপোনাৰ ডিভাইচটো প্লাগ ইন কৰিব লাগিব। Linux আপগ্ৰে’ড কৰা কাৰ্যই আপোনাৰ বেটাৰী যথেষ্ট পৰিমাণে হ্ৰাস কৰিব পাৰে। আপোনাৰ ডিভাইচটো এটা চাৰ্জাৰৰ সৈতে সংযোগ কৰক আৰু পুনৰ চেষ্টা কৰক।</translation> <translation id="7019805045859631636">ক্ষিপ্ৰ</translation> @@ -6430,7 +6436,7 @@ <translation id="7114054701490058191">পাছৱৰ্ড মিলা নাই</translation> <translation id="7114648273807173152">আপোনাৰ Google একাউণ্টত ছাইন ইন কৰিবলৈ স্মার্ট লক ব্যৱহাৰ কৰিবলৈ, ছেটিং > সংযুক্ত ডিভাইচ > আপোনাৰ ফ'ন > স্মার্ট লক-লৈ যাওক।</translation> <translation id="7115361495406486998">যোগাযোগ কৰিব পৰা কোনো সম্পৰ্ক নাই</translation> -<translation id="7117228822971127758">অনুগ্ৰহ কৰি পিছত পুনৰ চেষ্টা কৰক</translation> +<translation id="7117228822971127758">অনুগ্ৰহ কৰি পাছত পুনৰ চেষ্টা কৰক</translation> <translation id="711840821796638741">পৰিচালিত বুকমাৰ্কবোৰ দেখুৱাওক</translation> <translation id="711985611146095797">এই পৃষ্ঠাখনে আপোনাক ছাইন ইন কৰি থোৱা Google একাউণ্টসমূহ পৰিচালনা কৰিবলৈ দিয়ে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation> <translation id="7120762240626567834">ভিপিএন সংযোগ নকৰা পৰ্যন্ত Chrome ব্ৰাউজাৰ আৰু Android ট্ৰেফিক অৱৰোধ কৰা হ’ব</translation> @@ -6723,6 +6729,7 @@ <translation id="7423425410216218516">দৃশ্যমানতাৰ সুবিধাটো <ph name="MINUTES" /> মিনিট অন হৈ থাকিব</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> আঁতৰাওক</translation> <translation id="7423807071740419372"><ph name="APP_NAME" /> চলাবলৈ অনুমতিৰ আৱশ্যক</translation> +<translation id="7424153922653300265">শক্তি সঞ্চয়কাৰী অন কৰা হ’ল</translation> <translation id="7424818322350938336">নেটৱৰ্ক যোগ দিয়া হৈছে</translation> <translation id="7427315069950454694">আজিৰ বাবে আপোনাৰ স্মৃতি</translation> <translation id="7427348830195639090">নেপথ্যৰ পৃষ্ঠা: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7049,7 +7056,7 @@ <translation id="7726391492136714301">আপোনাৰ ফ’নৰ জাননী আৰু এপ্সমূহ চাওক</translation> <translation id="7728465250249629478">ডিভাইচৰ ভাষা সলনি কৰক</translation> <translation id="7728570244950051353">সুপ্ত ম'ডৰ পৰাই স্ক্রীণ লক কৰক</translation> -<translation id="7728668285692163452">চ্চেনেলত কৰা সালসালনি পিছত প্ৰযোজ্য হ’ব</translation> +<translation id="7728668285692163452">চ্চেনেলত কৰা সালসালনি পাছত প্ৰযোজ্য হ’ব</translation> <translation id="7730449930968088409">আপোনাৰ স্ক্ৰীণৰ সমল ৰেকৰ্ড কৰিব পাৰে</translation> <translation id="7730683939467795481">"<ph name="EXTENSION_NAME" />" এক্সটেনশ্বনে এই পৃষ্ঠাখন সলনি কৰিছে</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"ৰ সৈতে পেয়াৰ কৰি থকা হৈছে …</translation> @@ -7185,7 +7192,7 @@ <ph name="BEGIN_PARAGRAPH2" />আপুনি নিজৰ ChromeOS ডিভাইচৰ ছেটিঙত যিকোনো সময়তে এই ৰিপ’ৰ্টসমূহৰ অনুমতি দিয়া আৰম্ভ অথবা বন্ধ কৰিব পাৰে। আপুনি যদি ড’মেইনৰ প্ৰশাসক, তেন্তে আপুনি প্ৰশাসকৰ কনছ’লত এই ছেটিংটো সলনি কৰিব পাৰে।<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />আপোনাৰ Google একাউণ্টৰ বাবে ৱেব আৰু এপৰ কাৰ্যকলাপৰ ছেটিং অন হৈ থাকিলে আপোনাৰ Android ডেটা আপোনাৰ Google একাউণ্টত ছেভ কৰা হ’ব পাৰে। আপুনি account.google.comলৈ গৈ আপোনাৰ ডেটা চাব পাৰে, সেয়া মচিব পাৰে আৰু আপোনাৰ একাউণ্টৰ ছেটিং সলনি কৰিব পাৰে।<ph name="END_PARAGRAPH3" /></translation> <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />টোকা<ph name="END_BOLD" />: একেধৰণৰ কোনো কণ্ঠধ্বনি অথবা ৰেকৰ্ডিঙে আপোনাৰ ব্যক্তিগত ফলাফল অথবা আপোনাৰ Assistant এক্সেছ কৰিবলৈ সক্ষম হ’ব পাৰে। আপুনি বেটাৰী ৰাহি কৰিবলৈ “Hey Google” সুবিধাটো এই ডিভাইচটো কোনো পাৱাৰৰ উৎসৰ সৈতে সংযুক্ত হ’লেহে অন হ’বলৈ নিজৰ Assistantৰ ছেটিঙত বাছনি কৰিব পাৰে।</translation> -<translation id="7851457902707056880">ছাইন-ইন কেৱল গৰাকীৰ একাউণ্টলৈকেহে সীমাৱদ্ধ। অনুগ্ৰহ কৰি ৰিবুট কৰক আৰু গৰাকীৰ একাউণ্টেৰে ছাইন ইন কৰক। মেচিনটো ৩০ ছেকেণ্ডৰ পিছত নিজে নিজে ৰিবুট হ'ব।</translation> +<translation id="7851457902707056880">ছাইন-ইন কেৱল গৰাকীৰ একাউণ্টলৈকেহে সীমাৱদ্ধ। অনুগ্ৰহ কৰি ৰিবুট কৰক আৰু গৰাকীৰ একাউণ্টেৰে ছাইন ইন কৰক। মেচিনটো ৩০ ছেকেণ্ডৰ পাছত নিজে নিজে ৰিবুট হ'ব।</translation> <translation id="7851716364080026749">সদায় কেমেৰা আৰু মাইক্ৰ'ফ'নৰ এক্সেছ অৱৰোধ কৰক</translation> <translation id="7851720427268294554">IPP পাৰ্ছাৰ</translation> <translation id="78526636422538552">অধিক Google একাউণ্ট যোগ কৰা সুবিধাটো অক্ষম কৰা হৈছে</translation> @@ -7202,7 +7209,7 @@ <translation id="7865127013871431856">অনুবাদৰ বিকল্প</translation> <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - যোৰা লগোৱা আছে</translation> <translation id="7869655448736341731">যিকোনো</translation> -<translation id="7870730066603611552">ছেটআপৰ পিছত ছিংকৰ বিকল্পসমূহৰ পৰ্যালোচনা কৰক</translation> +<translation id="7870730066603611552">ছেটআপৰ পাছত ছিংকৰ বিকল্পসমূহৰ পৰ্যালোচনা কৰক</translation> <translation id="7870790288828963061">কিঅ'স্ক এপৰ কোনো নতুন সংস্কৰণ পোৱা নাই। আপডে'ট কৰিবলৈ একো নাই। অনুগ্ৰহ কৰি USB ষ্টিক আঁতৰাওক।</translation> <translation id="7871049986386271121">এই ছাইটটোত সদায়</translation> <translation id="7871109039747854576">প্ৰাৰ্থীৰ সূচী পৃষ্ঠালৈ আনিবলৈ <ph name="COMMA" /> আৰু <ph name="PERIOD" /> কী ব্যৱহাৰ কৰক</translation> @@ -7361,7 +7368,7 @@ <translation id="8011372169388649948">‘<ph name="BOOKMARK_TITLE" />’ স্থানান্তৰ কৰা হ’ল।</translation> <translation id="8012647001091218357">আপোনাৰ অভিভাৱকৰ সৈতে এই মুহূৰ্তত আমি যোগাযোগ কৰিব নোৱাৰিলোঁ। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation> <translation id="8013993649590906847">যদি কোনো প্ৰতিচ্ছবিত উপযোগী বিৱৰণ নাই তেন্তে Chromeএ আপোনাক সেয়া প্ৰদান কৰিবলৈ চেষ্টা কৰিব। বিৱৰণ সৃষ্টি কৰিবলৈ প্ৰতিচ্ছবি Googleলৈ প্ৰেৰণ কৰা হয়।</translation> -<translation id="8014154204619229810">আপডে’টাৰটো বৰ্তমান চলি আছে। পুনৰ পৰীক্ষা কৰিবলৈ এক মিনিটৰ পিছত ৰিফ্ৰেশ্ব কৰক।</translation> +<translation id="8014154204619229810">আপডে’টাৰটো বৰ্তমান চলি আছে। পুনৰ পৰীক্ষা কৰিবলৈ এক মিনিটৰ পাছত ৰিফ্ৰেশ্ব কৰক।</translation> <translation id="8014206674403687691"><ph name="IDS_SHORT_PRODUCT_NAME" />এ পূর্বে ইনষ্টল কৰা সংস্কৰণটোলৈ নিব নোৱাৰিলে। অনুগ্ৰহ কৰি আপোনাৰ ডিভাইচ আকৌ পাৱাৰৱাশ্ব কৰিবলৈ চেষ্টা কৰক।</translation> <translation id="8016266267177410919">অস্থায়ী ষ্ট’ৰেজ</translation> <translation id="8017176852978888182">Linuxৰ শ্বেয়াৰ কৰা ডাইৰেক্টৰীসমূহ</translation> @@ -7650,7 +7657,7 @@ <translation id="8272443605911821513">"অধিক সঁজুলি" মেনুৰ অন্তৰ্গত এক্সটেনশ্বন-ত ক্লিক কৰি আপোনাৰ এক্সটেনশ্বনবোৰ পৰিচালনা কৰক।</translation> <translation id="8273905181216423293">এতিয়াই ডাউনল’ড কৰক</translation> <translation id="8274921654076766238">বিৱৰ্ধকে কীব’ৰ্ডৰ ফ’কাছ অনুসৰণ কৰে</translation> -<translation id="8274924778568117936">আপডে’ট সম্পূৰ্ণ নোহোৱালৈকে আপোনাৰ <ph name="DEVICE_TYPE" /> অফ বা বন্ধ নকৰিব। ইনষ্টল সম্পূৰ্ণ হোৱাৰ পিছত আপোনাৰ <ph name="DEVICE_TYPE" /> ৰিষ্টাৰ্ট হ’ব।</translation> +<translation id="8274924778568117936">আপডে’ট সম্পূৰ্ণ নোহোৱালৈকে আপোনাৰ <ph name="DEVICE_TYPE" /> অফ বা বন্ধ নকৰিব। ইনষ্টল সম্পূৰ্ণ হোৱাৰ পাছত আপোনাৰ <ph name="DEVICE_TYPE" /> ৰিষ্টাৰ্ট হ’ব।</translation> <translation id="8275038454117074363">আমদানি কৰক</translation> <translation id="8275080796245127762">আপোনাৰ ডিভাইচৰ পৰা কল কৰক</translation> <translation id="8275339871947079271">আপুনি ছাইন ইন হৈ থাকিলে পাছৱৰ্ডটো সুৰক্ষিতভাৱে এক্সেছ কৰিবলৈ সেইটো নিজৰ Google একাউণ্টলৈ স্থানান্তৰ কৰক</translation> @@ -7953,6 +7960,7 @@ <translation id="859246725979739260">আপোনাৰ অৱস্থান এক্সেছ কৰাৰ পৰা এই ছাইটটোক অৱৰোধ কৰা হৈছে।</translation> <translation id="8593121833493516339">ব্যৱহাৰ আৰু ডায়গ’নষ্টিক ডেটা পঠিয়াওক। Googleলৈ স্বয়ংক্ৰিয়ভাৱে ডাইগ’নষ্টিক, ডিভাইচ আৰু এপ্ ব্যৱহাৰৰ ডেটা পঠিয়াই আপোনাৰ শিশুৰ Android ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰক। এই ডেটাখিনি আপোনাৰ শিশুক চিনাক্ত কৰিবলৈ ব্যৱহাৰ কৰা নহয় আৰু ই ছিষ্টেম আৰু এপৰ স্থিৰতা আৰু অন্য উন্নয়নত সহায় কৰিব। কিছুমান ডেটাৰ সমষ্টিয়ে লগতে Google এপ্ আৰু অংশীদাৰ, যেনে Androidৰ বিকাশকর্তাকো সহায় কৰিব। যদি আপোনাৰ শিশুৰ বাবে অতিৰিক্ত ৱেব আৰু এপৰ কার্যকলাপ অন কৰা হৈছে, তেন্তে এই ডেটা তেওঁলোকৰ Google একাউণ্টত ছেভ কৰা হ’ব পাৰে। <ph name="BEGIN_LINK1" />অধিক জানক<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">কাষ্টম ফাইল</translation> +<translation id="8597404194697561297">Chromebookত Steamলৈ স্বাগতম</translation> <translation id="8597845839771543242">সম্পদৰ ফৰ্মেট:</translation> <translation id="8599681327221583254">এক অথবা একাধিক নীতি সঠিকভাৱে কনফিগাৰ কৰা হোৱা নাই। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক</translation> <translation id="8599864823732014237">এণ্টাৰপ্ৰাইজৰ পঞ্জীয়ন এৰি যাবনে?</translation> @@ -8318,7 +8326,7 @@ <translation id="8933960630081805351">Finderত &দেখুৱাওক</translation> <translation id="8934732568177537184">অব্যাহত ৰাখক</translation> <translation id="8938800817013097409">USB-C ডিভাইচ (পিছফালৰ সোঁফালৰ প’র্ট)</translation> -<translation id="8940081510938872932">আপোনাৰ কম্পিউটাৰে এই মুহূৰ্তত বহুত বেছি কাম কৰি আছে৷ পিছত আকৌ চেষ্টা কৰক।</translation> +<translation id="8940081510938872932">আপোনাৰ কম্পিউটাৰে এই মুহূৰ্তত বহুত বেছি কাম কৰি আছে৷ পাছত আকৌ চেষ্টা কৰক।</translation> <translation id="8940381019874223173">আপোনাৰ Google Photosৰ পৰা</translation> <translation id="8941173171815156065">'<ph name="PERMISSION" />' অনুমতিটো প্ৰত্যাহাৰ কৰক</translation> <translation id="894191600409472540">শক্তিশালী পাছৱৰ্ড সৃষ্টি কৰক</translation> @@ -8354,7 +8362,7 @@ <translation id="89720367119469899">ESCAPE</translation> <translation id="8972513834460200407">ফায়াৰৱাল-এ যাতে Google ছাৰ্ভাৰৰ পৰা ডাউনল’ড অৱৰোধ কৰি থোৱা নাই সেয়া নিশ্চিত কৰিবলৈ আপোনাৰ নেটৱৰ্ক প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="8973557916016709913">জুমৰ স্তৰ আঁতৰাওক</translation> -<translation id="8973596347849323817">আপুনি এই ডিভাইচটো আপোনাৰ প্ৰয়োজনীতাসমূহৰ সৈতে মিলাকৈ কাষ্ট'মাইজ কৰিব পাৰে। এই সাধ্য সুবিধাসমূহ পিছত ছেটিংসমূহ-লৈ গৈ সলনি কৰিব পাৰি।</translation> +<translation id="8973596347849323817">আপুনি এই ডিভাইচটো আপোনাৰ প্ৰয়োজনীতাসমূহৰ সৈতে মিলাকৈ কাষ্ট'মাইজ কৰিব পাৰে। এই সাধ্য সুবিধাসমূহ পাছত ছেটিংসমূহ-লৈ গৈ সলনি কৰিব পাৰি।</translation> <translation id="897414447285476047">সংযোগজনিত বিজুতিৰ বাবে লক্ষ্যস্থানৰ ফাইলটো অসম্পূৰ্ণ হৈছে।</translation> <translation id="897525204902889653">পৃথক কৰি ৰখা সেৱা</translation> <translation id="8975396729541388937">আপুনি পোৱা ইমেইলত থকা লিংকটোত ক্লিক কৰি যিকোনো সময়তে আনছাবস্ক্ৰাইব কৰক।</translation> @@ -8566,7 +8574,7 @@ <translation id="916607977885256133">চিত্ৰৰ ভিতৰত চিত্ৰ</translation> <translation id="9167063903968449027">পঢ়াৰ সূচী দেখুৱাওক</translation> <translation id="9167450455589251456">প্ৰ’ফাইলটো সমৰ্থিত নহয়</translation> -<translation id="9168436347345867845">এইটো পিছত কৰিব</translation> +<translation id="9168436347345867845">এইটো পাছত কৰিব</translation> <translation id="9169496697824289689">কীব’ৰ্ডৰ শ্বৰ্টকাট চাওক</translation> <translation id="916964310188958970">এই পৰামৰ্শ কিয় দিয়া হৈছে?</translation> <translation id="9170048603158555829">Thunderbolt</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 526d9503..6991f93 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2,6 +2,7 @@ <!DOCTYPE translationbundle> <translationbundle lang="bn"> <translation id="1001033507375626788">এই নেটওয়ার্কটি আপনার সাথে শেয়ার করা হয়েছে</translation> +<translation id="1002085272681738789">আবার ট্যাব অ্যাক্টিভ করে</translation> <translation id="1003088604756913841">নতুন <ph name="APP" /> উইন্ডোতে লিঙ্ক খুলুন</translation> <translation id="100323615638474026">ইউএসবি ডিভাইস (<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />)</translation> <translation id="1004218526896219317">অ্যাক্সেস করতে পারে এমন সাইট</translation> @@ -320,6 +321,7 @@ <translation id="1296911687402551044">বেছে নেওয়া ট্যাব পিন করুন</translation> <translation id="1297175357211070620">গন্তব্য</translation> <translation id="129770436432446029"><ph name="EXPERIMENT_NAME" />-এর জন্য মতামত জানান</translation> +<translation id="130097046531636712">এটি ব্যাকগ্রাউন্ড অ্যাক্টিভিটি এবং স্মুথ স্ক্রলিংয়ের মতো কিছু ভিজ্যুয়াল এফেক্টের ব্যবহার সীমিত করে ব্যাটারি সাশ্রয় করে</translation> <translation id="1301135395320604080"><ph name="ORIGIN" />-এর কাছে নিচে উল্লেখ করা ফাইলগুলি এডিট করার অনুমতি আছে</translation> <translation id="1302227299132585524">Apple Events থেকে জাভাস্ক্রিপ্ট চালানোর অনুমতি দিন</translation> <translation id="1303101771013849280">HTML ফাইল বুকমার্ক করে</translation> @@ -378,6 +380,7 @@ <translation id="1361655923249334273">অব্যবহৃত</translation> <translation id="1362865166188278099">যান্ত্রিক সমস্যা হয়েছে। প্রিন্টারটি চেক করুন</translation> <translation id="1363585519747660921">ইউএসবি প্রিন্টার কনফিগার করা প্রয়োজন</translation> +<translation id="136378536198524553">পাওয়ার সেভার চালু আছে</translation> <translation id="1368603372088757436">আপনার <ph name="DEVICE_TYPE" />-এ Linux কাজ করে না। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> <translation id="1372841398847029212">আপনার অ্যাকাউন্টে সিঙ্ক করুন</translation> <translation id="1373176046406139583">'ডিভাইসের দৃশ্যমানতা' ফিচার ব্যবহার করে আপনার স্ক্রিন আনলক থাকাকালীন কারা আপনার সাথে ফাইল শেয়ার করতে পারবেন তা নিয়ন্ত্রণ করা যায়। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> @@ -647,6 +650,7 @@ <translation id="1610272688494140697">অ্যাপ সেটিংস</translation> <translation id="161042844686301425">নীলাভ</translation> <translation id="1611432201750675208">আপনার ডিভাইস লক করা আছে</translation> +<translation id="1611776894942218234">ডিভাইসটি অবশ্যই বিটা চ্যানেলে থাকতে হবে</translation> <translation id="1612019740169791082">আপনার কন্টেনারের বর্তমান কনফিগারেশন ডিস্ক রিসাইজ করা সাপোর্ট করে না। Linux-এ আগে থেকে বরাদ্দ করা জায়গার পরিমাণ অ্যাডজাস্ট করতে, ব্যাক-আপ নিয়ে নতুন কন্টেনারে ফিরিয়ে আনুন।</translation> <translation id="1613019471223620622"><ph name="DOMAIN" />-এ <ph name="USERNAME" />-এর পাসওয়ার্ড দেখুন</translation> <translation id="1613149688105334014">ডিসেম্বর ২০২২ এর পর থেকে Chrome অ্যাপের পুরনো ভার্সন আর খুলবে না। নতুন ভার্সন উপলভ্য আছে কিনা তা আপনি এই ভাবে দেখে নিতে পারেন।</translation> @@ -1211,6 +1215,7 @@ <translation id="2098805196501063469">বাকি পাসওয়ার্ড চেক করুন</translation> <translation id="2099686503067610784">সার্ভার সার্টিফিকেট "<ph name="CERTIFICATE_NAME" />" মুছবেন?</translation> <translation id="2100273922101894616">অটো সাইন-ইন</translation> +<translation id="2100986609271491802">Chromebook-এ Steam ব্যবহার করা বর্তমানে এই ডিভাইসে যাবে না</translation> <translation id="2101225219012730419">ভার্সন:</translation> <translation id="2102396546234652240">সাইটগুলিকে আপনার মাইক্রোফোন ব্যবহার করার অনুমতি দেয় না</translation> <translation id="2102495993840063010">Android অ্যাপ্লিকেশানগুলি</translation> @@ -1508,6 +1513,9 @@ <translation id="2350133097354918058">আবার লোড করা হয়েছে</translation> <translation id="2350182423316644347">অ্যাপ্লিকেশান শুরু করা হচ্ছে...</translation> <translation id="235028206512346451">আপনি ডিভাইসের সামনে থেকে সরে গেলে, অটোমেটিক আপনার স্ক্রিন লক হয়ে যাবে। আপনি ডিভাইসের সামনে আবার ফিরে এলে, আপনার স্ক্রিন দীর্ঘসময়ের জন্য চালু হয়ে যাবে। আপনি যদি লক স্ক্রিন ব্যবহার না করেন, তাহলে আপনার ডিভাইসটি লকের পরিবর্তে বন্ধ হয়ে যাবে।</translation> +<translation id="2350866610930767288"><ph name="BEGIN_PARAGRAPH1" />আপনি যদি ডেমো মোড ইনস্টলেশনের সময় রিটেলার বিক্রেতা-স্টোর আইডি কোড লেখার নির্দেশ পেয়ে থাকেন, তাহলে এটি ডানদিকে লিখুন*। অন্যথায়, আপনি ফিল্ডটি খালি রেখেই চালিয়ে যেতে পারেন।<ph name="END_PARAGRAPH1" /> + <ph name="BEGIN_PARAGRAPH2" />আপনি এখনও কোনও কোড ছাড়াই ডেমো মোড ইনস্টল করতে পারবেন, তবে আপনার স্টোরে এটি প্রযোজ্য হলে আপনাকে কোডটি লিখতেই হবে।<ph name="END_PARAGRAPH2" /> + <ph name="BEGIN_PARAGRAPH3" />*মনে রাখবেন: ডেমো মোডের কোন ভার্সনটি ডিভাইস রিসিভ করবে তা শনাক্ত করার এবং ডোমো মোডের ব্যবহার পরিমাপ করার জন্য Google এই কোডগুলি ব্যবহার করে।<ph name="END_PARAGRAPH3" /></translation> <translation id="2352495879228166246">{NUM_ITEMS,plural, =1{১টি আইটেম}one{{NUM_ITEMS}টি আইটেম}other{{NUM_ITEMS}টি আইটেম}}</translation> <translation id="2352662711729498748">< ১ এমবি</translation> <translation id="2352810082280059586">লক স্ক্রিন নোটগুলি নিজে থেকেই <ph name="LOCK_SCREEN_APP_NAME" /> এ সেভ হয়ে যায়। সবথেকে সাম্প্রতিক নোটটি লক স্ক্রিনে রয়ে যায়।</translation> @@ -1958,6 +1966,7 @@ <translation id="2776560192867872731"><ph name="DEVICE_NAME" />-এর জন্য ডিভাইসের নাম পরিবর্তন করুন</translation> <translation id="2777251078198759550">এই কন্টেনার মুছে দিন</translation> <translation id="2778471504622896352">ChromeOS লঞ্চারে রিমোট অ্যাপ যোগ করুন</translation> +<translation id="2781120507965857989">এই ডিভাইসে এবং অন্য যেকোনও জায়গায় আপনার বুকমার্ক, পাসওয়ার্ড, ইতিহাস এবং আরও অনেক কিছু পেতে সিঙ্ক চালু করুন। সার্চ এবং অন্যান্য Google পরিষেবা আপনার পছন্দমতো সাজানোর জন্য Google আপনার ইতিহাস ব্যবহার করতে পারে।</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2782104745158847185">Linux অ্যাপ ইনস্টল করার সময় সমস্যা</translation> <translation id="2783298271312924866">ডাউনলোড হয়েছে</translation> @@ -1978,6 +1987,7 @@ <translation id="2792697226874849938">বিধিনিষেধ সংক্রান্ত ছবি</translation> <translation id="2794233252405721443">সাইট অবরুদ্ধ করা হয়েছে</translation> <translation id="2794522004398861033">eSIM সেট আপ করতে ওয়াই-ফাই বা ইথারনেটে কানেক্ট করুন</translation> +<translation id="2795074478966352573">Family Link দ্বারা ম্যানেজ করা অ্যাকাউন্টগুলি এখনও ব্যবহার করা যাবে না</translation> <translation id="2795716239552913152">সাইট প্রাসঙ্গিক ফিচার অথবা তথ্য যেমন স্থানীয় সংবাদ বা আশেপাশের দোকানের জন্য সাধারণত আপনার লোকেশন ব্যবহার করে</translation> <translation id="2796740370559399562">কুকিজকে অনুমতি দেয়া চালিয়ে যান</translation> <translation id="2798347533012571708">আপডেট সেভ করুন</translation> @@ -2162,6 +2172,7 @@ <translation id="2949289451367477459">লোকেশনের ডেটা ব্যবহার করুন। লোকেশনের ডেটা অ্যাক্সেস করার অনুমতি দিয়ে অ্যাপ এবং পরিষেবাগুলিকে এই ডিভাইসের লোকেশন ব্যবহার করতে দিন। আরও সঠিকভাবে লোকেশন নির্ণয় করতে এবং লোকেশন ভিত্তিক পরিষেবাগুলিকে আরও ভাল করার জন্য Google মাঝে মাঝে লোকেশনের ডেটা সংগ্রহ করতে এবং সেগুলিকে পরিচয় গোপন রেখে ব্যবহার করতে পারে। <ph name="BEGIN_LINK1" />আরও জানুন<ph name="END_LINK1" /></translation> <translation id="2950666755714083615">আমি সাইন-আপ করতে চাই</translation> <translation id="2953019166882260872">আপনার ফোনে কেবল কানেক্ট করুন</translation> +<translation id="2953218713108551165"><ph name="SITE" />-এর জন্য বিজ্ঞপ্তির অনুমতি নেই। আপনার পরবর্তী ভিজিটে আপনাকে আবার জিজ্ঞাসা করা হবে।</translation> <translation id="2956070239128776395">বিভাগ গ্রুপে নেস্ট করা হয়েছে: <ph name="ERROR_LINE" /></translation> <translation id="2958721676848865875">প্যাক এক্সটেনশনের সতর্কীকরণ</translation> <translation id="2959127025785722291">কিছু সমস্যা হয়েছে। স্ক্যানিং সম্পূর্ণ করা যায়নি। আবার চেষ্টা করুন।</translation> @@ -2864,6 +2875,7 @@ <translation id="3665919494326051362">বর্তমান ভার্সন হল <ph name="CURRENT_VERSION" /></translation> <translation id="3670113805793654926">যেকোনও ভেন্ডর থেকে ডিভাইস</translation> <translation id="3670229581627177274">ব্লুটুথ চালু করুন</translation> +<translation id="3672663996348587094">"<ph name="EXTENSIONS_REQUESTING_ACCESS" />"-কে, <ph name="ORIGIN" />-এ অ্যাক্সেসের অনুমতি দিতে ক্লিক করুন:</translation> <translation id="3672681487849735243">একটি ফ্যাক্টরি ত্রুটি শনাক্ত করা হয়েছে</translation> <translation id="3673097791729989571">সাইন-ইন ফিচারটি <ph name="SAML_DOMAIN" /> দ্বারা হোস্ট করা হয়েছে</translation> <translation id="3673622964532248901">আপনার এই ডিভাইসে কাস্ট করার অনুমতি নেই।</translation> @@ -3376,6 +3388,7 @@ <translation id="4132183752438206707">Google Play Store-এ অ্যাপ খুঁজুন</translation> <translation id="4132364317545104286">ই-সিম প্রোফাইলের নতুন নাম দিন</translation> <translation id="4133076602192971179">পাসওয়ার্ড পরিবর্তন করতে অ্যাপটি খুলুন</translation> +<translation id="4134818201340504801">সেট-আপ সম্পূর্ণ করার জন্য পর্যাপ্ত স্টোরেজ উপলভ্য নেই। স্টোরেজ খালি করে আবার চেষ্টা করুন</translation> <translation id="4135746311382563554">Google Chrome ও Chrome OS-এর পরিষেবার অতিরিক্ত শর্তাবলী</translation> <translation id="4136203100490971508">সূর্যোদয়ের সময় নাইট লাইট নিজে থেকেই বন্ধ হয়ে যাবে</translation> <translation id="41365691917097717">চালিয়ে গেলে Android অ্যাপ তৈরি ও পরীক্ষা করার জন্য ADB ডিবাগিং চালু হয়ে যাবে। মনে রাখবেন, এই অ্যাকশন Google যাচাই করেনি এমন Android অ্যাপ ইনস্টলের অনুমতি দেয় এবং এটি বন্ধ করতে হলে ডিভাইসটিকে ফ্যাক্টরি রিসেট করতে হবে।</translation> @@ -3610,6 +3623,7 @@ <translation id="4378556263712303865">ডিভাইসের অনুরোধ</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" আনইনস্টল করতে চান?</translation> <translation id="4380648069038809855">ফুল-স্ক্রিনে ঢোকা হয়েছে</translation> +<translation id="4383048856908088702">এই ট্যাবটি ইনঅ্যাক্টিভ থাকাকালীন, মেমরি সেভার অন্যান্য টাস্কের জন্য <ph name="MEMORY_VALUE" /> মেমরি খালি করে। যেকোনও সময় <ph name="SETTINGS_LINK" /> থেকে আপনি এটি পরিবর্তন করতে পারবেন।</translation> <translation id="4384312707950789900">পছন্দের তালিকায় জুড়ুন</translation> <translation id="4384652540891215547">এক্সটেনশন সক্রিয় করুন</translation> <translation id="4384886290276344300">কীবোর্ড সেটিংস পরিবর্তন করুন</translation> @@ -3687,6 +3701,7 @@ <translation id="4451479197788154834">এই ডিভাইসে এবং আপনার Google অ্যাকাউন্টে পাসওয়ার্ড সেভ করা আছে</translation> <translation id="4451757071857432900">সাইটে থাকা ব্যাঘাত সৃষ্টিকারী বা বিভ্রান্তিকর বিজ্ঞাপন ব্লক করা হয়েছে (প্রস্তাবিত)</translation> <translation id="4453946976636652378"><ph name="SEARCH_ENGINE_NAME" />-এ সার্চ করুন অথবা ইউআরএল টাইপ করুন</translation> +<translation id="4458535500699390320">এই ট্যাবটি ইনঅ্যাক্টিভ থাকাকালীন, মেমরি সেভার অন্যান্য টাস্কের জন্য মেমরি খালি করে। আপনি সেটিংস থেকে এটি যেকোনও সময় পরিবর্তন করতে পারেন।</translation> <translation id="4459169140545916303"><ph name="DEVICE_LAST_ACTIVATED_TIME" /> দিন আগে ব্যবহার করা হয়েছে</translation> <translation id="4460014764210899310">আলাদা করুন</translation> <translation id="4462159676511157176">কাস্টম নাম সার্ভার</translation> @@ -3858,6 +3873,7 @@ <translation id="4613271546271159013">আপনি যখন একটি নতুন ট্যাব খুলবেন তখন কোন পৃষ্ঠা দেখানো হবে, একটি এক্সটেনশন তার পরিবর্তন করেছে।</translation> <translation id="4615586811063744755">কোনও কুকি বেছে নেওয়া হয়নি</translation> <translation id="461661862154729886">পাওয়ার সোর্স</translation> +<translation id="461676224702246336">এই সাইটের জন্য ক্লিক করা হলে</translation> <translation id="4617001782309103936">খুবই ছোট</translation> <translation id="4617019240346358451">"<ph name="EXTENSION_NAME" />" ব্যবহার করতে, পৃষ্ঠা আবার লোড করুন</translation> <translation id="4617270414136722281">এক্সটেনশন বিকল্প</translation> @@ -3980,6 +3996,7 @@ <translation id="4728558894243024398">প্ল্যাটফর্ম</translation> <translation id="4728570203948182358"><ph name="BEGIN_LINK" />আপনার অ্যাডমিনিস্ট্রেটর<ph name="END_LINK" /> ক্ষতিকারক সফ্টওয়্যার চেক করার বিকল্পটি বন্ধ করে দিয়েছে</translation> <translation id="4730492586225682674">লক স্ক্রিনে স্টাইলাস ব্যবহার করে নেওয়া লেটেস্ট নোট দেখানো</translation> +<translation id="4730888769809690665"><ph name="SITE" />-এর জন্য বিজ্ঞপ্তিতে অনুমতি দেওয়া হয়েছে</translation> <translation id="473140019006744096">এই আপডেটটি সম্পূর্ণ করার জন্য এই ডিভাইসে পর্যাপ্ত স্থান নেই। আপনার ডিভাইসে <ph name="NECESSARY_SPACE" /> খালি করুন এবং আবার চেষ্টা করুন।</translation> <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (বাঁদিক)</translation> <translation id="4733793249294335256">লোকেশন</translation> @@ -4281,6 +4298,7 @@ <translation id="5032430150487044192">QR কোড তৈরি করা যায়নি</translation> <translation id="5033137252639132982">মোশন সেন্সর ব্যবহার করার অনুমতি দেওয়া হয়নি</translation> <translation id="5033266061063942743">জ্যামিতিক আকৃতি</translation> +<translation id="5034000993065629381">অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন</translation> <translation id="5037676449506322593">সকল বেছে নিন</translation> <translation id="5038818366306248416"><ph name="ORIGIN" />-এ সমস্ত এক্সটেনশনে অনুমতি না দেওয়ার বিষয়টি আপনি আগে বেছে নিয়েছেন</translation> <translation id="5039696241953571917">আপনার Google অ্যাকাউন্টে সেভ করা পাসওয়ার্ড দেখুন এবং ম্যানেজ করুন</translation> @@ -4410,6 +4428,7 @@ <translation id="5161251470972801814"><ph name="VENDOR_NAME" />-এর ইউএসবি ডিভাইস</translation> <translation id="5162905305237671850"><ph name="DEVICE_TYPE" /> ব্লক করা হয়েছে</translation> <translation id="5163910114647549394">ট্যাবস্ট্রিপের শেষে ট্যাব সরানো হয়েছে</translation> +<translation id="5164530241085602114"><ph name="SITE" />-এর জন্য বিজ্ঞপ্তির অনুমতি নেই</translation> <translation id="516747639689914043">হাইপারটেক্সট ট্রান্সপোর্ট প্রোটোকল (HTTP)</translation> <translation id="5170568018924773124">ফোল্ডারে দেখান</translation> <translation id="5171045022955879922">খুঁজুন বা URL লিখুন</translation> @@ -4512,6 +4531,7 @@ <translation id="5269977353971873915">প্রিন্ট করা যায়নি</translation> <translation id="5273806377963980154">সাইটের URL এডিট করুন</translation> <translation id="5275084684151588738">ব্যবহারকারী অভিধান</translation> +<translation id="5275100789567222478">ব্যাটারির চার্জ <ph name="PERCENT" />% বা তার কম থাকলে তবেই এই মোড চালু করতে হবে</translation> <translation id="5275338516105640560">সেভ করা ট্যাব গ্রুপ বোতাম</translation> <translation id="5275352920323889391">কুকুর</translation> <translation id="527605719918376753">ট্যাব মিউট করুন</translation> @@ -4530,6 +4550,7 @@ <translation id="5285635972691565180">ডিসপ্লে <ph name="DISPLAY_ID" /></translation> <translation id="5286194356314741248">স্ক্যান হচ্ছে</translation> <translation id="5287425679749926365">আপনার অ্যাকাউন্টগুলি</translation> +<translation id="5288106344236929384">আরও অ্যাকশন, <ph name="DOMAIN" />-এ <ph name="USERNAME" />-এর জন্য 'পাসকী' বিকল্প</translation> <translation id="5288678174502918605">বন্ধ হওয়া ট্যাব পুনরায়&খুলুন</translation> <translation id="52895863590846877">পৃষ্ঠাটি <ph name="LANGUAGE" /> ভাষায় নেই</translation> <translation id="52912272896845572">ব্যক্তিগত কী ফাইলটি ভুল৷</translation> @@ -4725,6 +4746,7 @@ <translation id="5473099001878321374">এছাড়াও চালিয়ে যাওয়ার অর্থ আপনি সম্মতি জানাচ্ছেন যে Google, আপনার সন্তানের পরিষেবা প্রদানকারী এবং ডিভাইসের প্রস্তুতকারকের থেকে এই ডিভাইস আপডেট অটোমেটিক ডাউনলোড ও ইনস্টল করতে পারে এবং সেটি করার জন্য খুব সম্ভবত মোবাইল ডেটা ব্যবহার করতে পারে। এর মধ্যে কিছু অ্যাপে অ্যাপ-মধ্যস্থ কেনাকাটা অফার করা হতে পারে।</translation> <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{পিন অন্তত একটি অক্ষরের হতে হবে}one{পিন অন্তত # অক্ষরের হতে হবে}other{পিন অন্তত # অক্ষরের হতে হবে}}</translation> <translation id="5474859849784484111"><ph name="MANAGER" />-এর প্রয়োজন অনুযায়ী, আপনাকে এখনই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করতে হবে এবং একটি আপডেট ডাউনলোড করতে হবে। অথবা, মিটার্ড ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।</translation> +<translation id="5476016146231427848">Chromebook-এ Steam ব্যবহার করতে আপনার ডিভাইস রিস্টার্ট করুন</translation> <translation id="5481273127572794904">একাধিক ফাইল অটোমেটিক ডাউনলোড করার অনুমতি দেওয়া হয়নি</translation> <translation id="5481941284378890518">আশেপাশের প্রিন্টারগুলি যোগ করুন</translation> <translation id="5483785310822538350">ফাইল এবং ডিভাইসের অ্যাক্সেস প্রত্যাহার করুন</translation> @@ -4944,6 +4966,7 @@ <translation id="5683806393796685434">আপনার অ্যাক্টিভেশন কোড লিখুন</translation> <translation id="5684181005476681636">ওয়াই-ফাইয়ের বিবরণ</translation> <translation id="5684661240348539843">সম্পদ শনাক্তকারী</translation> +<translation id="5684969244627829799">ব্যবহারকারীর অ্যাকাউন্টে সাইন-ইন করে আবার চেষ্টা করুন</translation> <translation id="5687326903064479980">সময় অঞ্চল</translation> <translation id="5687935527303996204">আপনার ডিভাইস সঠিকভাবে প্লাগ-ইন করা আছে কিনা তা নিশ্চিত করুন এবং এটি বন্ধ করবেন না। ইনস্টল হতে ২০ মিনিট সময় লাগতে পারে। ইনস্টলেশন সম্পূর্ণ হলে আপনার ডিভাইস অটোমেটিক বন্ধ হয়ে যাবে।</translation> <translation id="5689516760719285838">লোকেশন</translation> @@ -5069,6 +5092,7 @@ <translation id="5805697420284793859">উইন্ডো ম্যানেজার</translation> <translation id="5806447147478173900">দেখানো সাইটগুলি মোট যতটা স্টোরেজ ব্যবহার করেছে: <ph name="TOTAL_USAGE" /></translation> <translation id="5806773519584576205">০° (ডিফল্ট)</translation> +<translation id="5810603387504252966">#borealis-enabled অবশ্যই chrome://flags-এ চালু থাকতে হবে</translation> <translation id="5810809306422959727">এই অ্যাকাউন্ট অভিভাবকীয় নিয়ন্ত্রণে রাখা যাবে না</translation> <translation id="5811614940486072060">এই ফাইলটি সাধারণত ডাউনলোড করা হয় না এবং এটি বিপজ্জনক হতে পারে।</translation> <translation id="5812674658566766066">সবগুলি বড় করুন</translation> @@ -5148,6 +5172,7 @@ <translation id="5882449899683447569">কোনও সমস্যা হয়েছে এবং আপনার পাসওয়ার্ড ইমপোর্ট করা যায়নি</translation> <translation id="5882919346125742463">পরিচিত নেটওয়ার্কগুলি</translation> <translation id="5883356647197510494"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> অটোমেটিক ব্লক করা হয়েছে</translation> +<translation id="5884447826201752041">প্রতিটি এক্সটেনশনের জন্য কাস্টমাইজ করুন</translation> <translation id="5884474295213649357">এই ট্যাব একটি USB ডিভাইসের সাথে সংযুক্ত করা আছে।</translation> <translation id="5885314688092915589">আপনার প্রতিষ্ঠান এই প্রোফাইল ম্যানেজ করবে</translation> <translation id="5886009770935151472">আঙ্গুল ১</translation> @@ -5582,6 +5607,7 @@ <translation id="6301300352769835063"><ph name="DEVICE_OS" />-এর উন্নতিতে সাহায্য করতে Google-কে আপনার হার্ডওয়্যার ডেটা ব্যবহার করার অনুমতি দিন। আপনি বাতিল করলেও, সঠিক আপডেট নির্ধারণ করতে, এই ডেটা Google-এর কাছে পাঠানো হয়, তবে তা সেভ অথবা অন্যভাবে ব্যবহার করা হয় না। g.co/flex/HWDataCollection থেকে আরও জানুন।</translation> <translation id="630292539633944562">ব্যক্তিগত তথ্যের সাজেশন</translation> <translation id="6305607932814307878">সার্বিক নীতি:</translation> +<translation id="6305909198255586420">আপনার প্রাইমারি প্রোফাইল ব্যবহার করে ইনস্টল করুন</translation> <translation id="6307990684951724544">সিস্টেম ব্যস্ত আছে</translation> <translation id="6308493641021088955"><ph name="EXTENSION_NAME" /> এক্সটেনশন দিয়ে সাইন-ইন করুন</translation> <translation id="6308937455967653460">লি&ঙ্ক এই রূপে সেভ করুন...</translation> @@ -5904,6 +5930,7 @@ <translation id="6608166463665411119">ই-সিম রিসেট করুন</translation> <translation id="6609478180749378879">আপনি 'ছদ্মবেশী মোড' থেকে বেরিয়ে আসার পরেই সাইন-ইন সংক্রান্ত ডেটা এই ডিভাইসে স্টোর করা হবে। আপনি আবার পরে এই ওয়েবসাইটে আপনার ডিভাইস দিয়ে সাইন-ইন করতে পারবেন।</translation> <translation id="6610002944194042868">অনুবাদের বিকল্প</translation> +<translation id="6611907964265870728">আপনার ডিভাইসটি ইন্টারনেটে কানেক্ট আছে কিনা দেখে নিন</translation> <translation id="6611972847767394631">এখানে আপনার ট্যাবগুলি দেখুন</translation> <translation id="6613668613087513143">এই আপডেটটি সম্পূর্ণ করার জন্য এই ডিভাইসে পর্যাপ্ত স্থান নেই। আপনার ডিভাইসে <ph name="NECESSARY_SPACE" /> খালি করুন এবং আপনার Chrome ব্রাউজার থেকে আবার চেষ্টা করুন।</translation> <translation id="6615455863669487791">আমাকে দেখান</translation> @@ -6289,6 +6316,7 @@ <translation id="697508444536771064">Linux বন্ধ করুন</translation> <translation id="6975361011348772931">পড়ার ও পরিবর্তন করার অনুরোধ জানানো হয়েছে</translation> <translation id="6978121630131642226">সার্চ ইঞ্জিনসমূহ</translation> +<translation id="6979041727349121225">পাওয়ার সেভার</translation> <translation id="6979044105893951891">ম্যানেজ করা গেস্ট সেশন লঞ্চ করে সেটি থেকে বেরিয়ে আসুন</translation> <translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">মিউট (ডিফল্ট)</translation> @@ -6341,6 +6369,7 @@ <translation id="7014174261166285193">ইনস্টলেশান ব্যর্থ হয়েছে৷</translation> <translation id="7014480873681694324">হাইলাইট সরিয়ে দিন</translation> <translation id="7014741021609395734">জুম লেভেল</translation> +<translation id="7015088858756332848">Chromebook-এ Steam চালু করা যাচ্ছে না। আবার চেষ্টা করুন</translation> <translation id="7017004637493394352">আবার "Ok Google" বলুন</translation> <translation id="7017219178341817193">একটি নতুন পৃষ্ঠা যুক্ত করুন</translation> <translation id="7017354871202642555">উইন্ডো সেট করার পরে মোড সেট করা যায় না৷</translation> @@ -6715,6 +6744,7 @@ <translation id="7409854300652085600">বুকমার্ক ইমপোর্ট করা হয়েছে।</translation> <translation id="7410344089573941623"><ph name="HOST" /> আপনার ক্যামেরা এবং মাইক্রোফোন অ্যাক্সেস করতে চায় কিনা জিজ্ঞাসা করুন</translation> <translation id="7410852728357935715">কোনও ডিভাইসে কাস্ট করুন</translation> +<translation id="7411614333737930931">ডিভাইস রিস্টার্ট করে আবার চেষ্টা করুন</translation> <translation id="741204030948306876">হ্যাঁ, আমি রাজি</translation> <translation id="7412226954991670867">GPU মেমোরি</translation> <translation id="7414464185801331860">১৮x</translation> @@ -6944,6 +6974,7 @@ <translation id="7635048370253485243">আপনার অ্যাডমিনিস্ট্রেটর পিন করেছে</translation> <translation id="7636919061354591437">এই ডিভাইসে ইনস্টল করুন</translation> <translation id="7637253234491814483">আপনার কীবোর্ডের উপরের ডানদিকের কোণে পাওয়ার বোতামের পাশে ফিঙ্গারপ্রিন্ট সেন্সর টাচ করতে বলুন। আপনার ফিঙ্গারপ্রিন্ট ডেটা সুরক্ষিতভাবে স্টোর করে রাখা হয় এবং সবসময় <ph name="DEVICE_TYPE" />-এ থাকে।</translation> +<translation id="7637272932128132922">এই ট্যাবটি ইনঅ্যাক্টিভ থাকাকালীন, মেমরি সেভার অন্যান্য টাস্কের জন্য মেমরি খালি করে। যেকোনও সময় <ph name="SETTINGS_LINK" /> থেকে আপনি এটি পরিবর্তন করতে পারবেন।</translation> <translation id="7637593984496473097">ডিস্কে যথেষ্ট জায়গা নেই</translation> <translation id="7639914187072011620">সার্ভার থেকে SAML রিডাইরেক্ট ইউআরএল পাওয়া যায়নি</translation> <translation id="764017888128728"><ph name="PASSWORD_MANAGER_BRAND" /> স্বয়ংক্রিয়ভাবে আপনার সংরক্ষণ করা পাসওয়ার্ড দিয়ে উপযুক্ত সাইটগুলিতে আপনাকে প্রবেশ করায়।</translation> @@ -7059,6 +7090,7 @@ <translation id="7728668285692163452">চ্যানেলের পরিবর্তন পরে প্রয়োগ করা হবে</translation> <translation id="7730449930968088409">আপনার স্ক্রিনের কন্টেন্ট ক্যাপচার করতে চায়</translation> <translation id="7730683939467795481">"<ph name="EXTENSION_NAME" />" এক্সটেনশনের মাধ্যমে নতুন ট্যাব পৃষ্ঠাকে ওভাররাইড করা হয়েছে</translation> +<translation id="7735165285389721951">অন্য আরেকটি Steam সেট-আপ করা হচ্ছে। আবার চেষ্ট করার আগে এটি সম্পূর্ণ হতে দিন</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"-এর সাথে পেয়ার করা হয়েছে ...</translation> <translation id="7737846262459425222">আপনি যেকোনও সময় 'সেটিংস' > 'Google Assistant' > 'স্ক্রিনের তথ্য' বিকল্প থেকে এটি পরিবর্তন করতে পারবেন।</translation> <translation id="7737948071472253612">আপনার ক্যামেরা ব্যবহার করার অনুমতি দেওয়া হয়নি</translation> @@ -7356,6 +7388,7 @@ কী ফাইল: <ph name="KEY_FILE" /> নিজের কী ফাইল কোন নিরাপদ স্থানে রাখুন৷ আপনাকে নিজের এক্সটেনশনের নতুন ভার্সন তৈরি করতে হবে৷</translation> +<translation id="8001100670809322641">কয়েক মিনিট অপেক্ষা করে আবার চেষ্টা করে দেখুন</translation> <translation id="8002274832045662704">প্রিন্টারের উন্নত কনফিগারেশন</translation> <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> আর উপলভ্য নেই</translation> <translation id="8004092996156083991">আপনার পাসওয়ার্ড যদি চুরি হয়ে যায়, আমরা তা আপনাকে জানাব।</translation> @@ -7365,6 +7398,7 @@ <translation id="8008356846765065031">ইন্টারনেট সংযোগ বিচ্ছিন্ন হয়েছে৷ অনুগ্রহ করে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন৷</translation> <translation id="8009225694047762179">পাসওয়ার্ড পরিচালনা করুন</translation> <translation id="8011372169388649948">'<ph name="BOOKMARK_TITLE" />' সরানো হয়েছে।</translation> +<translation id="8011875486979733097">Steam ইনস্টল করা যাবে না</translation> <translation id="8012647001091218357">এই মুহূর্তে আমরা আপনার পিতামাতার কাছে পৌঁছাতে পারিনি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷</translation> <translation id="8013993649590906847">যদি ছবিতে প্রয়োজনীয় বিবরণ দেওয়া না থাকে, তাহলে Chrome আপনাকে একটি বিবরণ দেওয়ার চেষ্টা করবে। বিবরণ তৈরির জন্য, Google-এ ছবি পাঠানো হয়।</translation> <translation id="8014154204619229810">আপডেটার চলছে। আবার চেক করতে মিনিটখানেকের মধ্যে রিফ্রেশ করুন।</translation> @@ -7455,6 +7489,7 @@ <translation id="808894953321890993">পাসওয়ার্ড পরিবর্তন করুন</translation> <translation id="8090234456044969073">আপনার সবচেয়ে ঘন ঘন পরিদর্শিত ওয়েবসাইটের একটি তালিকা পড়ুন</translation> <translation id="8090513782447872344">আরেকবার দেখার জন্য আপনি যেকোনও সময় ফিরে আসতে পারেন</translation> +<translation id="809312780580957751">এই ডিভাইসে Steam ইনস্টল করা যাচ্ছে না</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> এর কোনও প্রতিক্রিয়া নেই</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ড্রাইভে ব্যাক-আপ নিন। যেকোনও সময় সহজেই আপনার ডেটা ফিরিয়ে আনুন বা ডিভাইস পাল্টান। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />আপনার ব্যাক-আপ ডেটা Google-এ আপলোড করা হবে এবং আপনার Google অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করে সেগুলিকে এনক্রিপ্ট করা হবে।<ph name="END_PARAGRAPH2" /> @@ -7550,6 +7585,7 @@ <translation id="8177318697334260664">{NUM_TABS,plural, =1{ট্যাবটি নতুন উইন্ডোতে খুলুন}one{ট্যাবগুলি নতুন উইন্ডোতে খুলুন}other{ট্যাবগুলি নতুন উইন্ডোতে খুলুন}}</translation> <translation id="8179188928355984576">Android অ্যাপের সাথে ব্যবহার করা হচ্ছে না</translation> <translation id="8179976553408161302">Enter</translation> +<translation id="8180785270975217276">পাওয়ার সেভার চালু আছে</translation> <translation id="8180786512391440389">"<ph name="EXTENSION" />" উল্লিখিত অবস্থানগুলিতে ছবি, ভিডিও এবং শব্দের ফাইলগুলি পড়তে ও মুছতে পারে৷</translation> <translation id="8181215761849004992">ডোমেনে যোগ করা যাবে না। আপনার অ্যাকাউন্টে ডিভাইস যোগ করার সুবিধাগুলি যথাযথ আছে কিনা তা যাচাই করুন।</translation> <translation id="8182105986296479640">অ্যাপ্লিকেশন উত্তর দিচ্ছে না।</translation> @@ -7671,6 +7707,7 @@ <translation id="828642162569365647">ফোন থেকে আপনি কোনও তথ্য অ্যাক্সেস করলে এবং <ph name="DEVICE_TYPE" />-এ থাকা আপনার ডেটা, এই পাসওয়ার্ড বা পিন সুরক্ষিত রাখে। আপনার <ph name="DEVICE_TYPE" /> 'স্লিপ' মোড থেকে অ্যাক্টিভ হলে প্রত্যেকবার আপনাকে এটি আনলক করতে হবে।</translation> <translation id="8287902281644548111">এপিআই কল/ইউআরএল অনুযায়ী সার্চ করুন</translation> <translation id="8288032458496410887"><ph name="APP" /> আনইনস্টল করুন...</translation> +<translation id="8288539437195337464">আপনার ডিভাইসটি আপ-টু-ডেট আছে দেখে নিয়ে আবার চেষ্টা করুন</translation> <translation id="8289128870594824098">ডিস্ক সাইজ</translation> <translation id="8289509909262565712"><ph name="DEVICE_OS" />-এ স্বাগতম</translation> <translation id="8293206222192510085">বুকমার্ক যুক্ত করুন</translation> @@ -7965,6 +8002,7 @@ <translation id="8599864823732014237">এন্টারপ্রাইজে নথিভুক্ত করার প্রক্রিয়া এড়িয়ে যাবেন?</translation> <translation id="8601206103050338563">TLS WWW ক্লায়েন্ট যাচাইকরণ</translation> <translation id="8601611099293226919">Google Lens ব্যবহার করে স্ক্রিনে যা দেখছেন তা সার্চ করুন</translation> +<translation id="8602674530529411098">অ্যাপ (বিটা)</translation> <translation id="8602851771975208551">আপনার কম্পিউটারের অন্য একটি প্রোগ্রাম একটি অ্যাপ্লিকেশন জুড়েছে যা Chrome এর কাজ করার পদ্ধতিকে পাল্টে দিতে পারে৷</translation> <translation id="8605428685123651449">SQLite মেমোরি</translation> <translation id="8608618451198398104">একটি Kerberos টিকিট যোগ করুন</translation> @@ -8646,6 +8684,7 @@ <translation id="939598580284253335">পাসফ্রেজ প্রবেশ করান</translation> <translation id="939736085109172342">নতুন ফোল্ডার</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> একটি Chrome ট্যাব ও অডিও শেয়ার করছে।</translation> +<translation id="944799160843436808">Chromebook-এ Steam সেট-আপ করার সময় সমস্যা হয়েছে</translation> <translation id="945522503751344254">মতামত জানান</translation> <translation id="947329552760389097">&এলিমেন্ট ইন্সপেক্ট করুন</translation> <translation id="947526284350604411">আপনার উত্তর</translation> @@ -8671,6 +8710,7 @@ <translation id="968000525894980488">Google Play পরিষেবা চালু করুন।</translation> <translation id="968037381421390582">“<ph name="SEARCH_TERMS" />” পে&স্ট করে সার্চ করুন</translation> <translation id="969096075394517431">ভাষাগুলি পরিবর্তন করুন</translation> +<translation id="969574218206797926">মেমরি সেভার ইনঅ্যাক্টিভ ট্যাব থেকে মেমরি খালি করে যাতে অ্যাক্টিভ ট্যাব এবং অন্যান্য অ্যাপ এটি ব্যবহার করতে পারে</translation> <translation id="970047733946999531">{NUM_TABS,plural, =1{১টি ট্যাব}one{#টি ট্যাব}other{#টি ট্যাব}}</translation> <translation id="971510864672937292"><ph name="SITE_NAME" /> ও এটির অধীনে সব সাইটের জন্য সাইট ডেটা এবং অনুমতি মুছে দিতে চান?</translation> <translation id="971774202801778802">বুকমার্ক URL</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 4ae51220..a1dc1e48 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2386,6 +2386,7 @@ <translation id="3188465121994729530">Mitjana variable</translation> <translation id="3189187154924005138">Cursor gran</translation> <translation id="3190558889382726167">S'ha desat la contrasenya</translation> +<translation id="3192589799003798742">S'està configurant Steam a Chromebook</translation> <translation id="3192947282887913208">Fitxers d'àudio</translation> <translation id="3193695589337931419">Utilitats per a senyals del sistema</translation> <translation id="3194786596445804250">Mostra els detalls sobre com es permeten les galetes de tercers</translation> @@ -2525,6 +2526,7 @@ <translation id="3341699307020049241">El PIN no és correcte. Et queden <ph name="RETRIES" /> intents.</translation> <translation id="3341703758641437857">Permet l'accés als URL de fitxer</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" vol suprimir aquesta extensió.</translation> +<translation id="3343977377045378693">S'està duent a terme la configuració</translation> <translation id="3345135638360864351">La sol·licitud per accedir al lloc no s'ha pogut enviar a <ph name="NAME" />. Torneu-ho a provar.</translation> <translation id="3345634917232014253">S'ha executat una comprovació de seguretat fa una estona</translation> <translation id="3345886924813989455">No s'ha trobat cap navegador compatible</translation> @@ -2536,6 +2538,7 @@ <translation id="3354768182971982851">Passat desembre de 2022, les versions anteriors d'Aplicacions de Chrome no s'obriran en dispositius Mac. Pots comprovar si hi ha una nova versió disponible.</translation> <translation id="3354972872297836698">No s'ha pogut vincular al dispositiu <ph name="DEVICE_NAME" />; selecciona el dispositiu i torna-ho a provar</translation> <translation id="3355936511340229503">Error de connexió</translation> +<translation id="3356036636691722598">Gaudeix jugant al Chromebook</translation> <translation id="3356469410714175391">(Targeta virtual activada)</translation> <translation id="3356580349448036450">Completada</translation> <translation id="3359256513598016054">Restriccions de normes de certificats</translation> @@ -3443,6 +3446,7 @@ <translation id="4211904048067111541">Deixa d'utilitzar amb les aplicacions d'Android</translation> <translation id="42126664696688958">Exporta</translation> <translation id="42137655013211669">El servidor ha prohibit l'accés a aquest recurs.</translation> +<translation id="4214192212360095377">Desactiva ara</translation> <translation id="4217558091331485702">Analitza el fitxer abans d'obrir-lo</translation> <translation id="4217571870635786043">Dictat</translation> <translation id="4218081191298393750">Fes clic a la icona del micròfon per silenciar aquesta pestanya</translation> @@ -4336,6 +4340,7 @@ <translation id="5089763948477033443">Ansa de canvi de mida del tauler lateral</translation> <translation id="5090637338841444533">Sense permís per fer un seguiment de la posició de la càmera</translation> <translation id="5093569275467863761">Submarc d'incògnit desat a la memòria cau back-forward: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">S'està iniciant la instal·lació</translation> <translation id="5094176498302660097">Amb aquesta aplicació pots obrir i editar fitxers admesos des de l'aplicació Fitxers o des d'altres aplicacions. Si vols controlar quins fitxers s'obren amb aquesta aplicació de manera predeterminada, <ph name="BEGIN_LINK" />obtén més informació sobre com pots establir aplicacions predeterminades al dispositiu<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Comunicar-se amb aplicacions natives cooperatives</translation> <translation id="5097002363526479830">S'ha produït un error en connectar amb la xarxa "<ph name="NAME" />": <ph name="DETAILS" /></translation> @@ -6345,6 +6350,7 @@ <translation id="7014174261166285193">La instal·lació ha fallat.</translation> <translation id="7014480873681694324">Suprimeix les marques</translation> <translation id="7014741021609395734">Nivell de zoom</translation> +<translation id="7014961128696979283">Inicia Steam</translation> <translation id="7015088858756332848">No s'ha pogut iniciar Steam a Chromebook. Torna-ho a provar.</translation> <translation id="7017004637493394352">Torneu a dir "Ok Google"</translation> <translation id="7017219178341817193">Afegeix una pàgina nova</translation> @@ -6736,6 +6742,7 @@ <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> +<translation id="7424153922653300265">L'estalvi d'energia està activat</translation> <translation id="7424818322350938336">S'ha afegit la xarxa</translation> <translation id="7427315069950454694">els teus records per a avui</translation> <translation id="7427348830195639090">Pàgina en segon pla: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7975,6 +7982,7 @@ <translation id="859246725979739260">No es permet que aquest lloc web accedeixi a la teva ubicació.</translation> <translation id="8593121833493516339">Envia dades d'ús i de diagnòstic. Ajuda a millorar l'experiència a Android del teu fill enviant automàticament a Google dades de diagnòstic, del dispositiu i d'ús d'aplicacions. Aquestes dades no es faran servir per identificar el teu fill i ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i per als partners de Google, com ara els desenvolupadors d'Android. Si l'opció Activitat al web i en aplicacions addicional està activada per al teu fill, és possible que aquestes dades es desin al seu Compte de Google. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Fitxers personalitzats</translation> +<translation id="8597404194697561297">Et donem la benvinguda a Steam a Chromebook</translation> <translation id="8597845839771543242">Format de la propietat:</translation> <translation id="8599681327221583254">Una o diverses polítiques no estan configurades correctament. Contacta amb l'administrador.</translation> <translation id="8599864823732014237">Vols ometre la inscripció de l'empresa?</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 07a0ea5..77988bd 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2388,6 +2388,7 @@ <translation id="3188465121994729530">Plovoucí průměr</translation> <translation id="3189187154924005138">Velký kurzor</translation> <translation id="3190558889382726167">Heslo uloženo</translation> +<translation id="3192589799003798742">Nastavování Steamu na Chromebooku</translation> <translation id="3192947282887913208">Zvukové soubory</translation> <translation id="3193695589337931419">Nástroje pro sběr systémových signálů</translation> <translation id="3194786596445804250">Zobrazit podrobnosti o blokování souborů cookie třetích stran</translation> @@ -2527,6 +2528,7 @@ <translation id="3341699307020049241">Nesprávný PIN. Zbývá pokusů: <ph name="RETRIES" /></translation> <translation id="3341703758641437857">Umožnit přístup k adresám URL souborů</translation> <translation id="3342361181740736773">Rozšíření „<ph name="TRIGGERING_EXTENSION_NAME" />“ chce toto rozšíření odstranit.</translation> +<translation id="3343977377045378693">Probíhá nastavování</translation> <translation id="3345135638360864351">Odeslání žádosti o přístup k tomuto webu uživateli <ph name="NAME" /> se nezdařilo. Zkuste to prosím znovu.</translation> <translation id="3345634917232014253">Bezpečnostní kontrola proběhla před chvílí</translation> <translation id="3345886924813989455">Nebyl nalezen žádný podporovaný prohlížeč</translation> @@ -2538,6 +2540,7 @@ <translation id="3354768182971982851">Po prosinci 2022 již na zařízeních Mac nebude možné otevírat staré verze aplikací pro Chrome. Můžete si ověřit, zda není k dispozici nová verze.</translation> <translation id="3354972872297836698">Spárování se zařízením <ph name="DEVICE_NAME" /> se nezdařilo. Pokud to chcete zkusit znovu, vyberte zařízení</translation> <translation id="3355936511340229503">Chyba připojení</translation> +<translation id="3356036636691722598">Užijte si hraní na Chromebooku</translation> <translation id="3356469410714175391">(Virtuální karta je povolena)</translation> <translation id="3356580349448036450">Dokončeno</translation> <translation id="3359256513598016054">Omezení zásad certifikátu</translation> @@ -3445,6 +3448,7 @@ <translation id="4211904048067111541">Přestat používat s aplikacemi pro Android</translation> <translation id="42126664696688958">Exportovat</translation> <translation id="42137655013211669">Server zakázal přístup k tomuto zdroji.</translation> +<translation id="4214192212360095377">Vypnout</translation> <translation id="4217558091331485702">Před otevření soubor zkontrolujte</translation> <translation id="4217571870635786043">Diktování</translation> <translation id="4218081191298393750">Kliknutím na ikonu reproduktoru tuto kartu ztlumíte</translation> @@ -4338,6 +4342,7 @@ <translation id="5089763948477033443">Úchyt pro změnu velikosti bočního panelu</translation> <translation id="5090637338841444533">Zákaz sledovat pozici kamery</translation> <translation id="5093569275467863761">Mezipaměť pro přechod zpět nebo vpřed na anonymním dílčím rámci: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Spouští se instalace</translation> <translation id="5094176498302660097">Pomocí této aplikace můžete otevírat a upravovat podporované soubory z aplikace Soubory nebo z jiných aplikací. Pokud chcete určit, které soubory se ve výchozím nastavení otevírají v této aplikaci, přečtěte si, <ph name="BEGIN_LINK" />jak na zařízení nastavit výchozí aplikace<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Komunikovat se spolupracujícími nativními aplikacemi</translation> <translation id="5097002363526479830">Připojení k síti <ph name="NAME" /> se nezdařilo: <ph name="DETAILS" /></translation> @@ -6349,6 +6354,7 @@ <translation id="7014174261166285193">Instalace se nezdařila.</translation> <translation id="7014480873681694324">Odstranit zvýraznění</translation> <translation id="7014741021609395734">Úroveň přiblížení</translation> +<translation id="7014961128696979283">Spustit Steam</translation> <translation id="7015088858756332848">Steam se v Chromebooku nepodařilo spustit. Zkuste to znovu</translation> <translation id="7017004637493394352">Řekněte „Ok Google“ ještě jednou</translation> <translation id="7017219178341817193">Přidat novou stránku</translation> @@ -6740,6 +6746,7 @@ <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> +<translation id="7424153922653300265">Byl zapnut Spořič energie</translation> <translation id="7424818322350938336">Síť byla přidána</translation> <translation id="7427315069950454694">vaše vzpomínky pro dnešní den</translation> <translation id="7427348830195639090">Stránka na pozadí: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7978,6 +7985,7 @@ <translation id="859246725979739260">Tomuto webu byl přístup k vaší poloze zablokován.</translation> <translation id="8593121833493516339">Odesílat údaje o využití a diagnostice. Pomozte prostředí Android svého dítěte zlepšit tím, že necháte do Googlu automaticky odesílat diagnostické údaje a údaje o využití zařízení a aplikací. Tyto údaje nebudou používány ke zjištění totožnosti dítěte a pomohou nám se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Bude-li mít dítě zapnutou ještě Aktivitu na webu a v aplikacích, mohou se tato data ukládat do jeho účtu Google. <ph name="BEGIN_LINK1" />Další informace<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Vlastní soubory</translation> +<translation id="8597404194697561297">Vítá vás Steam na Chromebooku</translation> <translation id="8597845839771543242">Formát vlastnosti:</translation> <translation id="8599681327221583254">Nejméně jedna zásada není nakonfigurována správně. Obraťte se na administrátora.</translation> <translation id="8599864823732014237">Přeskočit podnikovou registraci?</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index aa83743..76d2b3f 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2404,6 +2404,7 @@ <translation id="3188465121994729530">Cyfartaledd Symudol</translation> <translation id="3189187154924005138">Cyrchwr mawr</translation> <translation id="3190558889382726167">Mae'r cyfrinair wedi'i gadw</translation> +<translation id="3192589799003798742">Wrthi'n gosod Steam ar Chromebook</translation> <translation id="3192947282887913208">Ffeiliau Sain</translation> <translation id="3193695589337931419">Cyfleustodau Signalau System</translation> <translation id="3194786596445804250">Dangos manylion am rwystro cwcis trydydd parti</translation> @@ -2543,6 +2544,7 @@ <translation id="3341699307020049241">PIN anghywir. Mae gennych <ph name="RETRIES" /> ymgais ar ôl.</translation> <translation id="3341703758641437857">Caniatáu mynediad at URL ffeiliau</translation> <translation id="3342361181740736773">Hoffai "<ph name="TRIGGERING_EXTENSION_NAME" />" dynnu'r estyniad hwn.</translation> +<translation id="3343977377045378693">Wrthi'n gosod</translation> <translation id="3345135638360864351">Ni ellid anfon eich cais i gael mynediad at y wefan hon at <ph name="NAME" />. Rhowch gynnig arall arni.</translation> <translation id="3345634917232014253">Gwnaeth y gwiriad diogelwch redeg eiliad yn ôl</translation> <translation id="3345886924813989455">Ni chanfuwyd porwr a gefnogir</translation> @@ -2554,6 +2556,7 @@ <translation id="3354768182971982851">Ni fydd hen fersiynau o apiau Chrome yn agor ar ddyfeisiau Mac ar ôl Rhagfyr 2022. Gallwch wirio a oes fersiwn newydd ar gael.</translation> <translation id="3354972872297836698">Ni fu modd paru i'r ddyfais <ph name="DEVICE_NAME" />; dewiswch ddyfais i roi cynnig arall arni</translation> <translation id="3355936511340229503">Gwall wrth gysylltu</translation> +<translation id="3356036636691722598">Mwynhewch chwarae gemau ar eich Chromebook</translation> <translation id="3356469410714175391">(Galluogwyd y cerdyn rhithwir)</translation> <translation id="3356580349448036450">Wedi'i gwblhau</translation> <translation id="3359256513598016054">Cyfyngiadau Polisi Tystysgrif</translation> @@ -3462,6 +3465,7 @@ <translation id="4211904048067111541">Stopio defnyddio gydag apiau Android</translation> <translation id="42126664696688958">Allforio</translation> <translation id="42137655013211669">Gwaharddwyd mynediad at yr adnodd hwn gan y gweinydd.</translation> +<translation id="4214192212360095377">Diffodd Nawr</translation> <translation id="4217558091331485702">Sganiwch cyn agor</translation> <translation id="4217571870635786043">Arddweud</translation> <translation id="4218081191298393750">Cliciwch yr eicon seinydd i ddistewi'r tab hwn</translation> @@ -4355,6 +4359,7 @@ <translation id="5089763948477033443">Bachyn Ailfeintio y Panel Ochr</translation> <translation id="5090637338841444533">Ni chaniateir i olrhain safle eich camera</translation> <translation id="5093569275467863761">Is-ffrâm Anhysbys yn y Storfa Yn ôl/Ymlaen: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Dechrau gosod</translation> <translation id="5094176498302660097">Gallwch agor a golygu ffeiliau a gefnogir gyda'r ap hwn o'r ap Files ac apiau eraill. I reoli pa ffeiliau sy'n agor ap hwn yn ddiofyn, <ph name="BEGIN_LINK" />dysgwch sut i osod apiau diofyn ar eich dyfais<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Cyfathrebu ag apiau brodorol sy'n cydweithredu</translation> <translation id="5097002363526479830">Wedi methu â chysylltu â'r rhwydwaith '<ph name="NAME" />': <ph name="DETAILS" /></translation> @@ -6373,6 +6378,7 @@ <translation id="7014174261166285193">Methwyd â gosod yr eitem.</translation> <translation id="7014480873681694324">Tynnu'r Amlygu</translation> <translation id="7014741021609395734">Lefel chwyddo</translation> +<translation id="7014961128696979283">Lansio Steam</translation> <translation id="7015088858756332848">Methu â lansio Steam ar Chromebook. Rhowch gynnig arall arni</translation> <translation id="7017004637493394352">Dywedwch "Ok Google" eto</translation> <translation id="7017219178341817193">Ychwanegu tudalen newydd</translation> @@ -6764,6 +6770,7 @@ <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> +<translation id="7424153922653300265">Mae'r Arbedwr Ynni wedi'i Droi Ymlaen</translation> <translation id="7424818322350938336">Ychwanegwyd y rhwydwaith</translation> <translation id="7427315069950454694">eich atgofion am heddiw</translation> <translation id="7427348830195639090">Tudalen Gefndir: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -8001,6 +8008,7 @@ <translation id="859246725979739260">Mae'r wefan hon wedi'i rhwystro rhag cael mynediad at eich lleoliad.</translation> <translation id="8593121833493516339">Anfon data defnydd a diagnostig. Helpwch i wella profiad Android eich plentyn drwy anfon data diagnostig, dyfais ac ap yn awtomatig at Google. Ni ddefnyddir hwn i adnabod eich plentyn a bydd yn helpu sefydlogrwydd system ac ap a gwelliannau eraill. Bydd rhywfaint o ddata cyfanredol hefyd yn helpu apiau a phartneriaid Google, megis datblygwyr Android. Os yw Gweithgarwch ar y We ac Apiau ychwanegol wedi'i droi ymlaen ar gyfer eich plentyn, gellir cadw'r data hyn i'w gyfrif Google. <ph name="BEGIN_LINK1" />Dysgu rhagor<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Ffeiliau Personol</translation> +<translation id="8597404194697561297">Croeso i Steam ar Chromebook</translation> <translation id="8597845839771543242">Fformat priodwedd:</translation> <translation id="8599681327221583254">Nid yw un neu fwy o bolisïau wedi'u ffurfweddu'n gywir. Cysylltwch â'ch gweinyddwr</translation> <translation id="8599864823732014237">Hepgor cofrestru Enterprise?</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 5bfd4c2c..e130ffc 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -2402,6 +2402,7 @@ <translation id="3188465121994729530">Glidende gennemsnit</translation> <translation id="3189187154924005138">Stor markør</translation> <translation id="3190558889382726167">Adgangskoden er blevet gemt</translation> +<translation id="3192589799003798742">Sådan konfigurerer du Steam på Chromebook</translation> <translation id="3192947282887913208">Lydfiler</translation> <translation id="3193695589337931419">Værktøjer til indsamling af systemsignaler</translation> <translation id="3194786596445804250">Vis oplysninger om blokering af tredjepartscookies</translation> @@ -2541,6 +2542,7 @@ <translation id="3341699307020049241">Pinkoden er forkert. Du har <ph name="RETRIES" /> forsøg tilbage.</translation> <translation id="3341703758641437857">Tillad adgang til webadresser på filer</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" vil gerne fjerne denne udvidelse.</translation> +<translation id="3343977377045378693">Gennemfører konfiguration</translation> <translation id="3345135638360864351">Din anmodning om at få adgang til dette website kunne ikke sendes til <ph name="NAME" />. Prøv igen.</translation> <translation id="3345634917232014253">Sikkerhedstjekket blev udført for et øjeblik siden</translation> <translation id="3345886924813989455">Der blev ikke fundet en understøttet browser</translation> @@ -2552,6 +2554,7 @@ <translation id="3354768182971982851">Gamle versioner af Chrome-apps kan ikke åbnes på Mac-enheder efter december 2022. Du kan tjekke, om en ny version er tilgængelig.</translation> <translation id="3354972872297836698">Parringen med enheden <ph name="DEVICE_NAME" /> mislykkedes. Vælg en enhed for at prøve igen</translation> <translation id="3355936511340229503">Forbindelsesfejl</translation> +<translation id="3356036636691722598">Spil på din Chromebook</translation> <translation id="3356469410714175391">(Virtuelt kort er aktiveret)</translation> <translation id="3356580349448036450">Fuldført</translation> <translation id="3359256513598016054">Begrænsninger for certifikatpolitik</translation> @@ -3460,6 +3463,7 @@ <translation id="4211904048067111541">Brug ikke med Android-apps</translation> <translation id="42126664696688958">Eksportér</translation> <translation id="42137655013211669">Serveren har forbudt dig adgang til denne ressource.</translation> +<translation id="4214192212360095377">Deaktiver nu</translation> <translation id="4217558091331485702">Scan før åbning</translation> <translation id="4217571870635786043">Diktering</translation> <translation id="4218081191298393750">Klik på højttalerikonet for at slå lyden fra på denne fane</translation> @@ -4354,6 +4358,7 @@ <translation id="5089763948477033443">Sidepanelets tilpasningshåndtag</translation> <translation id="5090637338841444533">Har ikke tilladelse til at spore din kameraposition</translation> <translation id="5093569275467863761">Inkognito-underramme i back/forward-cache: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Starter installation</translation> <translation id="5094176498302660097">Du kan åbne og redigere understøttede filer med denne app via appen Filer eller andre apps. Hvis du vil styre, hvilke filer der som standard skal åbnes i denne app, kan du <ph name="BEGIN_LINK" />se, hvordan du angiver standardapps på din enhed<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Kommunikere med indbyggede apps</translation> <translation id="5097002363526479830">Der kunne ikke oprettes forbindelse til netværket "<ph name="NAME" />": <ph name="DETAILS" /></translation> @@ -6366,6 +6371,7 @@ <translation id="7014174261166285193">Installationen mislykkedes.</translation> <translation id="7014480873681694324">Fjern fremhævning</translation> <translation id="7014741021609395734">Zoomniveau</translation> +<translation id="7014961128696979283">Åbn Steam</translation> <translation id="7015088858756332848">Steam kunne ikke åbnes på Chromebook. Prøv igen</translation> <translation id="7017004637493394352">Sig "Hey Google" igen</translation> <translation id="7017219178341817193">Tilføj en ny side</translation> @@ -6757,6 +6763,7 @@ <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> +<translation id="7424153922653300265">Energisparefunktion er aktiveret</translation> <translation id="7424818322350938336">Netværket er tilføjet</translation> <translation id="7427315069950454694">dine minder i dag</translation> <translation id="7427348830195639090">Baggrundsside: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7994,6 +8001,7 @@ <translation id="859246725979739260">Dette website er blevet blokeret, så det ikke kan få adgang til din lokation.</translation> <translation id="8593121833493516339">Send brugs- og diagnosticeringsdata. Hjælp med at forbedre dit barns Android-oplevelse ved automatisk at sende diagnosticerings- og enhedsdata samt data om brug af apps til Google. Disse data bruges ikke til at identificere dit barn. De bruges kun til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret for dit barn, gemmes disse data muligvis på barnets Google-konto. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Tilpassede filer</translation> +<translation id="8597404194697561297">Velkommen til Steam på Chromebook</translation> <translation id="8597845839771543242">Ejendomsformat:</translation> <translation id="8599681327221583254">En eller flere politikker er ikke konfigureret korrekt. Kontakt din administrator</translation> <translation id="8599864823732014237">Vil du springe virksomhedstilmeldingen over?</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 1885c9c..ea42dd502 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -2401,6 +2401,7 @@ <translation id="3188465121994729530">Μετακίνηση μέσου όρου</translation> <translation id="3189187154924005138">Μεγάλος δείκτης ποντικιού</translation> <translation id="3190558889382726167">Ο κωδικός πρόσβασης αποθηκεύτηκε</translation> +<translation id="3192589799003798742">Ρύθμιση του Steam στο Chromebook</translation> <translation id="3192947282887913208">Αρχεία ήχου</translation> <translation id="3193695589337931419">Βοηθητικά προγράμματα σημάτων συστήματος</translation> <translation id="3194786596445804250">Εμφάνιση λεπτομερειών σχετικά με τον αποκλεισμό cookie τρίτου μέρους</translation> @@ -2540,6 +2541,7 @@ <translation id="3341699307020049241">Λάθος PIN. Σας απομένουν <ph name="RETRIES" /> προσπάθειες.</translation> <translation id="3341703758641437857">Να επιτρέπεται η πρόσβαση σε διευθύνσεις URL αρχείων</translation> <translation id="3342361181740736773">Η επέκταση "<ph name="TRIGGERING_EXTENSION_NAME" />" θέλει να καταργήσει αυτήν την επέκταση.</translation> +<translation id="3343977377045378693">Πραγματοποιείται ρύθμιση</translation> <translation id="3345135638360864351">Δεν ήταν δυνατή η αποστολή του αιτήματος πρόσβασής σας σε αυτόν τον ιστότοπο σε <ph name="NAME" />. Δοκιμάστε ξανά.</translation> <translation id="3345634917232014253">Ο έλεγχος ασφαλείας εκτελέστηκε πριν από ένα λεπτό.</translation> <translation id="3345886924813989455">Δεν βρέθηκε υποστηριζόμενο πρόγραμμα περιήγησης</translation> @@ -2551,6 +2553,7 @@ <translation id="3354768182971982851">Οι παλιές εκδόσεις των Εφαρμογών Chrome δεν θα ανοίγουν σε συσκευές Mac μετά τον Δεκέμβριο του 2022. Μπορείτε να ελέγξετε αν υπάρχει διαθέσιμη μια νέα έκδοση.</translation> <translation id="3354972872297836698">Δεν ήταν δυνατή η σύζευξη με τη συσκευή <ph name="DEVICE_NAME" />, επιλέξτε συσκευή για να δοκιμάσετε ξανά</translation> <translation id="3355936511340229503">Σφάλμα σύνδεσης</translation> +<translation id="3356036636691722598">Απολαύστε το gaming στο Chromebook</translation> <translation id="3356469410714175391">(Η εικονική κάρτα έχει ενεργοποιηθεί)</translation> <translation id="3356580349448036450">Ολοκληρώθηκε</translation> <translation id="3359256513598016054">Περιορισμοί πολιτικής πιστοποιητικού</translation> @@ -3459,6 +3462,7 @@ <translation id="4211904048067111541">Διακοπή χρήσης με εφαρμογές Android</translation> <translation id="42126664696688958">Εξαγωγή</translation> <translation id="42137655013211669">Η πρόσβαση σε αυτόν τον πόρο απαγορεύεται από το διακομιστή.</translation> +<translation id="4214192212360095377">Απενεργοποίηση τώρα</translation> <translation id="4217558091331485702">Σάρωση πριν από το άνοιγμα</translation> <translation id="4217571870635786043">Υπαγόρευση</translation> <translation id="4218081191298393750">Κάντε κλικ στο εικονίδιο ηχείου για σίγαση της καρτέλας</translation> @@ -4353,6 +4357,7 @@ <translation id="5089763948477033443">Δείκτης αλλαγής μεγέθους πλαϊνού πλαισίου</translation> <translation id="5090637338841444533">Δεν επιτρέπεται να παρακολουθούν τη θέση της κάμεράς σας</translation> <translation id="5093569275467863761">Υποπλαίσιο ανώνυμης περιήγησης αποθηκευμένο στην κρυφή μνήμη πίσω-εμπρός: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Έναρξη εγκατάστασης</translation> <translation id="5094176498302660097">Μπορείτε να ανοίξετε και να επεξεργαστείτε υποστηριζόμενα αρχεία με αυτήν την εφαρμογή από την εφαρμογή Αρχεία ή από άλλες εφαρμογές. Για να ελέγξετε ποια αρχεία ανοίγουν αυτήν την εφαρμογή από προεπιλογή, <ph name="BEGIN_LINK" />μάθετε πώς να ορίσετε προεπιλεγμένες εφαρμογές στη συσκευή σας<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Επικοινωνία με συνεργαζόμενες εγγενείς εφαρμογές</translation> <translation id="5097002363526479830">Δεν ήταν δυνατή η σύνδεση στο δίκτυο '<ph name="NAME" />': <ph name="DETAILS" /></translation> @@ -6364,6 +6369,7 @@ <translation id="7014174261166285193">Η εγκατάσταση απέτυχε.</translation> <translation id="7014480873681694324">Κατάργηση επισήμανσης</translation> <translation id="7014741021609395734">Επίπεδο εστίασης</translation> +<translation id="7014961128696979283">Εκκίνηση Steam</translation> <translation id="7015088858756332848">Δεν ήταν δυνατή η εκκίνηση του Steam στο Chromebook. Δοκιμάστε ξανά</translation> <translation id="7017004637493394352">Εκφωνήστε ξανά "Ok Google"</translation> <translation id="7017219178341817193">Προσθήκη νέας σελίδας</translation> @@ -6755,6 +6761,7 @@ <translation id="7423425410216218516">Η ορατότητα είναι ενεργή για <ph name="MINUTES" /> λεπτά.</translation> <translation id="7423513079490750513">Κατάργηση <ph name="INPUT_METHOD_NAME" /></translation> <translation id="7423807071740419372">Απαιτείται άδεια για την εκτέλεση της εφαρμογής <ph name="APP_NAME" /></translation> +<translation id="7424153922653300265">Η Εξοικονόμηση ενέργειας ενεργοποιήθηκε</translation> <translation id="7424818322350938336">Προσθήκη δικτύου</translation> <translation id="7427315069950454694">οι αναμνήσεις σας για σήμερα</translation> <translation id="7427348830195639090"> σελίδα: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7993,6 +8000,7 @@ <translation id="859246725979739260">Η πρόσβαση αυτού του ιστοτόπου στην τοποθεσία σας έχει αποκλειστεί.</translation> <translation id="8593121833493516339">Αποστολή δεδομένων χρήσης και διαγνωστικών. Συμβάλλετε στη βελτίωση της εμπειρίας Android του παιδιού σας με την αυτόματη αποστολή διαγνωστικών δεδομένων και δεδομένων συσκευής και χρήσης εφαρμογών στην Google. Αυτά τα δεδομένα δεν θα χρησιμοποιηθούν για την ταυτοποίηση του παιδιού σας και θα βοηθήσουν με τη σταθερότητα του συστήματος και των εφαρμογών και την παροχή άλλων βελτιώσεων. Ορισμένα συγκεντρωτικά δεδομένα θα βοηθήσουν επίσης τις εφαρμογές και τους συνεργάτες της Google, όπως τους προγραμματιστές Android. Εάν είναι ενεργή η πρόσθετη Δραστηριότητα ιστού και εφαρμογών για το παιδί σας, αυτά τα δεδομένα μπορεί να αποθηκευτούν στον Λογαριασμό του Google. <ph name="BEGIN_LINK1" />Μάθετε περισσότερα<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Προσαρμοσμένα αρχεία</translation> +<translation id="8597404194697561297">Καλώς ορίσατε στο Steam για Chromebook</translation> <translation id="8597845839771543242">Μορφή ιδιότητας:</translation> <translation id="8599681327221583254">Μία ή περισσότερες πολιτικές δεν έχουν διαμορφωθεί σωστά. Επικοινωνήστε με τον διαχειριστή.</translation> <translation id="8599864823732014237">Παράβλεψη εγγραφής επιχείρησης;</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index d34f4c3..706b773e 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2383,6 +2383,7 @@ <translation id="3188465121994729530">Promedio móvil</translation> <translation id="3189187154924005138">Cursor grande</translation> <translation id="3190558889382726167">Se guardó la contraseña</translation> +<translation id="3192589799003798742">Configurando Steam en la Chromebook</translation> <translation id="3192947282887913208">Archivos de audio</translation> <translation id="3193695589337931419">Utilidades de las indicaciones del sistema</translation> <translation id="3194786596445804250">Mostrar detalles sobre cómo bloquear cookies de terceros</translation> @@ -2522,6 +2523,7 @@ <translation id="3341699307020049241">El PIN es incorrecto. Te quedan <ph name="RETRIES" /> intentos.</translation> <translation id="3341703758641437857">Permitir el acceso a las URL del archivo</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" desea quitar esta extensión.</translation> +<translation id="3343977377045378693">Realizando la configuración</translation> <translation id="3345135638360864351">No se pudo enviar la solicitud de acceso al sitio a <ph name="NAME" />. Vuelve a intentarlo.</translation> <translation id="3345634917232014253">Hace un momento, se ejecutó la verificación de seguridad</translation> <translation id="3345886924813989455">No se ha encontrado el navegador compatible</translation> @@ -2533,6 +2535,7 @@ <translation id="3354768182971982851">Las versiones anteriores de las Apps de Chrome dejarán de funcionar en dispositivos con Mac después de diciembre de 2022. Puedes comprobar si hay una nueva versión disponible.</translation> <translation id="3354972872297836698">No se pudo vincular con el dispositivo <ph name="DEVICE_NAME" />; selecciónalo y vuelve a intentarlo</translation> <translation id="3355936511340229503">Error de conexión</translation> +<translation id="3356036636691722598">Disfruta los juegos en tu Chromebook</translation> <translation id="3356469410714175391">(Tarjeta virtual habilitada)</translation> <translation id="3356580349448036450">Completo</translation> <translation id="3359256513598016054">Restricciones de directivas para certificados</translation> @@ -3441,6 +3444,7 @@ <translation id="4211904048067111541">Dejar de usar en las apps para Android</translation> <translation id="42126664696688958">Exportar</translation> <translation id="42137655013211669">El servidor prohibió el acceso a este recurso.</translation> +<translation id="4214192212360095377">Desactivar ahora</translation> <translation id="4217558091331485702">Analizar el archivo antes de abrirlo</translation> <translation id="4217571870635786043">Dictado</translation> <translation id="4218081191298393750">Haz clic en el ícono de altavoz para silenciar esta pestaña</translation> @@ -4334,6 +4338,7 @@ <translation id="5089763948477033443">Controlador de cambio de tamaño del panel lateral</translation> <translation id="5090637338841444533">No puede realizar un seguimiento de la posición de la cámara</translation> <translation id="5093569275467863761">Submarco de incógnito en la Memoria caché atrás/adelante: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Comenzando la instalación</translation> <translation id="5094176498302660097">Puedes abrir y editar los archivos compatibles con esta app desde la app de archivos o desde otras apps. A fin de controlar qué archivos se abren en esta app de forma predeterminada, <ph name="BEGIN_LINK" />obtén más información para establecer apps predeterminadas en tu dispositivo<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Comunicarse con aplicaciones nativas en cooperación</translation> <translation id="5097002363526479830">Error al conectar a la red "<ph name="NAME" />": <ph name="DETAILS" /></translation> @@ -6344,6 +6349,7 @@ <translation id="7014174261166285193">Error de instalación</translation> <translation id="7014480873681694324">Dejar de destacar</translation> <translation id="7014741021609395734">Nivel del zoom</translation> +<translation id="7014961128696979283">Iniciar Steam</translation> <translation id="7015088858756332848">No se pudo iniciar Steam en la Chromebook. Vuelve a intentarlo.</translation> <translation id="7017004637493394352">Di "OK Google" otra vez.</translation> <translation id="7017219178341817193">Agregar nueva página</translation> @@ -6735,6 +6741,7 @@ <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> +<translation id="7424153922653300265">Se activó el Ahorro de energía</translation> <translation id="7424818322350938336">Se agregó una red</translation> <translation id="7427315069950454694">tus recuerdos para hoy</translation> <translation id="7427348830195639090">Página de fondo: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7973,6 +7980,7 @@ <translation id="859246725979739260">Este sitio no tiene permiso para acceder a tu ubicación.</translation> <translation id="8593121833493516339">Envía datos de uso y diagnóstico. Para ayudar a mejorar la experiencia de Android de tu hijo, envía a Google datos de diagnóstico y uso de dispositivos y apps de forma automática. Esta información no se usará para identificar a tu hijo y ayudará a lograr la estabilidad de las apps y el sistema, entre otras mejoras. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android. Si habilitaste la "Actividad de web y de aplicaciones adicional" en la Cuenta de Google de tu hijo, es posible que se almacenen estos datos en esa cuenta. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Archivos personalizados</translation> +<translation id="8597404194697561297">Te damos la bienvenida a Steam en la Chromebook</translation> <translation id="8597845839771543242">Formato de la propiedad:</translation> <translation id="8599681327221583254">Hay una o más políticas que no se configuraron correctamente. Comunícate con tu administrador</translation> <translation id="8599864823732014237">¿Deseas omitir la inscripción empresarial?</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index eda50e2e..c169fa1 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2387,6 +2387,7 @@ <translation id="3188465121994729530">Media móvil</translation> <translation id="3189187154924005138">Cursor grande</translation> <translation id="3190558889382726167">Contraseña guardada</translation> +<translation id="3192589799003798742">Configurando Steam en Chromebook</translation> <translation id="3192947282887913208">Archivos de audio</translation> <translation id="3193695589337931419">Utilidades de señales del sistema</translation> <translation id="3194786596445804250">Muestra información sobre cómo bloquear cookies de terceros</translation> @@ -2526,6 +2527,7 @@ <translation id="3341699307020049241">PIN incorrecto. Te quedan <ph name="RETRIES" /> intentos.</translation> <translation id="3341703758641437857">Permitir acceso a URL de archivo</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" quiere quitar esta extensión.</translation> +<translation id="3343977377045378693">Configurando</translation> <translation id="3345135638360864351">No se ha podido enviar la solicitud de acceso a este sitio a <ph name="NAME" />. Vuelve a intentarlo.</translation> <translation id="3345634917232014253">La comprobación de seguridad se ha ejecutado hace un momento</translation> <translation id="3345886924813989455">No se ha encontrado ningún navegador compatible.</translation> @@ -2537,6 +2539,7 @@ <translation id="3354768182971982851">Las versiones antiguas de las aplicaciones de Chrome no se abrirán en dispositivos Mac después de diciembre del 2022. Puedes comprobar si hay una versión nueva disponible.</translation> <translation id="3354972872297836698">No se ha podido emparejar con el dispositivo <ph name="DEVICE_NAME" />; selecciona el dispositivo para volver a intentarlo</translation> <translation id="3355936511340229503">Error de conexión</translation> +<translation id="3356036636691722598">Disfruta jugando en tu Chromebook</translation> <translation id="3356469410714175391">(Tarjeta virtual habilitada)</translation> <translation id="3356580349448036450">Completo</translation> <translation id="3359256513598016054">Restricciones de políticas de certificados</translation> @@ -3444,6 +3447,7 @@ <translation id="4211904048067111541">Dejar de usar con aplicaciones Android</translation> <translation id="42126664696688958">Exportar</translation> <translation id="42137655013211669">El servidor ha prohibido el acceso a este recurso.</translation> +<translation id="4214192212360095377">Desactivar ahora</translation> <translation id="4217558091331485702">Analízalo antes de abrirlo</translation> <translation id="4217571870635786043">Dictado</translation> <translation id="4218081191298393750">Haz clic en el icono de altavoz para silenciar esta pestaña</translation> @@ -4337,6 +4341,7 @@ <translation id="5089763948477033443">Controlador de tamaño del panel lateral</translation> <translation id="5090637338841444533">No puede monitorizar la posición de la cámara</translation> <translation id="5093569275467863761">Submarco de incógnito almacenado en la caché de páginas completas: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Iniciando instalación</translation> <translation id="5094176498302660097">Puedes abrir y editar archivos compatibles con esta aplicación desde la aplicación Archivos u otras aplicaciones. Para controlar qué archivos se abren con esta aplicación de forma predeterminada, <ph name="BEGIN_LINK" />consulta cómo establecer aplicaciones predeterminadas en tu dispositivo<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Comunicarse con aplicaciones nativas cooperativas</translation> <translation id="5097002363526479830">Error al establecer conexión con la red "<ph name="NAME" />": <ph name="DETAILS" /></translation> @@ -6347,6 +6352,7 @@ <translation id="7014174261166285193">Error de instalación</translation> <translation id="7014480873681694324">Eliminar resaltado</translation> <translation id="7014741021609395734">Nivel de zoom</translation> +<translation id="7014961128696979283">Abrir Steam</translation> <translation id="7015088858756332848">No se ha podido iniciar Steam en Chromebook. Vuelve a intentarlo.</translation> <translation id="7017004637493394352">Di otra vez "Hey Google"</translation> <translation id="7017219178341817193">Añadir una nueva página</translation> @@ -6738,6 +6744,7 @@ <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> +<translation id="7424153922653300265">Ahorro de energía activado</translation> <translation id="7424818322350938336">Red añadida</translation> <translation id="7427315069950454694">tus recuerdos de hoy</translation> <translation id="7427348830195639090">Página en segundo plano: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7976,6 +7983,7 @@ <translation id="859246725979739260">Este sitio web no tiene permiso para acceder a tu ubicación.</translation> <translation id="8593121833493516339">Enviar datos de uso y diagnóstico. Contribuye a mejorar la experiencia de Android de tu hijo enviando automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos no se usarán para identificar a tu hijo, sino para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en la cuenta de Google de tu hijo. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Archivos personalizados</translation> +<translation id="8597404194697561297">Te damos la bienvenida a Steam en Chromebook</translation> <translation id="8597845839771543242">Formato de propiedad:</translation> <translation id="8599681327221583254">Una o más políticas no se han configurado correctamente. Ponte en contacto con tu administrador.</translation> <translation id="8599864823732014237">¿Saltar registro de empresa?</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index e3b17a9..2371bfb 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -2398,6 +2398,7 @@ <translation id="3188465121994729530">میانگین متحرک</translation> <translation id="3189187154924005138">نشانگر بزرگ</translation> <translation id="3190558889382726167">گذرواژه ذخیره شد</translation> +<translation id="3192589799003798742">راهاندازی Steam در Chromebook</translation> <translation id="3192947282887913208">فایلهای صوتی</translation> <translation id="3193695589337931419">نرمافزارهای سودمند جمعآوری سیگنالهای سیستم</translation> <translation id="3194786596445804250">نمایش جزئیات مربوط به مسدود کردن کوکیهای شخص ثالث</translation> @@ -2537,6 +2538,7 @@ <translation id="3341699307020049241">پین اشتباه است. <ph name="RETRIES" /> بار دیگر میتوانید امتحان کنید.</translation> <translation id="3341703758641437857">اجازهٔ دسترسی به نشانیهای وب فایل</translation> <translation id="3342361181740736773">«<ph name="TRIGGERING_EXTENSION_NAME" />» میخواهد این افزونه را بردارد.</translation> +<translation id="3343977377045378693">درحال اجرای راهاندازی</translation> <translation id="3345135638360864351">درخواست شما برای دسترسی به این سایت به <ph name="NAME" /> ارسال نشد. لطفاً دوباره امتحان کنید.</translation> <translation id="3345634917232014253">«بررسی ایمنی» یک لحظه پیش انجام شد</translation> <translation id="3345886924813989455">مرورگر پشتیبانی شدهای یافت نشد</translation> @@ -2548,6 +2550,7 @@ <translation id="3354768182971982851">نسخههای قدیمی «برنامههای Chrome» بعداز دسامبر ۲۰۲۲ در دستگاههای Mac باز نخواهند شد. میتوانید بررسی کنید که آیا نسخه جدیدی دردسترس است یا نه.</translation> <translation id="3354972872297836698">با دستگاه <ph name="DEVICE_NAME" /> مرتبط نشد، دستگاه را برای امتحان مجدد انتخاب کنید</translation> <translation id="3355936511340229503">خطای اتصال</translation> +<translation id="3356036636691722598">از بازی در Chromebook لذت ببرید</translation> <translation id="3356469410714175391">(کارت مجازی فعال است)</translation> <translation id="3356580349448036450">کامل</translation> <translation id="3359256513598016054">محدودیتهای سیاست گواهی</translation> @@ -3456,6 +3459,7 @@ <translation id="4211904048067111541">توقف استفاده در برنامههای Android</translation> <translation id="42126664696688958">صادر کردن</translation> <translation id="42137655013211669">سرور، دسترسی به این منبع را ممنوع کرد.</translation> +<translation id="4214192212360095377">اکنون خاموش شود</translation> <translation id="4217558091331485702">قبلاز باز کردن اسکن کنید</translation> <translation id="4217571870635786043">املا</translation> <translation id="4218081191298393750">برای بیصدا کردن این برگه، روی نماد بلندگو کلیک کنید</translation> @@ -4350,6 +4354,7 @@ <translation id="5089763948477033443">دسته تغییر اندازه پانل کناری</translation> <translation id="5090637338841444533">اجازه ندارد موقعیت دوربین را ردیابی کند</translation> <translation id="5093569275467863761">قاب فرعی ناشناس ذخیرهشده در حافظه پنهان عقب-جلو: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">درحال شروع نصب</translation> <translation id="5094176498302660097">میتوانید فایلهای پشتیبانیشده را با این برنامه ازطریق برنامه Files یا برنامههای دیگر باز کنید و ویرایش کنید. برای کنترل اینکه کدام فایلها این برنامه را بهطور پیشفرض باز کنند، <ph name="BEGIN_LINK" />با نحوه تنظیم برنامههای پیشفرض در دستگاه آشنا شوید<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">ارتباط با برنامههای بومی همکار</translation> <translation id="5097002363526479830">اتصال ناموفق به شبکه "<ph name="NAME" />":<ph name="DETAILS" /></translation> @@ -6362,6 +6367,7 @@ <translation id="7014174261166285193">نصب انجام نشد.</translation> <translation id="7014480873681694324">برداشتن برجستهسازی</translation> <translation id="7014741021609395734">میزان بزرگنمایی</translation> +<translation id="7014961128696979283">راهاندازی Steam</translation> <translation id="7015088858756332848">نمیتوان Steam را در Chromebook راهاندازی کرد. لطفاً دوباره امتحان کنید</translation> <translation id="7017004637493394352">دوباره بگویید «Ok Google»</translation> <translation id="7017219178341817193">افزودن صفحه جدید</translation> @@ -6753,6 +6759,7 @@ <translation id="7423425410216218516">«نمایان بودن» بهمدت <ph name="MINUTES" /> دقیقه روشن است</translation> <translation id="7423513079490750513">حذف <ph name="INPUT_METHOD_NAME" /></translation> <translation id="7423807071740419372"><ph name="APP_NAME" /> برای اجرا شدن به اجازه نیاز دارد</translation> +<translation id="7424153922653300265">«بهینهسازی انرژی» روشن است</translation> <translation id="7424818322350938336">شبکه اضافه شد</translation> <translation id="7427315069950454694">خاطرات امروز شما</translation> <translation id="7427348830195639090">صفحه پسزمینه: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7990,6 +7997,7 @@ <translation id="859246725979739260">دسترسی این سایت به مکان شما مسدود شده است.</translation> <translation id="8593121833493516339">دادههای استفاده و عیبیابی را ارسال کنید. با ارسال خودکار دادههای عیبیابی و دادههای استفاده از دستگاه و برنامه به Google به بهبود تجربه Android خود کمک کنید. این دادهها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی دادههای انبوهشی نیز به برنامهها و شرکای Google (مانند برنامهنویسهای Android) کمک میکند. اگر «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این دادهها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">فایلهای سفارشی</translation> +<translation id="8597404194697561297">به Steam در Chromebook خوش آمدید</translation> <translation id="8597845839771543242">قالب محصول:</translation> <translation id="8599681327221583254">یک یا چند خطمشی بهدرستی پیکربندی نشدهاند. لطفاً با سرپرستتان تماس بگیرید</translation> <translation id="8599864823732014237">ثبتنام در ویژگیهای سازمانی رد شود؟</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index b82d39b..431228d0 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -71,6 +71,7 @@ <translation id="1067048845568873861">Ginawa</translation> <translation id="1067661089446014701">Para sa karagdagang kaligtasan, puwede mong i-encrypt ang mga password sa iyong device bago i-save ang mga ito sa Google Account mo</translation> <translation id="1067922213147265141">Iba pang serbisyo ng Google</translation> +<translation id="1069104208554708737">Mase-save lang ang passkey na ito sa device na ito</translation> <translation id="1069355737714877171">Alisin ang profile ng eSIM na may pangalang <ph name="PROFILE_NAME" /></translation> <translation id="1069814191880976658">Pumili ng ibang screen</translation> <translation id="1070377999570795893">Isa pang program sa iyong computer ang nagdagdag extension na maaaring magpabago sa paraan ng paggana ng Chrome. @@ -346,6 +347,7 @@ <translation id="1324106254079708331">Iniingatan ang mga personal na Google Account ng sinumang nanganganib sa mga naka-target na pag-atake</translation> <translation id="1327272175893960498">Mga ticket ng Kerberos</translation> <translation id="1327495825214193325">Para ma-enable ang pag-debug ng ADB, kinakailangang i-restart ang <ph name="DEVICE_TYPE" /> na ito. Kinakailangan sa pag-disable nito ang pag-reset sa mga factory setting.</translation> +<translation id="1327527584824210101">Gamitin ang iyong passkey</translation> <translation id="1327794256477341646">Hindi gagana ang mga feature na nangangailangan ng iyong lokasyon</translation> <translation id="1331977651797684645">Ako ito.</translation> <translation id="1333489022424033687">Posibleng hindi gumana ang ilang feature sa <ph name="ORIGIN" /> hanggang sa i-clear mo ang data na na-store ng iba pang site sa iyong device</translation> @@ -406,6 +408,7 @@ <translation id="139013308650923562">Pinapayagang gamitin ang mga font na naka-install sa iyong device</translation> <translation id="1390548061267426325">Buksan bilang Regular na Tab</translation> <translation id="1390907927270446471">Hindi pinapahintulutan si <ph name="PROFILE_USERNAME" /> na mag-print sa <ph name="PRINTER_NAME" />. Makipag-ugnayan sa iyong administrator.</translation> +<translation id="1392047138650695757">Mga diksyunaryo ng user</translation> <translation id="1393283411312835250">Araw at mga ulap</translation> <translation id="1395730723686586365">Sinimulan ang updater</translation> <translation id="1395832189806039783">Mag-highlight ng item gamit ang pag-focus ng keyboard</translation> @@ -1525,6 +1528,7 @@ <translation id="2356070529366658676">Magtanong</translation> <translation id="2357330829548294574">Alisin si <ph name="USER_NAME" /></translation> <translation id="2358561147588818967">Puwedeng gumamit ng Javascript ang mga site</translation> +<translation id="2358703245148663432">Ibang device</translation> <translation id="2358777858338503863">I-click para payagan sa <ph name="ORIGIN" />:</translation> <translation id="2359071692152028734">Posibleng hindi tumugon ang mga Linux app.</translation> <translation id="2359345697448000899">Pamahalaan ang iyong mga extension sa pamamagitan ng pag-click sa Mga Extension sa menu na Mga Tool.</translation> @@ -1884,6 +1888,7 @@ <translation id="271033894570825754">Bago</translation> <translation id="2711073837061989559">Mga Trial</translation> <translation id="2712173769900027643">Humingi ng pahintulot</translation> +<translation id="2712207122921938368">Gumawa ng passkey sa ibang device</translation> <translation id="2713106313042589954">I-off ang camera</translation> <translation id="2713444072780614174">Puti</translation> <translation id="2714393097308983682">Google Play Store</translation> @@ -2394,6 +2399,7 @@ <translation id="3182749001423093222">Pang-check ng pagbabaybay</translation> <translation id="3183139917765991655">Pang-import ng Profile</translation> <translation id="3183143381919926261">Mga mobile data network</translation> +<translation id="3183613134231754987">Mase-save lang ang passkey na ito sa Windows Hello. Mananatili ito sa device na ito pagkatapos mong isara ang lahat ng Incognito window.</translation> <translation id="3183944777708523606">Arrangement ng monitor</translation> <translation id="3184536091884214176">Mag-set up o mamahala ng mga printer ng CUPS. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{Naka-block ang app na ito}one{Naka-block ang ilang app}other{Naka-block ang ilang app}}</translation> @@ -2402,6 +2408,7 @@ <translation id="3188465121994729530">Average ng Paglipat</translation> <translation id="3189187154924005138">Malaking cursor</translation> <translation id="3190558889382726167">Nai-save ang password</translation> +<translation id="3192589799003798742">Sine-set up ang Steam sa Chromebook</translation> <translation id="3192947282887913208">Mga Audio File</translation> <translation id="3193695589337931419">Mga Utility ng Mga Signal ng System</translation> <translation id="3194786596445804250">Ipakita ang mga detalye tungkol sa pag-block ng third-party na cookies</translation> @@ -2541,6 +2548,7 @@ <translation id="3341699307020049241">Maling PIN. Mayroon kang <ph name="RETRIES" /> pagtatangkang natitira.</translation> <translation id="3341703758641437857">Payagan ang access na mag-file ng mga URL</translation> <translation id="3342361181740736773">Gustong alisin ng "<ph name="TRIGGERING_EXTENSION_NAME" />" ang extension na ito.</translation> +<translation id="3343977377045378693">Isinasagawa ang pag-set up</translation> <translation id="3345135638360864351">Hindi maipadala kay <ph name="NAME" /> ang iyong kahilingang i-access ang site na ito. Pakisubukang muli.</translation> <translation id="3345634917232014253">Tumakbo kamakailan ang pag-check sa kaligtasan</translation> <translation id="3345886924813989455">Walang natagpuang suportadong browser</translation> @@ -2552,6 +2560,7 @@ <translation id="3354768182971982851">Hindi na bubukas ang mga lumang bersyon ng mga Chrome app sa mga Mac device pagkatapos ng Disyembre 2022. Puwede mong tingnan kung may available na bagong bersyon.</translation> <translation id="3354972872297836698">Hindi maipares sa device na <ph name="DEVICE_NAME" />; piliin ang device para subukan ulit</translation> <translation id="3355936511340229503">Error sa koneksyon</translation> +<translation id="3356036636691722598">I-enjoy ang gaming sa iyong Chromebook</translation> <translation id="3356469410714175391">(Naka-enable ang virtual na card)</translation> <translation id="3356580349448036450">Kumpleto na</translation> <translation id="3359256513598016054">Mga Limitasyon sa Patakaran ng Certificate</translation> @@ -2868,6 +2877,7 @@ <translation id="3654045516529121250">Basahin ang iyong mga setting ng pagiging naa-access</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{May permanenteng access ito sa isang file.}one{May permanenteng access ito sa # file.}other{May permanenteng access ito sa # na file.}}</translation> <translation id="3658871634334445293">Pag-accelerate ng TrackPoint</translation> +<translation id="3659550105763988702">Gamitin ang iyong passkey para sa <ph name="APP_NAME" /></translation> <translation id="3659929705630080526">Masyadong maraming beses ka nang naglagay ng maling access code. Subukan ulit sa ibang pagkakataon</translation> <translation id="3660234220361471169">Hindi pinagkakatiwalaan</translation> <translation id="3664511988987167893">Icon ng Extension</translation> @@ -3137,6 +3147,7 @@ <translation id="3898327728850887246">Gusto ng <ph name="SITE_NAME" /> na: <ph name="FIRST_PERMISSION" /> at <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Pumili ng keyboard</translation> <translation id="3900966090527141178">I-export ang mga password</translation> +<translation id="3902789559055749153">Piliin kung paano mo gustong gumawa ng passkey para sa <ph name="APP_NAME" /></translation> <translation id="3903187154317825986">Built-in na Keyboard</translation> <translation id="3904326018476041253">Mga Serbisyo ng Lokasyon</translation> <translation id="3904849010307028014">Batay sa iyong pakikipag-ugnayan sa isang site, tulad ng regular na pag-sign in sa isang account, puwedeng magbigay ang site na iyon ng trust token sa browser mo. Sa ibang pagkakataon, kung titingin at maghahanap ng valid na trust token ang iba pang site na binibisita mo, malamang na ituring ka nito bilang tao at hindi bot.</translation> @@ -3460,11 +3471,13 @@ <translation id="4211904048067111541">Huwag nang gamitin sa mga Android app</translation> <translation id="42126664696688958">I-export</translation> <translation id="42137655013211669">Ipinagbabawal ng server ang access sa mapagkukunang ito.</translation> +<translation id="4214192212360095377">I-off Ngayon</translation> <translation id="4217558091331485702">I-scan bago buksan</translation> <translation id="4217571870635786043">Pagdidikta</translation> <translation id="4218081191298393750">I-click ang icon ng speaker para i-mute ang tab na ito</translation> <translation id="4219558185499589032">Box</translation> <translation id="4220648711404560261">Nagkaroon ng error habang ina-activate.</translation> +<translation id="4223845867739585293">Gumawa ng passkey</translation> <translation id="4225397296022057997">Sa lahat ng site</translation> <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Hindi pinapayagan ang extension na ito}one{Hindi pinapayagan ang ilang extension}other{Hindi pinapayagan ang ilang extension}}</translation> <translation id="4231095370974836764">Mag-install ng mga app at laro mula sa Google Play sa iyong <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> @@ -4103,6 +4116,7 @@ <translation id="4838907349371614303">Na-update ang password</translation> <translation id="4838958829619609362">Wala ang pinili sa <ph name="LANGUAGE" /></translation> <translation id="4839303808932127586">I-sa&ve ang video bilang...</translation> +<translation id="4839910546484524995">Suriin ang iyong device</translation> <translation id="4840096453115567876">Umalis pa rin sa Incognito mode?</translation> <translation id="4841741146571978176">Wala ang kinakailangang virtual machine. Pakisubukang i-set up ang <ph name="VM_TYPE" /> para magpatuloy</translation> <translation id="4842976633412754305">Sinusubukan ng page na ito na mag-load ng mga script mula sa mga hindi napatunayang pinagmulan.</translation> @@ -4354,6 +4368,7 @@ <translation id="5089763948477033443">Handle sa Pag-resize ng Panel sa Gilid</translation> <translation id="5090637338841444533">Hindi pinapayagang i-track ang posisyon ng iyong camera</translation> <translation id="5093569275467863761">Back/Forward Cached na Subframe ng Incognito: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Sinisimulan ang pag-install</translation> <translation id="5094176498302660097">Magagawa mong magbukas at mag-edit ng mga sinusuportahang file mula sa Files app o iba pang app gamit ang app na ito. Para kontrolin kung aling mga file ang magbubukas sa app na ito bilang default, <ph name="BEGIN_LINK" />alamin kung paano magtakda ng mga default na app sa iyong device<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Makipag-ugnay sa mga nakikipagtulungang native na application</translation> <translation id="5097002363526479830">Nabigong kumonekta sa network na '<ph name="NAME" />': <ph name="DETAILS" /></translation> @@ -5010,6 +5025,7 @@ <translation id="5729712731028706266">&Tingnan</translation> <translation id="5731247495086897348">I-pa&ste at Umalis</translation> <translation id="5732392974455271431">Maaari itong i-unblock ng iyong mga magulang para sa iyo</translation> +<translation id="5733109311583381874">Magdagdag ng sarili mong mga salita sa diksyunaryo ng user para ma-customize ang mga kandidato ng conversion.</translation> <translation id="5733866499231170760">Invalid ang ID. Mali ang inilagay mong format. Pakitingnan ang mga tagubiling natanggap mo para matiyak na inilalagay mo ang ID sa tamang format. Kung hindi mo malutas ang isyu, iwang blangko ang field at magpatuloy sa pag-install.</translation> <translation id="5734362860645681824">Komunikasyon</translation> <translation id="5734697361979786483">Magdagdag ng file share</translation> @@ -5117,6 +5133,7 @@ <translation id="583431638776747">Hindi available ang site</translation> <translation id="5834581999798853053">Mga <ph name="TIME" /> (na) minuto ang natitira</translation> <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Nagre-record ang camera o mikropono</translation> +<translation id="5835625581856809102">I-scan ang QR code na ito gamit ang device kung saan mo gustong gumawa ng passkey para sa <ph name="APP_NAME" /></translation> <translation id="583673505367439042">Puwedeng hilingin ng mga site na mag-edit ng mga file at folder sa iyong device</translation> <translation id="5836999627049108525">Wikang pagmumulan ng Pagsalin</translation> <translation id="583756221537636748">Case</translation> @@ -5355,6 +5372,7 @@ <translation id="6059276912018042191">Mga kamakailang tab ng Chrome</translation> <translation id="6059652578941944813">Pagkakasunud-sunod ng Certificate</translation> <translation id="6059925163896151826">Mga USB device</translation> +<translation id="6061408389284235459">May ipinadalang notification sa <ph name="DEVICE_NAME" /></translation> <translation id="6063284707309177505">Gumawa ng QR Code</translation> <translation id="6063847492705284550"><ph name="BEGIN_BOLD" />Tandaan:<ph name="END_BOLD" /> Posibleng ma-access din ng katulad na boses o recording ang mga personal na resulta ni <ph name="SUPERVISED_USER_NAME" />. Para makatipid ng baterya, puwede mong piliin sa mga setting ng Assistant ni <ph name="SUPERVISED_USER_NAME" /> na i-on lang ang “Hey Google” kapag nakakonekta ang device na ito sa isang power source.</translation> <translation id="6064217302520318294">Lock ng screen</translation> @@ -5480,6 +5498,7 @@ <translation id="6178664161104547336">Pumili ng certificate</translation> <translation id="6178682841350631965">Na-update ang iyong data sa pag-sign in</translation> <translation id="6180510783007738939">Line Tool</translation> +<translation id="6180550893222597997">Aling passkey ang gusto mong gamitin para sa <ph name="APP_NAME" />?</translation> <translation id="6181431612547969857">Na-block ang pagda-download</translation> <translation id="6184099524311454384">Maghanap sa Mga Tab</translation> <translation id="6185132558746749656">Lokasyon ng Device</translation> @@ -5916,6 +5935,7 @@ <translation id="6596816719288285829">IP Address</translation> <translation id="6597017209724497268">Mga Sample</translation> <translation id="6597331566371766302">Na-block ng iyong administrator ang mga sumusunod na extension:</translation> +<translation id="6601262427770154296">Pamahalaan ang mga diksyunaryo ng user</translation> <translation id="6601612474695404578">Gumagamit ng cookies ng third-party ang ilang site para i-load ang kanilang mga page. Kung hindi gumagana ang isang site, puwede mong subukang payagan ang cookies.</translation> <translation id="6602937173026466876">I-access ang iyong mga printer</translation> <translation id="6602956230557165253">Gamitin ang kaliwa at kanang mga arrow key upang mag-navigate.</translation> @@ -6274,6 +6294,7 @@ <translation id="6943060957016121200">I-enable ang Instant na Pag-tether</translation> <translation id="6943176775188458830">Kanselahin ang pag-print</translation> <translation id="6943939122536910181">Nadiskonekta sa <ph name="DEVICE" /></translation> +<translation id="6944708469742828051">Mase-save lang ang passkey na ito sa Windows Hello</translation> <translation id="6945221475159498467">Pumili</translation> <translation id="694592694773692225">Na-block ang pag-redirect sa page na ito.</translation> <translation id="6947015141909171112">Nakikita mo ang mga recipe batay sa iyong kamakailang Aktibidad sa paghahanap para sa mga recipe. @@ -6366,6 +6387,7 @@ <translation id="7014174261166285193">Nabigo ang pag-install.</translation> <translation id="7014480873681694324">Alisin ang Highlight</translation> <translation id="7014741021609395734">Antas ng pag-zoom</translation> +<translation id="7014961128696979283">Ilunsad ang Steam</translation> <translation id="7015088858756332848">Hindi mailunsad ang Steam sa Chromebook. Pakisubukan ulit</translation> <translation id="7017004637493394352">Sabihing muli ang "Ok Google"</translation> <translation id="7017219178341817193">Magdagdag ng bagong page </translation> @@ -6523,6 +6545,7 @@ <translation id="7193051357671784796">Idinagdag ng iyong organisasyon ang app na ito. I-restart ang app para tapusin ang pag-install nito.</translation> <translation id="7193374945610105795">Walang naka-save na password para sa <ph name="ORIGIN" /></translation> <translation id="7194873994243265344">Na-block ng iyong organisasyon ang file na ito dahil naka-encrypt ito. Hilingin sa may-ari nitong i-decrypt ito.</translation> +<translation id="7196272782924897510">Gumamit ng passkey mula sa ibang device?</translation> <translation id="7196913789568937443">Mag-back up sa Google Drive. Madaling i-restore ang iyong data o magpalit ng device anumang oras. Kabilang sa iyong backup ang data ng app. Ina-upload sa Google ang iyong mga backup at ine-encrypt gamit ang password ng Google Account mo. <ph name="BEGIN_LINK1" />Matuto Pa<ph name="END_LINK1" /></translation> <translation id="7197190419934240522">Makakuha ng Google Search at Google smarts sa tuwing magba-browse ka</translation> <translation id="719791532916917144">Keyboard shortcut</translation> @@ -6757,6 +6780,7 @@ <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> +<translation id="7424153922653300265">Naka-on ang Energy Saver</translation> <translation id="7424818322350938336">Naidagdag ang network</translation> <translation id="7427315069950454694">ang iyong mga alaala para sa araw na ito</translation> <translation id="7427348830195639090">Pahina ng Background: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7021,6 +7045,7 @@ <translation id="7670483791111801022">Mga Subtitle</translation> <translation id="7671130400130574146">Gumamit ng system title bar at mga hangganan</translation> <translation id="767127784612208024">Pindutin para kumpirmahin ang pag-reset</translation> +<translation id="7672504401554182757">Piliin kung aling device ang may passkey para sa <ph name="APP_NAME" /></translation> <translation id="7672520070349703697"><ph name="HUNG_IFRAME_URL" />, sa <ph name="PAGE_TITLE" />.</translation> <translation id="7674416868315480713">I-deactivate ang lahat ng port na fino-forward sa Linux</translation> <translation id="7674537509496907005"><ph name="APP_COUNT" /> (na) app</translation> @@ -7130,6 +7155,7 @@ <translation id="7766807826975222231">Maglibot</translation> <translation id="7766838926148951335">Tanggapin ang mga pahintulot</translation> <translation id="7767554953520855281">Nakatago ang mga detalye habang ibinabahagi mo ang iyong screen</translation> +<translation id="7767972280546034736">Gumawa ng passkey para sa <ph name="APP_NAME" /></translation> <translation id="7768507955883790804">Awtomatikong susundin ng mga site ang setting na ito kapag bumisita ka sa mga ito</translation> <translation id="7768526219335215384">Matitingnan ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /></translation> <translation id="7768770796815395237">Baguhin</translation> @@ -7615,6 +7641,7 @@ <translation id="820568752112382238">Mga pinakamadalas bisitahing site</translation> <translation id="8206745257863499010">Musika</translation> <translation id="8206859287963243715">Cellular</translation> +<translation id="8207404892907560325">Pumili ng passkey</translation> <translation id="8208216423136871611">Huwag mag-save</translation> <translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Bagong notification}one{# bagong notification}other{# na bagong notification}}</translation> <translation id="821119981794423735">Para mag-import ng mga password sa Google Password Manager para sa <ph name="USER_EMAIL" />, pumili ng CSV file</translation> @@ -7787,6 +7814,7 @@ <translation id="8376137163494131156">Sabihin sa amin kung ano ang nangyayari sa paggamit ng Google Cast.</translation> <translation id="8376384591331888629">Kasama ang third-party na cookies sa site na ito</translation> <translation id="8376451933628734023">Kung sinusubukan kang linlangin ng web app na ito para maisip mong ibang app ito, i-uninstall ito.</translation> +<translation id="8377625247046155446">Mase-save lang ang passkey na ito sa device na ito. Mananatili ito sa device na ito pagkatapos mong isara ang lahat ng Incognito window.</translation> <translation id="8378714024927312812">Pinapamahalaan ng iyong organisasyon</translation> <translation id="8379156816349755485">Kapag nag-sign in, may maso-store at magagamit na natatanging token sa pag-authenticate para sa lahat ng kwalipikadong download sa hinaharap.</translation> <translation id="8379878387931047019">Hindi sinusuportahan ng device na ito ang uri ng security key na hiniling ng website na ito</translation> @@ -7996,6 +8024,7 @@ <translation id="859246725979739260">Na-block ang site na ito sa pag-access sa iyong lokasyon.</translation> <translation id="8593121833493516339">Magpadala ng data ng paggamit at diagnostic na data. Tumulong sa pagpapaganda ng karanasan ng iyong anak sa Android sa pamamagitan ng awtomatikong pagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Hindi ito gagamitin para tukuyin ang pagkakakilanlan ng iyong anak, at makakatulong ito sa stability ng system at ng app, at sa iba pang pagpapahusay. Makakatulong din ang ilang pinagsama-samang data sa mga app at partner ng Google, gaya ng mga developer ng Android. Kung naka-on ang karagdagang Aktibidad sa Web at App para sa iyong anak, maaaring ma-save ang data na ito sa kanyang Google account. <ph name="BEGIN_LINK1" />Matuto Pa<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Mga Custom na File</translation> +<translation id="8597404194697561297">Welcome sa Steam sa Chromebook</translation> <translation id="8597845839771543242">Format ng property:</translation> <translation id="8599681327221583254">Isa o higit pang patakaran ang hindi wastong naka-configure. Makipag-ugnayan sa iyong administrator</translation> <translation id="8599864823732014237">Laktawan ang pag-enroll sa enterprise?</translation> @@ -8609,6 +8638,7 @@ <ph name="LIST_ITEM" />Patakbuhin ang Mga Diagnostic sa Pagkakakonekta ng Chrome <ph name="END_LIST" /></translation> <translation id="916607977885256133">Picture in Picture</translation> +<translation id="9166253503936244008">I-scan ang QR code na ito gamit ang device na may passkey na gusto mong gamitin para sa <ph name="APP_NAME" /></translation> <translation id="9167063903968449027">Ipakita ang Listahan ng Babasahin</translation> <translation id="9167450455589251456">Hindi sinusuportahan ang profile</translation> <translation id="9168436347345867845">Gawin ito sa ibang pagkakataon</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index bc3b5445..2cb405df 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2390,6 +2390,7 @@ <translation id="3188465121994729530">ચલ સરેરાશ</translation> <translation id="3189187154924005138">મોટું કર્સર</translation> <translation id="3190558889382726167">પાસવર્ડ સાચવ્યો</translation> +<translation id="3192589799003798742">Chromebook પર Steamનું સેટઅપ કરી રહ્યાં છીએ</translation> <translation id="3192947282887913208">ઑડિયો ફાઇલો</translation> <translation id="3193695589337931419">સિસ્ટમ સિગ્નલ યુટિલિટી</translation> <translation id="3194786596445804250">ત્રીજા પક્ષની કુકીને બ્લૉક કરવા વિશેની વિગતો બતાવો</translation> @@ -2529,6 +2530,7 @@ <translation id="3341699307020049241">ખોટો પિન. તમારી પાસે હવે <ph name="RETRIES" /> પ્રયાસ બાકી છે.</translation> <translation id="3341703758641437857">URL ફાઇલ કરવા ઍક્સેસની મંજૂરી આપો</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" આ એક્સ્ટેંશનને કાઢી નાખવા માગે છે.</translation> +<translation id="3343977377045378693">સેટઅપ કરી રહ્યાં છીએ</translation> <translation id="3345135638360864351">આ સાઇટને ઍક્સેસ કરવાની તમારી વિનંતી <ph name="NAME" /> ને મોકલી શકાઈ નથી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation> <translation id="3345634917232014253">એક પળ પહેલાં સલામતી માટે તપાસ થઈ</translation> <translation id="3345886924813989455">સપોર્ટેડ બ્રાઉઝર મળ્યું નથી</translation> @@ -2540,6 +2542,7 @@ <translation id="3354768182971982851">ડિસેમ્બર 2022 પછી Mac ડિવાઇસ પર Chrome ઍપના જૂના વર્ઝન ખૂલશે નહીં. નવું વર્ઝન ઉપલબ્ધ છે કે નહીં તે તમે ચેક કરી શકો છો.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> ડિવાઇસ સાથે જોડાણ કરી શક્યા નથી; ફરી પ્રયાસ કરવા માટે ડિવાઇસ પસંદ કરો</translation> <translation id="3355936511340229503">કનેક્શન ભૂલ</translation> +<translation id="3356036636691722598">તમારી Chromebook પર ગેમ રમવાનો આનંદ માણો</translation> <translation id="3356469410714175391">(વર્ચ્યુઅલ કાર્ડ સક્રિય કર્યું)</translation> <translation id="3356580349448036450">પૂર્ણ</translation> <translation id="3359256513598016054">પ્રમાણપત્ર નીતિની મર્યાદાઓ</translation> @@ -3450,6 +3453,7 @@ <translation id="4211904048067111541">Android ઍપ સાથે ઉપયોગ કરવાનું રોકો</translation> <translation id="42126664696688958">નિકાસ કરો</translation> <translation id="42137655013211669">સર્વર દ્વારા આ સંસાધનની અૅક્સેસ નિષિદ્ધ હતી.</translation> +<translation id="4214192212360095377">હમણાં બંધ કરો</translation> <translation id="4217558091331485702">ખોલતા પહેલાં સ્કૅન કરો</translation> <translation id="4217571870635786043">ડિક્ટેશન</translation> <translation id="4218081191298393750">આ ટૅબને મ્યૂટ કરવા માટે, સ્પીકરના આઇકન પર ક્લિક કરો</translation> @@ -4345,6 +4349,7 @@ <translation id="5089763948477033443">બાજુની પૅનલનું કદ બદલવાનું હેન્ડલ</translation> <translation id="5090637338841444533">તમારા કૅમેરાનું સ્ટેટસ ટ્રૅક કરવાની મંજૂરી નથી</translation> <translation id="5093569275467863761">બૅક/ફૉરવર્ડ કૅશ મેમરીમાં સ્ટોર કરેલી છૂપી સબફ્રેમ: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">ઇન્સ્ટૉલેશન શરૂ થઈ રહ્યું છે</translation> <translation id="5094176498302660097">તમે Files ઍપ અથવા અન્ય ઍપમાં, આ ઍપ વડે સપોર્ટેડ ફાઇલો ખોલી શકો છો અને તેમાં ફેરફાર કરી શકો છો. આ ઍપમાં ડિફૉલ્ટ તરીકે ખોલવામાં આવે તેવી ફાઇલોને નિયંત્રિત કરવા માટે, <ph name="BEGIN_LINK" />તમારા ડિવાઇસ પર ડિફૉલ્ટ ઍપને સેટ કરવાની રીત વિશે જાણો<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">સહયોગ કરતી મૂળ ઍપ્લિકેશન સાથે સંચાર કરો</translation> <translation id="5097002363526479830">નેટવર્ક '<ph name="NAME" />' થી કનેક્ટ કરવામાં નિષ્ફળ: <ph name="DETAILS" /></translation> @@ -6365,6 +6370,7 @@ <translation id="7014174261166285193">ઇન્સ્ટોલેશન નિષ્ફળ થયું.</translation> <translation id="7014480873681694324">હાઇલાઇટ કાઢી નાખો</translation> <translation id="7014741021609395734">ઝૂમ લેવલ</translation> +<translation id="7014961128696979283">Steam લૉન્ચ કરો</translation> <translation id="7015088858756332848">Chromebook પર Steam લૉન્ચ કરી શકાઈ નથી. કૃપા કરીને ફરી પ્રયાસ કરો</translation> <translation id="7017004637493394352">ફરીથી "Ok Google" કહો</translation> <translation id="7017219178341817193">નવું પેજ ઉમેરો</translation> @@ -6757,6 +6763,7 @@ <translation id="7423425410216218516"><ph name="MINUTES" /> મિનિટ માટે દૃશ્યતા ચાલુ છે</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" />ને કાઢી નાખો</translation> <translation id="7423807071740419372"><ph name="APP_NAME" />ને ચલાવવા માટે પરવાનગીની જરૂર છે</translation> +<translation id="7424153922653300265">એનર્જી સેવર મોડ ચાલુ કર્યો</translation> <translation id="7424818322350938336">નેટવર્ક ઉમેર્યું</translation> <translation id="7427315069950454694">તમારી આજની યાદગીરીઓ</translation> <translation id="7427348830195639090">બૅકગ્રાઉન્ડ પેજ: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7993,6 +8000,7 @@ <translation id="859246725979739260">આ સાઇટને તમારા સ્થાનનો ઍક્સેસ કરવાથી બ્લૉક કરવામાં આવી છે.</translation> <translation id="8593121833493516339">વપરાશ અને નિદાનનો ડેટા મોકલો. Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલીને તમારા બાળકના Android અનુભવને બહેતર બનાવવામાં સહાય કરો. આનો ઉપયોગ તમારા બાળકને ઓળખવા માટે થશે નહીં અને સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્રીકરણ કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારોને પણ મદદ કરશે, જેમ કે Android ડેવલપર. જો તમારા બાળક માટે વધારાની વેબ અને ઍપ પ્રવૃત્તિ સેટિંગ ચાલુ હોય, તો આ ડેટા તેમના Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે. <ph name="BEGIN_LINK1" />વધુ જાણો<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">કસ્ટમ ફાઇલો</translation> +<translation id="8597404194697561297">Chromebook પરની Steamમાં તમારું સ્વાગત છે</translation> <translation id="8597845839771543242">ગુણધર્મનું ફોર્મેટ:</translation> <translation id="8599681327221583254">એક અથવા તેથી વધુ પૉલિસીઓની ગોઠવણી યોગ્ય રીતે કરવામાં આવી નથી. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો</translation> <translation id="8599864823732014237">શું છૂટક એન્ટરપ્રાઇઝની નોંધણી છોડી દઈએ?</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index d1f75de..41fda2d 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2401,6 +2401,7 @@ <translation id="3188465121994729530">Rata-rata Perpindahan</translation> <translation id="3189187154924005138">Kursor besar</translation> <translation id="3190558889382726167">Sandi tersimpan</translation> +<translation id="3192589799003798742">Menyiapkan Steam di Chromebook</translation> <translation id="3192947282887913208">File Audio</translation> <translation id="3193695589337931419">Utilitas Sinyal Sistem</translation> <translation id="3194786596445804250">Tampilkan detail tentang pemblokiran cookie pihak ketiga</translation> @@ -2540,6 +2541,7 @@ <translation id="3341699307020049241">PIN salah. Anda memiliki <ph name="RETRIES" /> kesempatan lagi.</translation> <translation id="3341703758641437857">Izinkan akses ke URL file</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ingin menghapus ekstensi ini.</translation> +<translation id="3343977377045378693">Melakukan penyiapan</translation> <translation id="3345135638360864351">Permintaan Anda untuk mengakses situs ini tidak dapat dikirimkan ke <ph name="NAME" />. Coba lagi.</translation> <translation id="3345634917232014253">Pemeriksaan keamanan berjalan beberapa waktu lalu</translation> <translation id="3345886924813989455">Tidak ditemukan browser yang didukung</translation> @@ -2551,6 +2553,7 @@ <translation id="3354768182971982851">Aplikasi Chrome versi lama tidak dapat dibuka di perangkat Mac setelah Desember 2022. Anda dapat memeriksa apakah versi baru telah tersedia.</translation> <translation id="3354972872297836698">Tidak dapat menyambungkan ke perangkat <ph name="DEVICE_NAME" />; pilih perangkat untuk mencoba lagi</translation> <translation id="3355936511340229503">Kesalahan sambungan</translation> +<translation id="3356036636691722598">Nikmati bermain game di Chromebook</translation> <translation id="3356469410714175391">(Kartu virtual diaktifkan)</translation> <translation id="3356580349448036450">Selesai</translation> <translation id="3359256513598016054">Kendala Kebijakan Sertifikat</translation> @@ -3459,6 +3462,7 @@ <translation id="4211904048067111541">Hentikan penggunaan dengan aplikasi Android</translation> <translation id="42126664696688958">Ekspor</translation> <translation id="42137655013211669">Akses ke sumber daya ini tidak diizinkan oleh server.</translation> +<translation id="4214192212360095377">Nonaktifkan Sekarang</translation> <translation id="4217558091331485702">Pindai sebelum membuka</translation> <translation id="4217571870635786043">Dikte</translation> <translation id="4218081191298393750">Klik ikon speaker untuk membisukan tab ini</translation> @@ -4353,6 +4357,7 @@ <translation id="5089763948477033443">Handel Pengubah Ukuran Panel Samping</translation> <translation id="5090637338841444533">Tidak diizinkan melacak posisi kamera Anda</translation> <translation id="5093569275467863761">Subframe Samaran yang Disimpan di Back/Forward Cache: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Memulai penginstalan</translation> <translation id="5094176498302660097">Anda dapat membuka dan mengedit file yang didukung dengan aplikasi ini dari aplikasi File atau aplikasi lainnya. Untuk mengontrol file mana yang akan dibuka dengan aplikasi ini secara default, <ph name="BEGIN_LINK" />pelajari cara menyetel aplikasi default di perangkat Anda<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang kooperatif</translation> <translation id="5097002363526479830">Gagal menyambung ke jaringan '<ph name="NAME" />': <ph name="DETAILS" /></translation> @@ -6363,6 +6368,7 @@ <translation id="7014174261166285193">Pemasangan gagal.</translation> <translation id="7014480873681694324">Hapus Sorotan</translation> <translation id="7014741021609395734">Tingkat zoom</translation> +<translation id="7014961128696979283">Luncurkan Steam</translation> <translation id="7015088858756332848">Tidak dapat meluncurkan Steam di Chromebook. Coba lagi</translation> <translation id="7017004637493394352">Ucapkan "Ok Google" lagi</translation> <translation id="7017219178341817193">Tambahkan halaman baru</translation> @@ -6754,6 +6760,7 @@ <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> +<translation id="7424153922653300265">Penghemat Energi Diaktifkan</translation> <translation id="7424818322350938336">Jaringan ditambahkan</translation> <translation id="7427315069950454694">kenangan Anda untuk hari ini</translation> <translation id="7427348830195639090">Halaman Background: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7992,6 +7999,7 @@ <translation id="859246725979739260">Situs ini telah diblokir agar tidak dapat mengakses lokasi Anda.</translation> <translation id="8593121833493516339">Kirim data penggunaan dan diagnostik. Bantu sempurnakan pengalaman Android Anak Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">File Khusus</translation> +<translation id="8597404194697561297">Selamat datang di Steam di Chromebook</translation> <translation id="8597845839771543242">Format properti:</translation> <translation id="8599681327221583254">Satu atau beberapa kebijakan tidak dikonfigurasi dengan benar. Harap hubungi administrator Anda</translation> <translation id="8599864823732014237">Lewati pendaftaran perusahaan?</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 72e02fe..02c07a6 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -71,6 +71,7 @@ <translation id="1067048845568873861">შექმნის თარიღი</translation> <translation id="1067661089446014701">დამატებითი უსაფრთხოებისთვის შეგიძლიათ დაშიფროთ პაროლები თქვენს მოწყობილობაზე, სანამ ისინი თქვენს Google ანგარიშში შეინახება</translation> <translation id="1067922213147265141">Google-ის სხვა სერვისები</translation> +<translation id="1069104208554708737">წვდომის ეს გასაღები მხოლოდ ამ მოწყობილობაზე შეინახება</translation> <translation id="1069355737714877171">ამოიშალოს eSIM პროფილი სახელად <ph name="PROFILE_NAME" /></translation> <translation id="1069814191880976658">სხვა ეკრანის არჩევა</translation> <translation id="1070377999570795893">თქვენს კომპიუტერში არსებულმა სხვა პროგრამამ დაამატა გაფართოება, რომელსაც Chrome-ის მუშაობის შეცვლა შეუძლია. @@ -343,6 +344,7 @@ <translation id="1324106254079708331">დაიცავს პერსონალურ Google ანგარიშებს, რომლებსაც გამიზნული თავდასხმების საფრთხე ემუქრება</translation> <translation id="1327272175893960498">Kerberos ბილეთები</translation> <translation id="1327495825214193325">ADB გამართვის ჩასართავად უნდა გადატვირთოთ ეს <ph name="DEVICE_TYPE" />. მის გასათიშად საჭირო ქარხნული პარამეტრების დაბრუნება.</translation> +<translation id="1327527584824210101">გამოიყენეთ თქვენი წვდომის გასაღები</translation> <translation id="1327794256477341646">ფუნქციები, რომლებიც თქვენს მდებარეობას საჭიროებს, არ იმუშავებს</translation> <translation id="1331977651797684645">ეს მე ვიყავი.</translation> <translation id="1333489022424033687"><ph name="ORIGIN" />-ის ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს, სანამ თქვენს მოწყობილობაში სხვა საიტების მიერ შენახულ მონაცემებს არ გაასუფთავებთ</translation> @@ -403,6 +405,7 @@ <translation id="139013308650923562">დაშვებულია თქვენს მოწყობილობაზე დაინსტალირებული შრიფტების გამოყენება</translation> <translation id="1390548061267426325">ჩვეულებრივი ჩანართის სახით გახსნა</translation> <translation id="1390907927270446471">მომხმარებელს (<ph name="PROFILE_USERNAME" />) არ აქვს <ph name="PRINTER_NAME" />-ის მეშვეობით ამობეჭდვის უფლება. მიმართეთ თქვენს ადმინისტრატორს.</translation> +<translation id="1392047138650695757">მომხმარებლის ლექსიკონები</translation> <translation id="1393283411312835250">მზე და ღრუბლები</translation> <translation id="1395730723686586365">განახლების პროგრამა გაშვებულია</translation> <translation id="1395832189806039783">ერთეულის გამოყოფა კლავიატურით ფოკუსირების მეშვეობით</translation> @@ -1509,6 +1512,7 @@ <translation id="2356070529366658676">მკითხე</translation> <translation id="2357330829548294574">გსურთ <ph name="USER_NAME" />-ის ამოშლა?</translation> <translation id="2358561147588818967">საიტებს შეუძლია JavaScript-ის გამოყენება</translation> +<translation id="2358703245148663432">განსხვავებული მოწყობილობა</translation> <translation id="2358777858338503863">დააწკაპუნეთ, რომ <ph name="ORIGIN" />-ზე დაშვებული იყოს:</translation> <translation id="2359071692152028734">შესაძლოა, Linux აპებმა შეწყვიტოს რეაგირება.</translation> <translation id="2359345697448000899">მართეთ თქვენი გაფართოებები: დააწკაპუნეთ „გაფართოებებზე“ ხელსაწყოების მენიუში.</translation> @@ -1868,6 +1872,7 @@ <translation id="271033894570825754">ახალი</translation> <translation id="2711073837061989559">ცდები</translation> <translation id="2712173769900027643">ნებართვის მოთხოვნა</translation> +<translation id="2712207122921938368">შექმენით წვდომის გასაღები სხვა მოწყობილობაზე</translation> <translation id="2713106313042589954">კამერის გამორთვა</translation> <translation id="2713444072780614174">თეთრი</translation> <translation id="2714393097308983682">Google Play Store</translation> @@ -2378,6 +2383,7 @@ <translation id="3182749001423093222">მართლწერის შემოწმება</translation> <translation id="3183139917765991655">პროფილის იმპორტიორი</translation> <translation id="3183143381919926261">მობილური ინტერნეტის ქსელები</translation> +<translation id="3183613134231754987">წვდომის ეს გასაღები მხოლოდ Windows Hello-ში შეინახება. ის დარჩება ამ მოწყობილობაზე, როცა ყველა ინკოგნიტო ფანჯარას დახურავთ.</translation> <translation id="3183944777708523606">მონიტორის მოწყობა</translation> <translation id="3184536091884214176">CUPS პრინტერების დაყენება ან მართვა. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{ეს აპი დაბლოკილია}other{ზოგიერთი აპი დაბლოკილია}}</translation> @@ -2855,6 +2861,7 @@ <translation id="3654045516529121250">თქვენი სპეციალური შესაძლებლობების პარამეტრების წაკითხვა</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{აქვს მუდმივი წვდომა ერთ ფაილზე.}other{აქვს მუდმივი წვდომა # ფაილზე.}}</translation> <translation id="3658871634334445293">TrackPoint-ის აჩქარება</translation> +<translation id="3659550105763988702">გამოიყენეთ თქვენი წვდომის გასაღები <ph name="APP_NAME" />-ისთვის</translation> <translation id="3659929705630080526">წვდომის არასწორი კოდი ზედმეტად ბევრჯერ შეიყვანეთ. ცადეთ მოგვიანებით</translation> <translation id="3660234220361471169">არასანდო</translation> <translation id="3664511988987167893">გაფართოების ხატულა</translation> @@ -3124,6 +3131,7 @@ <translation id="3898327728850887246"><ph name="SITE_NAME" />-ს სურს: <ph name="FIRST_PERMISSION" /> და <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">აირჩიეთ კლავიატურა</translation> <translation id="3900966090527141178">პაროლების ექსპორტი</translation> +<translation id="3902789559055749153">აირჩიეთ, რა გზით გსურთ, შექმნათ წვდომის გასაღები <ph name="APP_NAME" />-ისთვის</translation> <translation id="3903187154317825986">ჩაშენებული კლავიატურა</translation> <translation id="3904326018476041253">მდებარეობის სერვისები</translation> <translation id="3904849010307028014">ამა თუ იმ საიტთან თქვენი ინტერაქციის (მაგალითად, თქვენს ანგარიშში რეგულარულად შესვლის) მიხედვით, შესაბამის საიტს შეეძლება ნდობის ჟეტონის გაცემა თქვენი ბრაუზერისთვის. თუ მოგვიანებით თქვენ მიერ მონახულებული სხვა საიტები შეამოწმებს ნდობის მართებულ ჟეტონების არსებობას და იპოვის მათი, ისინი უფრო დიდი ალბათობით ჩათვლიან, რომ ადამიანი ხართ და არა ბოტი.</translation> @@ -3453,6 +3461,7 @@ <translation id="4218081191298393750">ამ ჩანართის დასადუმებლად შეეხეთ დინამიკის ხატულას</translation> <translation id="4219558185499589032">კრივი</translation> <translation id="4220648711404560261">გააქტიურება ვერ მოხერხდა შეცდომის გამო.</translation> +<translation id="4223845867739585293">წვდომის გასაღების შექმნა</translation> <translation id="4225397296022057997">ყველა საიტზე</translation> <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{ამ გაფართოების გამოყენება დაუშვებელია}other{ზოგიერთი გაფართოების გამოყენება დაუშვებელია}}</translation> <translation id="4231095370974836764">დააინსტალირეთ აპები და თამაშები Google Play-დან თქვენს <ph name="DEVICE_TYPE" />-ზე. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> @@ -4090,6 +4099,7 @@ <translation id="4838907349371614303">პაროლი განახლდა</translation> <translation id="4838958829619609362">არჩეული ტექსტი არ არის <ph name="LANGUAGE" /></translation> <translation id="4839303808932127586">&შეინახე ვიდეო როგორც…</translation> +<translation id="4839910546484524995">შეამოწმეთ თქვენი მოწყობილობა</translation> <translation id="4840096453115567876">მაინც გსურთ ინკოგნიტო რეჟიმიდან გასვლა?</translation> <translation id="4841741146571978176">მოთხოვნილი ვირტუალური მოწყობილობა არ არსებობს. გასაგრძელებლად ცადეთ <ph name="VM_TYPE" />-ის დაყენება</translation> <translation id="4842976633412754305">ეს გვერდი ცდილობს სკრიპტების გადმოწერას არა საიმედო წყაროებიდან.</translation> @@ -4998,6 +5008,7 @@ <translation id="5729712731028706266">&ხედი</translation> <translation id="5731247495086897348">&ჩასმა და გაგრძელება</translation> <translation id="5732392974455271431">მისი განბლოკვა თქვენს მშობლებს შეუძლიათ</translation> +<translation id="5733109311583381874">დაამატეთ მომხმარებლის ლექსიკონებს თქვენი საკუთარი სიტყვები, რომ ისინი საუბრების დროს შემოგთავაზოთ.</translation> <translation id="5733866499231170760">ID არასწორია. თქვენ მიერ შეყვანილი ფორმატი არ არის სწორი. გთხოვთ, შეამოწმოთ მიღებული ინსტრუქცია, რათა დარწმუნდეთ, რომ ID სწორ ფორმატში შეგყავთ. თუ პრობლემას ვერ მოაგვარებთ, გააგრძელეთ ინსტალაცია ამ ველის შევსების გარეშე.</translation> <translation id="5734362860645681824">კომუნიკაციები</translation> <translation id="5734697361979786483">ფაილის გაზიარების დამატება</translation> @@ -5105,6 +5116,7 @@ <translation id="583431638776747">საიტი მიუწვდომელი იყო</translation> <translation id="5834581999798853053">დარჩენილია დაახლოებით <ph name="TIME" /> წუთი</translation> <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> — მიმდინარეობს ჩაწერა კამერიდან ან მიკროფონიდან</translation> +<translation id="5835625581856809102">დაასკანირეთ ეს QR კოდი იმ მოწყობილობით, რომელზეც გსურთ, შექმნათ წვდომის გასაღები <ph name="APP_NAME" />-ისთვის</translation> <translation id="583673505367439042">საიტებს შეუძლია თქვენს მოწყობილობაზე არსებული ფაილებისა და საქაღალდეების რედაქტირების თხოვნა</translation> <translation id="5836999627049108525">ენა, რომლიდანაც უნდა ითარგმნოს</translation> <translation id="583756221537636748">სათავსო</translation> @@ -5343,6 +5355,7 @@ <translation id="6059276912018042191">Chrome-ის ბოლოდროინდელი ჩანართები</translation> <translation id="6059652578941944813">სერტიფიკატების იერარქია</translation> <translation id="6059925163896151826">USB მოწყობილობები</translation> +<translation id="6061408389284235459">შეტყობინება გაიგზავნა <ph name="DEVICE_NAME" />-ზე</translation> <translation id="6063284707309177505">QR კოდის შექმნა</translation> <translation id="6063847492705284550"><ph name="BEGIN_BOLD" />შენიშვნა:<ph name="END_BOLD" /> <ph name="SUPERVISED_USER_NAME" />-ის პერსონალურ შედეგებზე წვდომა, შესაძლოა, მოახერხოს ნებისმიერმა, ვისაც მსგავსი ხმა ან მისი ჩანაწერი ექნება. ბატარეის დაზოგვის მიზნით, <ph name="SUPERVISED_USER_NAME" />-ის ასისტენტის პარამეტრებიდან შეგიძლიათ აირჩიოთ, რომ „Ok Google“-მა იმუშაოს მხოლოდ მაშინ, როცა ეს მოწყობილობა მიერთებულია ელკვების წყაროსთან.</translation> <translation id="6064217302520318294">ეკრანის დაბლოკვა</translation> @@ -5468,6 +5481,7 @@ <translation id="6178664161104547336">აირჩიეთ სერტიფიკატი</translation> <translation id="6178682841350631965">თქვენი სისტემაში შესვლის მონაცემები განახლდა</translation> <translation id="6180510783007738939">ხაზის ხელსაწყო</translation> +<translation id="6180550893222597997">წვდომის რომელი გასაღების გამოყენება გსურთ <ph name="APP_NAME" />-ისთვის?</translation> <translation id="6181431612547969857">ჩამოტვირთვა დაბლოკილია</translation> <translation id="6184099524311454384">მოიძიეთ ჩანართებში</translation> <translation id="6185132558746749656">მოწყობილობის მდებარეობა</translation> @@ -5902,6 +5916,7 @@ <translation id="6596816719288285829">IP მისამართი</translation> <translation id="6597017209724497268">ნიმუშები</translation> <translation id="6597331566371766302">შემდეგი გაფართოებები დაბლოკილია თქვენი ადმინისტრატორის მიერ:</translation> +<translation id="6601262427770154296">მომხმარებლის ლექსიკონების მართვა</translation> <translation id="6601612474695404578">ზოგიერთი საიტი გვერდების ჩასატვირთად მესამე მხარის ქუქი-ჩანაწერებს იყენებს. თუ რომელიმე საიტი არ მუშაობს, შეგიძლიათ ცადოთ ქუქი-ჩანაწერების დაშვება.</translation> <translation id="6602937173026466876">თქვენს პრინტერებზე წვდომა</translation> <translation id="6602956230557165253">ნავიგაციისთვის გამოიყენეთ მარცხენა და მარჯვენა ღილაკები.</translation> @@ -6260,6 +6275,7 @@ <translation id="6943060957016121200">მყისიერი ტეტერინგის ჩართვა</translation> <translation id="6943176775188458830">ბეჭდვის გაუქმება</translation> <translation id="6943939122536910181"><ph name="DEVICE" />-თან კავშირი გაწყვეტილია</translation> +<translation id="6944708469742828051">წვდომის ეს გასაღები მხოლოდ Windows Hello-ში შეინახება</translation> <translation id="6945221475159498467">არჩევა</translation> <translation id="694592694773692225">გადამისამართება დაიბლოკა ამ გვერდზე.</translation> <translation id="6947015141909171112">რეცეპტებს ხედავთ რეცეპტებთან დაკავშირებული თქვენი ბოლოდროინდელი საძიებო აქტივობის საფუძველზე. @@ -6510,6 +6526,7 @@ <translation id="7193051357671784796">ეს აპი დაამატა თქვენმა ორგანიზაციამ. ინსტალაციის დასასრულებლად საჭიროა მისი გადატვირთვა.</translation> <translation id="7193374945610105795"><ph name="ORIGIN" />-სთვის შენახული პაროლები არ არის</translation> <translation id="7194873994243265344">თქვენმა ორგანიზაციამ დაბლოკა ეს ფაილი, რადგან ის დაშიფრულია. სთხოვეთ მის მფლობელს დეშიფრაცია.</translation> +<translation id="7196272782924897510">გსურთ, გამოიყენოთ წვდომის გასაღები სხვა მოწყობილობიდან?</translation> <translation id="7196913789568937443">სარეზერვო კოპირება Google Drive-ში. მარტივად აღადგინეთ თქვენი მონაცემები ან შეცვალეთ მოწყობილობები ნებისმიერ დროს. თქვენი სარეზერვო ასლი მოიცავს აპების მონაცემებს. სარეზერვო ასლები აიტვირთება Google-ში და დაიშიფრება თქვენი Google ანგარიშის პაროლით. <ph name="BEGIN_LINK1" />შეიტყვეთ მეტი<ph name="END_LINK1" /></translation> <translation id="7197190419934240522">ისარგებლეთ Google Search-ითა და Google-ის გონიერი ფუნქციებით ვების ყოველი დათვალიერებისას</translation> <translation id="719791532916917144">კლავიატურის მალსახმობი</translation> @@ -7009,6 +7026,7 @@ <translation id="7670483791111801022">სუბტიტრები</translation> <translation id="7671130400130574146">სისტემის სათაურის ზოლის და საზღვრების გამოყენება</translation> <translation id="767127784612208024">შეეხეთ გადაყენების დასადასტურებლად</translation> +<translation id="7672504401554182757">აირჩიეთ, რომელ მოწყობილობაზეა წვდომის გასაღების <ph name="APP_NAME" />-ისთვის</translation> <translation id="7672520070349703697"><ph name="HUNG_IFRAME_URL" />, <ph name="PAGE_TITLE" />-ზე.</translation> <translation id="7674416868315480713">Linux-ში ყველა პორტის გადამისამართების დეაქტივაცია</translation> <translation id="7674537509496907005"><ph name="APP_COUNT" /> აპი</translation> @@ -7118,6 +7136,7 @@ <translation id="7766807826975222231">ტური</translation> <translation id="7766838926148951335">ნებართვების მიღება</translation> <translation id="7767554953520855281">ეკრანის გაზიარებისას დეტალები დამალულია</translation> +<translation id="7767972280546034736">შექმენით წვდომის გასაღები <ph name="APP_NAME" />-ისთვის</translation> <translation id="7768507955883790804">საიტები, რომლებსაც მოინახულებთ, ავტომატურად გაითვალისწინებს ამ პარამეტრს</translation> <translation id="7768526219335215384"><ph name="ORIGIN" /> შეძლებს, ნახოს ფაილები „<ph name="FOLDERNAME" />“-ში</translation> <translation id="7768770796815395237">შეცვლა</translation> @@ -7602,6 +7621,7 @@ <translation id="820568752112382238">ყველაზე ხშირად მონახულებადი საიტები</translation> <translation id="8206745257863499010">ბლუზი</translation> <translation id="8206859287963243715">ფიჭური</translation> +<translation id="8207404892907560325">აირჩიეთ წვდომის გასაღები</translation> <translation id="8208216423136871611">არ შეინახო</translation> <translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{ახალი შეტყობინება}other{# ახალი შეტყობინება}}</translation> <translation id="821119981794423735">Google პაროლების მმართველში, <ph name="USER_EMAIL" />-ისთვის, პაროლების იმპორტირებისთვის აირჩიეთ CSV ფაილი</translation> @@ -7774,6 +7794,7 @@ <translation id="8376137163494131156">გვაცნობეთ, რა სჭირს Google Cast-ს.</translation> <translation id="8376384591331888629">ამ საიტზე მესამე მხარის ქუქი-ჩანაწერების ჩათვლით</translation> <translation id="8376451933628734023">თუ თვლით, რომ ეს ვებ-აპი ცდილობს, სხვა აპად გაასაღოს თავი, გირჩევთ მის დეინსტალაციას.</translation> +<translation id="8377625247046155446">წვდომის ეს გასაღები მხოლოდ ამ მოწყობილობაზე შეინახება. ის დარჩება ამ მოწყობილობაზე, როცა ყველა ინკოგნიტო ფანჯარას დახურავთ.</translation> <translation id="8378714024927312812">იმართება თქვენი ორგანიზაციის მიერ</translation> <translation id="8379156816349755485">სისტემაში შესვლისას შეინახება ავტორიზაციის უნიკალური ჟეტონი, რომელიც გამოყენებული იქნება კრიტერიუმების შესაბამისი ყველა მომდევნო ჩამოტვირთვისთვის.</translation> <translation id="8379878387931047019">ამ მოწყობილობის მიერ მხარდაუჭერელია უსაფრთხოების გასაღების ის ტიპი, რომელსაც ითხოვს ეს ვებსაიტი</translation> @@ -8594,6 +8615,7 @@ <ph name="LIST_ITEM" />Chrome-ის კავშირების დიაგნოსტიკა <ph name="END_LIST" /></translation> <translation id="916607977885256133">გამოსახულება გამოსახულებაში</translation> +<translation id="9166253503936244008">დაასკანირეთ ეს QR კოდი იმ მოწყობილობით, რომელზეც წვდომის ის გასაღებია, რომელიც გსურთ, გამოიყენოთ <ph name="APP_NAME" />-ისთვის</translation> <translation id="9167063903968449027">საკითხავი სიის ჩვენება</translation> <translation id="9167450455589251456">ეს პროფილი მხარდაუჭერელია</translation> <translation id="9168436347345867845">მოგვიანებით გაკეთება</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 7352eee..ef4e757 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2394,6 +2394,7 @@ <translation id="3188465121994729530">ಸರಿಸುವಿಕೆ ಸರಾಸರಿ</translation> <translation id="3189187154924005138">ದೊಡ್ಡ ಕರ್ಸರ್</translation> <translation id="3190558889382726167">ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ</translation> +<translation id="3192589799003798742">Chromebook ನಲ್ಲಿ Steam ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="3192947282887913208">ಆಡಿಯೋ ಫೈಲ್ಗಳು</translation> <translation id="3193695589337931419">ಸಿಸ್ಟಂ ಸಿಗ್ನಲ್ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುವ ಯುಟಿಲಿಟಿಗಳು</translation> <translation id="3194786596445804250">ಥರ್ಡ್-ಪಾರ್ಟಿ ಕುಕಿಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವ ಕುರಿತು ವಿವರಗಳನ್ನು ತೋರಿಸಿ</translation> @@ -2533,6 +2534,7 @@ <translation id="3341699307020049241">ಪಿನ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ಇನ್ನೂ <ph name="RETRIES" /> ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.</translation> <translation id="3341703758641437857">URL ಗಳನ್ನು ಫೈಲ್ಗಳಿಗೆ ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಿ</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ಈ ವಿಸ್ತರಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲು ಬಯಸುತ್ತದೆ.</translation> +<translation id="3343977377045378693">ಸೆಟಪ್ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="3345135638360864351">ಈ ಸೈಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಸಲ್ಲಿಸಿದ ವಿನಂತಿಯನ್ನು <ph name="NAME" /> ಗೆ ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="3345634917232014253">ಸುರಕ್ಷತೆ ಪರಿಶೀಲನೆಯು ಸ್ವಲ್ಪ ಸಮಯದ ಹಿಂದೆ ನಡೆದಿದೆ</translation> <translation id="3345886924813989455">ಯಾವುದೇ ಬೆಂಬಲಿತ ಬ್ರೌಸರ್ ಕಂಡುಬಂದಿಲ್ಲ</translation> @@ -2544,6 +2546,7 @@ <translation id="3354768182971982851">ಡಿಸೆಂಬರ್ 2022 ರ ನಂತರ Chrome ಆ್ಯಪ್ಗಳ ಹಳೆಯ ಆವೃತ್ತಿಗಳು Mac ಸಾಧನಗಳಲ್ಲಿ ತೆರೆಯುವುದಿಲ್ಲ. ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆಯೇ ಎಂಬುದನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬಹುದು.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> ಸಾಧನಕ್ಕೆ ಜೋಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಪುನಃ ಪ್ರಯತ್ನಿಸಲು ಸಾಧನವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="3355936511340229503">ಸಂಪರ್ಕ ದೋಷ</translation> +<translation id="3356036636691722598">ನಿಮ್ಮ Chromebook ನಲ್ಲಿ ಗೇಮಿಂಗ್ ಅನ್ನು ಆನಂದಿಸಿ</translation> <translation id="3356469410714175391">(ವರ್ಚುವಲ್ ಕಾರ್ಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ)</translation> <translation id="3356580349448036450">ಪೂರ್ಣಗೊಂಡಿದೆ</translation> <translation id="3359256513598016054">ಪ್ರಮಾಣಪತ್ರ ನೀತಿ ನಿರ್ಬಂಧಗಳು</translation> @@ -3453,6 +3456,7 @@ <translation id="4211904048067111541">Android ಆ್ಯಪ್ಗಳ ಜೊತೆ ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation> <translation id="42126664696688958">ರಫ್ತು</translation> <translation id="42137655013211669">ಈ ಸಂಪನ್ಮೂಲಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಸರ್ವರ್ ಮೂಲಕ ನಿಷೇಧಿಸಲಾಗಿದೆ.</translation> +<translation id="4214192212360095377">ಈಗ ಆಫ್ ಮಾಡಿ</translation> <translation id="4217558091331485702">ತೆರೆಯುವ ಮೊದಲು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ</translation> <translation id="4217571870635786043">ಉಕ್ತಲೇಖನ</translation> <translation id="4218081191298393750">ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲು ಸ್ಪೀಕರ್ ಐಕಾನ್ ಕ್ಲಿಕ್ ಮಾಡಿ</translation> @@ -4347,6 +4351,7 @@ <translation id="5089763948477033443">ಸೈಡ್ ಪ್ಯಾನೆಲ್ ಮರುಗಾತ್ರಗೊಳಿಸುವ ಹ್ಯಾಂಡಲ್</translation> <translation id="5090637338841444533">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಸ್ಥಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="5093569275467863761">ಅಜ್ಞಾತ ಬ್ಯಾಕ್-ಫಾರ್ವರ್ಡ್ ಕ್ಯಾಷ್ ಮಾಡಿದ ಸಬ್-ಫ್ರೇಮ್: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">ಇನ್ಸ್ಟಾಲೇಶನ್ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="5094176498302660097">Files ಅಥವಾ ಇತರ ಆ್ಯಪ್ಗಳಲ್ಲಿರುವ ಈ ಆ್ಯಪ್ ಬಳಸಿಕೊಂಡು ನೀವು ಬೆಂಬಲಿತ ಫೈಲ್ಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಬಹುದು. ಈ ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಯಾವ ಫೈಲ್ಗಳನ್ನು ತೆರೆಯಬೇಕು ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು, <ph name="BEGIN_LINK" />ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆ್ಯಪ್ಗಳನ್ನು ಸೆಟ್ ಮಾಡುವುದು ಹೇಗೆ ಎಂಬುದರ ಕುರಿತು ತಿಳಿಯಿರಿ<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">ಸಹಕರಿಸುವ ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation> @@ -6360,6 +6365,7 @@ <translation id="7014174261166285193">ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ.</translation> <translation id="7014480873681694324">ಹೈಲೈಟ್ ತೆಗೆದುಹಾಕಿ</translation> <translation id="7014741021609395734">ಝೂಮ್ ಮಟ್ಟ</translation> +<translation id="7014961128696979283">Steam ಪ್ರಾರಂಭಿಸಿ</translation> <translation id="7015088858756332848">Chromebook ನಲ್ಲಿ Steam ಅನ್ನು ಲಾಂಚ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation> <translation id="7017004637493394352">"Ok Google" ಎಂದು ಮತ್ತೊಮ್ಮೆ ಹೇಳಿ</translation> <translation id="7017219178341817193">ಒಂದು ಹೊಸ ಪುಟವನ್ನು ಸೇರಿಸಿ</translation> @@ -6752,6 +6758,7 @@ <translation id="7423425410216218516">ಗೋಚರತೆ <ph name="MINUTES" /> ನಿಮಿಷಗಳವರೆಗೆ ಆನ್ ಇರುತ್ತದೆ</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation> <translation id="7423807071740419372">ರನ್ ಆಗಲು <ph name="APP_NAME" /> ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation> +<translation id="7424153922653300265">ಎನರ್ಜಿ ಸೇವರ್ ಆನ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="7424818322350938336">ನೆಟ್ವರ್ಕ್ ಸೇರಿಸಲಾಗಿದೆ</translation> <translation id="7427315069950454694">ಇಂದಿನ ನಿಮ್ಮ ನೆನಪುಗಳು</translation> <translation id="7427348830195639090">ಹಿನ್ನೆಲೆ ಪುಟ: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7986,6 +7993,7 @@ <translation id="859246725979739260">ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಈ ಸೈಟ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation> <translation id="8593121833493516339">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಮಗುವಿನ Android ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಿ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್ಗಳು. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK1" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">ಕಸ್ಟಮ್ ಫೈಲ್ಗಳು</translation> +<translation id="8597404194697561297">Chromebook ನಲ್ಲಿ Steam ಗೆ ಸುಸ್ವಾಗತ</translation> <translation id="8597845839771543242">ಗುಣಲಕ್ಷಣದ ಫಾರ್ಮ್ಯಾಟ್:</translation> <translation id="8599681327221583254">ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ನೀತಿಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ</translation> <translation id="8599864823732014237">ಎಂಟರ್ಪ್ರೈಸ್ ನೋಂದಣಿಯನ್ನು ಸ್ಕಿಪ್ ಮಾಡಬೇಕೇ?</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index b5513a9..6511118d 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -2385,6 +2385,7 @@ <translation id="3188465121994729530">ശരാശരി നീക്കുന്നു</translation> <translation id="3189187154924005138">വലിയ കഴ്സർ</translation> <translation id="3190558889382726167">പാസ്വേഡ് സംരക്ഷിച്ചു</translation> +<translation id="3192589799003798742">Chromebook-ൽ Steam സജ്ജീകരിക്കുന്നു</translation> <translation id="3192947282887913208">ഓഡിയോ ഫയലുകള്</translation> <translation id="3193695589337931419">സിസ്റ്റം സിഗ്നലുകൾക്ക് ഉപയോഗിക്കുന്ന യൂട്ടിലിറ്റികൾ</translation> <translation id="3194786596445804250">മൂന്നാം കക്ഷി കുക്കികൾ ബ്ലോക്ക് ചെയ്യുന്നതിനെ കുറിച്ചുള്ള വിശദാംശങ്ങൾ കാണിക്കുക</translation> @@ -2524,6 +2525,7 @@ <translation id="3341699307020049241">പിൻ തെറ്റാണ്. <ph name="RETRIES" /> ശ്രമങ്ങൾ ശേഷിക്കുന്നു.</translation> <translation id="3341703758641437857">URL കള് ഫയല് ചെയ്യുന്നതിന് ആക്സസ്സ് അനുവദിക്കുക</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ഈ വിപുലീകരണം നീക്കം ചെയ്യാൻ ആഗ്രഹിക്കുന്നു.</translation> +<translation id="3343977377045378693">സജ്ജീകരിക്കുന്നു</translation> <translation id="3345135638360864351">ഈ സൈറ്റ് ആക്സസ് ചെയ്യാനുള്ള നിങ്ങളുടെ അഭ്യർത്ഥന, <ph name="NAME" /> എന്നയാൾക്ക് അയയ്ക്കാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3345634917232014253">അൽപ്പം മുമ്പ് സുരക്ഷാ പരിശോധന നടന്നു</translation> <translation id="3345886924813989455">പിന്തുണയ്ക്കുന്ന ഒരു ബ്രൌസറും കണ്ടെത്തിയില്ല</translation> @@ -2535,6 +2537,7 @@ <translation id="3354768182971982851">2022 ഡിസംബറിന് ശേഷം, Chrome ആപ്പുകളുടെ പഴയ പതിപ്പുകൾ Mac ഉപകരണങ്ങളിൽ തുറക്കാനാകില്ല. പുതിയ പതിപ്പ് ലഭ്യമാണോയെന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> ഉപകരണവുമായി ജോടിയാക്കാനായില്ല; വീണ്ടും ശ്രമിക്കാൻ ഉപകരണം തിരഞ്ഞെടുക്കുക</translation> <translation id="3355936511340229503">കണക്ഷന് പിശക്.</translation> +<translation id="3356036636691722598">നിങ്ങളുടെ Chromebook-ൽ ഗെയിമിംഗ് ആസ്വദിക്കൂ</translation> <translation id="3356469410714175391">(വെർച്വൽ കാർഡ് പ്രവർത്തനക്ഷമമാക്കി)</translation> <translation id="3356580349448036450">പൂര്ത്തിയാക്കൂ</translation> <translation id="3359256513598016054">സര്ട്ടിഫിക്കറ്റ് നയ നിയന്ത്രണങ്ങള്</translation> @@ -3442,6 +3445,7 @@ <translation id="4211904048067111541">Android ആപ്പുകളിൽ ഉപയോഗിക്കുന്നത് നിർത്തുക</translation> <translation id="42126664696688958">എക്സ്പോർട്ടുചെയ്യുക</translation> <translation id="42137655013211669">ഈ ഉറവിടത്തിലേക്കുള്ള ആക്സസ് സെർവർ തടഞ്ഞു.</translation> +<translation id="4214192212360095377">ഇപ്പോൾ ഓഫാക്കുക</translation> <translation id="4217558091331485702">തുറക്കുന്നതിന് മുമ്പ് സ്കാൻ ചെയ്യുക</translation> <translation id="4217571870635786043">പറഞ്ഞ് കൊടുക്കൽ</translation> <translation id="4218081191298393750">ഈ ടാബ് മ്യൂട്ട് ചെയ്യാൻ സ്പീക്കർ ഐക്കൺ ക്ലിക്ക് ചെയ്യുക</translation> @@ -4335,6 +4339,7 @@ <translation id="5089763948477033443">സൈഡ് പാനലിന്റെ വലുപ്പം മാറ്റുന്ന ഹാൻഡിൽ</translation> <translation id="5090637338841444533">നിങ്ങളുടെ ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യാൻ അനുവാദമില്ല</translation> <translation id="5093569275467863761">അദൃശ്യ ബാക്ക്-ഫോർവേഡ് കാഷെ സബ്ഫ്രെയിം: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">ഇൻസ്റ്റാൾ ചെയ്യൽ ആരംഭിക്കുന്നു</translation> <translation id="5094176498302660097">Files ആപ്പിൽ നിന്നോ മറ്റ് ആപ്പുകളിൽ നിന്നോ ഈ ആപ്പ് ഉപയോഗിച്ച് പിന്തുണയ്ക്കുന്ന ഫയലുകൾ നിങ്ങൾക്ക് തുറക്കാനും എഡിറ്റ് ചെയ്യാനുമാകും. ഡിഫോൾട്ടായി ഏതൊക്കെ ഫയലുകൾ തുറക്കാൻ ഈ ആപ്പിന് കഴിയുമെന്നത് നിയന്ത്രിക്കാൻ, <ph name="BEGIN_LINK" />നിങ്ങളുടെ ഉപകരണത്തിൽ ഡിഫോൾട്ട് ആപ്പുകൾ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് അറിയുക<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">സഹകരിക്കുന്ന നേറ്റീവ് അപ്ലിക്കേഷനുകളുമായി ആശയവിനിമയം നടത്തുക</translation> <translation id="5097002363526479830">'<ph name="NAME" />' നെറ്റ്വര്ക്കിലേക്ക് ബന്ധിപ്പിക്കുന്നതിൽ പരാജയപ്പെട്ടു: <ph name="DETAILS" /></translation> @@ -6347,6 +6352,7 @@ <translation id="7014174261166285193">ഇന്സ്റ്റാളേഷന് പരാജയപ്പെട്ടു.</translation> <translation id="7014480873681694324">ഹൈലൈറ്റ് നീക്കം ചെയ്യുക</translation> <translation id="7014741021609395734">സൂം നില</translation> +<translation id="7014961128696979283">Steam ലോഞ്ച് ചെയ്യുക</translation> <translation id="7015088858756332848">Chromebook-ൽ Steam ലോഞ്ച് ചെയ്യാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കുക</translation> <translation id="7017004637493394352">വീണ്ടും "Ok Google" പറയുക</translation> <translation id="7017219178341817193">ഒരു പുതിയ പേജ് ചേര്ക്കുക</translation> @@ -6738,6 +6744,7 @@ <translation id="7423425410216218516">ദൃശ്യപരത <ph name="MINUTES" /> മിനിറ്റ് നേരത്തേക്ക് ഓണാകും</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> നീക്കം ചെയ്യുക</translation> <translation id="7423807071740419372"><ph name="APP_NAME" />-ന് പ്രവർത്തിക്കാൻ നിങ്ങളുടെ അനുമതി ആവശ്യമുണ്ട്</translation> +<translation id="7424153922653300265">എനർജി സേവർ ഓണാക്കി</translation> <translation id="7424818322350938336">നെറ്റ്വർക്ക് ചേർത്തു</translation> <translation id="7427315069950454694">ഇന്നത്തെ നിങ്ങളുടെ മനോഹര ഓർമ്മകൾ</translation> <translation id="7427348830195639090">പശ്ചാത്തല പേജ്: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7976,6 +7983,7 @@ <translation id="859246725979739260">നിങ്ങളുടെ ലൊക്കേഷൻ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു.</translation> <translation id="8593121833493516339">ഉപയോഗവും പ്രശ്നനിർണ്ണയവുമായി ബന്ധപ്പെട്ട ഡാറ്റ അയയ്ക്കുക. പ്രശ്നനിർണ്ണയം, ഉപകരണം, ആപ്പ് ഉപയോഗം എന്നിവയുമായി ബന്ധപ്പെട്ട ഡാറ്റ സ്വയമേവ Google-ന് അയച്ച്, കുട്ടിയുടെ Android അനുഭവം മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. കുട്ടിയെ തിരിച്ചറിയാൻ ഇത് ഉപയോഗിക്കില്ല, സിസ്റ്റം, ആപ്പ് സ്ഥിരത, മറ്റ് മെച്ചപ്പെടുത്തൽ എന്നിവയ്ക്ക് സഹായിക്കുകയും ചെയ്യും. ചില സംഗ്രഹ ഡാറ്റ, Google ആപ്പുകളെയും Android ഡെവലപ്പർമാരെപ്പോലുള്ള പങ്കാളികളെയും സഹായിക്കുകയും ചെയ്യും. കുട്ടിയുടെ അധിക വെബ്, ആപ്പ് ആക്റ്റിവിറ്റി ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, ഈ ഡാറ്റ അവരുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കപ്പെട്ടേക്കാം. <ph name="BEGIN_LINK1" />കൂടുതലറിയുക<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">ഇഷ്ടാനുസൃത ഫയലുകള്</translation> +<translation id="8597404194697561297">Chromebook-ലെ Steam-ലേക്ക് സ്വാഗതം</translation> <translation id="8597845839771543242">പ്രോപ്പർട്ടി ഫോർമാറ്റ്:</translation> <translation id="8599681327221583254">ഒന്നോ അതിലധികമോ നയങ്ങൾ ശരിയായി കോൺഫിഗർ ചെയ്തിട്ടില്ല. നിങ്ങളുടെ അഡ്മിനെ ബന്ധപ്പെടുക</translation> <translation id="8599864823732014237">എന്റർപ്രൈസ് എൻറോൾമെന്റ് ഒഴിവാക്കണോ?</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index d56390f..d1e6119 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -71,6 +71,7 @@ <translation id="1067048845568873861">Үүсгэсэн</translation> <translation id="1067661089446014701">Нэмэлт аюулгүй байдлын үүднээс та төхөөрөмж дээрх нууц үгнүүдээ Google Бүртгэлдээ хадгалахаасаа өмнө шифрлэх боломжтой</translation> <translation id="1067922213147265141">Google-н бусад үйлчилгээ</translation> +<translation id="1069104208554708737">Энэ passkey-г зөвхөн уг төхөөрөмж дээр хадгална</translation> <translation id="1069355737714877171"><ph name="PROFILE_NAME" /> нэртэй eSIM профайлыг хасах</translation> <translation id="1069814191880976658">Өөр дэлгэц сонгох</translation> <translation id="1070377999570795893">Taны компьютерын өөр нэг программ өргөтгөл нэмсэн бөгөөд энэ нь Chrome-н ажиллах зарчмыг өөрчилж магад. @@ -345,6 +346,7 @@ <translation id="1324106254079708331">Зорилтот халдлагын эрсдэлд байгаа аливаа хүний хувийн Google Бүртгэлийг хамгаалдаг</translation> <translation id="1327272175893960498">Kerberos тасалбар</translation> <translation id="1327495825214193325">ADB алдаа засахыг идэвхжүүлэхийн тулд энэ <ph name="DEVICE_TYPE" />-г дахин эхлүүлэх шаардлагатай. Үүнийг идэвхгүй болгоход үйлдвэрийн тохиргоонд шинэчлэх шаардлагатай.</translation> +<translation id="1327527584824210101">Passkey-ээ ашиглана уу</translation> <translation id="1327794256477341646">Таны байршил шаардлагатай онцлогууд ажиллахгүй</translation> <translation id="1331977651797684645">Би байсан.</translation> <translation id="1333489022424033687">Таны төхөөрөмж дээр бусад сайтын хадгалсан өгөгдлийг та устгах хүртэл <ph name="ORIGIN" /> дээрх зарим онцлог ажиллахгүй байж болзошгүй</translation> @@ -405,6 +407,7 @@ <translation id="139013308650923562">Таны төхөөрөмж дээр суулгасан фонтуудыг ашиглахыг зөвшөөрсөн</translation> <translation id="1390548061267426325">Энгийн цонх хэлбэрээр нээх</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> нь <ph name="PRINTER_NAME" />-р хэвлэх зөвшөөрөлгүй. Админтайгаа холбогдоно уу.</translation> +<translation id="1392047138650695757">Хэрэглэгчийн толь</translation> <translation id="1393283411312835250">Нар, үүл</translation> <translation id="1395730723686586365">Шинэчлэлт эхэлсэн</translation> <translation id="1395832189806039783">Гарын фокусаар зүйл тодруулах</translation> @@ -1520,6 +1523,7 @@ <translation id="2356070529366658676">Асуух</translation> <translation id="2357330829548294574"><ph name="USER_NAME" />-г хасах</translation> <translation id="2358561147588818967">Сайтууд JavaScript ашиглах боломжтой</translation> +<translation id="2358703245148663432">Өөр төхөөрөмж</translation> <translation id="2358777858338503863"><ph name="ORIGIN" /> дээр зөвшөөрөхийн тулд товшино уу:</translation> <translation id="2359071692152028734">Linux аппууд хариу өгөхгүй болсон байж болзошгүй.</translation> <translation id="2359345697448000899">Хэрэгслүүд цэснээс Өргөтгөлүүд хэсэг дээр дарж өргөтгөлүүдээ удирдаарай.</translation> @@ -1879,6 +1883,7 @@ <translation id="271033894570825754">Шинэ</translation> <translation id="2711073837061989559">Туршилтын хугацаа</translation> <translation id="2712173769900027643">Зөвшөөрөл авах</translation> +<translation id="2712207122921938368">Өөр төхөөрөмж дээр passkey үүсгэнэ үү</translation> <translation id="2713106313042589954">Камерыг унтраах</translation> <translation id="2713444072780614174">Цагаан</translation> <translation id="2714393097308983682">Google Play Store</translation> @@ -2389,6 +2394,7 @@ <translation id="3182749001423093222">Зөв бичгийн алдаа шалгах</translation> <translation id="3183139917765991655">Профайл импортлогч</translation> <translation id="3183143381919926261">Мобайл дата сүлжээнүүд</translation> +<translation id="3183613134231754987">Энэ passkey-г зөвхөн Windows Hello-д хадгална. Энэ нь таныг нууцлалтай бүх цонхыг хаасны дараа уг төхөөрөмж дээр үлдэнэ.</translation> <translation id="3183944777708523606">Зохион байгуулалтыг хянах</translation> <translation id="3184536091884214176">CUPS хэвлэгчийг тохируулах эсвэл удирдах. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation> <translation id="3185014249447200271">{NUM_APPS,plural, =1{Энэ аппыг блоклосон байна}other{Зарим аппыг блоклосон байна}}</translation> @@ -2866,6 +2872,7 @@ <translation id="3654045516529121250">Өөрийн нэвтрэх боломжит байдлын тохиргоонуудыг унш</translation> <translation id="3655712721956801464">{NUM_FILES,plural, =1{Энэ нь нэг файл руу байнга нэвтрэх эрхтэй байна.}other{Энэ нь # файл руу байнга нэвтрэх эрхтэй байна.}}</translation> <translation id="3658871634334445293">TrackPoint хурдасгуур</translation> +<translation id="3659550105763988702"><ph name="APP_NAME" />-н passkey-ээ ашиглана уу</translation> <translation id="3659929705630080526">Та нэвтрэх кодыг хэт олон удаа буруу оруулсан байна. Дараа дахин оролдоно уу</translation> <translation id="3660234220361471169">Найдваргүй</translation> <translation id="3664511988987167893">Өргөтгөлийн дүрс тэмдэг</translation> @@ -3135,6 +3142,7 @@ <translation id="3898327728850887246"><ph name="SITE_NAME" /> дараах зөвшөөрлүүдийг хүсэж байна: <ph name="FIRST_PERMISSION" /> болон <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Гар сонгох</translation> <translation id="3900966090527141178">Нууц үгийг экспортлох</translation> +<translation id="3902789559055749153">Та <ph name="APP_NAME" />-д passkey-г хэрхэн үүсгэх хүсэлтэй байгаагаа сонгоно уу</translation> <translation id="3903187154317825986">Суурилагдсан гар</translation> <translation id="3904326018476041253">Байршлын үйлчилгээ</translation> <translation id="3904849010307028014">Бүртгэлд тогтмол нэвтрэх зэрэг таны сайттай хийсэн харилцан үйлдэл тулгуурлан тухайн сайт таны хөтчид итгэмжлэгдсэн токен олгох боломжтой. Дараа нь хэрэв таны зочилсон бусад сайт хүчинтэй итгэмжлэгдсэн токен шалгасан, мөн олсон бол тэдгээр сайт тантай бот бус харин хүн шиг хандах магадлал өндөр болно.</translation> @@ -3463,6 +3471,7 @@ <translation id="4218081191298393750">Энэ табын дууг хаахын тулд чанга яригчийн дүрс тэмдгийг товшино уу</translation> <translation id="4219558185499589032">Box</translation> <translation id="4220648711404560261">Идэвхжүүлэх явцад алдаа гарлаа.</translation> +<translation id="4223845867739585293">Passkey үүсгэнэ үү</translation> <translation id="4225397296022057997">Бүх сайтад</translation> <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Энэ өргөтгөлийг зөвшөөрдөггүй}other{Зарим өргөтгөлийг зөвшөөрдөггүй}}</translation> <translation id="4231095370974836764"><ph name="DEVICE_TYPE" /> дээрээ Google Play-с апп болон тоглоомууд суулгана уу. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation> @@ -4101,6 +4110,7 @@ <translation id="4838907349371614303">Нууц үгийг шинэчилсэн</translation> <translation id="4838958829619609362">Сонголт <ph name="LANGUAGE" />-р биш байна</translation> <translation id="4839303808932127586">Видеог ... хэлбэрээр хадгалах</translation> +<translation id="4839910546484524995">Төхөөрөмжөө шалгана уу</translation> <translation id="4840096453115567876">Нууцлалтай горимоос ямартай ч гарах уу?</translation> <translation id="4841741146571978176">Шаардлагатай виртуал машин байхгүй байна. Үргэлжлүүлэхийн тулд <ph name="VM_TYPE" />-г тохируулж үзнэ үү</translation> <translation id="4842976633412754305">Энэ хуудас нь баталгаажаагүй эх үүсвэрээс скриптүүдийг ачаалахыг оролдож байна.</translation> @@ -5010,6 +5020,7 @@ <translation id="5729712731028706266">Харах</translation> <translation id="5731247495086897348">Хуулан буулгах & Үргэлжлүүлэх</translation> <translation id="5732392974455271431">Таны эцэг эх үүнийг блокоос гаргах боломжтой</translation> +<translation id="5733109311583381874">Хөрвүүлэлтийн хувилбаруудыг өөрчлөхийн тулд та өөрийн үгийг хэрэглэгчийн тольд нэмнэ үү.</translation> <translation id="5733866499231170760">ID буруу байна. Таны оруулсан формат буруу байна. Та ID-г зөв форматаар оруулж байгаа болохоо баталгаажуулахын тулд хүлээн авсан зааварчилгаагаа шалгана уу. Хэрэв та энэ асуудлыг шийдвэрлэх боломжгүй бол талбарыг хоосон орхиж, үргэлжлүүлэн суулгана уу.</translation> <translation id="5734362860645681824">Харилцаа холбоо</translation> <translation id="5734697361979786483">Файл хуваалцахыг нэмэх</translation> @@ -5117,6 +5128,7 @@ <translation id="583431638776747">Сайт боломжгүй байсан</translation> <translation id="5834581999798853053"><ph name="TIME" /> үлдсэн минутын тухай</translation> <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Камер, эсвэл микрофоны бичлэг</translation> +<translation id="5835625581856809102">Та <ph name="APP_NAME" />-д passkey үүсгэхийг хүсэж буй төхөөрөмжөөрөө энэ QR кодыг скан хийнэ үү</translation> <translation id="583673505367439042">Сайтууд таны төхөөрөмж дээрх файлууд эсвэл фолдеруудыг засахыг хүсэх боломжтой</translation> <translation id="5836999627049108525">Орчуулах хэл</translation> <translation id="583756221537636748">Гэр</translation> @@ -5354,6 +5366,7 @@ <translation id="6059276912018042191">Саяхны Chrome табууд</translation> <translation id="6059652578941944813">Гэрчилгээний шатлал</translation> <translation id="6059925163896151826">USB төхөөрөмж</translation> +<translation id="6061408389284235459">Мэдэгдлийг <ph name="DEVICE_NAME" />-д илгээсэн</translation> <translation id="6063284707309177505">QR код үүсгэх</translation> <translation id="6063847492705284550"><ph name="BEGIN_BOLD" />Санамж:<ph name="END_BOLD" /> Төстэй дуу хоолой эсвэл бичлэгээр <ph name="SUPERVISED_USER_NAME" />-н хувийн илэрцэд хандах боломжтой байж магадгүй. Батарей хэмнэхийн тулд та <ph name="SUPERVISED_USER_NAME" />-н Туслахын тохиргоо хэсэгт энэ төхөөрөмжийг зөвхөн цэнэглэгчид холбогдсон үед “Ok Google”-г асаалттай байлгахаар сонгож болно.</translation> <translation id="6064217302520318294">Дэлгэцийн түгжээ</translation> @@ -5479,6 +5492,7 @@ <translation id="6178664161104547336">Гэрчилгээг сонгоно уу</translation> <translation id="6178682841350631965">Таны нэвтрэх өгөгдлийг шинэчилсэн</translation> <translation id="6180510783007738939">Шугамын хэрэгсэл</translation> +<translation id="6180550893222597997">Та <ph name="APP_NAME" />-д ямар passkey ашиглахыг хүсэж байна вэ?</translation> <translation id="6181431612547969857">Татаж авах ажиллагаа хаагдлаа</translation> <translation id="6184099524311454384">Табыг хайх</translation> <translation id="6185132558746749656">Төхөөрөмжийн байршил</translation> @@ -5913,6 +5927,7 @@ <translation id="6596816719288285829">IP хаяг</translation> <translation id="6597017209724497268">Жишээ загвар</translation> <translation id="6597331566371766302">Дараах өргөтгөлүүдийг танай администратор блоклосон байна:</translation> +<translation id="6601262427770154296">Хэрэглэгчийн толийг удирдах</translation> <translation id="6601612474695404578">Зарим сайт нь хуудсаа ачаалахын тулд гуравдагч талын күүки ашигладаг. Хэрэв сайт ажиллахгүй байвал та күүкиг зөвшөөрч үзэж болно.</translation> <translation id="6602937173026466876">Хэвлэгчдээ хандах</translation> <translation id="6602956230557165253">Навигац хийхийн тулд зүүн, баруун сумтай түлхүүрүүдийг ашиглах.</translation> @@ -6271,6 +6286,7 @@ <translation id="6943060957016121200">Шуурхай модем болгохыг идэвхжүүлэх</translation> <translation id="6943176775188458830">Хэвлэхийг цуцлах</translation> <translation id="6943939122536910181"><ph name="DEVICE" />-с салсан</translation> +<translation id="6944708469742828051">Энэ passkey-г зөвхөн Windows Hello-д хадгална</translation> <translation id="6945221475159498467">Сонгох</translation> <translation id="694592694773692225">Энэ хуудсанд дахин чиглүүлэлтийг блоклосон байна.</translation> <translation id="6947015141909171112">Та жорд зориулсан Хайлтын саяхны үйл ажиллагаандaa тулгуурласан жоруудыг харж байна. @@ -6521,6 +6537,7 @@ <translation id="7193051357671784796">Энэ аппыг танай байгууллага нэмсэн байна. Аппыг суулгаж дуусгахын тулд дахин эхлүүлнэ үү.</translation> <translation id="7193374945610105795"><ph name="ORIGIN" />-д хадгалсан нууц үг алга</translation> <translation id="7194873994243265344">Энэ файлыг шифрлэсэн тул танай байгууллага үүнийг блоклосон. Өмчлөгчөөс нь үүний кодыг тайлахыг хүснэ үү.</translation> +<translation id="7196272782924897510">Өөр төхөөрөмжөөс passkey ашиглах уу?</translation> <translation id="7196913789568937443">Google Драйвт нөөцлөх. Өгөгдлөө хялбархнаар сэргээж эсвэл төхөөрөмжийг хүссэн үедээ сэлгээрэй. Таны нөөцлөлтөд аппын өгөгдөл багтдаг. Таны нөөцлөлтийг Google-д байршуулдаг бөгөөд таны Google Бүртгэлийн нууц үгийг ашиглан шифрлэдэг. <ph name="BEGIN_LINK1" />Нэмэлт мэдээлэл авах<ph name="END_LINK1" /></translation> <translation id="7197190419934240522">Хөтчийг ашиглах бүрдээ Google Хайлт болон Google smarts-г аваарай</translation> <translation id="719791532916917144">Товчлуурын шууд холбоос</translation> @@ -7020,6 +7037,7 @@ <translation id="7670483791111801022">Хадмал</translation> <translation id="7671130400130574146">Системийн гарчгийн мөр болон хүрээг ашигла</translation> <translation id="767127784612208024">Шинэчлэлтийг баталгаажуулахын тулд хүрнэ үү</translation> +<translation id="7672504401554182757"><ph name="APP_NAME" />-н passkey аль төхөөрөмжид байгааг сонгоно уу</translation> <translation id="7672520070349703697"><ph name="PAGE_TITLE" />-н <ph name="HUNG_IFRAME_URL" />.</translation> <translation id="7674416868315480713">Linux-д шилжүүлж буй бүх портыг идэвхгүй болгох</translation> <translation id="7674537509496907005"><ph name="APP_COUNT" /> апп</translation> @@ -7129,6 +7147,7 @@ <translation id="7766807826975222231">Аялцгаая</translation> <translation id="7766838926148951335">Зөвшөөрлийг зөвшөөрөх</translation> <translation id="7767554953520855281">Таныг дэлгэцээ хуваалцах үед дэлгэрэнгүйг нууна</translation> +<translation id="7767972280546034736"><ph name="APP_NAME" />-д passkey үүсгэнэ үү</translation> <translation id="7768507955883790804">Таныг сайт руу зочлоход энэ тохиргоог сайт автоматаар дагана</translation> <translation id="7768526219335215384"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> дахь файлуудыг үзэх боломжтой болно</translation> <translation id="7768770796815395237">Өөрчлөх</translation> @@ -7611,6 +7630,7 @@ <translation id="820568752112382238">Хамгийн их зочилсон сайт</translation> <translation id="8206745257863499010">Bluesy</translation> <translation id="8206859287963243715">Үүрэн холбоо</translation> +<translation id="8207404892907560325">Passkey сонгоно уу</translation> <translation id="8208216423136871611">Бүү хадгал</translation> <translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Шинэ мэдэгдэл}other{# шинэ мэдэгдэл}}</translation> <translation id="821119981794423735">Нууц үгнүүдийг <ph name="USER_EMAIL" />-н Google Password Manager-т импорт хийхийн тулд CSV файл сонгоно уу</translation> @@ -7783,6 +7803,7 @@ <translation id="8376137163494131156">Google Cast-д юу болж байгааг бидэнд хэлнэ үү.</translation> <translation id="8376384591331888629">Энэ сайт дээрх гуравдагч талын күүкитэй цуг</translation> <translation id="8376451933628734023">Хэрэв энэ веб апп өөрийгөө өөр апп гэж танд итгүүлж, хуурахаар оролдож байвал үүнийг устгана уу.</translation> +<translation id="8377625247046155446">Энэ passkey-г зөвхөн уг төхөөрөмж дээр хадгална. Энэ нь таныг нууцлалтай бүх цонхыг хаасны дараа уг төхөөрөмж дээр үлдэнэ.</translation> <translation id="8378714024927312812">Танай байгууллагаас удирддаг</translation> <translation id="8379156816349755485">Нэвтрэх үед баталгаажуулалтын өвөрмөц токеныг хадгалах бөгөөд ирээдүйн бүх эрх бүхий таталтад ашиглана.</translation> <translation id="8379878387931047019">Энэ төхөөрөмж энэ веб сайтаас хүссэн аюулгүй байдлын түлхүүрийн төрлийг дэмждэггүй</translation> @@ -8601,6 +8622,7 @@ <ph name="LIST_ITEM" />Chrome холбоосны оношилгоог ажиллуулах <ph name="END_LIST" /></translation> <translation id="916607977885256133">Дэлгэцэн доторх дэлгэц</translation> +<translation id="9166253503936244008">Та <ph name="APP_NAME" />-д ашиглахыг хүсэж буй passkey-тэй төхөөрөмжөөрөө энэ QR кодыг скан хийнэ үү</translation> <translation id="9167063903968449027">Унших жагсаалтыг харуулах</translation> <translation id="9167450455589251456">Профайлыг дэмждэггүй</translation> <translation id="9168436347345867845">Үүнийг дараа хийх</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index ac2bfcc..823d2fa0 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2400,6 +2400,7 @@ <translation id="3188465121994729530">हलविण्याची सरासरी</translation> <translation id="3189187154924005138">मोठा कर्सर</translation> <translation id="3190558889382726167">पासवर्ड सेव्ह केला</translation> +<translation id="3192589799003798742">Chromebook वर Steam सेट करत आहे</translation> <translation id="3192947282887913208">ऑडिओ फाइल</translation> <translation id="3193695589337931419">सिस्टीम सिग्नल उपयुक्तता</translation> <translation id="3194786596445804250">तृतीय पक्ष कुकी ब्लॉक करण्यासंबंधित तपशील दाखवा</translation> @@ -2539,6 +2540,7 @@ <translation id="3341699307020049241">चुकीचा पिन. तुमच्याकडे <ph name="RETRIES" /> प्रयत्न शिल्लक आहेत.</translation> <translation id="3341703758641437857">फाइल URL ॲक्सेसला परवानगी द्या</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ला हे एक्स्टेंशन काढायचे आहे.</translation> +<translation id="3343977377045378693">सेटअप परफॉर्म करत आहे</translation> <translation id="3345135638360864351">या साइट ॲक्सेस करण्याची तुमची विनंती <ph name="NAME" /> कडे पाठवली जाऊ शकली नाही. कृपया पुन्हा प्रयत्न करा.</translation> <translation id="3345634917232014253">सुरक्षा तपासणी क्षणभरापूर्वी रन केली गेली</translation> <translation id="3345886924813989455">सपोर्ट असलेला ब्राउझर आढळला नाही</translation> @@ -2550,6 +2552,7 @@ <translation id="3354768182971982851">Chrome ॲप्सच्या जुन्या आवृत्त्या डिसेंबर २०२२ नंतर Mac डिव्हाइसवर उघडणार नाहीत. नवीन आवृत्ती उपलब्ध आहे का ते तुम्ही तपासू शकता.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> या डिव्हाइससोबत पेअर करता आले नाही; पुन्हा प्रयत्न करण्यासाठी डिव्हाइस निवडा</translation> <translation id="3355936511340229503">कनेक्शन एरर</translation> +<translation id="3356036636691722598">तुमच्या Chromebook वर गेमिंगचा आनंद घ्या</translation> <translation id="3356469410714175391">(व्हर्च्युअल कार्ड सुरू केले)</translation> <translation id="3356580349448036450">पूर्ण</translation> <translation id="3359256513598016054">सर्टिफिकेट धोरण प्रतिबंध</translation> @@ -3456,6 +3459,7 @@ <translation id="4211904048067111541">Android अॅप्ससोबत वापरणे थांबवा</translation> <translation id="42126664696688958">एक्सपोर्ट</translation> <translation id="42137655013211669">सर्व्हरद्वारे या स्त्रोताचा ॲक्सेस निषिद्ध केला होता.</translation> +<translation id="4214192212360095377">आता बंद करा</translation> <translation id="4217558091331485702">उघडण्याआधी स्कॅन करा</translation> <translation id="4217571870635786043">डिक्टेशन</translation> <translation id="4218081191298393750">हा टॅब म्यूट करण्यासाठी स्पीकर आयकनवर क्लिक करा</translation> @@ -4350,6 +4354,7 @@ <translation id="5089763948477033443">साइड पॅनलचा आकार बदलणारे हँडल</translation> <translation id="5090637338841444533">तुमच्या कॅमेराचे स्थान ट्रॅक करण्याची अनुमती नाही</translation> <translation id="5093569275467863761">बॅक/फॉरवर्ड कॅशे केलेली गुप्त सबफ्रेम: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">इंस्टॉलेशन सुरू करत आहे</translation> <translation id="5094176498302660097">तुम्ही सपोर्ट असलेल्या फाइल या अॅपद्वारे Files अॅप किंवा इतर अॅप्समध्ये उघडू शकता आणि संपादित करू शकता. या ॲपमध्ये कोणत्या फाइल बाय डीफॉल्ट उघडल्या जाव्यात हे नियंत्रित करण्यासाठी, <ph name="BEGIN_LINK" />तुमच्या डिव्हाइसवर डीफॉल्ट अॅप्स कशी सेट करायची ते जाणून घ्या<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">मूळ अनुप्रयोगांना सहकार्य करून संवाद प्रस्थापित करा</translation> <translation id="5097002363526479830">'<ph name="NAME" />': नेटवर्कशी कनेक्ट करण्यात अयशस्वी. <ph name="DETAILS" /></translation> @@ -6361,6 +6366,7 @@ <translation id="7014174261166285193">स्थापना अयशस्वी.</translation> <translation id="7014480873681694324">हायलाइट काढून टाका</translation> <translation id="7014741021609395734">झूम करण्याची पातळी</translation> +<translation id="7014961128696979283">Steam लाँच करा</translation> <translation id="7015088858756332848">Steam ही Chromebook वर लाँच करता आली नाही. कृपया पुन्हा प्रयत्न करा</translation> <translation id="7017004637493394352">पुन्हा "Ok Google" म्हणा</translation> <translation id="7017219178341817193">एक नवीन पृष्ठ जोडा</translation> @@ -6752,6 +6758,7 @@ <translation id="7423425410216218516"><ph name="MINUTES" /> मिनिटांसाठी दृश्यमानता सुरू आहे</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> काढून टाका</translation> <translation id="7423807071740419372"><ph name="APP_NAME" /> ला रन होण्यासाठी परवानगीची आवश्यकता आहे</translation> +<translation id="7424153922653300265">एनर्जी सेव्हर सुरू केला</translation> <translation id="7424818322350938336">नेटवर्क जोडले</translation> <translation id="7427315069950454694">तुमची आजची मेमरी</translation> <translation id="7427348830195639090">पार्श्वभूमी पृष्ठ: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7988,6 +7995,7 @@ <translation id="859246725979739260">या साइटला तुमचे स्थान अॅक्सेस करण्यापासून ब्लॉक केले आहे.</translation> <translation id="8593121833493516339">वापर आणि निदान डेटा पाठवा. Google ला आपोआप निदान आणि डिव्हाइस आणि अॅप वापर डेटा पाठवून तुमच्या लहान मुलाचा Android अनुभव सुधारण्यात मदत करा. हे तुमच्या लहान मुलाला ओळखण्यासाठी वापरले जाणार नाही आणि सिस्ट्म आणि अॅप स्थिरता आणि इतर सुधारणा करण्यात मदत करेल. काही एकत्रित डेटा Google अॅप्स आणि Android डेव्हलपर सारख्या भागीदारांनादेखील मदत करेल. तुमच्या लहान मुलासाठी अतिरिक्त वेब आणि अॅप अॅक्टिव्हिटी सुरू केलेली असल्यास, हा डेटा त्याच्या Google खात्यामध्ये स्टोअर केला जाऊ शकतो. <ph name="BEGIN_LINK1" />अधिक जाणून घ्या<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">कस्टम फाइल</translation> +<translation id="8597404194697561297">Chromebook वर Steam मध्ये स्वागत आहे</translation> <translation id="8597845839771543242">गुणधर्म स्वरूपन:</translation> <translation id="8599681327221583254">एक किंवा त्यापेक्षा जास्त धोरणे योग्य प्रकारे काँफिगर केलेली नाहीत. कृपया तुमच्या अॅडमिनिस्ट्रेटरशी संपर्क साधा</translation> <translation id="8599864823732014237">एंटरप्राइझ नोंदणी वगळायची आहे करा?</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 53bfea7..44389794 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2373,6 +2373,7 @@ <translation id="3188465121994729530">औसत चलायमान</translation> <translation id="3189187154924005138">ठुलो कर्सर</translation> <translation id="3190558889382726167">पासवर्ड सेभ गरियो</translation> +<translation id="3192589799003798742">Chromebook मा Steam सेटअप गरिँदै छ</translation> <translation id="3192947282887913208">अडियो फाइलहरू</translation> <translation id="3193695589337931419">सिस्टमको सिग्नलसम्बन्धी युटिलिटीहरू</translation> <translation id="3194786596445804250">तेस्रो पक्षीय कुकी ब्लक गर्ने तरिकासम्बन्धी विवरण देखाइयोस्</translation> @@ -2512,6 +2513,7 @@ <translation id="3341699307020049241">PIN मिलेन। तपाईं अब <ph name="RETRIES" /> पटक मात्र प्रयास गर्न सक्नुहुन्छ।</translation> <translation id="3341703758641437857">फाइल URLs मा पहुँच अनुमति दिनुहोस्</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" यो विस्तार हटाउन चाहन्छ।</translation> +<translation id="3343977377045378693">सेटअप गरिँदै छ</translation> <translation id="3345135638360864351">यस साइटमा पहुँच गर्न तपाईंको अनुरोध <ph name="NAME" /> मा पठाउन सकिएन। कृपया फेरि प्रयास गर्नुहोस्।</translation> <translation id="3345634917232014253">एकछिन अघि सुरक्षा जाँच गरियो</translation> <translation id="3345886924813989455">कुनै समर्थित ब्राउजर भेटिएन</translation> @@ -2523,6 +2525,7 @@ <translation id="3354768182971982851">Chrome का पुराना संस्करणका एपहरू डिसेम्बर २०२२ पछि Mac डिभाइसहरूमा मा खुल्ने छैनन्। तपाईं नयाँ संस्करण उपलब्ध छ कि छैन भन्ने कुरा जाँच्न सक्नुहुन्छ।</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> डिभाइसमा कनेक्ट गर्न सकिएन। तपाईं फेरि कनेक्ट गरी हेर्न चाहनुहुन्छ भने उक्त डिभाइस चयन गर्नुहोस्</translation> <translation id="3355936511340229503">जडान त्रुटि</translation> +<translation id="3356036636691722598">Chromebook मा गेमिङको मजा लिनुहोस्</translation> <translation id="3356469410714175391">(भर्चुअल कार्ड सक्रिय गरिएको छ)</translation> <translation id="3356580349448036450">पूर्ण</translation> <translation id="3359256513598016054">प्रमाणपत्र नीति अवरोधहरू</translation> @@ -3428,6 +3431,7 @@ <translation id="4211904048067111541">Android एप चलाउन प्रयोग गर्न छाड्नुहोस्</translation> <translation id="42126664696688958">निर्यात गर्नुहोस्</translation> <translation id="42137655013211669">सर्भरद्वारा यो संसाधनमा पहुँच गर्न निषेध गरिएको थियो।</translation> +<translation id="4214192212360095377">अहिले नै अफ गर्नुहोस्</translation> <translation id="4217558091331485702">खोल्नुअघि स्क्यान गर्नुहोस्</translation> <translation id="4217571870635786043">श्रुतिलेखन</translation> <translation id="4218081191298393750">यो ट्याब म्युट गर्न स्पिकर जनाउने आइकनमा क्लिक गर्नुहोस्</translation> @@ -4316,6 +4320,7 @@ <translation id="5089763948477033443">साइड प्यानल रिसाइज ह्यान्डल</translation> <translation id="5090637338841444533">तपाईंको क्यामेराको स्थिति ट्र्याक गर्ने अनुमति नदिइएका साइटहरू</translation> <translation id="5093569275467863761">इन्कोग्निटो मोडमा ब्याक/फर्वार्ड क्यास गरिएको सबफ्रेम: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">इन्स्टल गर्ने कार्य सुरु गरिँदै छ</translation> <translation id="5094176498302660097">तपाईं यो एप प्रयोग गरी खोल्न तथा सम्पादन गर्न मिल्ने फाइलहरू Files एप वा अन्य एपमार्फत खोल्न तथा सम्पादन गर्न सक्नुहुन्छ। तपाईं कुन कुन फाइल यो एपमार्फत स्वतः खुल्छ भन्ने कुरा नियन्त्रण गर्न चाहनुहुन्छ भने <ph name="BEGIN_LINK" />डिभाइसमा डिफल्ट एप कसरी तय गर्ने भन्ने कुरा जान्नुहोस्<ph name="END_LINK" />।</translation> <translation id="5094721898978802975">सहयोगी मुल अनुप्रयोगहरूसँग सञ्चार गर्नुहोस्</translation> <translation id="5097002363526479830">नेटवर्क '<ph name="NAME" />' मा जडान हुन असफल भयो: <ph name="DETAILS" /></translation> @@ -6315,6 +6320,7 @@ <translation id="7014174261166285193">स्थापना असफल भयो।</translation> <translation id="7014480873681694324">हाइलाइट हटाउनुहोस्</translation> <translation id="7014741021609395734">जुमको स्तर</translation> +<translation id="7014961128696979283">Steam लन्च गर्नुहोस्</translation> <translation id="7017004637493394352">फेरि "Ok Google" भन्नुहोस्</translation> <translation id="7017219178341817193">एउटा नयाँ पृष्ठ थप्नुहोस्</translation> <translation id="7017354871202642555">विण्डो कायम भएपछि मोड सेट गर्न सकिँदैन।</translation> @@ -6704,6 +6710,7 @@ <translation id="7423425410216218516">पहुँचसम्बन्धी सेटिङ <ph name="MINUTES" /> मिनेटसम्म अन हुन्छ</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> हटाउनुहोस्</translation> <translation id="7423807071740419372"><ph name="APP_NAME" /> चलाउन अनुमति दिनु पर्ने हुन्छ</translation> +<translation id="7424153922653300265">इनर्जी सेभर अन गरिएको छ</translation> <translation id="7424818322350938336">नेटवर्क थप गरिएको छ</translation> <translation id="7427315069950454694">आजका स्मरणीय क्षणहरू</translation> <translation id="7427348830195639090">पृष्ठभूमि पाना: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7934,6 +7941,7 @@ <translation id="859246725979739260">यो साइटलाई तपाईंको स्थानसम्बन्धी जानकारी प्रयोग गर्न नपाउने गरी ब्लक गरिएको छ।</translation> <translation id="8593121833493516339">प्रयोग तथा निदानसम्बन्धी डेटा पठाउनुहोस्। निदान, डिभाइस र एपको उपयोगसम्बन्धी डेटा स्वतः Google मा पठाएर आफ्ना बालकको Android सम्बन्धी अनुभवलाई सुधार गर्न मद्दत गर्नुहोस्। यस्तो डेटा तपाईंका बालकको पहिचान गर्ने प्रयोजनका लागि प्रयोग गरिने छैन र यसले प्रणाली तथा एपको स्थिरता र थप कुराहरू सुधार गर्न मद्दत गर्ने छ। केही एकीकृत डेटाले Google का एप तथा Android का विकासकर्ता जस्ता साझेदारहरूलाई पनि मद्दत गर्ने छ। तपाईंका बालकको खातामा वेब तथा एपसम्बन्धी अतिरिक्त क्रियाकलाप सक्रिय गरिएको छ भने यो डेटा उनको Google खातामा सुरक्षित गरिन सक्छ। <ph name="BEGIN_LINK1" />थप जान्नुहोस्<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">अनुकूलित फाइलहरू</translation> +<translation id="8597404194697561297">Chromebook को Steam मा स्वागत छ</translation> <translation id="8597845839771543242">सम्पत्ति ढाँचा:</translation> <translation id="8599681327221583254">एक वा सोभन्दा बढी नीतिहरू राम्ररी कन्फिगर गरिएका छैनन्। कृपया आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्</translation> <translation id="8599864823732014237">तपाईं इन्टरप्राइजसम्बन्धी सुविधाहरू प्राप्त गर्न अहिले नै दर्ता गर्न चाहनुहुन्न?</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index eb95ebd..4df0756 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1801,7 +1801,7 @@ <translation id="2642111877055905627">Futbalová lopta</translation> <translation id="2643698698624765890">Ak chcete spravovať rozšírenia, kliknite na možnosť Rozšírenia v ponuke Okno.</translation> <translation id="2645047101481282803">Vaše zariadenie spravuje <ph name="PROFILE_NAME" />.</translation> -<translation id="2645435784669275700">Chrome OS</translation> +<translation id="2645435784669275700">ChromeOS</translation> <translation id="2645515095874728277">Heslo tohto účtu je už v tomto zariadení uložené</translation> <translation id="2649045351178520408">ASCII s kódovaním Base64, certifikačná reťaz</translation> <translation id="2652129567809778422">Vyberte heslo</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index da87249..2ca1bcc7a 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2384,6 +2384,7 @@ <translation id="3188465121994729530">Mesatarja e lëvizshme</translation> <translation id="3189187154924005138">Kursori i madh</translation> <translation id="3190558889382726167">Fjalëkalimi u ruajt</translation> +<translation id="3192589799003798742">Steam po konfigurohet në Chromebook</translation> <translation id="3192947282887913208">Skedarët audio</translation> <translation id="3193695589337931419">Shërbimet utilitare të sinjalizimeve të sistemit</translation> <translation id="3194786596445804250">Shfaq detajet për bllokimin e kukive të palëve të treta</translation> @@ -2523,6 +2524,7 @@ <translation id="3341699307020049241">Kodi PIN është i pasaktë. Të kanë mbetur <ph name="RETRIES" /> përpjekje.</translation> <translation id="3341703758641437857">Lejo qasjen te URL-të e skedarëve</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" dëshiron që ta heqë këtë shtesë.</translation> +<translation id="3343977377045378693">Konfigurimi po kryhet</translation> <translation id="3345135638360864351">Kërkesa jote për qasje te kjo faqe nuk mund të dërgohej te <ph name="NAME" />. Provo përsëri.</translation> <translation id="3345634917232014253">Kontrolli i sigurisë u ekzekutua pak më parë</translation> <translation id="3345886924813989455">Nuk u gjetën shfletues të mbështetur</translation> @@ -2534,6 +2536,7 @@ <translation id="3354768182971982851">Versionet e vjetra të aplikacioneve të Chrome nuk do të hapen në pajisjet Mac pas dhjetorit 2022. Mund të kontrollosh nëse ofrohet një version i ri.</translation> <translation id="3354972872297836698">Nuk mund të çiftohej me pajisjen <ph name="DEVICE_NAME" />; zgjidh pajisjen për të provuar sërish</translation> <translation id="3355936511340229503">Gabim në lidhje</translation> +<translation id="3356036636691722598">Shijo lojërat në Chromebook</translation> <translation id="3356469410714175391">(Karta virtuale është aktivizuar)</translation> <translation id="3356580349448036450">Përfundo</translation> <translation id="3359256513598016054">Kufizimet e politikës së certifikatës</translation> @@ -3442,6 +3445,7 @@ <translation id="4211904048067111541">Ndalo përdorimin me aplikacione për Android</translation> <translation id="42126664696688958">Eksporto</translation> <translation id="42137655013211669">Qasja te ky burim është e ndaluar nga serveri.</translation> +<translation id="4214192212360095377">Çaktivizo tani</translation> <translation id="4217558091331485702">Skano përpara se ta hapësh</translation> <translation id="4217571870635786043">Diktimi</translation> <translation id="4218081191298393750">Kliko ikonën e altoparlantit për t'i hequr zërin kësaj skede</translation> @@ -4335,6 +4339,7 @@ <translation id="5089763948477033443">Doreza e ndryshimit të përmasave për panelin anësor</translation> <translation id="5090637338841444533">Nuk lejohen të monitorojnë pozicionin e kamerës</translation> <translation id="5093569275467863761">Nënkorniza e memories specifike të faqes së plotë "të fshehtë": <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Instalimi po fillon</translation> <translation id="5094176498302660097">Mund të hapësh dhe të modifikosh skedarët e mbështetur me këtë aplikacion nga aplikacioni "Skedarët" ose aplikacione të tjera. Për të kontrolluar se cilët skedarë hapin këtë aplikacion si parazgjedhje, <ph name="BEGIN_LINK" />mëso se si të caktosh aplikacionet e parazgjedhura në pajisjen tënde<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Komuniko me aplikacionet origjinale bashkëpunuese</translation> <translation id="5097002363526479830">Dështoi lidhja me rrjetin "<ph name="NAME" />": <ph name="DETAILS" /></translation> @@ -6345,6 +6350,7 @@ <translation id="7014174261166285193">Instalimi dështoi.</translation> <translation id="7014480873681694324">Hiq theksimin</translation> <translation id="7014741021609395734">Niveli i zmadhimit</translation> +<translation id="7014961128696979283">Hap Steam</translation> <translation id="7015088858756332848">Steam nuk mund të hapej në Chromebook. Provo përsëri</translation> <translation id="7017004637493394352">Thuaj përsëri "Ok Google"</translation> <translation id="7017219178341817193">Shto një faqe të re</translation> @@ -6736,6 +6742,7 @@ <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> +<translation id="7424153922653300265">"Kursyesi i energjisë" u aktivizua</translation> <translation id="7424818322350938336">Rrjeti u shtua</translation> <translation id="7427315069950454694">kujtimet e tua për sot</translation> <translation id="7427348830195639090">Faqja në sfond: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7972,6 +7979,7 @@ <translation id="859246725979739260">Ky sajt është bllokuar që të mos ketë qasje te vendndodhja jote.</translation> <translation id="8593121833493516339">Dërgo të dhënat e përdorimit dhe të diagnostikimit. Ndihmo në përmirësimin e përvojës së fëmijës tënd me Android duke dërguar automatikisht te Google të dhënat e diagnostikimit dhe të përdorimit të pajisjes dhe aplikacioneve. Këto nuk do të përdoren për të identifikuar fëmijën tënd dhe do të ndihmojnë për qëndrueshmërinë e sistemit dhe të aplikacioneve dhe për përmirësime të tjera. Disa të dhëna të përmbledhura do të ndihmojnë po ashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android. Nëse "Aktiviteti shtesë i uebit dhe i aplikacioneve" është i aktivizuar për fëmijën tënd, këto të dhëna mund të ruhen në "Llogarinë e Google" të fëmijës. <ph name="BEGIN_LINK1" />Mëso më shumë<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Skedarë të personalizuar</translation> +<translation id="8597404194697561297">Mirë se vjen në Steam në Chromebook</translation> <translation id="8597845839771543242">Formati i vetisë:</translation> <translation id="8599681327221583254">Një apo më shumë politika nuk janë konfiguruar saktë. Kontakto me administratorin tënd.</translation> <translation id="8599864823732014237">Të kapërcehet regjistrimi i ndërmarrjes?</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 908dfba..e3ccfb0 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2401,6 +2401,7 @@ <translation id="3188465121994729530">நகரும் சராசரி</translation> <translation id="3189187154924005138">பெரிய கர்சர்</translation> <translation id="3190558889382726167">கடவுச்சொல் சேமிக்கப்பட்டது</translation> +<translation id="3192589799003798742">Chromebookகில் Steamமை அமைக்கிறது</translation> <translation id="3192947282887913208">ஆடியோ ஃபைல்கள் </translation> <translation id="3193695589337931419">சிஸ்டம் சிக்னல்கள் யூட்டிலிட்டிகள்</translation> <translation id="3194786596445804250">மூன்றாம் தரப்புக் குக்கீகளைத் தடுப்பது குறித்த விவரங்களைக் காட்டு</translation> @@ -2540,6 +2541,7 @@ <translation id="3341699307020049241">தவறான பின். இன்னும் <ph name="RETRIES" /> முறை முயலலாம்.</translation> <translation id="3341703758641437857">ஃபைல் URLகளுக்கு அணுகலை அனுமதி</translation> <translation id="3342361181740736773">இந்த நீட்டிப்பை அகற்ற, "<ph name="TRIGGERING_EXTENSION_NAME" />" விரும்புகிறது</translation> +<translation id="3343977377045378693">அமைக்கிறது</translation> <translation id="3345135638360864351">இந்தத் தளத்தை அணுகுவதற்கான கோரிக்கையை <ph name="NAME" />க்கு அனுப்ப முடியவில்லை. மீண்டும் முயலவும்.</translation> <translation id="3345634917232014253">சிறிதுநேரத்திற்கு முன்புதான் பாதுகாப்புச் சரிபார்ப்பு மேற்கொள்ளப்பட்டது</translation> <translation id="3345886924813989455">ஆதரிக்கின்ற உலாவி கிடைக்கவில்லை</translation> @@ -2551,6 +2553,7 @@ <translation id="3354768182971982851">டிசம்பர் 2022க்குப் பிறகு Mac சாதனங்களில் Chrome ஆப்ஸின் பழைய பதிப்புகள் இயங்காது. புதிய பதிப்பு உள்ளதா என நீங்கள் பார்க்கலாம்.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> சாதனத்துடன் இணைக்க முடியவில்லை; மீண்டும் முயல சாதனத்தைத் தேர்ந்தெடுக்கவும்</translation> <translation id="3355936511340229503">இணைப்புப் பிழை</translation> +<translation id="3356036636691722598">உங்கள் Chromebookகில் கேம்களை விளையாடி மகிழுங்கள்</translation> <translation id="3356469410714175391">(விர்ச்சுவல் கார்டு இயக்கப்பட்டது)</translation> <translation id="3356580349448036450">முடிந்தது</translation> <translation id="3359256513598016054">சான்றிதழ் கொள்கைக் கட்டுப்பாடுகள்</translation> @@ -3459,6 +3462,7 @@ <translation id="4211904048067111541">Android ஆப்ஸிற்குப் பயன்படுத்தாதே</translation> <translation id="42126664696688958">ஏற்றுமதி செய்</translation> <translation id="42137655013211669">இதற்கான அணுகல் சேவையகத்தால் தடுக்கப்பட்டிருக்கிறது.</translation> +<translation id="4214192212360095377">இப்போதே முடக்கு</translation> <translation id="4217558091331485702">திறப்பதற்கு முன் ஸ்கேன் செய்யுங்கள்</translation> <translation id="4217571870635786043">சொல்வதை எழுதுவது</translation> <translation id="4218081191298393750">இந்தப் பக்கத்தை ஒலியடக்க, ஸ்பீக்கர் ஐகானைக் கிளிக் செய்யவும்</translation> @@ -4353,6 +4357,7 @@ <translation id="5089763948477033443">பக்கவாட்டுப் பேனலின் அளவை மாற்றுவதற்கான ஹேண்டில்</translation> <translation id="5090637338841444533">உங்கள் கேமராவின் நிலையைக் கண்காணிக்க அனுமதி இல்லாத தளங்கள்</translation> <translation id="5093569275467863761">‘முன் பின் பக்கங்களைத் தற்காலிகமாகச் சேமித்தல்’ அம்சத்தில் சேமிக்கப்பட்ட மறைநிலை உப ஃபிரேம்: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">நிறுவலைத் தொடங்குகிறது</translation> <translation id="5094176498302660097">இந்த ஆப்ஸ் மூலம் Files ஆப்ஸில் இருந்தோ பிற ஆப்ஸில் இருந்தோ, ஆதரிக்கப்படும் ஃபைல்களைத் திறந்து அவற்றில் மாற்றம் செய்யலாம். எந்தெந்த ஃபைல்கள் இந்த ஆப்ஸில் இயல்பாகத் திறக்கப்பட வேண்டும் என்பதைக் கட்டுப்படுத்த, <ph name="BEGIN_LINK" />உங்கள் சாதனத்தில் இயல்பு ஆப்ஸை எப்படி அமைப்பது என அறிக<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">ஒண்றிணைந்த குறிப்பிட்ட சாதனத்திற்கான பயன்பாடுகளுடன் தொடர்புகொள்ளவும்</translation> <translation id="5097002363526479830">'<ph name="NAME" />' நெட்வொர்க்குடன் இணைய முடியவில்லை: <ph name="DETAILS" /></translation> @@ -6364,6 +6369,7 @@ <translation id="7014174261166285193">நிறுவல் தோல்வியடைந்தது.</translation> <translation id="7014480873681694324">ஹைலைட்டை அகற்று</translation> <translation id="7014741021609395734">ஜூம் நிலை</translation> +<translation id="7014961128696979283">Steamமைத் தொடங்கு</translation> <translation id="7015088858756332848">Chromebookகில் Steam ஆப்ஸைத் தொடங்க முடியவில்லை. மீண்டும் முயலவும்</translation> <translation id="7017004637493394352">மீண்டும் "Ok Google" எனக் கூறவும்</translation> <translation id="7017219178341817193">புதிய பக்கத்தைச் சேர்</translation> @@ -6755,6 +6761,7 @@ <translation id="7423425410216218516"><ph name="MINUTES" /> நிமிடங்களுக்குச் சாதனம் காட்டப்படும்</translation> <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ஐ அகற்றும்</translation> <translation id="7423807071740419372"><ph name="APP_NAME" /> ஆப்ஸை இயக்க அனுமதி தேவை</translation> +<translation id="7424153922653300265">எனர்ஜி சேமிப்புப் பயன்முறை இயக்கப்பட்டது</translation> <translation id="7424818322350938336">நெட்வொர்க் சேர்க்கப்பட்டது</translation> <translation id="7427315069950454694">இன்றைக்கான உங்கள் நினைவுகள்</translation> <translation id="7427348830195639090">பின்புல பக்கம்: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7993,6 +8000,7 @@ <translation id="859246725979739260">உங்கள் இருப்பிடத் தகவலை அணுக முடியாதபடி இந்தத் தளம் தடுக்கப்பட்டுள்ளது.</translation> <translation id="8593121833493516339">உபயோகம் & கண்டறிதல் தரவை அனுப்புக. கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை Googleளுக்குத் தானாக அனுப்புவதன் மூலம் உங்கள் பிள்ளையின் Android அனுபவத்தை மேம்படுத்த உதவுக. இது உங்கள் பிள்ளையை அடையாளம் கண்டறியப் பயன்படுத்தப்படாது, இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவுகள், Google ஆப்ஸ் மற்றும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உங்கள் பிள்ளையின் கணக்கில் கூடுதல் ’இணையம் & ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு அவரது Google கணக்கில் சேமிக்கப்படலாம். <ph name="BEGIN_LINK1" />மேலும் அறிக<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">பிரத்தியேக ஃபைல்கள்</translation> +<translation id="8597404194697561297">Chromebookகில் Steamக்கு வரவேற்கிறோம்</translation> <translation id="8597845839771543242">பண்பு வடிவமைப்பு:</translation> <translation id="8599681327221583254">ஒன்று அல்லது அதற்கு மேற்பட்ட கொள்கைகள் சரியாக உள்ளமைக்கப்படவில்லை. நிர்வாகியைத் தொடர்புகொள்ளவும்</translation> <translation id="8599864823732014237">நிறுவனப் பதிவைத் தவிர்க்கவா?</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 8efdd64..9106310 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2384,6 +2384,7 @@ <translation id="3188465121994729530">Hareketli Ortalama</translation> <translation id="3189187154924005138">Büyük imleç</translation> <translation id="3190558889382726167">Şifre kaydedildi</translation> +<translation id="3192589799003798742">Chromebook'ta Steam kuruluyor</translation> <translation id="3192947282887913208">Ses Dosyaları</translation> <translation id="3193695589337931419">Sistem Sinyalleri Yardımcı Programları</translation> <translation id="3194786596445804250">Üçüncü taraf çerezleri engelleme ile ilgili ayrıntıları göster</translation> @@ -2523,6 +2524,7 @@ <translation id="3341699307020049241">Yanlış PIN. <ph name="RETRIES" /> deneme hakkınız kaldı.</translation> <translation id="3341703758641437857">Dosya URL'lerine erişime izin ver</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" bu uzantıyı kaldırmak istiyor.</translation> +<translation id="3343977377045378693">Kurulum gerçekleştiriliyor</translation> <translation id="3345135638360864351">Bu siteye erişim isteğiniz <ph name="NAME" /> adlı kullanıcıya gönderilemedi. Lütfen tekrar deneyin.</translation> <translation id="3345634917232014253">Güvenlik kontrolü kısa süre önce çalıştırıldı</translation> <translation id="3345886924813989455">Desteklenen tarayıcı bulunamadı</translation> @@ -2534,6 +2536,7 @@ <translation id="3354768182971982851">Chrome Uygulamalarının eski sürümleri Aralık 2022'den sonra Mac cihazlarda açılmayacaktır. Yeni bir sürümün olup olmadığını kontrol edebilirsiniz.</translation> <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> cihazıyla eşlenemedi; Tekrar denemek için cihaz seçin</translation> <translation id="3355936511340229503">Bağlantı hatası</translation> +<translation id="3356036636691722598">Chromebook'unuzda oyun oynamanın tadını çıkarın</translation> <translation id="3356469410714175391">(Sanal kart etkin)</translation> <translation id="3356580349448036450">Tamamlandı</translation> <translation id="3359256513598016054">Sertifika Politikası Kısıtlamaları</translation> @@ -3442,6 +3445,7 @@ <translation id="4211904048067111541">Android uygulamalarıyla kullanmayı bırak</translation> <translation id="42126664696688958">Dışa Aktar</translation> <translation id="42137655013211669">Bu kaynağa erişim sunucu tarafından yasaklandı.</translation> +<translation id="4214192212360095377">Şimdi Kapat</translation> <translation id="4217558091331485702">Açmadan önce tara</translation> <translation id="4217571870635786043">Dikte</translation> <translation id="4218081191298393750">Bu sekmenin sesini kapatmak için hoparlör simgesini tıklayın</translation> @@ -4335,6 +4339,7 @@ <translation id="5089763948477033443">Yan Panel Yeniden Boyutlandırma Tutamacı</translation> <translation id="5090637338841444533">Kameranızın konumunu izlemesine izin verilmeyen siteler</translation> <translation id="5093569275467863761">Gizli Geri/İleri Önbelleğe Alınmış Alt Çerçeve: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Yükleme başlatılıyor</translation> <translation id="5094176498302660097">Bu uygulamayı kullanarak, desteklenen dosyaları Dosyalar uygulamasından veya diğer uygulamalardan açıp düzenleyebilirsiniz. Bu uygulamada varsayılan olarak hangi dosyaların açılacağını kontrol etmek için <ph name="BEGIN_LINK" />cihazınızda varsayılan uygulamaları nasıl ayarlayacağınızı öğrenin<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">İşbirliği yapan yerel uygulamalarla iletişim kurma</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation> @@ -6346,6 +6351,7 @@ <translation id="7014174261166285193">Yükleme işlemi başarısız oldu.</translation> <translation id="7014480873681694324">Vurgulamayı Kaldır</translation> <translation id="7014741021609395734">Yakınlaştırma düzeyi</translation> +<translation id="7014961128696979283">Steam'i başlat</translation> <translation id="7015088858756332848">Chromebook'ta Steam başlatılamadı. Lütfen tekrar deneyin</translation> <translation id="7017004637493394352">Tekrar "Ok Google" deyin</translation> <translation id="7017219178341817193">Yeni sayfa ekle</translation> @@ -6737,6 +6743,7 @@ <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> +<translation id="7424153922653300265">Enerji Tasarrufu Açık</translation> <translation id="7424818322350938336">Ağ eklendi</translation> <translation id="7427315069950454694">bugün için anılarınız</translation> <translation id="7427348830195639090">Arka Plan Sayfası: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7975,6 +7982,7 @@ <translation id="859246725979739260">Bu sitenin, konumunuza erişimi engellenmiştir.</translation> <translation id="8593121833493516339">Kullanım ve teşhis verilerini gönder. Teşhis, cihaz ve uygulama kullanımı verilerini otomatik olarak Google'a göndererek çocuğunuzun Android deneyiminin iyileştirilmesine yardımcı olun. Bu veriler, çocuğunuzun kimliğini tespit etmek için kullanılmaz; sistem ve uygulama kararlılığı ile diğer özellikleri iyileştirmeye yardımcı olur. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google hesabına kaydedilebilir. <ph name="BEGIN_LINK1" />Daha Fazla Bilgi<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Özel Dosyalar</translation> +<translation id="8597404194697561297">Chromebook'ta Steam'e hoş geldiniz</translation> <translation id="8597845839771543242">Özellik biçimi:</translation> <translation id="8599681327221583254">Bir veya daha fazla politika doğru şekilde yapılandırılmadı. Lütfen yöneticinizle iletişime geçin</translation> <translation id="8599864823732014237">Kurumsal kayıt atlansın mı?</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index fcd366a..cb76416a 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -2401,6 +2401,7 @@ <translation id="3188465121994729530">Trung bình động</translation> <translation id="3189187154924005138">Con trỏ lớn</translation> <translation id="3190558889382726167">Đã lưu mật khẩu</translation> +<translation id="3192589799003798742">Đang thiết lập Steam trên Chromebook</translation> <translation id="3192947282887913208">Tệp âm thanh</translation> <translation id="3193695589337931419">Phần mềm tiện ích tín hiệu hệ thống</translation> <translation id="3194786596445804250">Hiện thông tin chi tiết về việc chặn cookie bên thứ ba</translation> @@ -2540,6 +2541,7 @@ <translation id="3341699307020049241">Mã PIN không chính xác. Bạn còn <ph name="RETRIES" /> lần thử.</translation> <translation id="3341703758641437857">Cho phép truy cập vào các URL của tệp</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" muốn xóa tiện ích này.</translation> +<translation id="3343977377045378693">Đang thiết lập</translation> <translation id="3345135638360864351">Không thể gửi yêu cầu truy cập trang web này của bạn tới <ph name="NAME" />. Vui lòng thử lại.</translation> <translation id="3345634917232014253">Tính năng kiểm tra an toàn đã hoạt động vài phút trước</translation> <translation id="3345886924813989455">Không tìm thấy trình duyệt được hỗ trợ</translation> @@ -2551,6 +2553,7 @@ <translation id="3354768182971982851">Sau tháng 12 năm 2022, các phiên bản cũ của ứng dụng Chrome sẽ không mở trên các thiết bị Mac. Bạn có thể kiểm tra xem liệu đã có phiên bản mới hay chưa theo các bước sau.</translation> <translation id="3354972872297836698">Không ghép nối được với thiết bị <ph name="DEVICE_NAME" />; hãy chọn thiết bị để thử lại</translation> <translation id="3355936511340229503">Lỗi kết nối</translation> +<translation id="3356036636691722598">Chúc bạn chơi trò chơi vui vẻ trên Chromebook</translation> <translation id="3356469410714175391">(Đã bật tính năng Thẻ ảo)</translation> <translation id="3356580349448036450">Hoàn tất</translation> <translation id="3359256513598016054">Giới hạn Chính sách của Chứng chỉ</translation> @@ -3459,6 +3462,7 @@ <translation id="4211904048067111541">Không dùng trong ứng dụng Android nữa</translation> <translation id="42126664696688958">Xuất</translation> <translation id="42137655013211669">Máy chủ cấm truy cập vào tài nguyên này.</translation> +<translation id="4214192212360095377">Tắt ngay</translation> <translation id="4217558091331485702">Hãy quét trước khi mở</translation> <translation id="4217571870635786043">Nhập bằng giọng nói</translation> <translation id="4218081191298393750">Nhấp vào biểu tượng loa để tắt tiếng thẻ này</translation> @@ -4353,6 +4357,7 @@ <translation id="5089763948477033443">Ô điều khiển thay đổi kích thước của bảng điều khiển bên</translation> <translation id="5090637338841444533">Không được phép theo dõi vị trí máy ảnh của bạn</translation> <translation id="5093569275467863761">Khung phụ ẩn danh lưu trong bộ nhớ đệm cho thao tác tiến/lùi: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">Đang bắt đầu cài đặt</translation> <translation id="5094176498302660097">Bạn có thể dùng ứng dụng này trên ứng dụng Files hoặc các ứng dụng khác để mở và chỉnh sửa các tệp được hỗ trợ. Để kiểm soát loại tệp mở được ứng dụng này theo mặc định, hãy <ph name="BEGIN_LINK" />tìm hiểu cách đặt ứng dụng mặc định trên thiết bị<ph name="END_LINK" />.</translation> <translation id="5094721898978802975">Kết nối với ứng dụng gốc hợp tác</translation> <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation> @@ -6363,6 +6368,7 @@ <translation id="7014174261166285193">Cài đặt không thành công.</translation> <translation id="7014480873681694324">Xóa nội dung được làm nổi bật</translation> <translation id="7014741021609395734">Mức thu phóng</translation> +<translation id="7014961128696979283">Khởi chạy Steam</translation> <translation id="7015088858756332848">Không thể khởi chạy Steam trên Chromebook. Vui lòng thử lại</translation> <translation id="7017004637493394352">Nói "Ok Google" lần nữa</translation> <translation id="7017219178341817193">Thêm trang mới</translation> @@ -6754,6 +6760,7 @@ <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> +<translation id="7424153922653300265">Trình tiết kiệm pin đang bật</translation> <translation id="7424818322350938336">Đã thêm mạng</translation> <translation id="7427315069950454694">những kỷ niệm của bạn cho hôm nay</translation> <translation id="7427348830195639090">Trang nền: <ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7992,6 +7999,7 @@ <translation id="859246725979739260">Trang web này đã bị chặn truy cập thông tin vị trí của bạn.</translation> <translation id="8593121833493516339">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Giúp cải thiện trải nghiệm Android của con bạn bằng cách tự động gửi dữ liệu chẩn đoán cũng như dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Nếu bạn bật chế độ cài đặt bổ sung Hoạt động trên web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK1" />Tìm hiểu thêm<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">Tệp tùy chỉnh</translation> +<translation id="8597404194697561297">Chào mừng bạn đến với Steam trên Chromebook</translation> <translation id="8597845839771543242">Định dạng thuộc tính:</translation> <translation id="8599681327221583254">Một hoặc nhiều chính sách được định cấu hình không đúng cách. Vui lòng liên hệ với quản trị viên của bạn</translation> <translation id="8599864823732014237">Bỏ qua quy trình đăng ký doanh nghiệp?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 2dcb01f..577b3641 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -1128,7 +1128,7 @@ <translation id="2034346955588403444">新增其他 Wi-Fi 網絡</translation> <translation id="2035211704574173780">灰階</translation> <translation id="203574396658008164">從上鎖畫面啟用筆記功能</translation> -<translation id="2036514476578229158">你已要求造訪這個網站,家長可以透過 Family Link 回覆要求。</translation> +<translation id="2036514476578229158">您已要求瀏覽此網站。家長可透過 Family Link 回覆要求。</translation> <translation id="2037445849770872822">您已設定此 Google 帳戶的監控功能。如要設定更多家長監控設定,請選取 [繼續]。 如果不想繼續設定,請立即登出。您對此帳戶作出的變更會在此裝置上反映。 @@ -1250,7 +1250,7 @@ <translation id="2135787500304447609">繼續(&R)</translation> <translation id="2136372518715274136">輸入新密碼</translation> <translation id="2136476978468204130">您輸入的密碼短語不正確</translation> -<translation id="2137891579555018930">正在等待許可...</translation> +<translation id="2137891579555018930">正在等待許可…</translation> <translation id="2139919072249842737">設定按鈕</translation> <translation id="2140788884185208305">電池壽命</translation> <translation id="2142328300403846845">以其他身分開啟連結</translation> @@ -2401,6 +2401,7 @@ <translation id="3188465121994729530">移動平均</translation> <translation id="3189187154924005138">大型游標</translation> <translation id="3190558889382726167">密碼已儲存</translation> +<translation id="3192589799003798742">正在設定 Steam Chromebook 版</translation> <translation id="3192947282887913208">音效檔案</translation> <translation id="3193695589337931419">系統訊號實用程式</translation> <translation id="3194786596445804250">顯示封鎖第三方 Cookie 嘅詳情</translation> @@ -2540,6 +2541,7 @@ <translation id="3341699307020049241">PIN 不正確。您還可再試 <ph name="RETRIES" /> 次。</translation> <translation id="3341703758641437857">允許存取檔案網址</translation> <translation id="3342361181740736773">「<ph name="TRIGGERING_EXTENSION_NAME" />」要求移除這個擴充程式。</translation> +<translation id="3343977377045378693">設定中</translation> <translation id="3345135638360864351">您對這個網站的存取權要求無法傳送給 <ph name="NAME" />。請再試一次。</translation> <translation id="3345634917232014253">剛才已執行安全檢查</translation> <translation id="3345886924813989455">找不到支援的瀏覽器</translation> @@ -2551,6 +2553,7 @@ <translation id="3354768182971982851">舊版 Chrome 應用程式在 2022 年 12 月後將無法在 Mac 裝置上開啟。您亦可檢查是否有可用的新版本。</translation> <translation id="3354972872297836698">同裝置 <ph name="DEVICE_NAME" /> 配對唔到;請揀裝置之後再試一次</translation> <translation id="3355936511340229503">連線錯誤</translation> +<translation id="3356036636691722598">在 Chromebook 上享受遊戲體驗</translation> <translation id="3356469410714175391">(已啟用虛擬卡)</translation> <translation id="3356580349448036450">完成</translation> <translation id="3359256513598016054">憑證政策限制</translation> @@ -3459,6 +3462,7 @@ <translation id="4211904048067111541">停止使用此帳戶登入 Android 應用程式</translation> <translation id="42126664696688958">匯出</translation> <translation id="42137655013211669">伺服器已禁止存取此資源。</translation> +<translation id="4214192212360095377">立即關閉</translation> <translation id="4217558091331485702">開啟前先掃瞄</translation> <translation id="4217571870635786043">語音輸入</translation> <translation id="4218081191298393750">按一下「喇叭」圖示即可將此分頁設定為靜音</translation> @@ -4124,7 +4128,7 @@ <translation id="4858913220355269194">飛球</translation> <translation id="4862642413395066333">簽署 OCSP 回應</translation> <translation id="4863769717153320198">解像度:<ph name="WIDTH" /> x <ph name="HEIGHT" /> (預設)</translation> -<translation id="486459320933704969">你必須獲得家長或監護人許可,才能造訪這個網站</translation> +<translation id="486459320933704969">您必須獲得家長或監護人許可,才能瀏覽此網站</translation> <translation id="4864805589453749318">請選取要授予新增學校帳戶權限的家長。</translation> <translation id="486635084936119914">下載特定類型的檔案後自動開啟</translation> <translation id="4868281708609571334">訓練「Google 助理」識別<ph name="SUPERVISED_USER_NAME" />的聲音</translation> @@ -4353,6 +4357,7 @@ <translation id="5089763948477033443">側面板大小調整控點</translation> <translation id="5090637338841444533">不允許追蹤攝錄機位置</translation> <translation id="5093569275467863761">向前/返回快取中的無痕子頁框:<ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">正在開始安裝</translation> <translation id="5094176498302660097">您可在「檔案」應用程式或其他應用程式中,透過此應用程式開啟及編輯支援的檔案。如要控制在此應用程式預設開啟哪些檔案,請<ph name="BEGIN_LINK" />進一步瞭解如何在裝置上設定預設應用程式<ph name="END_LINK" />。</translation> <translation id="5094721898978802975">與合作內置應用程式通訊</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> @@ -6361,6 +6366,7 @@ <translation id="7014174261166285193">安裝失敗。</translation> <translation id="7014480873681694324">移除焦點內容</translation> <translation id="7014741021609395734">縮放比例</translation> +<translation id="7014961128696979283">啟動 Steam</translation> <translation id="7015088858756332848">無法在 Chromebook 上啟動 Steam,請再試一次</translation> <translation id="7017004637493394352">再說一次「Ok Google」</translation> <translation id="7017219178341817193">新增網頁</translation> @@ -6752,6 +6758,7 @@ <translation id="7423425410216218516">分享設定在 <ph name="MINUTES" /> 分鐘內開啟</translation> <translation id="7423513079490750513">移除<ph name="INPUT_METHOD_NAME" /></translation> <translation id="7423807071740419372">需要權限才能執行 <ph name="APP_NAME" /></translation> +<translation id="7424153922653300265">節能模式已開啟</translation> <translation id="7424818322350938336">已新增網絡</translation> <translation id="7427315069950454694">今天的回憶</translation> <translation id="7427348830195639090">背景頁面:<ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7990,6 +7997,7 @@ <translation id="859246725979739260">此網站已被禁止存取您的位置。</translation> <translation id="8593121833493516339">傳送使用情況和診斷資料。自動將診斷、裝置及應用程式的使用情況資料傳送至 Google,協助改善您子女的 Android 使用體驗。這些資料不會用來識別您子女的身分,而是用於改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。如果已為子女開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至其 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">自訂檔</translation> +<translation id="8597404194697561297">歡迎使用 Steam Chromebook 版</translation> <translation id="8597845839771543242">網絡屬性:</translation> <translation id="8599681327221583254">一或多項政策設定有誤,請聯絡您的管理員</translation> <translation id="8599864823732014237">要跳過企業註冊嗎?</translation> @@ -8681,7 +8689,7 @@ <translation id="947329552760389097">檢查元素 (&I)</translation> <translation id="947526284350604411">您的答案</translation> <translation id="947667444780368238">由於資料夾中包含系統檔案,<ph name="ORIGIN" /> 無法開啟此資料夾中的檔案</translation> -<translation id="949314938206378263">你已要求造訪這個網站,家長可以透過 Family Link 回覆要求。</translation> +<translation id="949314938206378263">您已要求瀏覽此網站。家長可透過 Family Link 回覆要求。</translation> <translation id="950307215746360464">設定指南</translation> <translation id="951991426597076286">拒絕</translation> <translation id="952471655966876828">當裝置開啟,而且正在使用時,裝置將會自動連線</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 516ff7f4..060cb4f3 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -2386,6 +2386,7 @@ <translation id="3188465121994729530">移動平均</translation> <translation id="3189187154924005138">大型游標</translation> <translation id="3190558889382726167">密碼已儲存</translation> +<translation id="3192589799003798742">正在設定 Steam Chromebook 版</translation> <translation id="3192947282887913208">音訊檔</translation> <translation id="3193695589337931419">系統信號公用程式</translation> <translation id="3194786596445804250">顯示封鎖第三方 Cookie 的詳細資料</translation> @@ -2525,6 +2526,7 @@ <translation id="3341699307020049241">PIN 碼不正確。你還可以再試 <ph name="RETRIES" /> 次。</translation> <translation id="3341703758641437857">允許存取檔案網址</translation> <translation id="3342361181740736773">「<ph name="TRIGGERING_EXTENSION_NAME" />」要求移除這個擴充功能。</translation> +<translation id="3343977377045378693">設定中</translation> <translation id="3345135638360864351">無法將您的網站存取要求傳送給<ph name="NAME" />,請再試一次。</translation> <translation id="3345634917232014253">剛才已執行安全檢查</translation> <translation id="3345886924813989455">找不到支援的瀏覽器</translation> @@ -2536,6 +2538,7 @@ <translation id="3354768182971982851">2022 年 12 月之後,舊版 Chrome 應用程式將無法在 Mac 裝置上開啟。你可以自行檢查是否有可用的新版本。</translation> <translation id="3354972872297836698">無法與裝置「<ph name="DEVICE_NAME" />」配對,請選取裝置後再試一次</translation> <translation id="3355936511340229503">連線錯誤</translation> +<translation id="3356036636691722598">在 Chromebook 上享受遊戲體驗</translation> <translation id="3356469410714175391">(已啟用虛擬卡片)</translation> <translation id="3356580349448036450">完成</translation> <translation id="3359256513598016054">憑證原則限制</translation> @@ -3443,6 +3446,7 @@ <translation id="4211904048067111541">停止存取 Android 應用程式</translation> <translation id="42126664696688958">匯出</translation> <translation id="42137655013211669">伺服器禁止存取這個資源。</translation> +<translation id="4214192212360095377">立即關閉</translation> <translation id="4217558091331485702">開啟前先掃描</translation> <translation id="4217571870635786043">語音輸入</translation> <translation id="4218081191298393750">按一下「喇叭」圖示即可將這個分頁設為靜音</translation> @@ -4336,6 +4340,7 @@ <translation id="5089763948477033443">側邊面板大小調整控點</translation> <translation id="5090637338841444533">不得追蹤攝影機位置</translation> <translation id="5093569275467863761">無痕模式往返快取子頁框:<ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation> +<translation id="5094042205195563542">正在開始安裝</translation> <translation id="5094176498302660097">你可以在「檔案」應用程式或其他應用程式中,透過這個應用程式開啟及編輯支援的檔案。如要控管要在這個應用程式預設開啟哪些檔案,請<ph name="BEGIN_LINK" />進一步瞭解如何在裝置上設定預設應用程式<ph name="END_LINK" />。</translation> <translation id="5094721898978802975">與合作原生應用程式建立連線</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> @@ -6343,6 +6348,7 @@ <translation id="7014174261166285193">安裝失敗。</translation> <translation id="7014480873681694324">移除醒目顯示</translation> <translation id="7014741021609395734">縮放比例</translation> +<translation id="7014961128696979283">啟動 Steam</translation> <translation id="7015088858756332848">無法啟動 Steam Chromebook 版,請再試一次</translation> <translation id="7017004637493394352">再說一次「Ok Google」</translation> <translation id="7017219178341817193">新增網頁</translation> @@ -6734,6 +6740,7 @@ <translation id="7423425410216218516">分享設定在 <ph name="MINUTES" /> 分鐘內為開啟狀態</translation> <translation id="7423513079490750513">移除<ph name="INPUT_METHOD_NAME" /></translation> <translation id="7423807071740419372">需要權限才能執行「<ph name="APP_NAME" />」</translation> +<translation id="7424153922653300265">節能模式已開啟</translation> <translation id="7424818322350938336">已新增網路</translation> <translation id="7427315069950454694">今天的回憶集錦</translation> <translation id="7427348830195639090">背景頁面:<ph name="BACKGROUND_PAGE_URL" /></translation> @@ -7972,6 +7979,7 @@ <translation id="859246725979739260">已禁止這個網站存取你的位置資訊。</translation> <translation id="8593121833493516339">傳送使用狀況與診斷資料。讓系統自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google,協助改善你的 Android 使用體驗。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation> <translation id="8596540852772265699">自訂檔</translation> +<translation id="8597404194697561297">歡迎使用 Steam Chromebook 版</translation> <translation id="8597845839771543242">屬性格式:</translation> <translation id="8599681327221583254">一或多項政策設定有誤,請與管理員聯絡。</translation> <translation id="8599864823732014237">要略過企業註冊嗎?</translation>
diff --git a/chrome/app/resources/google_chrome_strings_as.xtb b/chrome/app/resources/google_chrome_strings_as.xtb index 1196017..3f8f491 100644 --- a/chrome/app/resources/google_chrome_strings_as.xtb +++ b/chrome/app/resources/google_chrome_strings_as.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Chromeৰ সহায়ক</translation> <translation id="3379938682270551431">{0,plural, =0{এতিয়া Chrome পুনৰ লঞ্চ হ’ব}=1{১ ছেকেণ্ডত Chrome পুনৰ লঞ্চ হ’ব}one{# ছেকেণ্ডত Chrome পুনৰ লঞ্চ হ’ব}other{# ছেকেণ্ডত Chrome পুনৰ লঞ্চ হ’ব}}</translation> <translation id="3396977131400919238">ইনষ্টলেশ্বনৰ সময়ত অপাৰেটিং ছিষ্টেম সম্পর্কীয় এটা আসোঁৱাহ হৈছে। অনুগ্ৰহ কৰি Google Chrome পুনৰ ডাউনল’ড কৰক।</translation> +<translation id="3426646014273736870">মেম’ৰী সঞ্চয়কাৰীয়ে Chromeক দ্ৰুত কৰি তুলিছে</translation> <translation id="3428747202529429621">আপোনাক Chromeত সুৰক্ষিত কৰি ৰাখে আৰু আপুনি ছাইন ইন হৈ থকা সময়ত অন্য Google এপ্সমূহত আপোনাৰ সুৰক্ষা উন্নত কৰিবলৈ ব্যৱহাৰ কৰিব পাৰে</translation> <translation id="3434246496373299699">আপুনি নিজৰ Google একাউণ্টটোৰ জৰিয়তে ছাইন ইন কৰোঁতে Chromeএ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব পাৰে</translation> <translation id="3451115285585441894">Chromeলৈ যোগ কৰি থকা হৈছে...</translation> @@ -149,7 +150,7 @@ <translation id="3673813398384385993">Chromeএ "<ph name="EXTENSION_NAME" />"ত মালৱেৰ থকাটো পাইছে</translation> <translation id="3703994572283698466"><ph name="BEGIN_LINK_LINUX_OSS" />Linux বিকাশৰ পৰিৱেশ<ph name="END_LINK_LINUX_OSS" />ৰ দৰে ChromeOSক অতিৰিক্ত <ph name="BEGIN_LINK_CROS_OSS" />মুক্ত উৎসৰ ছফ্টৱেৰ<ph name="END_LINK_CROS_OSS" />ৰ দ্বাৰা তৈয়াৰ কৰা হৈছে।</translation> <translation id="3716540481907974026">ChromeOS Flexৰ সংস্কৰণ</translation> -<translation id="3718181793972440140">ইয়াৰ ফলত এই ডিভাইচটোৰ পৰা ১টা বস্তু মচা হ’ব। আপোনাৰ ডেটা পিছত পুনৰুদ্ধাৰ কৰিবলৈ Chromeত <ph name="USER_EMAIL" /> হিচাপে ছাইন ইন কৰক।</translation> +<translation id="3718181793972440140">ইয়াৰ ফলত এই ডিভাইচটোৰ পৰা ১টা বস্তু মচা হ’ব। আপোনাৰ ডেটা পাছত পুনৰুদ্ধাৰ কৰিবলৈ Chromeত <ph name="USER_EMAIL" /> হিচাপে ছাইন ইন কৰক।</translation> <translation id="3735758079232443276">আপুনি Chrome আৰম্ভ কৰিলে কোনটো পৃষ্ঠা দেখুওৱা হ’ব সেয়া "<ph name="EXTENSION_NAME" />" এক্সটেনশ্বনে সলনি কৰিছে।</translation> <translation id="3744202345691150878">ChromeOSৰ বাবে সহায় পাওক</translation> <translation id="3780814664026482060">Chrome - <ph name="PAGE_TITLE" /></translation> @@ -234,6 +235,7 @@ Google Chromeএ আপোনাৰ ছেটিংসমূহ পুনৰুদ্ধাৰ কৰিবলৈ সক্ষম নহ'ল।</translation> <translation id="5524761631371622910">ট্ৰায়েল অন কৰি থোৱা থাকিলে আৰু যদি আপোনাক Chromeএ যাদৃশ্যিকভাৱে কোনো সক্ৰিয় ট্ৰায়েলত ৰাখিছে, তেন্তে আপোনাৰ ব্ৰাউজিঙৰ ইতিহাসে আপুনি দেখা পোৱা বিজ্ঞাপন আৰু তলত অনুমান কৰা আগ্ৰহসমূহত প্ৰভাৱ পেলায়। আপোনাৰ গোপনীয়তা সুৰক্ষিত কৰিবলৈ, Chromeএ প্ৰতি মাহে এক নিৰ্দিষ্ট সময়ৰ অন্তৰে অন্তৰে আপোনাৰ আগ্ৰহসমূহ মচে।</translation> +<translation id="5530733413481476019">Chromeক দ্ৰুত কৰি তোলক</translation> <translation id="556024056938947818">Google Chromeএ পাছৱর্ডসমূহ দেখুৱাবলৈ চেষ্টা কৰি আছে।</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ক্ষতিকাৰক হ'ব পাৰে বাবে Chromiumএ ইয়াক অৱৰোধ কৰিছে</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb index 1fb4521..ebd60d67 100644 --- a/chrome/app/resources/google_chrome_strings_bn.xtb +++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -256,6 +256,7 @@ <translation id="608006075545470555">এই ব্রাউজারে অফিস প্রোফাইল যোগ করুন</translation> <translation id="6113794647360055231">Chrome আরও ভাল হয়ে উঠেছে</translation> <translation id="6145313976051292476">Chrome-এ পিডিএফ ফাইল খুলুন</translation> +<translation id="6155960517327665396">মেমরি সেভার Chrome-এর স্পিড বাড়িয়ে দেয়</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation> <translation id="6173637689840186878"><ph name="PAGE_TITLE" /> - Google Chrome বিটা</translation> <translation id="6235018212288296708">mDNS ট্রাফিকের অনুমতি দিতে Google Chrome এর জন্য ইনবাউন্ড নিয়ম।</translation> @@ -356,6 +357,7 @@ <translation id="8286862437124483331">Google Chrome পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে। এটির অনুমতি দিতে আপনার Windows পাসওয়ার্ড টাইপ করুন।</translation> <translation id="828798499196665338">তোমার অভিভাবক Chrome-এ "সাইট, অ্যাপ ও এক্সটেনশনের অনুমতি" বন্ধ করে দিয়েছেন। এই <ph name="EXTENSION_TYPE_PARAMETER" /> চালু করার অনুমতি নেই।</translation> <translation id="8290100596633877290">হোয়া! Google Chrome ক্র্যাশ হয়েছে৷ এখনই পুনঃলঞ্চ করবেন?</translation> +<translation id="8341646175450781745">চালু থাকাকালীন, Chrome ইনঅ্যাক্টিভ ট্যাব থেকে মেমরি খালি করে। এটি অ্যাক্টিভ ট্যাব এবং অন্যান্য অ্যাপ্লিকেশনের জন্য আরও কম্পিউটার রিসোর্স প্রদান করে এবং Chrome-এর স্পিড বেশি রাখে। আপনার ইনঅ্যাক্টিভ ট্যাবগুলি আবার ব্যবহার করা শুরু করলে অটোমেটিক সেগুলি অ্যাক্টিভ হয়ে যাবে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /> বা <ph name="BEGIN_LINK_2" />মতামত পাঠান<ph name="END_LINK_2" /></translation> <translation id="8342675569599923794">এই ফাইলটি বিপজ্জনক, তাই Chrome এটিকে অবরুদ্ধ করেছে।</translation> <translation id="8349795646647783032"><ph name="BEGIN_BOLD" />এই ডেটা আমরা কীভাবে ব্যবহার করি:<ph name="END_BOLD" /> Chrome-এর মাধ্যমে আপনার আগ্রহের বিষয়ে তথ্যগুলি সাইট স্টোর করতে পারে। যেমন, আপনি যদি ম্যারাথনের জন্য জুতো কেনার একটি সাইট ভিজিট করেন, তাহলে সাইটটি আপনার আগ্রহকে ম্যারাথন দৌড় হিসেবে বিবেচনা করবে। পরে আপনি যদি রেসের জন্য রেজিস্ট্রেশন করতে অন্য একটি সাইটে যান, তাহলে আপনার আগ্রহের উপর ভিত্তি করে সাইটটি আপনাকে দৌড়ানোর জুতোর বিজ্ঞাপন দেখাবে।</translation> <translation id="8370517070665726704">কপিরাইট <ph name="YEAR" /> Google LLC সব স্বত্ব সংরক্ষিত আছে।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb index 4c2431d..d915eca9 100644 --- a/chrome/app/resources/google_chrome_strings_ca.xtb +++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Aplicació d'ajuda de Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome es reiniciarà ara}=1{Chrome es reiniciarà d'aquí a 1 segon}other{Chrome es reiniciarà d'aquí a # segons}}</translation> <translation id="3396977131400919238">S'ha produït un error en el sistema operatiu durant la instal·lació. Torna a baixar Google Chrome.</translation> +<translation id="3426646014273736870">L'Estalvi de memòria ha fet que Chrome sigui més ràpid</translation> <translation id="3428747202529429621">Et protegeix a Chrome i és possible que s'utilitzi per millorar la teva seguretat en altres aplicacions de Google quan tinguis la sessió iniciada</translation> <translation id="3434246496373299699">Chrome pot comprovar les teves contrasenyes quan inicies la sessió amb el Compte de Google</translation> <translation id="3451115285585441894">S'està afegint a Chrome...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">Els llocs web poden emmagatzemar informació a Chrome sobre els teus interessos. Per exemple, si visites un lloc web per comprar sabatilles per a una marató, és possible que el lloc web defineixi que t'interessa córrer maratons. Més endavant, si visites un altre lloc web per inscriure't a una cursa, aquest altre lloc web et pot mostrar un anunci de sabatilles de curses basant-se en els teus interessos.</translation> <translation id="5430073640787465221">El fitxer de preferències està malmès o no és vàlid. Google Chrome no pot recuperar la configuració.</translation> <translation id="5524761631371622910">Quan les proves estan activades, i si Chrome t'ha inclòs aleatòriament en una prova activa, el teu historial de navegació afecta els anuncis que veus i les estimacions d'interessos que es mostren més avall. Amb la finalitat de protegir la teva privadesa, Chrome suprimeix els interessos de manera contínua cada mes.</translation> +<translation id="5530733413481476019">Fes que Chrome sigui més ràpid</translation> <translation id="556024056938947818">Google Chrome està provant de mostrar les contrasenyes.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Chrome ha bloquejat <ph name="FILE_NAME" /> perquè pot ser perillós.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb index e1ef811..b0bb995 100644 --- a/chrome/app/resources/google_chrome_strings_cs.xtb +++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Chrome Helper</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome se nyní restartuje}=1{Chrome se za 1 sekundu restartuje}few{Chrome se za # sekundy restartuje}many{Chrome se za # sekundy restartuje}other{Chrome se za # sekund restartuje}}</translation> <translation id="3396977131400919238">Během instalace došlo k chybě operačního systému. Stáhněte prosím Google Chrome ještě jednou.</translation> +<translation id="3426646014273736870">Chrome byl zrychlen pomocí Spořiče paměti</translation> <translation id="3428747202529429621">Zajišťuje vám bezpečí v Chromu a může zvýšit vaši bezpečnost v jiných aplikacích Google, když jste přihlášeni.</translation> <translation id="3434246496373299699">Když se přihlásíte k účtu Google, může vám Chrome kontrolovat hesla</translation> <translation id="3451115285585441894">Přidává se do prohlížeče Chrome...</translation> @@ -234,6 +235,7 @@ Aplikace Google Chrome nemůže vaše nastavení obnovit.</translation> <translation id="5524761631371622910">Když jsou zapnuté zkušební verze a Chrome vás do nějaké náhodně umístí, vaše historie prohlížení bude mít vliv na zobrazované reklamy a zájmy, jak je odhadnuto níže. Aby Chrome chránil vaše soukromí, vaše zájmy každý měsíc pravidelně maže.</translation> +<translation id="5530733413481476019">Zrychlete si Chrome</translation> <translation id="556024056938947818">Google Chrome se pokouší zobrazit hesla.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Soubor <ph name="FILE_NAME" /> může být nebezpečný, proto jej Chrome zablokoval.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cy.xtb b/chrome/app/resources/google_chrome_strings_cy.xtb index 9e6cb791..522e81a6 100644 --- a/chrome/app/resources/google_chrome_strings_cy.xtb +++ b/chrome/app/resources/google_chrome_strings_cy.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Helpwr Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Bydd Chrome yn ail-lansio nawr}=1{Bydd Chrome yn ail-lansio mewn 1 eiliad}two{Bydd Chrome yn ail-lansio mewn # eiliad}few{Bydd Chrome yn ail-lansio mewn # eiliad}many{Bydd Chrome yn ail-lansio mewn # eiliad}other{Bydd Chrome yn ail-lansio mewn # eiliad}}</translation> <translation id="3396977131400919238">Bu gwall system weithredu wrth osod. Lawrlwythwch Google Chrome eto.</translation> +<translation id="3426646014273736870">Mae Arbedwr Cof wedi gwneud Chrome yn Gyflymach</translation> <translation id="3428747202529429621">Yn eich cadw'n ddiogel ar Chrome a gellir ei ddefnyddio i wella'ch diogelwch mewn apiau Google eraill pan fyddwch wedi'ch mewngofnodi</translation> <translation id="3434246496373299699">Gall Chrome wirio'ch cyfrineiriau pan fyddwch yn mewngofnodi gyda'ch Cyfrif Google</translation> <translation id="3451115285585441894">Wrthi'n ychwanegu at Chrome...</translation> @@ -234,6 +235,7 @@ Nid yw Google Chrome yn gallu adfer eich gosodiadau.</translation> <translation id="5524761631371622910">Pan fydd treialon ymlaen ac os yw Chrome wedi'ch gosod ar hap mewn treial gweithredol, mae eich hanes pori yn effeithio ar yr hysbysebion a welwch a'r diddordebau fel yr amcangyfrifir isod. Er mwyn amddiffyn eich preifatrwydd, mae Chrome yn dileu eich diddordebau yn awtomatig bob mis.</translation> +<translation id="5530733413481476019">Gwneud Chrome yn Gyflymach</translation> <translation id="556024056938947818">Mae Google Chrome yn ceisio dangos cyfrineiriau.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Gallai <ph name="FILE_NAME" /> fod yn beryglus, felly mae Chrome wedi ei rwystro.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb index dd1b761..53f6efd 100644 --- a/chrome/app/resources/google_chrome_strings_da.xtb +++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Hjælp til Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome genstarter nu}=1{Chrome genstarter om 1 sekund}one{Chrome genstarter om # sekund}other{Chrome genstarter om # sekunder}}</translation> <translation id="3396977131400919238">Der opstod en fejl ved operativsystemet under installation. Download Google Chrome igen.</translation> +<translation id="3426646014273736870">Hukommelsessparefunktion har gjort Chrome hurtigere</translation> <translation id="3428747202529429621">Beskytter dig i Chrome og kan bruges til at forbedre din sikkerhed i andre Google-apps, når du er logget ind</translation> <translation id="3434246496373299699">Chrome kan tjekke dine adgangskoder, når du er logget ind med din Google-konto</translation> <translation id="3451115285585441894">Føjer til Chrome...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">Websites kan gemme oplysninger med Chrome om dine interesser. Hvis du f.eks. besøger et website for at købe sko til et maraton, kan websitet muligvis definere, at din interesse er at løbe maraton. Hvis du derefter besøger et andet website for at tilmelde dig et løb, kan det website vise dig en annonce for løbesko baseret på dine interesser.</translation> <translation id="5430073640787465221">Din præferencefil er beskadiget eller ugyldig. Google Chrome kan ikke gendanne dine præferencer.</translation> <translation id="5524761631371622910">Når prøver er aktiveret, og hvis Chrome har placeret dig tilfældigt i en aktiv prøve, vil din browserhistorik påvirke de annoncer, du ser, og de interesser, som er estimeret nedenfor. Af hensyn til beskyttelsen af dine personlige oplysninger sletter Chrome dine interesser en gang om måneden.</translation> +<translation id="5530733413481476019">Gør Chrome hurtigere</translation> <translation id="556024056938947818">Google Chrome forsøger at vise adgangskoder.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> kan være skadelig, så Chrome har blokeret den.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb index 86cf6091..463a9fa3 100644 --- a/chrome/app/resources/google_chrome_strings_el.xtb +++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -131,6 +131,7 @@ <translation id="3360895254066713204">Chrome Helper</translation> <translation id="3379938682270551431">{0,plural, =0{Η επανεκκίνηση του Chrome θα γίνει τώρα}=1{Η επανεκκίνηση του Chrome θα γίνει σε 1 δευτερόλεπτο}other{Η επανεκκίνηση του Chrome θα γίνει σε # δευτερόλεπτα}}</translation> <translation id="3396977131400919238">Παρουσιάστηκε σφάλμα στο λειτουργικό σύστημα κατά την εγκατάσταση. Κατεβάστε το Google Chrome ξανά.</translation> +<translation id="3426646014273736870">Η Εξοικονόμηση μνήμης έκανε το Chrome πιο γρήγορο</translation> <translation id="3428747202529429621">Διατηρεί την ασφάλειά σας στο Chrome και μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειάς σας σε άλλες εφαρμογές Google όταν είστε συνδεδεμένοι.</translation> <translation id="3434246496373299699">Το Chrome μπορεί να ελέγξει τους κωδικούς πρόσβασής σας όταν συνδέεστε με τον Λογαριασμό σας Google.</translation> <translation id="3451115285585441894">Προσθήκη στο Chrome...</translation> @@ -230,6 +231,7 @@ <translation id="5412485296464121825">Οι ιστότοποι μπορούν να αποθηκεύουν πληροφορίες σχετικά με τα ενδιαφέροντά σας στο Chrome. Για παράδειγμα, εάν επισκεφτείτε έναν ιστότοπο για να αγοράσετε παπούτσια για έναν μαραθώνιο, ο ιστότοπος μπορεί να ορίσει τους μαραθώνιους τρεξίματος ως ενδιαφέρον σας. Αργότερα, εάν επισκεφτείτε έναν διαφορετικό ιστότοπο για να εγγραφείτε σε έναν αγώνα, αυτός ο ιστότοπος μπορεί να σας εμφανίσει μια διαφήμιση για παπούτσια τρεξίματος με βάση τα ενδιαφέροντά σας.</translation> <translation id="5430073640787465221">Το αρχείο προτιμήσεών σας είναι κατεστραμμένο ή μη έγκυρο.Το Google Chrome δεν μπορεί να ανακτήσει τις ρυθμίσεις σας.</translation> <translation id="5524761631371622910">Όταν είναι ενεργοποιημένες οι δοκιμές και εάν το Chrome σας έχει τοποθετήσει τυχαία σε μια ενεργή δοκιμή, το ιστορικό περιήγησής σας επηρεάζει τις διαφημίσεις που βλέπετε και τις εκτιμήσεις για τα ενδιαφέροντά σας παρακάτω. Για την προστασία του απορρήτου σας, το Chrome διαγράφει τα ενδιαφέροντά σας σε κυλιόμενη βάση κάθε μήνα.</translation> +<translation id="5530733413481476019">Κάντε το Chrome πιο γρήγορο</translation> <translation id="556024056938947818">Το Google Chrome επιχειρεί να εμφανίσει κωδικούς πρόσβασης.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Το αρχείο <ph name="FILE_NAME" /> μπορεί να είναι επικίνδυνο, επομένως έχει αποκλειστεί από το Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb index ef369ad..7a4b074 100644 --- a/chrome/app/resources/google_chrome_strings_es-419.xtb +++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Ayuda de Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Se reiniciará Chrome ahora}=1{Se reiniciará Chrome en 1 segundo}other{Se reiniciará Chrome en # segundos}}</translation> <translation id="3396977131400919238">Se produjo un error del sistema operativo durante la instalación. Descargue Google Chrome nuevamente.</translation> +<translation id="3426646014273736870">El Ahorro de memoria hizo que Chrome sea más rápido</translation> <translation id="3428747202529429621">Te protege en Chrome y puede usarse para mejorar tu seguridad en otras apps de Google cuando accedes a tu cuenta.</translation> <translation id="3434246496373299699">Chrome puede revisar las contraseñas solo cuando accedes con tu Cuenta de Google</translation> <translation id="3451115285585441894">Agregando a Chrome...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">Los sitios pueden almacenar información sobre tus intereses con Chrome. Por ejemplo, si visitas un sitio para comprar zapatillas para una maratón, es posible que el sitio defina que te interesa correr maratones. Luego, si visitas otro sitio para registrarte en una carrera, ese sitio podrá mostrarte un anuncio sobre calzado para correr en función de tus intereses.</translation> <translation id="5430073640787465221">Tu archivo de preferencias está dañado o no es válido. Google Chrome no puede recuperar tu configuración.</translation> <translation id="5524761631371622910">Cuando comienzan las pruebas, si Chrome te ubicó de manera aleatoria en una prueba activa, tu historial de navegación afecta los anuncios que ves y los intereses, como se estima a continuación. Para proteger tu privacidad, Chrome borra tus intereses de manera continua todos los meses.</translation> +<translation id="5530733413481476019">Logra que Chrome sea más rápido</translation> <translation id="556024056938947818">Google Chrome está intentando mostrar contraseñas.</translation> <translation id="5566025111015594046">Google Chrome (tráfico mDNS entrante)</translation> <translation id="565744775970812598">Chrome bloqueó <ph name="FILE_NAME" /> porque es posible que sea un archivo peligroso.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index 4d3cedae..68882226 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Ayudante de Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome se reiniciará ahora}=1{Chrome se reiniciará dentro de 1 segundo}other{Chrome se reiniciará dentro de # segundos}}</translation> <translation id="3396977131400919238">Se ha producido un error de sistema operativo durante el proceso de instalación. Vuelve a descargar Google Chrome.</translation> +<translation id="3426646014273736870">Ahorro de memoria ha hecho que Chrome sea más rápido</translation> <translation id="3428747202529429621">Te protege en Chrome y puede usarse para mejorar tu seguridad en otras aplicaciones de Google cuando has iniciado sesión</translation> <translation id="3434246496373299699">Chrome puede comprobar tus contraseñas si inicias sesión con tu cuenta de Google</translation> <translation id="3451115285585441894">Añadiendo a Chrome...</translation> @@ -234,6 +235,7 @@ Google Chrome no puede recuperar tu configuración.</translation> <translation id="5524761631371622910">Si las pruebas están activas y Chrome te ha incluido aleatoriamente en alguna, tu historial de navegación influirá en los anuncios que veas y en los intereses que se estimen abajo. Para proteger tu privacidad, Chrome elimina tus intereses cada mes.</translation> +<translation id="5530733413481476019">Haz que Chrome sea más rápido</translation> <translation id="556024056938947818">Google Chrome está intentando mostrar contraseñas.</translation> <translation id="5566025111015594046">Google Chrome (tráfico mDNS entrante)</translation> <translation id="565744775970812598">Es posible que <ph name="FILE_NAME" /> sea peligroso, por lo que Chrome lo ha bloqueado.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb index 8e89fa9b..6823fb7d 100644 --- a/chrome/app/resources/google_chrome_strings_fa.xtb +++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">راهنمای Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome هماکنون راهاندازی مجدد میشود}=1{Chrome ۱ ثانیه دیگر راهاندازی مجدد میشود}one{Chrome # ثانیه دیگر راهاندازی مجدد میشود}other{Chrome # ثانیه دیگر راهاندازی مجدد میشود}}</translation> <translation id="3396977131400919238">هنگام نصب یک خطای سیستمعامل رخ داد. لطفاً دوباره Google Chrome را بارگیری کنید.</translation> +<translation id="3426646014273736870">«بهینهسازی حافظه» سرعت Chrome را بیشتر کرده است</translation> <translation id="3428747202529429621">وقتی به سیستم وارد شده باشید، امنیت شما را در Chrome حفظ میکند و ممکن است برای بهبود امنیت شما در برنامههای دیگر Google استفاده شود</translation> <translation id="3434246496373299699">Chrome زمانی میتواند گذرواژههایتان را بررسی کند که با «حساب Google» خود به سیستم وارد شوید</translation> <translation id="3451115285585441894">افزودن به Chrome...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">سایتها میتوانند بااستفاده از Chrome اطلاعاتی درباره علایقتان ذخیره کنند. برای مثال، اگر برای خرید کفش مخصوص ماراتون از سایتی بازدید کنید، ممکن است آن سایت علاقه شما را بهصورت دونده ماراتون مشخص کند. بعداً، اگر برای ثبتنام در مسابقهای به سایتی دیگر مراجعه کردید، آن سایت میتواند براساس علایقتان آگهیای برای کفش مخصوص دویدن به شما نشان دهد.</translation> <translation id="5430073640787465221">فایل اولویتهای شما خراب یا نامعتبر است. Google Chrome نمیتواند تنظیمات شما را بازیابی کند.</translation> <translation id="5524761631371622910">اگر نسخه آزمایشی روشن باشد و Chrome بهطور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهیهایی که میبینید و علایقتان که در زیر برآورد شده است تأثیر میگذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه بهطور چرخشی حذف میکند.</translation> +<translation id="5530733413481476019">سرعت Chrome را افزایش دهید</translation> <translation id="556024056938947818">Google Chrome میخواهد گذرواژهها را نمایش دهد.</translation> <translation id="5566025111015594046">Google Chrome (ورودی mDNS)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ممکن است خطرناک باشد، بنابراین Chrome آن را مسدود کرده است.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb index a35e016e..1c8bdf0 100644 --- a/chrome/app/resources/google_chrome_strings_fil.xtb +++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Chrome Helper</translation> <translation id="3379938682270551431">{0,plural, =0{Muli nang ilulunsad ang Chrome ngayon}=1{Muli nang ilulunsad ang Chrome sa loob ng 1 segundo}one{Muli nang ilulunsad ang Chrome sa loob ng # segundo}other{Muli nang ilulunsad ang Chrome sa loob ng # na segundo}}</translation> <translation id="3396977131400919238">Nagkaroon ng error sa operating system habang nag-i-install. Paki-download muli ang Google Chrome.</translation> +<translation id="3426646014273736870">Pinabilis ng Memory Saver ang Chrome</translation> <translation id="3428747202529429621">Pinapanatili kang ligtas sa Chrome at puwedeng gamitin para paigtingin ang iyong seguridad sa iba pang Google app kapag naka-sign in ka</translation> <translation id="3434246496373299699">Matitingnan ng Chrome ang iyong mga password kapag nag-sign in ka gamit ang Google Account mo</translation> <translation id="3451115285585441894">Idinaragdag sa Chrome...</translation> @@ -234,6 +235,7 @@ Hindi magawang bawiin ng Google Chrome ang iyong mga setting.</translation> <translation id="5524761631371622910">Kapag naka-on ang mga trial at kung random kang inilagay ng Chrome sa isang aktibong trial, maaapektuhan ng iyong history ng pag-browse ang mga ad na makikita mo at ang mga interes tulad ng itinantya sa ibaba. Para protektahan ang iyong privacy, ide-delete ng Chrome ang mga interes mo sa rolling na paraan bawat buwan.</translation> +<translation id="5530733413481476019">Pabilisin ang Chrome</translation> <translation id="556024056938947818">Sinusubukan ng Google Chrome na magpakita ng mga password.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Maaaring mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index 6f5f3b1..f1488f8 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Chrome સહાયક</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome હમણાં ફરીથી લૉન્ચ થશે}=1{Chrome 1 સેકન્ડમાં ફરીથી લૉન્ચ થશે}one{Chrome # સેકન્ડમાં ફરીથી લૉન્ચ થશે}other{Chrome # સેકન્ડમાં ફરીથી લૉન્ચ થશે}}</translation> <translation id="3396977131400919238">ઇન્સ્ટૉલેશન દરમિયાન એક ઑપરેટિંગ સિસ્ટમની ભૂલ આવી. કૃપા કરીને Google Chrome ફરીથી ડાઉનલોડ કરો.</translation> +<translation id="3426646014273736870">મેમરી સેવર દ્વારા Chromeને વધુ ઝડપી બનાવવામાં આવ્યું</translation> <translation id="3428747202529429621">તમને Chrome પર સલામત રાખે છે અને જ્યારે તમે સાઇન ઇન થયા હો, ત્યારે Googleની અન્ય ઍપમાં તમારી સુરક્ષા બહેતર બનાવવામાં ઉપયોગમાં લેવાઈ શકે છે</translation> <translation id="3434246496373299699">જ્યારે તમે તમારા Google એકાઉન્ટ વડે સાઇન ઇન કરો ત્યારે Chrome તમારા પાસવર્ડ ચેક કરી શકે છે</translation> <translation id="3451115285585441894">Chrome માં ઉમેરી રહ્યું છે...</translation> @@ -234,6 +235,7 @@ Google Chrome તમારા સેટિંગને રિકવર કરી શકતું નથી.</translation> <translation id="5524761631371622910">જ્યારે અજમાયશો ચાલુ હોય અને જો Chrome કોઈ સક્રિય અજમાયશમાં કોઈપણ ક્રમમાં તમારી ગોઠવણ કરી લે, તો તમારો બ્રાઉઝિંગ ઇતિહાસ તમને દેખાતી જાહેરાતો અને નીચે જણાવેલી અનુમાનિત રુચિઓને અસર કરે છે. તમારી પ્રાઇવસીની સુરક્ષા કરવા માટે Chrome નવા વિષયો આવતા જાય, તેના આધારે દર મહિને તમારી રુચિના વિષયોને ડિલીટ કરે છે.</translation> +<translation id="5530733413481476019">Chromeને વધુ ઝડપી બનાવો</translation> <translation id="556024056938947818">Google Chrome પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> જોખમી હોઈ શકે છે, તેથી Chrome એ તેને અવરોધિત કરેલ છે.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb index b2f34d9..ebd422d 100644 --- a/chrome/app/resources/google_chrome_strings_hi.xtb +++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -89,7 +89,7 @@ <translation id="2622559029861875898">Chrome, अपडेट की जांच नहीं कर सकता. अपने इंटरनेट कनेक्शन की जांच करें.</translation> <translation id="2645435784669275700">ChromeOS</translation> <translation id="2652691236519827073">नए Chrome &टैब में लिंक खोलें</translation> -<translation id="2665296953892887393">Google को खराबी रिपोर्ट और <ph name="UMA_LINK" /> भेजकर Google Chrome को बेहतर बनाने में मदद करें</translation> +<translation id="2665296953892887393">Google को क्रैश रिपोर्ट और <ph name="UMA_LINK" /> भेजकर Google Chrome को बेहतर बनाने में मदद करें</translation> <translation id="2689103672227170538">इस एक्सटेंशन ने यह बदल दिया है कि जब आप Chrome प्रारंभ करते हैं तब कौन सा पृष्ठ दिखाया जाए.</translation> <translation id="2742320827292110288">चेतावनी: Google Chrome, एक्सटेंशन को आपका ब्राउज़िंग इतिहास रिकॉर्ड करने से नहीं रोक सकता. गुप्त मोड में इस एक्सटेंशन को बंद करने के लिए, इस विकल्प से चुने हुए का निशान हटाएं.</translation> <translation id="2765403129283291972">Chrome को इस साइट के लिए आपका माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए</translation> @@ -384,7 +384,7 @@ <translation id="8679801911857917785">इससे यह भी नियंत्रित होता है कि जब आप Chrome प्रारंभ करते हैं तब कौन सा पेज दिखाया जाए.</translation> <translation id="8684875378076460854">Chrome इस फ़ाइल को स्कैन करने का सुझाव देता है, क्योंकि यह खतरनाक हो सकती है</translation> <translation id="8686817260976772516">Chrome प्रोफ़ाइलों का इस्तेमाल करके, आप Chrome पर अपनी सभी चीज़ों को अलग-अलग रख सकते हैं. अपने दोस्तों और परिवार के लिए या काम और मनोरंजन की चीज़ों को अलग-अलग रखने के लिए, प्रोफ़ाइलें बनाएं.</translation> -<translation id="8712767363896337380">करीब-करीब अपडेट हो गया है! अपडेट पूरा करने के लिए, Chrome को फिर से लॉन्च करें.</translation> +<translation id="8712767363896337380">अपडेट होने ही वाला है! अपडेट पूरा करने के लिए, Chrome को फिर से लॉन्च करें.</translation> <translation id="873133009373065397">Google Chrome डिफ़ॉल्ट ब्राउज़र तय या सेट नहीं कर सकता</translation> <translation id="8823341990149967727">Chrome पुराना हो गया है</translation> <translation id="8825634023950448068">आपकी निजता को सुरक्षित रखने के लिए, हम आपकी पसंद के उन विषयों को ऑटोमैटिकली मिटा देते हैं जिनका अनुमान चार हफ़्ते पहले लगाया गया था. ब्राउज़ करते रहने पर, आपकी पसंद का कोई विषय, सूची में फिर से शामिल किया जा सकता है. इसके अलावा, अगर आपको लगता है कि Chrome ने आपकी पसंद के विषय को शामिल नहीं किया है या आपको कोई खास विज्ञापन नहीं देखना है, तो आपके पास उस विषय को हटाने का विकल्प होता है.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb index 3fd57cc..ec7840b 100644 --- a/chrome/app/resources/google_chrome_strings_id.xtb +++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Pembantu Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome akan diluncurkan ulang sekarang}=1{Chrome akan diluncurkan ulang dalam 1 detik}other{Chrome akan diluncurkan ulang dalam # detik}}</translation> <translation id="3396977131400919238">Terjadi error pada sistem operasi saat penginstalan berlangsung. Download kembali Google Chrome.</translation> +<translation id="3426646014273736870">Penghemat Memori Membuat Chrome Lebih Cepat</translation> <translation id="3428747202529429621">Memastikan Anda tetap aman di Chrome dan dapat digunakan untuk menyempurnakan keamanan Anda di aplikasi Google lainnya saat login</translation> <translation id="3434246496373299699">Chrome dapat memeriksa sandi saat Anda login dengan Akun Google</translation> <translation id="3451115285585441894">Menambahkan ke Chrome...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">Situs dapat menyimpan informasi tentang minat Anda ke Chrome. Misalnya, jika Anda mengunjungi suatu situs untuk membeli sepatu maraton, situs tersebut dapat menetapkan minat Anda sebagai lari maraton. Kemudian, jika Anda mengunjungi situs lain untuk mendaftar lomba lari, situs tersebut dapat menampilkan iklan sepatu lari berdasarkan minat Anda.</translation> <translation id="5430073640787465221">File preferensi Anda rusak atau tidak valid. Google Chrome tidak dapat memulihkan setelan Anda.</translation> <translation id="5524761631371622910">Jika uji coba diaktifkan dan Chrome secara acak menempatkan Anda dalam uji coba aktif, histori penjelajahan Anda akan memengaruhi iklan yang Anda lihat dan minat seperti yang diperkirakan di bawah. Untuk melindungi privasi Anda, Chrome menghapus minat Anda secara berkala setiap bulan.</translation> +<translation id="5530733413481476019">Buat Chrome Lebih Cepat</translation> <translation id="556024056938947818">Google Chrome mencoba menampilkan sandi.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> mungkin berbahaya, sehingga Chrome memblokirnya.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb index 7f2c134..37584cd 100644 --- a/chrome/app/resources/google_chrome_strings_kn.xtb +++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -130,6 +130,7 @@ <translation id="3360895254066713204">Chrome ಸಹಾಯಕ</translation> <translation id="3379938682270551431">{0,plural, =0{ಇದೀಗ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಕೆಂಡಿನಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="3396977131400919238">ಸ್ಥಾಪನೆ ವೇಳೆ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ದೋಷವು ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು Google Chrome ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.</translation> +<translation id="3426646014273736870">ಮೆಮೊರಿ ಸೇವರ್ನಿಂದಾಗಿ Chrome ನ ವೇಗ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿದೆ</translation> <translation id="3428747202529429621">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸುತ್ತದೆ ಮತ್ತು ಇತರ Google ಆ್ಯಪ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಬಳಸಬಹುದು</translation> <translation id="3434246496373299699">ನೀವು Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಲ್ಲದು</translation> <translation id="3451115285585441894">Chrome ಗೆ ಸೇರಿಸಲಾಗುತ್ತಿದೆ...</translation> @@ -227,6 +228,7 @@ <translation id="5412485296464121825">ಸೈಟ್ಗಳು ನಿಮ್ಮ ಆಸಕ್ತಿಗಳ ಕುರಿತಾದ ಮಾಹಿತಿಯನ್ನು Chrome ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿಡಬಲ್ಲವು. ಉದಾಹರಣೆಗೆ, ನೀವು ಮ್ಯಾರಥಾನ್ಗಾಗಿ ಶೂ ಖರೀದಿಸಲು ಸೈಟ್ ಒಂದಕ್ಕೆ ಭೇಟಿ ನೀಡಿದರೆ, ಮ್ಯಾರಥಾನ್ಗಳಲ್ಲಿ ಓಡುವುದನ್ನು ನಿಮ್ಮ ಆಸಕ್ತಿಯೆಂದು ಆ ಸೈಟ್ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ತದನಂತರ, ನೀವು ರೇಸ್ ಒಂದಕ್ಕೆ ನೋಂದಾಯಿಸಲು ಬೇರೊಂದು ವೆಬ್ಸೈಟ್ಗೆ ಭೇಟಿ ನೀಡಿದರೆ, ಆ ಸೈಟ್ ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಆಧರಿಸಿ ನಿಮಗೆ ರನ್ನಿಂಗ್ ಶೂಗಳ ಜಾಹೀರಾತನ್ನು ತೋರಿಸಬಹುದು.</translation> <translation id="5430073640787465221">ನಿಮ್ಮ ಪ್ರಾಶಸ್ತ್ಯಗಳ ಫೈಲ್ ದೋಷಪೂರಿತವಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ. ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ Google Chrome ವಿಫಲಗೊಂಡಿದೆ.</translation> <translation id="5524761631371622910">ಪ್ರಯೋಗಗಳು ನಡೆಯುತ್ತಿರುವಾಗ ಮತ್ತು Chrome ನಿಮ್ಮನ್ನು ರ್ಯಾಂಡಮ್ ಆಗಿ ಸಕ್ರಿಯ ಪ್ರಯೋಗದಲ್ಲಿ ಇರಿಸಿದ್ದರೆ, ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ ನಿಮಗೆ ಕಾಣಿಸುವ ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಆಸಕ್ತಿಗಳ ಮೇಲೆ ಕೆಳಗೆ ಅಂದಾಜು ಮಾಡಿರುವಂತೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ. ನಿಮ್ಮ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸಲು, Chrome ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಪ್ರತಿ ತಿಂಗಳು ರೋಲಿಂಗ್ ಆಧಾರದಲ್ಲಿ ಅಳಿಸುತ್ತದೆ.</translation> +<translation id="5530733413481476019">Chrome ವೇಗ ಹೆಚ್ಚಿಸಿ</translation> <translation id="556024056938947818">Google Chrome ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹಾಗಾಗಿ Chrome ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb index df1ee35..35c928a 100644 --- a/chrome/app/resources/google_chrome_strings_ml.xtb +++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -133,6 +133,7 @@ <translation id="3360895254066713204">Chrome സഹായി</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കും}=1{ഒരു സെക്കൻഡിൽ Chrome വീണ്ടും സമാരംഭിക്കും}other{# സെക്കൻഡിൽ Chrome വീണ്ടും സമാരംഭിക്കും}}</translation> <translation id="3396977131400919238">ഇന്സ്റ്റാള് ചെയ്യുന്ന സമയത്ത് ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പിശക് സംഭവിച്ചു. ദയവായി Google Chrome വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation> +<translation id="3426646014273736870">മെമ്മറി സേവർ Chrome-ന്റെ വേഗത വർദ്ധിപ്പിക്കുന്നു</translation> <translation id="3428747202529429621">നിങ്ങൾ സൈൻ ഇൻ ആയിരിക്കുമ്പോൾ Chrome-ൽ നിങ്ങളെ സുരക്ഷിതരാക്കുകയും മറ്റ് Google ആപ്പുകളിൽ നിങ്ങളുടെ സുരക്ഷ മെച്ചപ്പെടുത്താനും ഉപയോഗിച്ചേക്കാം</translation> <translation id="3434246496373299699">നിങ്ങളുടെ Google അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുമ്പോൾ, Chrome-ന് നിങ്ങളുടെ പാസ്വേഡുകൾ പരിശോധിക്കാനാവും</translation> <translation id="3451115285585441894">Chrome-ലേക്ക് ചേർക്കുന്നു...</translation> @@ -234,6 +235,7 @@ നിങ്ങളുടെ ക്രമീകരണം വീണ്ടെടുക്കാൻ Google Chrome-ന് കഴിയില്ല.</translation> <translation id="5524761631371622910">ട്രയലുകൾ ഓണായിരിക്കുമ്പോൾ, Chrome നിങ്ങളെ ക്രമരഹിതമായി ഒരു സജീവ ട്രയലിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ കാണുന്ന പരസ്യങ്ങളെയും ചുവടെ നിർണ്ണയിച്ചിരിക്കുന്നത് പോലുള്ള താൽപ്പര്യങ്ങളെയും നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ബാധിക്കുന്നു. നിങ്ങളുടെ സ്വകാര്യത പരിരക്ഷിക്കുന്നതിന് ഓരോ മാസവും റോളിംഗ് അടിസ്ഥാനത്തിൽ Chrome നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ ഇല്ലാതാക്കുന്നു.</translation> +<translation id="5530733413481476019">Chrome കൂടുതൽ വേഗതയുള്ളതാക്കുക</translation> <translation id="556024056938947818">Google Chrome പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ, Chrome ഇതിനെ ബ്ലോക്കുചെയ്തു.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb index e999277..bafda6cb 100644 --- a/chrome/app/resources/google_chrome_strings_mr.xtb +++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -132,6 +132,7 @@ <translation id="3360895254066713204">Chrome मदतनीस</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome आता पुन्हा लॉंच होईल}=1{Chrome एका सेकंदामध्ये पुन्हा लॉंच होईल}other{Chrome # सेकंदांमध्ये पुन्हा लॉंच होईल}}</translation> <translation id="3396977131400919238">स्थापनेदरम्यान एक ऑपरेटिंग सिस्टम एरर आली. कृपया Google Chrome पुन्हा डाउनलोड करा.</translation> +<translation id="3426646014273736870">मेमरी सेव्हरने Chrome ला आणखी जलद केले आहे</translation> <translation id="3428747202529429621">तुम्हाला Chrome वर सुरक्षित ठेवते आणि तुम्ही साइन इन केलेले असताना इतर Google अॅप्समध्ये तुमच्या सुरक्षिततेत सुधारणा करण्यासाठी वापरले जाऊ शकते</translation> <translation id="3434246496373299699">तुम्ही तुमचे Google खाते वापरून साइन इन करता तेव्हा, Chrome तुमचे पासवर्ड तपासू शकते</translation> <translation id="3451115285585441894">Chrome मध्ये जोडत आहे...</translation> @@ -232,6 +233,7 @@ Google Chrome तुमची सेटिंग्ज पुन्हा मिळवू शकत नाही.</translation> <translation id="5524761631371622910">चाचण्या सुरू असताना Chrome ने तुम्हाला रँडम पद्धतीने अॅक्टिव्ह चाचणीमध्ये सामील केल्यास, तुमचा ब्राउझिंग इतिहास हा तुम्ही पाहता त्या जाहिराती आणि खाली दिलेली अंदाजित स्वारस्ये यांवर परिणाम करतो. तुमच्या गोपनीयतेचे संरक्षण करण्यासाठी, Chrome दर महिन्याला रोलिंगच्या आधारे तुमची स्वारस्ये हटवते.</translation> +<translation id="5530733413481476019">Chrome ला आणखी जलद बनवा</translation> <translation id="556024056938947818">Google Chrome पासवर्ड दर्शवण्याचा प्रयत्न करत आहे.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-मध्ये)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chrome ने ती ब्लॉक केली आहे.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb index c5f6bb9..1a97e23 100644 --- a/chrome/app/resources/google_chrome_strings_ne.xtb +++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -131,6 +131,7 @@ <translation id="3360895254066713204">Chrome सहायककर्ता</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome अब पुनः सुरु हुने छ}=1{Chrome १ सेकेन्डमा पुनः सुरु हुने छ}other{Chrome # सेकेन्डमा पुनः सुरु हुने छ}}</translation> <translation id="3396977131400919238">स्थापना हुँदा एक सञ्चालन प्रणाली त्रुटि भयो। कृपया Google Chrome फेरि डाउनलोड गर्नुहोस्।</translation> +<translation id="3426646014273736870">मेमोरी सेभरले Chrome लाई अझ छिटो काम गर्ने बनाएको छ</translation> <translation id="3428747202529429621">तपाईं साइन इन भएका बेला यस सुविधाले Chrome मा तपाईंलाई सुरक्षित राख्छ। त्यस्तै, यो सुविधा तपाईंलाई Google का अन्य एपहरूमा अझ् धेरै सुरक्षा प्रदान गर्न पनि प्रयोग गरिन सक्छ</translation> <translation id="3434246496373299699">तपाईंले आफ्नो Google खातामा साइन इन गरेपछि मात्र Chrome ले तपाईंका पासवर्डहरूको जाँच गर्न सक्छ</translation> <translation id="3451115285585441894">Chrome मा थप्दै...</translation> @@ -230,6 +231,7 @@ Google Chrome ले तपाईंको सेटिङहरू पुन: प्राप्त गर्न सकदैन।</translation> <translation id="5524761631371622910">ट्रायल सुविधाहरू अन छन् र Chrome ले तपाईंलाई अनियमित रूपमा एक्टिभ ट्रायलअन्तर्गत राखेको छ भने तपाईंको ब्राउजिङ इतिहासका कारण तपाईंलाई देखाइने विज्ञापन र तलका अनुमानित रुचिहरू फरक पर्न सक्छन्। तपाईंको गोपनीयताको सुरक्षार्थ Chrome ले हरेक महिना क्रमिक रूपमा तपाईंका रुचिहरू मेटाउँछ।</translation> +<translation id="5530733413481476019">Chrome लाई अझ छिटो काम गर्ने बनाउनुहोस्</translation> <translation id="556024056938947818">Google Chrome ले पासवर्डहरू देखाउने प्रयास गरिरहेको छ।</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> खतरनाक हुन सक्छ, त्यसैले Chrome ले यसमाथि रोक लगाएको छ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index 57c0fa94..6f9e6cea 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -89,7 +89,7 @@ <translation id="2586406160782125153">Táto akcia odstráni zo zariadenia údaje prehliadania. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do Chromu ako používateľ <ph name="USER_EMAIL" />.</translation> <translation id="2597976513418770460">Získajte údaje prehliadača Chrome z účtu <ph name="ACCOUNT_EMAIL" /></translation> <translation id="2622559029861875898">Chrome nemôže skontrolovať dostupnosť aktualizácií. Skontrolujte internetové pripojenie.</translation> -<translation id="2645435784669275700">Chrome OS</translation> +<translation id="2645435784669275700">ChromeOS</translation> <translation id="2652691236519827073">Otvoriť odkaz na novej &karte Chromu</translation> <translation id="2665296953892887393">Pomôcť zlepšiť prehliadač Google Chrome odosielaním správ o zlyhaní a <ph name="UMA_LINK" /> spoločnosti Google</translation> <translation id="2689103672227170538">Toto rozšírenie zmenilo stránku, ktorá sa zobrazí pri spustení prehliadača Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sq.xtb b/chrome/app/resources/google_chrome_strings_sq.xtb index 6408fa74..a1f1b8b5 100644 --- a/chrome/app/resources/google_chrome_strings_sq.xtb +++ b/chrome/app/resources/google_chrome_strings_sq.xtb
@@ -132,6 +132,7 @@ <translation id="3360895254066713204">Ndihmësi i Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome do të hapet përsëri tani}=1{Chrome do të hapet përsëri për 1 sekondë}other{Chrome do të hapet përsëri për # sekonda}}</translation> <translation id="3396977131400919238">Ndodhi një gabim në sistemin operativ gjatë instalimit. Shkarko përsëri Google Chrome.</translation> +<translation id="3426646014273736870">"Kursyesi i memories" e ka bërë Chrome më të shpejtë</translation> <translation id="3428747202529429621">Të mban të sigurt në Chrome dhe mund të përdoret për të përmirësuar sigurinë tënde në aplikacionet e tjera të Google kur je i identifikuar</translation> <translation id="3434246496373299699">Chrome mund t'i kontrollojë fjalëkalimet e tua kur të identifikohesh me "Llogarinë tënde të Google"</translation> <translation id="3451115285585441894">Po shton te Chrome...</translation> @@ -233,6 +234,7 @@ Google Chrome nuk është në gjendje të rikuperojë cilësimet e tua.</translation> <translation id="5524761631371622910">Kur provat janë aktive dhe nëse Chrome të ka vendosur rastësisht në një provë aktive, historiku yt i shfletimit ndikon te reklamat që shikon dhe tek interesat sipas përllogaritjes më poshtë. Për të mbrojtur privatësinë tënde, Chrome fshin interesat e tua në vazhdimësi çdo muaj.</translation> +<translation id="5530733413481476019">Bëje Chrome më të shpejtë</translation> <translation id="556024056938947818">Google Chrome po përpiqet të shfaqë fjalëkalimet.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> mund të jetë i rrezikshëm, prandaj Chrome e ka bllokuar.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb index 0719f36..db2ce8d 100644 --- a/chrome/app/resources/google_chrome_strings_ta.xtb +++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Chrome உதவி</translation> <translation id="3379938682270551431">{0,plural, =0{இப்போது Chrome மீண்டும் தொடங்கும்}=1{ஒரு வினாடியில் Chrome மீண்டும் தொடங்கும்}other{# வினாடிகளில் Chrome மீண்டும் தொடங்கும்}}</translation> <translation id="3396977131400919238">நிறுவலின்போது இயக்கமுறைமையில் பிழை ஏற்பட்டது. Google Chromeமை மீண்டும் பதிவிறக்குக.</translation> +<translation id="3426646014273736870">Chrome வேகத்தை நினைவகச் சேமிப்பான் அதிகரிக்கிறது</translation> <translation id="3428747202529429621">Chromeமைப் பயன்படுத்தும்போது இது பாதுகாப்பை வழங்கும், அத்துடன் நீங்கள் பிற Google ஆப்ஸில் உள்நுழைந்திருக்கும்போது உங்கள் பாதுகாப்பை மேம்படுத்துவதற்காக இதைப் பயன்படுத்தலாம்</translation> <translation id="3434246496373299699">Google கணக்கைப் பயன்படுத்தி நீங்கள் உள்நுழையும்போது Chrome உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்</translation> <translation id="3451115285585441894">Chrome இல் சேர்க்கிறது...</translation> @@ -226,6 +227,7 @@ <translation id="5412485296464121825">உங்கள் ஆர்வங்கள் குறித்த தகவல்களை Chrome மூலம் தளங்கள் சேமிக்கலாம். உதாரணமாக, மாரத்தான் ஓட்டத்திற்காக ஷூ வாங்க ஒரு தளத்திற்கு நீங்கள் சென்றால் உங்கள் ஆர்வம் மாரத்தான் ஓட்டங்கள் சார்ந்தது என தளம் தீர்மானிக்கக்கூடும். அதன்பிறகு, பந்தயத்திற்குப் பதிவு செய்வதற்காக வேறொரு தளத்திற்கு நீங்கள் சென்றால் உங்கள் ஆர்வங்களின் அடிப்படையில் அந்தத் தளம் ஓட்டப்பந்தய ஷூ விளம்பரத்தை உங்களுக்குக் காட்டக்கூடும்.</translation> <translation id="5430073640787465221">உங்கள் விருப்பத்தேர்வுகளின் ஃபைல் சிதைவடைந்துள்ளது அல்லது தவறானது. உங்கள் அமைப்புகளை Google Chrome ஆல் மீட்டெடுக்க முடியவில்லை.</translation> <translation id="5524761631371622910">பரிசோதனைக் காலம் செயலில் இருக்கும்போது, செயலில் உள்ள பரிசோதனைக் காலம் ஒன்றில் Chrome உங்களை ரேண்டமாகச் சேர்த்தால் நீங்கள் பார்க்கும் விளம்பரங்களும் கீழே கணித்துள்ளது போல் ஆர்வங்களும் நீங்கள் இதுவரை இணையத்தில் பார்த்தவற்றைப் பொறுத்து அமையும். உங்கள் தனியுரிமையைப் பாதுகாக்க, ஒவ்வொரு மாதமும் படிப்படியாக உங்கள் ஆர்வங்களை Chrome நீக்கும்.</translation> +<translation id="5530733413481476019">Chrome வேகத்தை அதிகரியுங்கள்</translation> <translation id="556024056938947818">Google Chrome ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கலாம் என்பதால் Chrome அதைத் தடுத்துள்ளது.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb index a17ba0d..7d168e5 100644 --- a/chrome/app/resources/google_chrome_strings_tr.xtb +++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -128,6 +128,7 @@ <translation id="3360895254066713204">Chrome Helper</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome şimdi yeniden başlatılacak}=1{Chrome 1 saniye içinde yeniden başlatılacak}other{Chrome # saniye içinde yeniden başlatılacak}}</translation> <translation id="3396977131400919238">Yükleme sırasında bir işletim sistemi hatası oluştu. Lütfen Google Chrome'u yeniden indirin.</translation> +<translation id="3426646014273736870">Bellek Tasarrufu Sayesinde Chrome Artık Daha Hızlı</translation> <translation id="3428747202529429621">Chrome'da güvende kalmanızı sağlar ve oturum açtığınızda diğer Google uygulamalarındaki güvenliğinizi artırmak için kullanılabilir</translation> <translation id="3434246496373299699">Chrome, Google Hesabınızla oturum açtığınızda şifrelerinizi kontrol edebilir</translation> <translation id="3451115285585441894">Chrome'a ekleniyor...</translation> @@ -227,6 +228,7 @@ <translation id="5412485296464121825">Siteler, ilgi alanlarınız hakkındaki bilgileri Chrome'da saklayabilir. Örneğin, maraton ayakkabısı satın almak için ziyaret ettiğiniz bir site, maraton koşmayı ilgi alanınız olarak tanımlayabilir. Daha sonra bir yarışa kaydolmak için farklı bir siteyi ziyaret ettiğinizde o site ilgi alanlarınıza dayalı olarak size koşu ayakkabısı reklamı gösterebilir.</translation> <translation id="5430073640787465221">Tercih dosyanız bozuk veya geçersiz. Google Chrome, ayarlarınızı kurtaramıyor.</translation> <translation id="5524761631371622910">Denemeler açıksa ve Chrome tarafından etkin bir denemeye rastgele yerleştirildiyseniz tarama geçmişiniz gördüğünüz reklamları ve aşağıdaki şekilde tahmin edilen ilgi alanlarınızı etkiler. Chrome, gizliliğinizi korumak için ilgi alanlarınızı her ay sürekli olarak siler.</translation> +<translation id="5530733413481476019">Chrome'u Daha Hızlı Hale Getirin</translation> <translation id="556024056938947818">Google Chrome şifreleri göstermeyi deniyor.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> tehlikeli olabileceği için Chrome tarafından engellendi.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb index d56b91f..dbf6089 100644 --- a/chrome/app/resources/google_chrome_strings_vi.xtb +++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -131,6 +131,7 @@ <translation id="3360895254066713204">Trình trợ giúp của Chrome</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome sẽ khởi động lại ngay bây giờ}=1{Chrome sẽ khởi động lại sau 1 giây}other{Chrome sẽ khởi động lại sau # giây}}</translation> <translation id="3396977131400919238">Đã xảy ra lỗi hệ điều hành trong quá trình cài đặt. Vui lòng tải xuống lại Google Chrome.</translation> +<translation id="3426646014273736870">Trình tiết kiệm bộ nhớ giúp Chrome hoạt động nhanh hơn</translation> <translation id="3428747202529429621">Giúp bạn an toàn trên Chrome và có thể dùng để tăng cường bảo mật cho bạn trong các ứng dụng khác của Google sau khi đăng nhập</translation> <translation id="3434246496373299699">Chrome có thể kiểm tra mật khẩu khi bạn đăng nhập bằng Tài khoản Google của mình</translation> <translation id="3451115285585441894">Đang thêm vào Chrome...</translation> @@ -230,6 +231,7 @@ <translation id="5412485296464121825">Các trang web có thể lưu trữ thông tin trên Chrome về mối quan tâm của bạn. Ví dụ: sau khi bạn truy cập một trang web bán giày chạy marathon, trang web đó có thể sẽ xác định rằng bạn quan tâm đến chạy marathon. Sau đó, nếu bạn truy cập một trang web khác để đăng ký thi chạy, thì trang web đó sẽ hiện quảng cáo giày chạy dựa trên mối quan tâm của bạn.</translation> <translation id="5430073640787465221">Tệp tùy chọn của bạn bị hỏng hoặc không hợp lệ. Google Chrome không thể khôi phục cài đặt của bạn.</translation> <translation id="5524761631371622910">Trong giai đoạn dùng thử và nếu Chrome ngẫu nhiên đưa bạn vào một giai đoạn dùng thử đang hoạt động, nhật ký duyệt web của bạn sẽ ảnh hưởng đến quảng cáo mà bạn thấy cũng như các mối quan tâm được ước đoán như dưới đây. Để bảo vệ quyền riêng tư của bạn, Chrome xoá thông tin về các mối quan tâm của bạn theo chu kỳ luân phiên mỗi tháng.</translation> +<translation id="5530733413481476019">Giúp Chrome hoạt động nhanh hơn</translation> <translation id="556024056938947818">Google Chrome đang cố gắng hiển thị mật khẩu.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> có thể nguy hiểm, do đó Chrome đã chặn tệp.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb index 5bf8ada..58cb028 100644 --- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -132,6 +132,7 @@ <translation id="3360895254066713204">Chrome 輔助工具</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome 將立即重新啟動}=1{Chrome 將於 1 秒後重新啟動}other{Chrome 將於 # 秒後重新啟動}}</translation> <translation id="3396977131400919238">安裝過程中發生作業系統錯誤,請再次下載 Google Chrome。</translation> +<translation id="3426646014273736870">記憶體節省模式可以提升 Chrome 運作速度</translation> <translation id="3428747202529429621">確保您登入使用 Chrome 的安全,並可提升您在其他 Google 應用程式的安全性</translation> <translation id="3434246496373299699">Chrome 可在您使用 Google 帳戶登入時檢查密碼</translation> <translation id="3451115285585441894">正在新增至 Chrome…</translation> @@ -233,6 +234,7 @@ Google Chrome 無法復原您的設定。</translation> <translation id="5524761631371622910">在試用期間,如果 Chrome 隨機將您加入試用行列,您的瀏覽記錄會影響所看到的廣告,以及系統推測的以下興趣。為保障您的私隱,Chrome 每個月都會自動刪除您的興趣。</translation> +<translation id="5530733413481476019">提升 Chrome 的運作速度</translation> <translation id="556024056938947818">Google Chrome 即將顯示密碼。</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> 可能不安全,因此 Chrome 已封鎖此檔案。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb index 66a0886..8e4bacf 100644 --- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -129,6 +129,7 @@ <translation id="3360895254066713204">Chrome 小幫手</translation> <translation id="3379938682270551431">{0,plural, =0{Chrome 將立即重新啟動}=1{Chrome 將在 1 秒後重新啟動}other{Chrome 將在 # 秒後重新啟動}}</translation> <translation id="3396977131400919238">安裝過程中發生作業系統錯誤,請再次下載 Google Chrome。</translation> +<translation id="3426646014273736870">記憶體節省模式可以提升 Chrome 運作速度</translation> <translation id="3428747202529429621">在已登入帳戶的狀態下,能確保你持續享有安全無虞的 Chrome 使用體驗,也有助於提升其他 Google 應用程式的安全機制</translation> <translation id="3434246496373299699">如果你使用 Google 帳戶登入,Chrome 可以檢查你的密碼</translation> <translation id="3451115285585441894">正在新增至 Chrome...</translation> @@ -228,6 +229,7 @@ Google Chrome 無法復原你的設定。</translation> <translation id="5524761631371622910">在試用期間,如果 Chrome 隨機讓你加入試用行列,你的瀏覽記錄會影響你所看到的廣告,以及系統推測的下列興趣喜好。為保護個人隱私,Chrome 每個月都會刪除你的興趣喜好。</translation> +<translation id="5530733413481476019">提升 Chrome 的運作速度</translation> <translation id="556024056938947818">Google Chrome 即將顯示密碼。</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> 可能不安全,因此遭到 Chrome 封鎖。</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 8f3403f..79861c3 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -7687,6 +7687,8 @@ "supervised_user/kids_chrome_management/kids_external_fetcher.h", "supervised_user/kids_chrome_management/kids_management_service.cc", "supervised_user/kids_chrome_management/kids_management_service.h", + "supervised_user/kids_chrome_management/kids_profile_manager.cc", + "supervised_user/kids_chrome_management/kids_profile_manager.h", "supervised_user/kids_management_url_checker_client.cc", "supervised_user/kids_management_url_checker_client.h", "supervised_user/parental_control_metrics.cc",
diff --git a/chrome/browser/android/browserservices/verification/BUILD.gn b/chrome/browser/android/browserservices/verification/BUILD.gn index d7cb0c08..3a061ccd 100644 --- a/chrome/browser/android/browserservices/verification/BUILD.gn +++ b/chrome/browser/android/browserservices/verification/BUILD.gn
@@ -57,6 +57,28 @@ ] } +robolectric_binary("verification_junit_tests") { + sources = [ "java/src/org/chromium/chrome/browser/browserservices/verification/ChromeOriginVerifierJunitTest.java" ] + deps = [ + ":java", + ":junit_test_support", + "//base:base_java_test_support", + "//base:base_junit_test_support", + "//chrome/browser/profiles/android:java", + "//components/digital_asset_links:java", + "//components/digital_asset_links/android:java", + "//components/digital_asset_links/android:junit_test_support", + "//components/embedder_support/android:util_java", + "//content/public/android:content_java", + "//content/public/test/android:content_java_test_support", + "//third_party/androidx:androidx_browser_browser_java", + "//third_party/androidx:androidx_test_core_java", + "//third_party/androidx:androidx_test_runner_java", + "//third_party/junit", + "//third_party/mockito:mockito_java", + ] +} + robolectric_library("junit_test_support") { sources = [ "java/src/org/chromium/chrome/browser/browserservices/verification/ChromeOriginVerifierUnitTestSupport.java" ] deps = [
diff --git a/chrome/browser/android/browserservices/verification/java/src/org/chromium/chrome/browser/browserservices/verification/ChromeOriginVerifierJunitTest.java b/chrome/browser/android/browserservices/verification/java/src/org/chromium/chrome/browser/browserservices/verification/ChromeOriginVerifierJunitTest.java new file mode 100644 index 0000000..840c1dc --- /dev/null +++ b/chrome/browser/android/browserservices/verification/java/src/org/chromium/chrome/browser/browserservices/verification/ChromeOriginVerifierJunitTest.java
@@ -0,0 +1,148 @@ +// 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. + +package org.chromium.chrome.browser.browserservices.verification; + +import static org.robolectric.Shadows.shadowOf; + +import android.os.Process; + +import androidx.browser.customtabs.CustomTabsService; +import androidx.test.core.app.ApplicationProvider; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.mockito.quality.Strictness; + +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.util.Batch; +import org.chromium.base.test.util.JniMocker; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.components.digital_asset_links.OriginVerifier; +import org.chromium.components.digital_asset_links.OriginVerifier.OriginVerificationListener; +import org.chromium.components.digital_asset_links.OriginVerifierJni; +import org.chromium.components.digital_asset_links.OriginVerifierUnitTestSupport; +import org.chromium.components.digital_asset_links.RelationshipCheckResult; +import org.chromium.components.embedder_support.util.Origin; +import org.chromium.content_public.browser.test.util.TestThreadUtils; + +import java.util.concurrent.CountDownLatch; + +/** Robolectric tests for ChromeOriginVerifier. */ +@RunWith(BaseRobolectricTestRunner.class) +@Batch(ChromeOriginVerifierJunitTest.TEST_BATCH_NAME) +public class ChromeOriginVerifierJunitTest { + public static final String TEST_BATCH_NAME = "chrome_origin_verifier"; + + private static final String PACKAGE_NAME = "org.chromium.com"; + private int mUid = Process.myUid(); + private Origin mHttpsOrigin = Origin.create("https://www.example.com"); + + private ChromeOriginVerifier mChromeVerifier; + + @Rule + public MockitoRule mMockitoRule = MockitoJUnit.rule().strictness(Strictness.WARN); + + @Mock + private Profile mProfile; + + @Rule + public JniMocker mJniMocker = new JniMocker(); + + @Mock + private OriginVerifier.Natives mMockOriginVerifierJni; + + @Mock + private ChromeOriginVerifier.Natives mMockChromeOriginVerifierJni; + + private CountDownLatch mVerificationResultLatch = new CountDownLatch(1); + private CountDownLatch mVerificationResultLatch2 = new CountDownLatch(1); + + private static class TestOriginVerificationListener implements OriginVerificationListener { + private CountDownLatch mLatch; + private boolean mVerified; + + TestOriginVerificationListener(CountDownLatch latch) { + mLatch = latch; + } + + @Override + public void onOriginVerified( + String packageName, Origin origin, boolean verified, Boolean online) { + mVerified = verified; + mLatch.countDown(); + } + + public boolean isVerified() { + return mVerified; + } + } + + @Before + public void setUp() throws Exception { + Profile.setLastUsedProfileForTesting(mProfile); + OriginVerifierUnitTestSupport.registerPackageWithSignature( + shadowOf(ApplicationProvider.getApplicationContext().getPackageManager()), + PACKAGE_NAME, mUid); + + mJniMocker.mock(ChromeOriginVerifierJni.TEST_HOOKS, mMockChromeOriginVerifierJni); + Mockito.doAnswer(args -> { return 100L; }) + .when(mMockChromeOriginVerifierJni) + .init(Mockito.any(), Mockito.any()); + + mJniMocker.mock(OriginVerifierJni.TEST_HOOKS, mMockOriginVerifierJni); + Mockito.doAnswer(args -> { + if (args.getArgument(3) == null) { + mChromeVerifier.onOriginVerificationResult( + args.getArgument(4), RelationshipCheckResult.FAILURE); + return false; + } + mChromeVerifier.onOriginVerificationResult( + args.getArgument(4), RelationshipCheckResult.SUCCESS); + return true; + }) + .when(mMockOriginVerifierJni) + .verifyOrigin(ArgumentMatchers.anyLong(), Mockito.any(), + ArgumentMatchers.anyString(), Mockito.any(), ArgumentMatchers.anyString(), + ArgumentMatchers.anyString(), Mockito.any()); + } + + @Test + public void testValidFingerprint() throws Exception { + mChromeVerifier = + new ChromeOriginVerifier(PACKAGE_NAME, CustomTabsService.RELATION_HANDLE_ALL_URLS, + null, null, ChromeVerificationResultStore.getInstance()); + TestOriginVerificationListener resultListener = + new TestOriginVerificationListener(mVerificationResultLatch); + TestThreadUtils.runOnUiThreadBlocking( + () -> mChromeVerifier.start(resultListener, mHttpsOrigin)); + mVerificationResultLatch.await(); + Assert.assertTrue(resultListener.isVerified()); + } + + @Test + public void testNoFingerprintDoesNotRaise() throws Exception { + // Remove package from PackageUtils so that {@link + // PackageUtils#getCertificateSHA256FingerprintForPackage} returns null. + shadowOf(ApplicationProvider.getApplicationContext().getPackageManager()) + .removePackage(PACKAGE_NAME); + mChromeVerifier = + new ChromeOriginVerifier(PACKAGE_NAME, CustomTabsService.RELATION_HANDLE_ALL_URLS, + null, null, ChromeVerificationResultStore.getInstance()); + TestOriginVerificationListener resultListener = + new TestOriginVerificationListener(mVerificationResultLatch); + TestThreadUtils.runOnUiThreadBlocking( + () -> mChromeVerifier.start(resultListener, mHttpsOrigin)); + mVerificationResultLatch.await(); + Assert.assertFalse(resultListener.isVerified()); + } +} \ No newline at end of file
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc index 791aad2..f2188184 100644 --- a/chrome/browser/apps/guest_view/web_view_browsertest.cc +++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -3365,7 +3365,7 @@ ~DownloadManagerWaiter() override { download_manager_->RemoveObserver(this); } void WaitForInitialized() { - if (initialized_ || download_manager_->IsManagerInitialized()) + if (initialized_) return; base::RunLoop run_loop; quit_closure_ = run_loop.QuitClosure(); @@ -3531,7 +3531,19 @@ content::EnsureCookiesFlushed(profile()); } -IN_PROC_BROWSER_TEST_P(WebViewTest, DownloadCookieIsolation_CrossSession) { +// TODO(crbug.com/994789): Flaky on MSan, Linux, and ChromeOS. +// TODO(crbug.com/1204299): Flaky on Windows. Consistently failing on Mac. +#if defined(MEMORY_SANITIZER) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) +#define MAYBE_DownloadCookieIsolation_CrossSession \ + DISABLED_DownloadCookieIsolation_CrossSession +#else +#define MAYBE_DownloadCookieIsolation_CrossSession \ + DownloadCookieIsolation_CrossSession +#endif // !BUILDFLAG(IS_CHROMEOS_ASH) + +IN_PROC_BROWSER_TEST_P(WebViewTest, + MAYBE_DownloadCookieIsolation_CrossSession) { embedded_test_server()->RegisterRequestHandler( base::BindRepeating(&HandleDownloadRequestWithCookie)); ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages. @@ -3590,7 +3602,7 @@ for (auto* download : downloads) { ASSERT_TRUE(download->CanResume()); ASSERT_TRUE(download->GetFullPath().empty()); - EXPECT_NE(download::DOWNLOAD_INTERRUPT_REASON_NONE, + EXPECT_EQ(download::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED, download->GetLastReason()); download->Resume(true); }
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 7cfd1c68..b7b72ac1 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -2317,13 +2317,13 @@ "policy/reporting/install_event_logger_base.h", "policy/reporting/metrics_reporting/audio/audio_events_observer.cc", "policy/reporting/metrics_reporting/audio/audio_events_observer.h", - "policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h", "policy/reporting/metrics_reporting/cros_healthd_metric_sampler.cc", "policy/reporting/metrics_reporting/cros_healthd_metric_sampler.h", "policy/reporting/metrics_reporting/cros_reporting_settings.cc", "policy/reporting/metrics_reporting/cros_reporting_settings.h", "policy/reporting/metrics_reporting/metric_reporting_manager.cc", "policy/reporting/metrics_reporting/metric_reporting_manager.h", + "policy/reporting/metrics_reporting/mojo_service_events_observer_base.h", "policy/reporting/metrics_reporting/network/https_latency_sampler.cc", "policy/reporting/metrics_reporting/network/https_latency_sampler.h", "policy/reporting/metrics_reporting/network/network_events_observer.cc",
diff --git a/chrome/browser/ash/login/reporting/lock_unlock_reporter.cc b/chrome/browser/ash/login/reporting/lock_unlock_reporter.cc index a0f78ee..8f72fd88 100644 --- a/chrome/browser/ash/login/reporting/lock_unlock_reporter.cc +++ b/chrome/browser/ash/login/reporting/lock_unlock_reporter.cc
@@ -43,7 +43,7 @@ converted_unlock_type = UnlockType::EASY_UNLOCK; break; case session_manager::UnlockType::UNKNOWN: - converted_unlock_type = UnlockType::UNKNOWN; + converted_unlock_type = UnlockType::UNLOCK_TYPE_UNKNOWN; break; } return converted_unlock_type;
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc index 053de804a..6315d25 100644 --- a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc +++ b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
@@ -121,6 +121,29 @@ // TODO(crbug.com/1366299): determine the value to use. constexpr size_t kEntriesLimit = 100; +void GotFilesSourcesOfCopy( + storage::FileSystemURL destination, + std::vector<DlpFilesController::DlpFileMetadata> metadata) { + if (metadata.size() == 0) { + return; + } + DCHECK(metadata.size() == 1); + if (!chromeos::DlpClient::Get() || !chromeos::DlpClient::Get()->IsAlive()) { + return; + } + + if (metadata[0].source_url.empty()) { + return; + } + + ::dlp::AddFileRequest request; + request.set_file_path(destination.path().value()); + request.set_source_url(metadata[0].source_url); + // TODO(https://crbug.com/1368497): we might want to use the callback for + // error handling + chromeos::DlpClient::Get()->AddFile(request, base::DoNothing()); +} + } // namespace DlpFilesController::DlpFileMetadata::DlpFileMetadata( @@ -255,6 +278,19 @@ .Then(std::move(return_transfers_callback))); } +void DlpFilesController::CopySourceInformation( + const storage::FileSystemURL& source, + const storage::FileSystemURL& destination) { + auto* profile = ProfileManager::GetPrimaryUserProfile(); + + // One path is external component. + if (MapFilePathtoPolicyComponent(profile, source.path()).has_value() || + MapFilePathtoPolicyComponent(profile, destination.path()).has_value()) { + return; + } + GetDlpMetadata({source}, base::BindOnce(&GotFilesSourcesOfCopy, destination)); +} + void DlpFilesController::GetDlpMetadata( const std::vector<storage::FileSystemURL>& files, GetDlpMetadataCallback result_callback) {
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller.h b/chrome/browser/ash/policy/dlp/dlp_files_controller.h index e26e27a..597bcd9 100644 --- a/chrome/browser/ash/policy/dlp/dlp_files_controller.h +++ b/chrome/browser/ash/policy/dlp/dlp_files_controller.h
@@ -160,7 +160,7 @@ DlpFilesController(const DlpFilesController& other) = delete; DlpFilesController& operator=(const DlpFilesController& other) = delete; - ~DlpFilesController(); + virtual ~DlpFilesController(); // Returns a list of files disallowed to be transferred in |result_callback|. void GetDisallowedTransfers( @@ -211,6 +211,11 @@ // Returns whether a dlp policy matches for the `file`. bool IsDlpPolicyMatched(const FileDaemonInfo& file); + // The same source url information stored for |source| is copied for + // |destination| + virtual void CopySourceInformation(const storage::FileSystemURL& source, + const storage::FileSystemURL& destination); + void SetWarnNotifierForTesting( std::unique_ptr<DlpWarnNotifier> warn_notifier);
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc index eb376ec4..c064e2f3 100644 --- a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc +++ b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ash/policy/dlp/dlp_files_controller.h" +#include <sys/stat.h> #include <sys/types.h> #include <memory> #include <string> @@ -15,6 +16,8 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/functional/bind.h" +#include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/strings/utf_string_conversions.h" #include "base/test/metrics/histogram_tester.h" @@ -111,7 +114,22 @@ base::MockCallback<DlpFilesController::IsFilesTransferRestrictedCallback>>; using MockCheckIfDownloadAllowedCallback = testing::StrictMock< base::MockCallback<DlpFilesController::CheckIfDownloadAllowedCallback>>; +using MockGetFilesSources = + testing::StrictMock<base::MockCallback<base::RepeatingCallback<void( + ::dlp::GetFilesSourcesRequest, + ::chromeos::DlpClient::GetFilesSourcesCallback)>>>; +using MockAddFile = + testing::StrictMock<base::MockCallback<base::RepeatingCallback< + void(::dlp::AddFileRequest, ::chromeos::DlpClient::AddFileCallback)>>>; +ino_t GetInode(storage::FileSystemURL url) { + struct stat st; + if (stat(url.path().value().c_str(), &st)) { + return -1; + } else { + return st.st_ino; + } +} } // namespace class DlpFilesControllerTest : public testing::Test { @@ -891,6 +909,83 @@ EXPECT_THAT(events[0], IsDlpPolicyEvent(event)); } +TEST_F(DlpFilesControllerTest, CopySourceOnCopy) { + AddFilesToDlpClient(); + auto* clientInterface = chromeos::DlpClient::Get()->GetTestInterface(); + + MockGetFilesSources file_source_cb; + MockAddFile file_add_cb; + + ino_t inode = GetInode(file_url1_); + + EXPECT_CALL(file_source_cb, Run(_, _)) + .WillOnce([&inode](::dlp::GetFilesSourcesRequest request, + ::chromeos::DlpClient::GetFilesSourcesCallback cb) { + EXPECT_EQ(1, request.files_inodes().size()); + EXPECT_EQ(inode, request.files_inodes()[0]); + ::dlp::GetFilesSourcesResponse response; + auto* meta = response.add_files_metadata(); + meta->set_source_url("source_url"); + meta->set_inode(inode); + std::move(cb).Run(response); + }); + + EXPECT_CALL(file_add_cb, Run(_, _)) + .WillOnce([](::dlp::AddFileRequest request, + ::chromeos::DlpClient::AddFileCallback cb) { + EXPECT_EQ("source_url", request.source_url()); + EXPECT_EQ("destination", request.file_path()); + ::dlp::AddFileResponse response; + std::move(cb).Run(std::move(response)); + }); + + clientInterface->SetGetFilesSourceMock(file_source_cb.Get()); + clientInterface->SetAddFileMock(file_add_cb.Get()); + files_controller_->CopySourceInformation(file_url1_, + CreateFileSystemURL("destination")); +} + +TEST_F(DlpFilesControllerTest, CopySourceOnCopyUnknown) { + AddFilesToDlpClient(); + auto* clientInterface = chromeos::DlpClient::Get()->GetTestInterface(); + + MockGetFilesSources file_source_cb; + MockAddFile file_add_cb; + + ino_t inode = GetInode(file_url1_); + + EXPECT_CALL(file_source_cb, Run(_, _)) + .WillOnce([&inode](::dlp::GetFilesSourcesRequest request, + ::chromeos::DlpClient::GetFilesSourcesCallback cb) { + EXPECT_EQ(1, request.files_inodes().size()); + EXPECT_EQ(inode, request.files_inodes()[0]); + ::dlp::GetFilesSourcesResponse response; + std::move(cb).Run(std::move(response)); + }); + + EXPECT_CALL(file_add_cb, Run(_, _)).Times(0); + + clientInterface->SetGetFilesSourceMock(file_source_cb.Get()); + clientInterface->SetAddFileMock(file_add_cb.Get()); + files_controller_->CopySourceInformation(file_url1_, + CreateFileSystemURL("destination")); +} + +TEST_F(DlpFilesControllerTest, CopySourceOnCopyNoClient) { + AddFilesToDlpClient(); + auto* clientInterface = chromeos::DlpClient::Get()->GetTestInterface(); + testing::StrictMock<base::MockCallback<base::RepeatingCallback<void( + ::dlp::GetFilesSourcesRequest, + ::chromeos::DlpClient::GetFilesSourcesCallback)>>> + file_source_cb; + EXPECT_CALL(file_source_cb, Run(_, _)).Times(0); + + clientInterface->SetGetFilesSourceMock(file_source_cb.Get()); + chromeos::DlpClient::Get()->GetTestInterface()->SetIsAlive(false); + files_controller_->CopySourceInformation(file_url1_, + CreateFileSystemURL("destination")); +} + class DlpFilesExternalDestinationTest : public DlpFilesControllerTest, public ::testing::WithParamInterface<
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.cc index a139044..031f2bc 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.cc
@@ -12,7 +12,7 @@ namespace reporting { AudioEventsObserver::AudioEventsObserver() - : CrosHealthdEventsObserverBase< + : MojoServiceEventsObserverBase< ash::cros_healthd::mojom::CrosHealthdAudioObserver>(this) {} AudioEventsObserver::~AudioEventsObserver() = default;
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.h b/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.h index babb35fd..99291d77 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.h +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/audio/audio_events_observer.h
@@ -5,13 +5,13 @@ #ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_AUDIO_AUDIO_EVENTS_OBSERVER_H_ #define CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_AUDIO_AUDIO_EVENTS_OBSERVER_H_ -#include "chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h" +#include "chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h" #include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom.h" namespace reporting { class AudioEventsObserver - : public CrosHealthdEventsObserverBase< + : public MojoServiceEventsObserverBase< ash::cros_healthd::mojom::CrosHealthdAudioObserver>, public ash::cros_healthd::mojom::CrosHealthdAudioObserver { public:
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h b/chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h similarity index 69% rename from chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h rename to chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h index 6a57258..3edeec4 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_CROS_HEALTHD_EVENTS_OBSERVER_BASE_H_ -#define CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_CROS_HEALTHD_EVENTS_OBSERVER_BASE_H_ +#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_MOJO_SERVICE_EVENTS_OBSERVER_BASE_H_ +#define CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_MOJO_SERVICE_EVENTS_OBSERVER_BASE_H_ #include <utility> @@ -17,18 +17,18 @@ namespace reporting { // A base class containing common functionalities needed for observing and -// reporting cros_healthd events. +// reporting mojo service events. template <typename Interface> -class CrosHealthdEventsObserverBase : public MetricEventObserver { +class MojoServiceEventsObserverBase : public MetricEventObserver { public: - explicit CrosHealthdEventsObserverBase(Interface* interface) + explicit MojoServiceEventsObserverBase(Interface* interface) : receiver_{interface} {} - CrosHealthdEventsObserverBase(const CrosHealthdEventsObserverBase&) = delete; - CrosHealthdEventsObserverBase& operator=( - const CrosHealthdEventsObserverBase&) = delete; + MojoServiceEventsObserverBase(const MojoServiceEventsObserverBase&) = delete; + MojoServiceEventsObserverBase& operator=( + const MojoServiceEventsObserverBase&) = delete; - ~CrosHealthdEventsObserverBase() override = default; + ~MojoServiceEventsObserverBase() override = default; void SetReportingEnabled(bool is_enabled) override { is_reporting_enabled_ = is_enabled; @@ -62,7 +62,7 @@ if (is_reporting_enabled_) { AddObserver(); receiver_.set_disconnect_handler( - base::BindOnce(&CrosHealthdEventsObserverBase::SetObservation, + base::BindOnce(&MojoServiceEventsObserverBase::SetObservation, weak_ptr_factory_.GetWeakPtr())); } } @@ -71,8 +71,8 @@ MetricRepeatingCallback on_event_observed_cb_; - base::WeakPtrFactory<CrosHealthdEventsObserverBase> weak_ptr_factory_{this}; + base::WeakPtrFactory<MojoServiceEventsObserverBase> weak_ptr_factory_{this}; }; } // namespace reporting -#endif // CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_CROS_HEALTHD_EVENTS_OBSERVER_BASE_H_ +#endif // CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_MOJO_SERVICE_EVENTS_OBSERVER_BASE_H_
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base_unittest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base_unittest.cc similarity index 86% rename from chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base_unittest.cc rename to chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base_unittest.cc index 477ead8..d5e733a 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base_unittest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h" +#include "chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h" #include <string> #include <utility> @@ -24,10 +24,10 @@ class FakeCrosHealthdAudioObserver : public CrosHealthdAudioObserver, - public CrosHealthdEventsObserverBase<CrosHealthdAudioObserver> { + public MojoServiceEventsObserverBase<CrosHealthdAudioObserver> { public: FakeCrosHealthdAudioObserver() - : CrosHealthdEventsObserverBase<CrosHealthdAudioObserver>(this) {} + : MojoServiceEventsObserverBase<CrosHealthdAudioObserver>(this) {} FakeCrosHealthdAudioObserver(const FakeCrosHealthdAudioObserver&) = delete; FakeCrosHealthdAudioObserver& operator=(const FakeCrosHealthdAudioObserver&) = @@ -52,16 +52,16 @@ } }; -class CrosHealthdEventsObserverBaseTest : public ::testing::Test { +class MojoServiceEventsObserverBaseTest : public ::testing::Test { public: - CrosHealthdEventsObserverBaseTest() = default; + MojoServiceEventsObserverBaseTest() = default; - CrosHealthdEventsObserverBaseTest(const CrosHealthdEventsObserverBaseTest&) = + MojoServiceEventsObserverBaseTest(const MojoServiceEventsObserverBaseTest&) = delete; - CrosHealthdEventsObserverBaseTest& operator=( - const CrosHealthdEventsObserverBaseTest&) = delete; + MojoServiceEventsObserverBaseTest& operator=( + const MojoServiceEventsObserverBaseTest&) = delete; - ~CrosHealthdEventsObserverBaseTest() override = default; + ~MojoServiceEventsObserverBaseTest() override = default; void SetUp() override { ::ash::cros_healthd::FakeCrosHealthd::Initialize(); } @@ -71,7 +71,7 @@ base::test::TaskEnvironment task_environment_; }; -TEST_F(CrosHealthdEventsObserverBaseTest, Default) { +TEST_F(MojoServiceEventsObserverBaseTest, Default) { FakeCrosHealthdAudioObserver audio_observer; MetricData result_metric_data; auto cb = base::BindLambdaForTesting([&](MetricData metric_data) {
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.cc index da5de87..f67484d2 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.cc
@@ -35,7 +35,7 @@ } // namespace NetworkEventsObserver::NetworkEventsObserver() - : CrosHealthdEventsObserverBase< + : MojoServiceEventsObserverBase< chromeos::network_health::mojom::NetworkEventsObserver>(this) {} NetworkEventsObserver::~NetworkEventsObserver() { @@ -110,7 +110,7 @@ void NetworkEventsObserver::SetReportingEnabled(bool is_enabled) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - CrosHealthdEventsObserverBase< + MojoServiceEventsObserverBase< ::chromeos::network_health::mojom::NetworkEventsObserver>:: SetReportingEnabled(is_enabled); if (!is_enabled) {
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.h b/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.h index bf4105a..da870d6 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.h +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/network/network_events_observer.h
@@ -9,7 +9,7 @@ #include "base/containers/flat_map.h" #include "base/memory/weak_ptr.h" -#include "chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h" +#include "chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h" #include "chromeos/ash/components/network/network_state.h" #include "chromeos/services/network_health/public/mojom/network_health.mojom.h" @@ -17,7 +17,7 @@ class NetworkEventsObserver : public ::chromeos::network_health::mojom::NetworkEventsObserver, - public CrosHealthdEventsObserverBase< + public MojoServiceEventsObserverBase< ::chromeos::network_health::mojom::NetworkEventsObserver> { public: NetworkEventsObserver(); @@ -35,7 +35,7 @@ ::chromeos::network_health::mojom::UInt32ValuePtr signal_strength) override; - // CrosHealthdEventsObserverBase: + // MojoServiceEventsObserverBase: void SetReportingEnabled(bool is_enabled) override; protected:
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.cc index b2929c830..1941b39 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.cc
@@ -11,7 +11,7 @@ using ::ash::cros_healthd::mojom::UsbEventInfoPtr; UsbEventsObserver::UsbEventsObserver() - : CrosHealthdEventsObserverBase< + : MojoServiceEventsObserverBase< ash::cros_healthd::mojom::CrosHealthdUsbObserver>(this) {} UsbEventsObserver::~UsbEventsObserver() = default;
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.h b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.h index 7652b57..1ce0edb8 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.h +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/usb/usb_events_observer.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_USB_USB_EVENTS_OBSERVER_H_ #define CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_USB_USB_EVENTS_OBSERVER_H_ -#include "chrome/browser/ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base.h" +#include "chrome/browser/ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base.h" #include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom.h" namespace reporting { @@ -13,7 +13,7 @@ using ::ash::cros_healthd::mojom::UsbEventInfoPtr; class UsbEventsObserver - : public CrosHealthdEventsObserverBase< + : public MojoServiceEventsObserverBase< ash::cros_healthd::mojom::CrosHealthdUsbObserver>, public ash::cros_healthd::mojom::CrosHealthdUsbObserver { public:
diff --git a/chrome/browser/autofill/form_structure_browsertest.cc b/chrome/browser/autofill/form_structure_browsertest.cc index 60d2a51..d9f3500 100644 --- a/chrome/browser/autofill/form_structure_browsertest.cc +++ b/chrome/browser/autofill/form_structure_browsertest.cc
@@ -216,8 +216,6 @@ features::kAutofillPageLanguageDetection, // TODO(crbug.com/1165780): Remove once shared labels are launched. features::kAutofillEnableSupportForParsingWithSharedLabels, - // TODO(crbug.com/1277480): Remove once launched. - features::kAutofillEnableNameSurenameParsing, // TODO(crbug.com/1190334): Remove once launched. features::kAutofillParseMerchantPromoCodeFields, // TODO(crbug.com/1335549): Remove once launched.
diff --git a/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc b/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc index 317f0f7..913e3895 100644 --- a/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc +++ b/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc
@@ -30,8 +30,11 @@ IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_DESCRIPTION; info.consent_text_id = IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_CONSENT_TEXT; + // TODO(crbug.com/1329179): Remove + // IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE string once + // rollout is complete. info.learn_more_title_id = - IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE; + IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_LEARN_MORE_ABOUT_AUTOMATIC_PASSWORD_CHANGE; info.button_cancel_text_id = IDS_AUTOFILL_ASSISTANT_PASSWORD_CHANGE_ONBOARDING_BUTTON_CANCEL_TEXT; info.button_accept_text_id =
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 63304a5..d00ede2 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -1724,10 +1724,10 @@ "../ash/policy/reporting/arc_app_install_policy_data_helper_unittest.cc", "../ash/policy/reporting/arc_app_install_policy_data_unittest.cc", "../ash/policy/reporting/metrics_reporting/audio/audio_events_observer_unittest.cc", - "../ash/policy/reporting/metrics_reporting/cros_healthd_events_observer_base_unittest.cc", "../ash/policy/reporting/metrics_reporting/cros_healthd_metric_sampler_unittest.cc", "../ash/policy/reporting/metrics_reporting/cros_reporting_settings_unittest.cc", "../ash/policy/reporting/metrics_reporting/metric_reporting_manager_unittest.cc", + "../ash/policy/reporting/metrics_reporting/mojo_service_events_observer_base_unittest.cc", "../ash/policy/reporting/metrics_reporting/network/https_latency_sampler_unittest.cc", "../ash/policy/reporting/metrics_reporting/network/network_events_observer_unittest.cc", "../ash/policy/reporting/metrics_reporting/network/network_info_sampler_unittest.cc",
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc index df61081..6819050 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc
@@ -1292,7 +1292,7 @@ FileManagerPrivateGetDialogCallerFunction::Run() { absl::optional<policy::DlpFilesController::DlpFileDestination> caller = SelectFileDialogExtensionUserData::GetDialogCallerForWebContents( - this->GetSenderWebContents()); + GetSenderWebContents()); base::Value::Dict info; if (caller.has_value()) { if (caller->url_or_path.has_value()) {
diff --git a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h index c9e7534..6892a4ad 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h +++ b/chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h
@@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors +// 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. @@ -21,8 +21,8 @@ namespace chromeos { // This browser test uses a test extension to test certain API calls on the -// login screen. The extension is whitelisted to run as a force-installed "login -// screen extension" and is also whitelisted for the following APIs: +// login screen. The extension is allowlisted to run as a force-installed "login +// screen extension" and is also allowlisted for the following APIs: // * loginScreenUi // * storage // * login
diff --git a/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/ui_handler_unittest.cc b/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/ui_handler_unittest.cc index f65ebf7..79bb303 100644 --- a/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/ui_handler_unittest.cc +++ b/chrome/browser/chromeos/extensions/login_screen/login_screen_ui/ui_handler_unittest.cc
@@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors +// 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. @@ -39,9 +39,9 @@ const bool kCanBeClosedByUser = false; const char kUrl[] = "test.html"; -const char kWhitelistedExtensionID1[] = +const char kAllowlistedExtensionID1[] = "oclffehlkdgibkainkilopaalpdobkan"; // Login screen APIs test extension -const char kWhitelistedExtensionID2[] = +const char kAllowlistedExtensionID2[] = "lpimkpkllnkdlcigdbgmabfplniahkgm"; // Imprivata (login screen) const char kPermissionName[] = "loginScreenUi"; @@ -134,8 +134,8 @@ session_manager::SessionState::LOGIN_PRIMARY); extension_ = extensions::ExtensionBuilder( - /*extension_name=*/"LoginScreenUi test extension") - .SetID(kWhitelistedExtensionID1) + /*name=*/"LoginScreenUi test extension") + .SetID(kAllowlistedExtensionID1) .SetLocation(ManifestLocation::kExternalPolicy) .AddPermission(kPermissionName) .AddFlags(extensions::Extension::FOR_LOGIN_SCREEN) @@ -299,8 +299,8 @@ TEST_F(LoginScreenExtensionUiHandlerUnittest, OnlyOneWindow) { scoped_refptr<const extensions::Extension> other_extension = - extensions::ExtensionBuilder(/*extension_name=*/"Imprivata") - .SetID(kWhitelistedExtensionID2) + extensions::ExtensionBuilder(/*name=*/"Imprivata") + .SetID(kAllowlistedExtensionID2) .SetLocation(ManifestLocation::kExternalPolicy) .AddPermission(kPermissionName) .AddFlags(extensions::Extension::FOR_LOGIN_SCREEN) @@ -378,8 +378,8 @@ // |other_profile_extension| is not enabled in the sign-in profile's // extensions registry. scoped_refptr<const extensions::Extension> other_profile_extension = - extensions::ExtensionBuilder("other profile" /*extension_name*/) - .SetID(kWhitelistedExtensionID2) // whitelisted + extensions::ExtensionBuilder(/*name=*/"other profile") + .SetID(kAllowlistedExtensionID2) // allowlisted .SetLocation(ManifestLocation::kExternalPolicy) .AddPermission(kPermissionName) .AddFlags(extensions::Extension::FOR_LOGIN_SCREEN) @@ -390,8 +390,8 @@ // |no_permission_extension| is enabled in the sign-in profile's extensions // registry, but doesn't have the needed "loginScreenUi" permission. scoped_refptr<const extensions::Extension> no_permission_extension = - extensions::ExtensionBuilder("no permission extension" /*extension_name*/) - .SetID(kWhitelistedExtensionID2) // whitelisted + extensions::ExtensionBuilder(/*name=*/"no permission extension") + .SetID(kAllowlistedExtensionID2) // allowlisted .SetLocation(ManifestLocation::kExternalPolicy) .AddFlags(extensions::Extension::FOR_LOGIN_SCREEN) .Build();
diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service_factory_unittest.cc b/chrome/browser/first_party_sets/first_party_sets_policy_service_factory_unittest.cc index b950d9a..aa12b9b33 100644 --- a/chrome/browser/first_party_sets/first_party_sets_policy_service_factory_unittest.cc +++ b/chrome/browser/first_party_sets/first_party_sets_policy_service_factory_unittest.cc
@@ -8,7 +8,9 @@ #include "base/test/scoped_feature_list.h" #include "chrome/browser/first_party_sets/first_party_sets_policy_service.h" #include "chrome/browser/first_party_sets/first_party_sets_pref_names.h" +#include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" +#include "chrome/test/base/testing_profile_manager.h" #include "components/prefs/pref_service.h" #include "components/privacy_sandbox/privacy_sandbox_prefs.h" #include "content/public/common/content_features.h" @@ -21,14 +23,20 @@ public: FirstPartySetsPolicyServiceFactoryTest() = default; + void SetUp() override { ASSERT_TRUE(profile_manager_.SetUp()); } + + void TearDown() override { profile_manager_.DeleteAllTestingProfiles(); } + + TestingProfileManager& profile_manager() { return profile_manager_; } + private: content::BrowserTaskEnvironment env_; + TestingProfileManager profile_manager_ = + TestingProfileManager(TestingBrowserProcess::GetGlobal()); }; TEST_F(FirstPartySetsPolicyServiceFactoryTest, DisabledForGuestProfiles) { - TestingProfile::Builder builder; - builder.SetGuestSession(); - std::unique_ptr<TestingProfile> profile = builder.Build(); + TestingProfile* profile = profile_manager().CreateGuestProfile(); EXPECT_EQ(FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile( *profile), @@ -38,18 +46,22 @@ TEST_F(FirstPartySetsPolicyServiceFactoryTest, DisabledByFeature) { base::test::ScopedFeatureList features; features.InitAndDisableFeature(features::kFirstPartySets); - TestingProfile profile; + TestingProfile* profile = + profile_manager().CreateTestingProfile("TestProfile"); - EXPECT_EQ( - FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile(profile), - nullptr); + EXPECT_EQ(FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile( + *profile), + nullptr); } TEST_F(FirstPartySetsPolicyServiceFactoryTest, ServiceCreatedRegardlessIfPolicyEnabled) { base::test::ScopedFeatureList features; features.InitAndEnableFeature(features::kFirstPartySets); - TestingProfile disabled_profile, enabled_profile; + TestingProfile* disabled_profile = + profile_manager().CreateTestingProfile("disabled"); + TestingProfile* enabled_profile = + profile_manager().CreateTestingProfile("enabled"); base::Value empty_lists = base::JSONReader::Read(R"( { @@ -59,32 +71,32 @@ )") .value(); base::Value expected_policy = empty_lists.Clone(); - disabled_profile.GetPrefs()->SetBoolean( + disabled_profile->GetPrefs()->SetBoolean( prefs::kPrivacySandboxFirstPartySetsEnabled, false); - disabled_profile.GetPrefs()->SetDict( + disabled_profile->GetPrefs()->SetDict( first_party_sets::kFirstPartySetsOverrides, std::move(empty_lists.Clone().GetDict())); - enabled_profile.GetPrefs()->SetBoolean( + enabled_profile->GetPrefs()->SetBoolean( prefs::kPrivacySandboxFirstPartySetsEnabled, true); - enabled_profile.GetPrefs()->SetDict( + enabled_profile->GetPrefs()->SetDict( first_party_sets::kFirstPartySetsOverrides, std::move(empty_lists.GetDict())); // Ensure `GetOverridesPolicyForProfile` isn't reliant on the enabled pref. EXPECT_NE(FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile( - disabled_profile), + *disabled_profile), nullptr); EXPECT_EQ(*FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile( - disabled_profile), + *disabled_profile), *FirstPartySetsPolicyServiceFactory::GetOverridesPolicyForProfile( - enabled_profile)); + *enabled_profile)); // Ensure that the Service creation isn't reliant on the enabled pref. EXPECT_NE(FirstPartySetsPolicyServiceFactory::GetForBrowserContext( - disabled_profile.GetOriginalProfile()), + disabled_profile->GetOriginalProfile()), nullptr); EXPECT_NE(FirstPartySetsPolicyServiceFactory::GetForBrowserContext( - enabled_profile.GetOriginalProfile()), + enabled_profile->GetOriginalProfile()), nullptr); } @@ -92,18 +104,19 @@ OffTheRecordProfile_SameServiceAsOriginalProfile) { base::test::ScopedFeatureList features; features.InitAndEnableFeature(features::kFirstPartySets); - TestingProfile profile; + TestingProfile* profile = + profile_manager().CreateTestingProfile("TestProfile"); FirstPartySetsPolicyService* service = FirstPartySetsPolicyServiceFactory::GetForBrowserContext( - profile.GetOriginalProfile()); + profile->GetOriginalProfile()); auto otr_profile_id = Profile::OTRProfileID::CreateUniqueForTesting(); ASSERT_NE(service, nullptr); EXPECT_EQ(service, FirstPartySetsPolicyServiceFactory::GetForBrowserContext( - profile.GetOffTheRecordProfile(otr_profile_id, - /*create_if_needed=*/true))); + profile->GetOffTheRecordProfile(otr_profile_id, + /*create_if_needed=*/true))); } } // namespace first_party_sets
diff --git a/chrome/browser/policy/messaging_layer/proto/synced/lock_unlock_event.proto b/chrome/browser/policy/messaging_layer/proto/synced/lock_unlock_event.proto index ea2ecf4..516a047 100644 --- a/chrome/browser/policy/messaging_layer/proto/synced/lock_unlock_event.proto +++ b/chrome/browser/policy/messaging_layer/proto/synced/lock_unlock_event.proto
@@ -13,7 +13,7 @@ package ash.reporting; enum UnlockType { - UNKNOWN = 0; + UNLOCK_TYPE_UNKNOWN = 0; PASSWORD = 1; PIN = 2; FINGERPRINT = 3;
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc index 7cd45d8..bd0f46ee 100644 --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc
@@ -87,6 +87,10 @@ const char kMediaRouterOTRProfileIDPrefix[] = "MediaRouter::Presentation"; const char kTestOTRProfileIDPrefix[] = "Test::OTR"; +#if BUILDFLAG(IS_CHROMEOS) +const char kCaptivePortalOTRProfileIDPrefix[] = "CaptivePortal::Signin"; +#endif + using perfetto::protos::pbzero::ChromeTrackEvent; } // namespace @@ -96,13 +100,22 @@ bool Profile::OTRProfileID::AllowsBrowserWindows() const { // Non-Primary OTR profiles are not supposed to create Browser windows. - // DevTools::BrowserContext and MediaRouter::Presentation are an - // exception to this ban. - return *this == PrimaryID() || - base::StartsWith(profile_id_, kDevToolsOTRProfileIDPrefix, - base::CompareCase::SENSITIVE) || - base::StartsWith(profile_id_, kMediaRouterOTRProfileIDPrefix, - base::CompareCase::SENSITIVE); + // DevTools::BrowserContext, MediaRouter::Presentation, and + // CaptivePortal::Signin are exceptions to this ban. + if (*this == PrimaryID() || + base::StartsWith(profile_id_, kDevToolsOTRProfileIDPrefix, + base::CompareCase::SENSITIVE) || + base::StartsWith(profile_id_, kMediaRouterOTRProfileIDPrefix, + base::CompareCase::SENSITIVE)) { + return true; + } +#if BUILDFLAG(IS_CHROMEOS) + if (base::StartsWith(profile_id_, kCaptivePortalOTRProfileIDPrefix, + base::CompareCase::SENSITIVE)) { + return true; + } +#endif + return false; } // static @@ -130,6 +143,13 @@ return CreateUnique(kMediaRouterOTRProfileIDPrefix); } +#if BUILDFLAG(IS_CHROMEOS) +// static +Profile::OTRProfileID Profile::OTRProfileID::CreateUniqueForCaptivePortal() { + return CreateUnique(kCaptivePortalOTRProfileIDPrefix); +} +#endif + // static Profile::OTRProfileID Profile::OTRProfileID::CreateUniqueForTesting() { return CreateUnique(kTestOTRProfileIDPrefix);
diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h index fc84e8f..eb5172b 100644 --- a/chrome/browser/profiles/profile.h +++ b/chrome/browser/profiles/profile.h
@@ -105,6 +105,11 @@ // Creates a unique OTR profile id to be used for media router. static OTRProfileID CreateUniqueForMediaRouter(); +#if BUILDFLAG(IS_CHROMEOS) + // Creates a unique OTR profile id to be used for captive portal signin on + // ChromeOS. + static OTRProfileID CreateUniqueForCaptivePortal(); +#endif // Creates a unique OTR profile id for tests. static OTRProfileID CreateUniqueForTesting();
diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chrome/browser/profiles/profile_keyed_service_browsertest.cc index f87b1534..b2d754f 100644 --- a/chrome/browser/profiles/profile_keyed_service_browsertest.cc +++ b/chrome/browser/profiles/profile_keyed_service_browsertest.cc
@@ -4,6 +4,7 @@ #include <sstream> +#include "base/ranges/algorithm.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/enterprise/connectors/connectors_service.h" @@ -46,19 +47,19 @@ std::vector<KeyedServiceBaseFactory*> keyedServiceFactories; keyedServiceFactories.reserve(nodes.size()); - std::transform(nodes.begin(), nodes.end(), - std::back_inserter(keyedServiceFactories), - [](DependencyNode* node) { - return static_cast<KeyedServiceBaseFactory*>(node); - }); + base::ranges::transform(nodes, std::back_inserter(keyedServiceFactories), + [](DependencyNode* node) { + return static_cast<KeyedServiceBaseFactory*>(node); + }); return keyedServiceFactories; } +// Returns a string representation of the elements of `set1` which are absent +// from `set2`. std::string GetDifferenceString(const std::set<std::string>& set1, const std::set<std::string>& set2) { std::vector<std::string> differences; - std::set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), - std::back_inserter(differences)); + base::ranges::set_difference(set1, set2, std::back_inserter(differences)); return differences.empty() ? "None" : base::JoinString(differences, ", "); } @@ -88,7 +89,7 @@ void TestKeyedProfileServicesActives( Profile* profile, const std::set<std::string>& expected_active_services_names) { - static const std::vector<KeyedServiceBaseFactory*> keyedServiceFactories = + const std::vector<KeyedServiceBaseFactory*> keyedServiceFactories = GetKeyedServiceBaseFactories(); std::set<std::string> active_services_names; @@ -105,6 +106,25 @@ } // namespace +TEST(ProfileKeyedService_DisplaySetDifferenceTest, UnexpectedActiveService) { + std::string message = + DisplaySetDifference(/*expected_active_services_names=*/{}, + /*active_services_names=*/{"unexpected"}); + EXPECT_THAT(message, + testing::ContainsRegex("Missing Expected Services:\\s+None")); + EXPECT_THAT(message, + testing::ContainsRegex("Added Extra Services:\\s+unexpected")); +} + +TEST(ProfileKeyedService_DisplaySetDifferenceTest, MissingExpectedService) { + std::string message = + DisplaySetDifference(/*expected_active_services_names=*/{"missing"}, + /*active_services_names=*/{}); + EXPECT_THAT(message, + testing::ContainsRegex("Missing Expected Services:\\s+missing")); + EXPECT_THAT(message, testing::ContainsRegex("Added Extra Services:\\s+None")); +} + // If you are adding a new keyed service and this test fails: // - determine if your service is intended to be created for the System profile // - if yes, add it to the list of allowed services
diff --git a/chrome/browser/profiles/profile_keyed_service_factory.h b/chrome/browser/profiles/profile_keyed_service_factory.h index a4667a7..ee82142 100644 --- a/chrome/browser/profiles/profile_keyed_service_factory.h +++ b/chrome/browser/profiles/profile_keyed_service_factory.h
@@ -73,6 +73,16 @@ content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const final; + // Since `ProfileKeyedServiceFactory` API uses `ProfileSelections`, there is + // still no way to prevent the creation of services for ChromeOS irregular + // profiles, with `ProfileSelections`. In order not to create services with + // these specific conditions, returning nullptr in `BuildServiceInstanceFor()` + // is accepted despite the recommendataion in + // `BrowserContextKeyedServiceFactory::BuildServiceInstanceFor()` until the + // API is adapted (crbug/1284664). + KeyedService* BuildServiceInstanceFor( + content::BrowserContext* context) const override = 0; + private: const ProfileSelections profile_selections_; };
diff --git a/chrome/browser/profiles/refcounted_profile_keyed_service_factory.h b/chrome/browser/profiles/refcounted_profile_keyed_service_factory.h index ba18450..7e26b973 100644 --- a/chrome/browser/profiles/refcounted_profile_keyed_service_factory.h +++ b/chrome/browser/profiles/refcounted_profile_keyed_service_factory.h
@@ -43,6 +43,16 @@ content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const final; + // Since `RefcountedProfileKeyedServiceFactory` API uses `ProfileSelections`, + // there is still no way to prevent the creation of services for ChromeOS + // irregular profiles, with `ProfileSelections`. In order not to create + // services with these specific conditions, returning nullptr in + // `BuildServiceInstanceFor()` is accepted despite the recommendataion in + // `RefcountedBrowserContextKeyedServiceFactory::BuildServiceInstanceFor()` + // until the API is adapted (crbug/1284664). + scoped_refptr<RefcountedKeyedService> BuildServiceInstanceFor( + content::BrowserContext* context) const override = 0; + private: const ProfileSelections profile_selections_; };
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb index 6fb40fc..05c1e1f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
@@ -8,7 +8,7 @@ <translation id="1014370462248694370">দুটা আঙুলিৰে সোঁফাললৈ ছোৱাইপ কৰক</translation> <translation id="1022586497894531524">আপুনি প্ৰথমবাৰৰ বাবে ChromeVoxৰ কথিত প্ৰতিক্ৰিয়া ব্যৱহাৰ কৰিছে নেকি? এই দ্ৰুত টিউট’ৰিয়েলে ChromeVox আৰম্ভ কৰা সম্পৰ্কে গুৰুত্বপূৰ্ণ কথাবোৰ ব্যাখ্যা কৰে৷</translation> <translation id="1025074108959230262">Chrome Goodies অক্ষম কৰা আছে</translation> -<translation id="1031961866430398710">তাৰ পিছত</translation> +<translation id="1031961866430398710">তাৰ পাছত</translation> <translation id="1038643060055067718">শাৰী:</translation> <translation id="1038795173450935438">পৃষ্ঠাটোত থকা বস্তুবোৰত আগুৱাবলৈ Search + Right Arrow টিপক বা উভতি যাবলৈ Search + Left Arrow টিপক। পৰৱর্তী শাৰীটোলৈ যাবলৈ Search + Down Arrowটো টিপক। পূর্বৱর্তী শাৰীটোলৈ যাবলৈ Search + Up Arrow ব্যৱহাৰ কৰক। আপুনি ক্লিক কৰিব খোজা বস্তুটো পালে Search + Space টিপক।</translation> <translation id="106222400312645156">rwhdr</translation> @@ -175,7 +175,7 @@ <translation id="2152179395627233441">অনুশীলনৰ ক্ষেত্ৰ বন্ধ কৰক</translation> <translation id="2163782704988363449">আসোঁৱাহ</translation> <translation id="2169714232367507776">বৰ্তমানৰ বস্তুটোত ক্লিক কৰক</translation> -<translation id="2179452035581866348">ChromeVoxএ ধ্বনি ব্যৱহাৰ কৰি দৰকাৰী আৰু অতিৰিক্ত তথ্য যোগান ধৰে। আপুনি এই ধ্বনিবিলাক ব্যৱহাৰ কৰি আৰু সেইবোৰে কি বুজাই তাক শিকি খৰকৈ নেভিগে’ট কৰিব পাৰে। আপুনি সেইবোৰ ব্যৱহাৰ কৰি অভ্যস্ত হোৱাৰ পিছত, আপুনি উক্তিবিলাকৰ বহল বিৱৰণসমূহ বন্ধ কৰি ৰাখিব পাৰে আৰু কেৱল পৃষ্ঠাৰ বিষয়ে দৰকাৰী তথ্য জানিবৰ বাবে সেই ধ্বনিসমূহ ব্যৱহাৰ কৰিব পাৰে। এইখন হৈছে ধ্বনি আৰু সেইবিলাকে কি বুজাই তাৰ এখন পূৰ্ণ তালিকা।</translation> +<translation id="2179452035581866348">ChromeVoxএ ধ্বনি ব্যৱহাৰ কৰি দৰকাৰী আৰু অতিৰিক্ত তথ্য যোগান ধৰে। আপুনি এই ধ্বনিবিলাক ব্যৱহাৰ কৰি আৰু সেইবোৰে কি বুজাই তাক শিকি খৰকৈ নেভিগে’ট কৰিব পাৰে। আপুনি সেইবোৰ ব্যৱহাৰ কৰি অভ্যস্ত হোৱাৰ পাছত, আপুনি উক্তিবিলাকৰ বহল বিৱৰণসমূহ বন্ধ কৰি ৰাখিব পাৰে আৰু কেৱল পৃষ্ঠাৰ বিষয়ে দৰকাৰী তথ্য জানিবৰ বাবে সেই ধ্বনিসমূহ ব্যৱহাৰ কৰিব পাৰে। এইখন হৈছে ধ্বনি আৰু সেইবিলাকে কি বুজাই তাৰ এখন পূৰ্ণ তালিকা।</translation> <translation id="2183409941723714159">টেব নেভিগেশ্বন</translation> <translation id="2188751878842439466">{COUNT,plural, =1{সোঁফালৰ চন্দ্ৰ বন্ধনী}one{#টা সোঁফালৰ চন্দ্ৰ বন্ধনী}other{#টা সোঁফালৰ চন্দ্ৰ বন্ধনী}}</translation> <translation id="2197863150503783129">ঘোঁৰাৰ জীনৰ দৰে মুগা</translation>
diff --git a/chrome/browser/resources/intro/BUILD.gn b/chrome/browser/resources/intro/BUILD.gn index c04c296c..ae1324f 100644 --- a/chrome/browser/resources/intro/BUILD.gn +++ b/chrome/browser/resources/intro/BUILD.gn
@@ -15,8 +15,7 @@ if (is_chromeos_lacros) { web_component_files = [ "lacros_app.ts" ] - } - if (enable_dice_support) { + } else if (enable_dice_support) { web_component_files = [ "dice_app.ts" ] }
diff --git a/chrome/browser/resources/intro/intro.html b/chrome/browser/resources/intro/intro.html index 902c6d8..ff5853c1 100644 --- a/chrome/browser/resources/intro/intro.html +++ b/chrome/browser/resources/intro/intro.html
@@ -20,7 +20,7 @@ </head> <body> <intro-app></intro-app> - <if expr="not chromeos_lacros"> + <if expr="enable_dice_support"> <script type="module" src="dice_app.js"></script> </if> <if expr="chromeos_lacros">
diff --git a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc index 8b496ba..a9b1467 100644 --- a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc +++ b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc
@@ -25,7 +25,7 @@ #else #include "chrome/browser/safe_browsing/tailored_security/notification_handler_desktop.h" #include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h" +#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h" #endif namespace safe_browsing {
diff --git a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h index 024b0bb..d1cbbea 100644 --- a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h +++ b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h
@@ -13,7 +13,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/safe_browsing/tailored_security/consented_message_android.h" #else -#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h" +#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h" #endif class Browser;
diff --git a/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.cc b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.cc new file mode 100644 index 0000000..5b8dd25c --- /dev/null +++ b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.cc
@@ -0,0 +1,121 @@ +// 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. + +#include "chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.h" + +#include <string> + +#include "base/strings/string_piece.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/supervised_user/kids_chrome_management/kidschromemanagement_messages.pb.h" +#include "chrome/browser/supervised_user/supervised_user_constants.h" +#include "chrome/common/pref_names.h" +#include "components/prefs/pref_service.h" + +namespace { +using ::base::StringPiece; +using ::kids_chrome_management::FamilyMember; + +bool IsChildAccount(const Profile& profile) { + return profile + .IsChild(); // TODO(b/252793687): Use AccountInfo.is_child_account == + // Tribool::kTrue once setting child status is possible in + // test and remove the direct Profile dependency. +} + +} // namespace + +KidsProfileManager::KidsProfileManager(PrefService& pref_service, + Profile& profile) + : primary_custodian_(this, + prefs::kSupervisedUserCustodianName, + prefs::kSupervisedUserCustodianEmail, + prefs::kSupervisedUserCustodianObfuscatedGaiaId, + prefs::kSupervisedUserCustodianProfileURL, + prefs::kSupervisedUserCustodianProfileImageURL), + secondary_custodian_( + this, + prefs::kSupervisedUserSecondCustodianName, + prefs::kSupervisedUserSecondCustodianEmail, + prefs::kSupervisedUserSecondCustodianObfuscatedGaiaId, + prefs::kSupervisedUserSecondCustodianProfileURL, + prefs::kSupervisedUserSecondCustodianProfileImageURL), + supervised_user_id_(this, prefs::kSupervisedUserId), + child_account_status_known_(this, prefs::kChildAccountStatusKnown), + pref_service_(pref_service), + profile_(profile) {} + +void KidsProfileManager::UpdateChildAccountStatus(bool is_child_account) { + if (IsChildAccount(profile_) != is_child_account) { + if (is_child_account) { + supervised_user_id_.Set(StringPiece(supervised_users::kChildAccountSUID)); + } else { + supervised_user_id_.Clear(); + primary_custodian_.Clear(); + secondary_custodian_.Clear(); + } + } + child_account_status_known_.Set(true); +} + +bool KidsProfileManager::IsChildAccountStatusKnown() const { + return child_account_status_known_.GetBool(); +} + +void KidsProfileManager::SetFirstCustodian(FamilyMember member) { + primary_custodian_.Update(member); +} + +void KidsProfileManager::SetSecondCustodian(FamilyMember member) { + secondary_custodian_.Update(member); +} + +KidsProfileManager::Custodian::Custodian(KidsProfileManager* manager, + StringPiece name_property_path, + StringPiece email_property_path, + StringPiece gaiaID_property_path, + StringPiece profileURL_property_path, + StringPiece imageURL_property_path) + : name_(manager, name_property_path), + email_(manager, email_property_path), + gaiaID_(manager, gaiaID_property_path), + profileURL_(manager, profileURL_property_path), + imageURL_(manager, imageURL_property_path) {} + +void KidsProfileManager::Custodian::Clear() { + name_.Clear(); + email_.Clear(); + gaiaID_.Clear(); + profileURL_.Clear(); + imageURL_.Clear(); +} + +void KidsProfileManager::Custodian::Update(const FamilyMember& family_member) { + name_.Set(family_member.profile().display_name()); + email_.Set(family_member.profile().email()); + gaiaID_.Set(family_member.profile().obfuscated_user_id()); + profileURL_.Set(family_member.profile().profile_image_url()); + imageURL_.Set(family_member.profile().default_profile_image_url()); +} + +KidsProfileManager::Property::Property(KidsProfileManager* manager, + StringPiece property_path) + : manager_(manager), property_path_(property_path) {} + +void KidsProfileManager::Property::Clear() { + manager_->pref_service_.ClearPref(std::string(property_path_)); +} + +void KidsProfileManager::Property::Set(StringPiece value) { + manager_->pref_service_.SetString(std::string(property_path_), + std::string(value)); +} + +void KidsProfileManager::Property::Set(bool value) { + manager_->pref_service_.SetBoolean(std::string(property_path_), value); +} + +bool KidsProfileManager::Property::GetBool() const { + return manager_->pref_service_.GetBoolean(std::string(property_path_)); +}
diff --git a/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.h b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.h new file mode 100644 index 0000000..033f46f3 --- /dev/null +++ b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.h
@@ -0,0 +1,73 @@ +// 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. + +#ifndef CHROME_BROWSER_SUPERVISED_USER_KIDS_CHROME_MANAGEMENT_KIDS_PROFILE_MANAGER_H_ +#define CHROME_BROWSER_SUPERVISED_USER_KIDS_CHROME_MANAGEMENT_KIDS_PROFILE_MANAGER_H_ + +#include "base/strings/string_piece.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/supervised_user/kids_chrome_management/kidschromemanagement_messages.pb.h" +#include "components/prefs/pref_service.h" + +// A helper utility to manage the Profile properties consistently. +class KidsProfileManager { + public: + // An invididual property which can be read and written. + class Property { + public: + Property() = delete; + Property(KidsProfileManager* manager, base::StringPiece property_path); + void Clear(); + void Set(base::StringPiece value); + void Set(bool value); + bool GetBool() const; + + private: + KidsProfileManager* manager_; + base::StringPiece property_path_; + }; + + // Typically, a set of properties related to a specific custodian (primary or + // secondary). + class Custodian { + public: + Custodian() = delete; + Custodian(KidsProfileManager* manager, + base::StringPiece name_property_path, + base::StringPiece email_property_path, + base::StringPiece gaiaID_property_path, + base::StringPiece profileURL_property_path, + base::StringPiece imageURL_property_path); + void Clear(); + void Update(const kids_chrome_management::FamilyMember& family_member); + + private: + Property name_; + Property email_; + Property gaiaID_; + Property profileURL_; + Property imageURL_; + }; + + KidsProfileManager() = delete; + KidsProfileManager(PrefService& pref_service, + + Profile& profile); + void UpdateChildAccountStatus(bool is_child_account); + bool IsChildAccountStatusKnown() const; + void SetFirstCustodian(kids_chrome_management::FamilyMember member); + void SetSecondCustodian(kids_chrome_management::FamilyMember member); + + private: + Custodian primary_custodian_; + Custodian secondary_custodian_; + Property supervised_user_id_; + Property child_account_status_known_; + + PrefService& pref_service_; + Profile& profile_; // TODO(b/252793687): Remove once child status can be + // controlled in code and tests via identity manager. +}; + +#endif // CHROME_BROWSER_SUPERVISED_USER_KIDS_CHROME_MANAGEMENT_KIDS_PROFILE_MANAGER_H_
diff --git a/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager_unittest.cc b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager_unittest.cc new file mode 100644 index 0000000..6f46c6e5 --- /dev/null +++ b/chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager_unittest.cc
@@ -0,0 +1,231 @@ +// 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. + +#include "chrome/browser/supervised_user/kids_chrome_management/kids_profile_manager.h" + +#include <string> + +#include "base/strings/string_piece.h" +#include "chrome/browser/supervised_user/kids_chrome_management/kidschromemanagement_messages.pb.h" +#include "chrome/browser/supervised_user/supervised_user_constants.h" +#include "chrome/common/pref_names.h" +#include "chrome/test/base/testing_profile.h" +#include "components/sync_preferences/testing_pref_service_syncable.h" +#include "content/public/test/browser_task_environment.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +using ::kids_chrome_management::FamilyMember; + +class KidsProfileManagerTest : public ::testing::Test { + protected: + PrefService* pref_service() { return profile_.GetTestingPrefService(); } + + FamilyMember CreateFamilyMember(base::StringPiece display_name, + base::StringPiece email, + base::StringPiece user_id, + base::StringPiece profile_image_url, + base::StringPiece default_profile_image_url) { + FamilyMember member; + *member.mutable_profile()->mutable_display_name() = + std::string(display_name); + *member.mutable_profile()->mutable_email() = std::string(email); + *member.mutable_profile()->mutable_obfuscated_user_id() = + std::string(user_id); + *member.mutable_profile()->mutable_profile_image_url() = + std::string(profile_image_url); + *member.mutable_profile()->mutable_default_profile_image_url() = + std::string(default_profile_image_url); + return member; + } + + content::BrowserTaskEnvironment + task_environment_; // The test must run on Chrome_UIThread. + TestingProfile profile_; +}; + +// For a supervised profile, checks if setting it to child account will just +// confirm the status. +TEST_F(KidsProfileManagerTest, SetChildAccountStatusOnSupervisedProfile) { + KidsProfileManager under_test(*pref_service(), profile_); + + profile_.SetIsSupervisedProfile(); + ASSERT_TRUE(profile_.IsChild()); + ASSERT_FALSE(under_test.IsChildAccountStatusKnown()); + + under_test.UpdateChildAccountStatus(true); + + EXPECT_TRUE(under_test.IsChildAccountStatusKnown()); +} + +// For an unsupervised profile, checks if setting it to child account sets the +// right status and whether other associated supervised values are set. +TEST_F(KidsProfileManagerTest, SetChildAccountStatusOnUnsupervisedProfile) { + KidsProfileManager under_test(*pref_service(), profile_); + + ASSERT_FALSE(profile_.IsChild()); + ASSERT_FALSE(under_test.IsChildAccountStatusKnown()); + + under_test.UpdateChildAccountStatus(true); + + EXPECT_TRUE(under_test.IsChildAccountStatusKnown()); + EXPECT_EQ(pref_service()->GetString(prefs::kSupervisedUserId), + supervised_users::kChildAccountSUID); +} + +// For a supervised profile, checks if unsetting it as child account clears +// relevant fields. +TEST_F(KidsProfileManagerTest, UnsetChildAccountStatusOnSupervisedProfile) { + KidsProfileManager under_test(*pref_service(), profile_); + + profile_.SetIsSupervisedProfile(); + ASSERT_TRUE(profile_.IsChild()); + ASSERT_FALSE(under_test.IsChildAccountStatusKnown()); + + under_test.UpdateChildAccountStatus(false); + + EXPECT_TRUE(under_test.IsChildAccountStatusKnown()); + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserId), false); + + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianName), + false); + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianEmail), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserCustodianObfuscatedGaiaId), + false); + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianProfileURL), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserCustodianProfileImageURL), + false); + + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserSecondCustodianName), + false); + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserSecondCustodianEmail), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianObfuscatedGaiaId), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianProfileURL), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianProfileImageURL), + false); +} + +// For an usupervised profile, checks if unsetting it as child account just +// confirms its status. +TEST_F(KidsProfileManagerTest, UnsetChildAccountStatusOnUnsupervisedProfile) { + KidsProfileManager under_test(*pref_service(), profile_); + + ASSERT_FALSE(profile_.IsChild()); + ASSERT_FALSE(under_test.IsChildAccountStatusKnown()); + + under_test.UpdateChildAccountStatus(false); + + EXPECT_TRUE(under_test.IsChildAccountStatusKnown()); + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserId), false); +} + +// Checks if primary custodian's fields are properly set and unset with +// UpdateChildAccountStatus operation. +TEST_F(KidsProfileManagerTest, SetPrimaryCustodian) { + KidsProfileManager under_test(*pref_service(), profile_); + + profile_ + .SetIsSupervisedProfile(); // Then it will be possible to clear values. + + FamilyMember member = + CreateFamilyMember("display_name", "email", "user_id", + "profile_image_url", "default_profile_image_url"); + + under_test.SetFirstCustodian(member); + + EXPECT_EQ(pref_service()->GetString(prefs::kSupervisedUserCustodianName), + "display_name"); + EXPECT_EQ(pref_service()->GetString(prefs::kSupervisedUserCustodianEmail), + "email"); + EXPECT_EQ(pref_service()->GetString( + prefs::kSupervisedUserCustodianObfuscatedGaiaId), + "user_id"); + EXPECT_EQ( + pref_service()->GetString(prefs::kSupervisedUserCustodianProfileURL), + "profile_image_url"); + EXPECT_EQ( + pref_service()->GetString(prefs::kSupervisedUserCustodianProfileImageURL), + "default_profile_image_url"); + + under_test.UpdateChildAccountStatus(false); + + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianName), + false); + EXPECT_EQ(pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianEmail), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserCustodianObfuscatedGaiaId), + false); + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserCustodianProfileURL), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserCustodianProfileImageURL), + false); +} + +// Checks if secondary custodian's fields are properly set and unset with +// UpdateChildAccountStatus operation. +TEST_F(KidsProfileManagerTest, SetSecondaryCustodian) { + KidsProfileManager under_test(*pref_service(), profile_); + + profile_ + .SetIsSupervisedProfile(); // Then it will be possible to clear values. + + FamilyMember member = + CreateFamilyMember("display_name", "email", "user_id", + "profile_image_url", "default_profile_image_url"); + + under_test.SetSecondCustodian(member); + + EXPECT_EQ( + pref_service()->GetString(prefs::kSupervisedUserSecondCustodianName), + "display_name"); + EXPECT_EQ( + pref_service()->GetString(prefs::kSupervisedUserSecondCustodianEmail), + "email"); + EXPECT_EQ(pref_service()->GetString( + prefs::kSupervisedUserSecondCustodianObfuscatedGaiaId), + "user_id"); + EXPECT_EQ(pref_service()->GetString( + prefs::kSupervisedUserSecondCustodianProfileURL), + "profile_image_url"); + EXPECT_EQ(pref_service()->GetString( + prefs::kSupervisedUserSecondCustodianProfileImageURL), + "default_profile_image_url"); + + under_test.UpdateChildAccountStatus(false); + + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserSecondCustodianName), + false); + EXPECT_EQ( + pref_service()->HasPrefPath(prefs::kSupervisedUserSecondCustodianEmail), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianObfuscatedGaiaId), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianProfileURL), + false); + EXPECT_EQ(pref_service()->HasPrefPath( + prefs::kSupervisedUserSecondCustodianProfileImageURL), + false); +} + +} // namespace
diff --git a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial.js b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial.js index 6deb6d1..64bcdf9 100644 --- a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial.js +++ b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial.js
@@ -4,9 +4,6 @@ let showDetails = false; -let localWebApprovalsEnabled = false; -let interstitialRefreshEnabled = false; - function $(id) { return document.body.querySelector(`#${id}`); } @@ -33,9 +30,6 @@ } return; } - // TODO(bauerb): domAutomationController is not defined when this page is - // shown in chrome://interstitials. Use a MessageHandler or something to - // support interactions. window.domAutomationController.send(cmd); } @@ -48,13 +42,7 @@ const avatarURL1x = loadTimeData.getString('avatarURL1x'); const avatarURL2x = loadTimeData.getString('avatarURL2x'); const custodianName = loadTimeData.getString('custodianName'); - localWebApprovalsEnabled = - loadTimeData.getBoolean('isLocalWebApprovalsEnabled'); - const localWebApprovalsPreferred = - loadTimeData.getBoolean('isLocalWebApprovalsPreferred'); - interstitialRefreshEnabled = - loadTimeData.getBoolean('isWebFilterInterstitialRefreshEnabled'); - if (localWebApprovalsEnabled && !interstitialRefreshEnabled) { + if (loadTimeData.getBoolean('isLocalWebApprovalsEnabled')) { console.error( 'Local web approvals should not be enabled without web filter' + 'interstitial refresh being enabled.'); @@ -95,30 +83,15 @@ if (allowAccessRequests) { $('remote-approvals-button').hidden = false; - if (interstitialRefreshEnabled && localWebApprovalsEnabled) { - $('local-approvals-button').hidden = false; - if (localWebApprovalsPreferred) { - $('local-approvals-button').classList.add('primary-button'); - $('remote-approvals-button').classList.add('secondary-button'); - } - else { - $('remote-approvals-button').classList.add('primary-button'); - $('local-approvals-button').classList.add('secondary-button'); - } - } $('remote-approvals-button').onclick = function(event) { $('remote-approvals-button').disabled = true; sendCommand('requestUrlAccessRemote'); }; - $('local-approvals-button').onclick = function(event) { - sendCommand('requestUrlAccessLocal'); - }; } else { $('remote-approvals-button').hidden = true; } - if (loadTimeData.getBoolean('showFeedbackLink') && - !interstitialRefreshEnabled) { + if (loadTimeData.getBoolean('showFeedbackLink')) { $('show-details-link').hidden = false; $('show-details-link').onclick = function(event) { showDetails = true; @@ -165,12 +138,6 @@ $('block-page-header').hidden = true; $('block-page-message').hidden = true; $('hide-details-link').hidden = true; - if (interstitialRefreshEnabled) { - $('block-reason').style.display = "none"; - if (localWebApprovalsEnabled) { - $('local-approvals-button').hidden = false; - } - } showDetails = false; updateDetails(); if (isSuccessful) { @@ -178,27 +145,13 @@ $('request-sent-message').hidden = false; $('remote-approvals-button').hidden = true; $('show-details-link').hidden = true; - if (localWebApprovalsEnabled) { - $('local-approvals-button').hidden = true; - $('local-approvals-remote-request-sent-button').hidden = false; - $('local-approvals-remote-request-sent-button').onclick = function( - event) { - sendCommand('requestUrlAccessLocal'); - }; - $('local-approvals-remote-request-sent-button').focus(); - } else { - $('back-button').hidden = !isMainFrame; - $('back-button').onclick = function(event) { - sendCommand('back'); - }; - $('back-button').focus(); - } + $('back-button').hidden = !isMainFrame; + $('back-button').onclick = function(event) { + sendCommand('back'); + }; + $('back-button').focus(); $('error-page-illustration').hidden = true; $('waiting-for-approval-illustration').hidden = false; - if (interstitialRefreshEnabled) { - $('request-sent-description').hidden = false; - $('local-approvals-button').classList.add('secondary-button'); - } } else { $('request-failed-message').hidden = false; $('remote-approvals-button').disabled = false;
diff --git a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.css b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.css index 75cdcdd1..23389c39 100644 --- a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.css +++ b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.css
@@ -104,17 +104,6 @@ flex-direction: column; } -.icon { - display: none; - overflow: visible; -} - -#family-link-kite { - content: -webkit-image-set(url(../../resources/supervised_user_icon.png) 1x); - height: 72px; - width: 72px; -} - .illustration { display: inline; width: 120px;
diff --git a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.html b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.html index c52e56b0..505e065a 100644 --- a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.html +++ b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.html
@@ -8,14 +8,11 @@ <link href="https://fonts.googleapis.com/css?family=Google+Sans" rel="stylesheet"> <link rel="stylesheet" href="../../../../../components/security_interstitials/core/common/resources/interstitial_core.css"> <link rel="stylesheet" href="supervised_user_block_interstitial_v2.css"> -<script src="supervised_user_block_interstitial.js"></script> +<script src="supervised_user_block_interstitial_v2.js"></script> </head> <body class="supervised-user-block"> <div class="frame-blocked" id="frame-blocked" tabindex="-1"> <div class="message-container"> - <div class="icon" id="icon" aria-hidden="true"> - <img id="family-link-kite"> - </div> <picture id="error-page-illustration"> <source srcset="error_page_illustration_dark_theme.svg"
diff --git a/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.js b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.js new file mode 100644 index 0000000..d7d46f36 --- /dev/null +++ b/chrome/browser/supervised_user/supervised_user_error_page/resources/supervised_user_block_interstitial_v2.js
@@ -0,0 +1,179 @@ +// 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. + +let showDetails = false; + +let localWebApprovalsEnabled = false; + +/** Return the element with the given id. */ +function $(id) { + return document.body.querySelector(`#${id}`); +} + +/** Update visibility of the 'details' element. */ +function updateDetails() { + $('details').hidden = !showDetails; +} + +/** + * Send one of the supported commands to the supervised user error page + * controller. + * @param {string} cmd See implementation below + */ +function sendCommand(cmd) { + if (window.supervisedUserErrorPageController) { + switch (cmd) { + case 'back': + supervisedUserErrorPageController.goBack(); + break; + case 'requestUrlAccessRemote': + supervisedUserErrorPageController.requestUrlAccessRemote(); + break; + case 'requestUrlAccessLocal': + supervisedUserErrorPageController.requestUrlAccessLocal(); + break; + case 'feedback': + supervisedUserErrorPageController.feedback(); + break; + } + return; + } +} + +function makeImageSet(url1x, url2x) { + return '-webkit-image-set(url(' + url1x + ') 1x, url(' + url2x + ') 2x)'; +} + +/** Perform all initialization that can be done at DOMContentLoaded time. */ +function initialize() { + const allowAccessRequests = loadTimeData.getBoolean('allowAccessRequests'); + const avatarURL1x = loadTimeData.getString('avatarURL1x'); + const avatarURL2x = loadTimeData.getString('avatarURL2x'); + const custodianName = loadTimeData.getString('custodianName'); + localWebApprovalsEnabled = + loadTimeData.getBoolean('isLocalWebApprovalsEnabled'); + const localWebApprovalsPreferred = + loadTimeData.getBoolean('isLocalWebApprovalsPreferred'); + + if (custodianName && allowAccessRequests) { + $('custodians-information').hidden = false; + if (avatarURL1x) { + $('custodian-avatar-img').style.content = + makeImageSet(avatarURL1x, avatarURL2x); + } + $('custodian-name').textContent = custodianName; + $('custodian-email').textContent = loadTimeData.getString('custodianEmail'); + const secondAvatarURL1x = loadTimeData.getString('secondAvatarURL1x'); + const secondAvatarURL2x = loadTimeData.getString('secondAvatarURL2x'); + const secondCustodianName = loadTimeData.getString('secondCustodianName'); + if (secondCustodianName) { + $('second-custodian-information').hidden = false; + $('second-custodian-avatar-img').hidden = false; + if (secondAvatarURL1x) { + $('second-custodian-avatar-img').style.content = + makeImageSet(secondAvatarURL1x, secondAvatarURL2x); + } + $('second-custodian-name').textContent = secondCustodianName; + $('second-custodian-email').textContent = + loadTimeData.getString('secondCustodianEmail'); + } + } + + const alreadyRequestedAccessRemote = + loadTimeData.getBoolean('alreadySentRemoteRequest'); + if (alreadyRequestedAccessRemote) { + const isMainFrame = loadTimeData.getBoolean('isMainFrame'); + requestCreated(true, isMainFrame); + return; + } + + if (allowAccessRequests) { + $('remote-approvals-button').hidden = false; + if (localWebApprovalsEnabled) { + $('local-approvals-button').hidden = false; + if (localWebApprovalsPreferred) { + $('local-approvals-button').classList.add('primary-button'); + $('remote-approvals-button').classList.add('secondary-button'); + } else { + $('remote-approvals-button').classList.add('primary-button'); + $('local-approvals-button').classList.add('secondary-button'); + } + } + $('remote-approvals-button').onclick = function(event) { + $('remote-approvals-button').disabled = true; + sendCommand('requestUrlAccessRemote'); + }; + $('local-approvals-button').onclick = function(event) { + sendCommand('requestUrlAccessLocal'); + }; + } else { + $('remote-approvals-button').hidden = true; + } + + $('feedback').hidden = true; + $('details-button-container').hidden = true; + + // Focus the top-level div for screen readers. + $('frame-blocked').focus(); +} + +/** + * Updates the interstitial to show that the request failed or was sent. + * @param {boolean} isSuccessful Whether the request was successful or not. + * @param {boolean} isMainFrame Whether the interstitial is being shown in main + * frame. + */ +function setRequestStatus(isSuccessful, isMainFrame) { + console.log('setRequestStatus(' + isSuccessful + ')'); + requestCreated(isSuccessful, isMainFrame); +} + +/** + * Updates the interstitial to show that the request failed or was sent. + * @param {boolean} isSuccessful Whether the request was successful or not. + * @param {boolean} isMainFrame Whether the interstitial is being shown in main + * frame. + */ +function requestCreated(isSuccessful, isMainFrame) { + $('block-page-header').hidden = true; + $('block-page-message').hidden = true; + $('hide-details-link').hidden = true; + $('block-reason').style.display = 'none'; + if (localWebApprovalsEnabled) { + $('local-approvals-button').hidden = false; + } + showDetails = false; + updateDetails(); + if (isSuccessful) { + $('request-failed-message').hidden = true; + $('request-sent-message').hidden = false; + $('remote-approvals-button').hidden = true; + $('show-details-link').hidden = true; + if (localWebApprovalsEnabled) { + $('local-approvals-button').hidden = true; + $('local-approvals-remote-request-sent-button').hidden = false; + $('local-approvals-remote-request-sent-button').onclick = function( + event) { + sendCommand('requestUrlAccessLocal'); + }; + $('local-approvals-remote-request-sent-button').focus(); + } else { + $('back-button').hidden = !isMainFrame; + $('back-button').onclick = function(event) { + sendCommand('back'); + }; + $('back-button').focus(); + } + $('error-page-illustration').hidden = true; + $('waiting-for-approval-illustration').hidden = false; + $('request-sent-description').hidden = false; + $('local-approvals-button').classList.add('secondary-button'); + } else { + $('request-failed-message').hidden = false; + $('remote-approvals-button').disabled = false; + $('show-details-link').hidden = false; + } +} + +document.addEventListener('DOMContentLoaded', initialize);
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 007aa401..c922c1a6 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -3411,6 +3411,8 @@ "views/frame/desktop_browser_frame_lacros.h", "views/frame/immersive_mode_controller_chromeos.cc", "views/frame/immersive_mode_controller_chromeos.h", + "views/profiles/first_run_flow_controller_lacros.cc", + "views/profiles/first_run_flow_controller_lacros.h", "views/profiles/lacros_first_run_signed_in_flow_controller.cc", "views/profiles/lacros_first_run_signed_in_flow_controller.h", "webui/signin/profile_picker_lacros_sign_in_provider.cc", @@ -4919,8 +4921,8 @@ "views/safe_browsing/password_reuse_modal_warning_dialog.h", "views/safe_browsing/prompt_for_scanning_modal_dialog.cc", "views/safe_browsing/prompt_for_scanning_modal_dialog.h", - "views/safe_browsing/tailored_security_desktop_dialog.cc", - "views/safe_browsing/tailored_security_desktop_dialog.h", + "views/safe_browsing/tailored_security_desktop_dialog_manager.cc", + "views/safe_browsing/tailored_security_desktop_dialog_manager.h", "views/safe_browsing/tailored_security_unconsented_modal.cc", "views/safe_browsing/tailored_security_unconsented_modal.h", "views/send_tab_to_self/manage_account_devices_link_view.cc",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb index f1d2671..3cac8068 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -476,7 +476,7 @@ <translation id="3560491354538957576">ছাইটে আগ্ৰহসমূহ সংজ্ঞাবদ্ধ কৰিব পাৰে</translation> <translation id="3563767357928833671">ক্লিপব'ৰ্ডৰ সমল দেখুওৱা হৈছে</translation> <translation id="3566639033325271639">ছেটিং আপডে’ট কৰক</translation> -<translation id="3566923219790363270">Chromeএ এতিয়াও VR সাজু কৰি আছে। Chrome পিছত ৰিষ্টার্ট কৰক।</translation> +<translation id="3566923219790363270">Chromeএ এতিয়াও VR সাজু কৰি আছে। Chrome পাছত ৰিষ্টার্ট কৰক।</translation> <translation id="3568688522516854065">আপোনাৰ অন্য ডিভাইচসমূহৰ পৰা নিজৰ টেবসমূহ পাবলৈ ছাইন ইন আৰু ছিংক কৰা সুবিধাটো অন কৰক</translation> <translation id="357465026686164600">সুৰক্ষা সম্পৰ্কীয় চাবি হিচাপে ফ’ন</translation> <translation id="3577473026931028326">কিবা ভুল হ’ল। পুনৰ চেষ্টা কৰক।</translation> @@ -1144,7 +1144,7 @@ <translation id="7149893636342594995">যোৱা ২৪ ঘণ্টাত</translation> <translation id="7155317020660659215">কোনো কিউআৰ ক’ড স্কেন কৰিবলৈ আপোনাৰ ছেটিংসমূহ সলনি কৰক যাতে Chromeএ আপোনাৰ কেমেৰা ব্যৱহাৰ কৰিব পাৰে</translation> <translation id="7173114856073700355">ছেটিংসমূহ খোলক</translation> -<translation id="7177466738963138057">আপুনি এইটো পিছত ছেটিংসমূহ-লৈ গৈ সলনি কৰিব পাৰে</translation> +<translation id="7177466738963138057">আপুনি এইটো পাছত ছেটিংসমূহ-লৈ গৈ সলনি কৰিব পাৰে</translation> <translation id="7177873915659574692">কিউআৰ ক’ড সৃষ্টি কৰিব নোৱাৰি। URLটোত <ph name="CHARACTER_LIMIT" /> টাতকৈ অধিক বৰ্ণ আছে।</translation> <translation id="7177959540995930968">আপুনি Chromeৰ ছেটিঙত এই সুবিধাসমূহৰ বিষয়ে অধিক জানিব পাৰে।</translation> <translation id="718226107353899806">আপুনি <ph name="MAX_NUM_REACTIONS" /> টা পৰ্যন্ত প্ৰতিক্ৰিয়া যোগ দিব পাৰে</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index 1d7e9909..96e2b200 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -339,7 +339,7 @@ <translation id="2861923151411510142">部分 Chrome 功能將無法再使用</translation> <translation id="2870560284913253234">網站</translation> <translation id="2871733351037274014">預先載入網頁</translation> -<translation id="2876136027428473467"><ph name="CHILD_NAME" />想請你核准這個網站:</translation> +<translation id="2876136027428473467"><ph name="CHILD_NAME" />希望您核准此網站:</translation> <translation id="2886836735871983413">在您瀏覽網絡同時,系統會於此處顯示網站清單</translation> <translation id="2888126860611144412">關於 Chrome</translation> <translation id="2891154217021530873">停止載入網頁</translation> @@ -355,7 +355,7 @@ <translation id="2932150158123903946">Google <ph name="APP_NAME" /> 儲存空間</translation> <translation id="2932222164150889403">這不會影響您的鍵盤設定</translation> <translation id="2936980480904111527">Chrome 通知能提供更簡易的操作體驗</translation> -<translation id="2940075786175545812">審核網站瀏覽要求的選項</translation> +<translation id="2940075786175545812">核准或不核准網站的選項</translation> <translation id="2942036813789421260">預覽分頁閂咗</translation> <translation id="2946420957526726953">正在更新 Chrome 以連接其他裝置</translation> <translation id="2951071800649516099">將網頁新增至閱讀清單,以便稍後瀏覽</translation> @@ -732,7 +732,7 @@ <translation id="4985248278475639481">關於廣告個人化</translation> <translation id="4987271110129728827">找不到該頁面。請檢查拼字,或嘗試執行網絡搜尋。</translation> <translation id="4988526792673242964">網頁</translation> -<translation id="4991110219272367918">審核網站瀏覽要求的選項功能表已關閉</translation> +<translation id="4991110219272367918">核准或者唔核准網站嘅選項閂咗</translation> <translation id="499724277181351974">導覽:<ph name="WEBSITE_TITLE" />:<ph name="WEBSITE_URL" /></translation> <translation id="5001388021414335527">按一下這裡追蹤此網站</translation> <translation id="500351648694011114">讓瀏覽變得更輕鬆</translation> @@ -1105,7 +1105,7 @@ <translation id="6896758677409633944">複製</translation> <translation id="6900532703269623216">強化保護功能</translation> <translation id="6903907808598579934">開啟同步處理功能</translation> -<translation id="6908998565271542516">審核網站瀏覽要求的選項功能表已完整開啟</translation> +<translation id="6908998565271542516">核准或者唔核准網站嘅選項宜家顯示喺成個畫面</translation> <translation id="6909589135458168665">預先載入網頁</translation> <translation id="6942665639005891494">用「設定」選單選項,隨時更改預設嘅下載位置</translation> <translation id="694267552845942083">你自訂緊同步設定。㩒一下畫面底部附近嘅 [確認] 掣,就可以完成打開同步處理功能嘅程序喇。向上瀏覽</translation> @@ -1113,7 +1113,7 @@ <translation id="6955535239952325894">受管理的瀏覽器已停用此設定</translation> <translation id="6963766334940102469">刪除書籤</translation> <translation id="696447261358045621">退出無痕模式</translation> -<translation id="6971862865055170158">拒絕</translation> +<translation id="6971862865055170158">不核准</translation> <translation id="6979737339423435258">所有時間</translation> <translation id="6987047470128880212">這部裝置不支援無式痕分頁</translation> <translation id="6995899638241819463">密碼因資料外洩而被洩露時接收警告</translation>
diff --git a/chrome/browser/ui/ash/media_client_impl.cc b/chrome/browser/ui/ash/media_client_impl.cc index ba58aac..44ec8167 100644 --- a/chrome/browser/ui/ash/media_client_impl.cc +++ b/chrome/browser/ui/ash/media_client_impl.cc
@@ -15,8 +15,6 @@ #include "ash/public/cpp/system/toast_manager.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" -#include "ash/system/privacy_hub/camera_privacy_switch_controller.h" -#include "ash/system/privacy_hub/privacy_hub_controller.h" #include "base/bind.h" #include "base/callback_helpers.h" #include "base/check_op.h" @@ -466,13 +464,6 @@ cros::mojom::CameraPrivacySwitchState::ON) { ShowCameraOffNotification(); } - if (!ProfileManager::GetActiveUserProfile()->GetPrefs()->GetBoolean( - ash::prefs::kUserCameraAllowed)) { - ash::Shell::Get() - ->privacy_hub_controller() - ->camera_controller() - .ShowCameraOffNotification(); - } } }
diff --git a/chrome/browser/ui/ash/network/network_portal_signin_controller.cc b/chrome/browser/ui/ash/network/network_portal_signin_controller.cc index 7f8b1074..6dd70ab 100644 --- a/chrome/browser/ui/ash/network/network_portal_signin_controller.cc +++ b/chrome/browser/ui/ash/network/network_portal_signin_controller.cc
@@ -49,10 +49,14 @@ } Profile* GetOTROrActiveProfile() { - Profile* profile = ProfileManager::GetActiveUserProfile(); + // We use a separate signin OTR profile to avoid passing existing OTR cookies + // to the captive portal signin page, see b/245578628 for details. Profile* otr_profile = - profile->GetPrimaryOTRProfile(/*create_if_needed=*/true); - return otr_profile ? otr_profile : profile; + ProfileManager::GetActiveUserProfile()->GetOffTheRecordProfile( + Profile::OTRProfileID::CreateUniqueForCaptivePortal(), + /*create_if_needed=*/true); + DCHECK(otr_profile); + return otr_profile; } } // namespace
diff --git a/chrome/browser/ui/ash/network/network_portal_signin_controller_unittest.cc b/chrome/browser/ui/ash/network/network_portal_signin_controller_unittest.cc index f90266a3..9a4d1ad 100644 --- a/chrome/browser/ui/ash/network/network_portal_signin_controller_unittest.cc +++ b/chrome/browser/ui/ash/network/network_portal_signin_controller_unittest.cc
@@ -285,4 +285,18 @@ EXPECT_EQ(controller_->tab_url(), expected_url); } +TEST_F(NetworkPortalSigninControllerTest2022Update, IsNewOTRProfile) { + SimulateLogin(); + std::string expected_url = SetProbeUrl(kTestPortalUrl); + controller_->ShowSignin(); + EXPECT_EQ(controller_->tab_url(), expected_url); + Profile* profile = ProfileManager::GetActiveUserProfile(); + Profile* default_otr_profile = + profile->GetPrimaryOTRProfile(/*create_if_needed=*/true); + EXPECT_NE(profile, default_otr_profile); + EXPECT_NE(controller_->profile(), profile); + EXPECT_NE(controller_->profile(), default_otr_profile); + EXPECT_TRUE(controller_->profile()->IsOffTheRecord()); +} + } // namespace ash
diff --git a/chrome/browser/ui/ash/shelf/browser_app_shelf_controller_browsertest.cc b/chrome/browser/ui/ash/shelf/browser_app_shelf_controller_browsertest.cc index 1bbb431..9b36108 100644 --- a/chrome/browser/ui/ash/shelf/browser_app_shelf_controller_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/browser_app_shelf_controller_browsertest.cc
@@ -600,8 +600,9 @@ } } +// Flakily fails: https://crbug.com/1373054 IN_PROC_BROWSER_TEST_F(BrowserAppShelfControllerBrowserTest, - ActivateAndMinimizeWindows) { + DISABLED_ActivateAndMinimizeWindows) { if (!HasLacrosArgument()) { return; }
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc index 2803eff..068d07a8 100644 --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -85,6 +85,7 @@ #include "components/signin/public/identity_manager/identity_manager.h" #include "components/sync/driver/sync_service.h" #include "components/translate/core/browser/translate_manager.h" +#include "components/unified_consent/pref_names.h" #include "components/user_prefs/user_prefs.h" #include "components/variations/service/variations_service.h" #include "components/webauthn/content/browser/internal_authenticator_impl.h" @@ -710,6 +711,13 @@ return false; } + // Not supported if MakeSearchesAndBrowsingBetter is not enabled. This has + // been done to allow for consequent hash dances during consent-less flows. + if (!GetPrefs()->GetBoolean( + unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled)) { + return false; + } + if (!GetPersonalDataManager()->IsAutofillProfileEnabled() || !GetPersonalDataManager()->IsAutofillCreditCardEnabled()) { return false;
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc b/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc index 1bcd501..1665bc86 100644 --- a/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc
@@ -17,6 +17,7 @@ #include "components/autofill_assistant/browser/features.h" #include "components/autofill_assistant/browser/public/prefs.h" #include "components/prefs/pref_service.h" +#include "components/unified_consent/pref_names.h" #include "testing/gtest/include/gtest/gtest.h" using base::test::ScopedFeatureList; @@ -51,6 +52,11 @@ personal_data_manager_->SetAutofillProfileEnabled(true); personal_data_manager_->SetAutofillCreditCardEnabled(true); + + // Enable MSBB by default. If MSBB has been explicitly turned off, Fast + // Checkout is not supported. + profile()->GetPrefs()->SetBoolean( + unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled, true); } raw_ptr<ChromeAutofillClient> chrome_autofill_client_ = nullptr; @@ -91,6 +97,20 @@ EXPECT_FALSE(client()->IsFastCheckoutSupported()); } +TEST_F(ChromeAutofillClientTest, NoFastCheckoutSupportWithDisabledMSBB) { + ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + {::features::kFastCheckout, + autofill_assistant::features::kAutofillAssistant}, + {}); + + // If MSBB has been explicitly turned off, Fast Checkout is not supported. + profile()->GetPrefs()->SetBoolean( + unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled, false); + + EXPECT_FALSE(client()->IsFastCheckoutSupported()); +} + TEST_F(ChromeAutofillClientTest, IsFastCheckoutSupportedWithConsentAndDisabledAutofillAssistantPref) { ScopedFeatureList feature_list;
diff --git a/chrome/browser/ui/startup/lacros_first_run_service.cc b/chrome/browser/ui/startup/lacros_first_run_service.cc index 41537d73..a06dd8c 100644 --- a/chrome/browser/ui/startup/lacros_first_run_service.cc +++ b/chrome/browser/ui/startup/lacros_first_run_service.cc
@@ -201,8 +201,10 @@ << static_cast<int>(status); std::move(original_intent_callback).Run(proceed); - if (proceed && post_first_run_callback) + if (proceed) { + DCHECK(post_first_run_callback); std::move(post_first_run_callback).Run(); + } } } // namespace
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc index baa96ed..7966e29c 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -30,6 +30,7 @@ #include "build/buildflag.h" #include "build/chromeos_buildflags.h" #include "chrome/app/chrome_command_ids.h" +#include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_notification_types.h" @@ -3972,6 +3973,9 @@ // Prevent the browser from automatically relaunching in the PRE_ test. The // browser will be relaunched by the main test. upgrade_util::ScopedRelaunchChromeBrowserOverride relaunch_chrome_override_; + + base::test::ScopedFeatureList scoped_feature_list_{ + features::kObserverBasedPostProfileInit}; }; // Create a secondary profile in a separate PRE run because the existence of
diff --git a/chrome/browser/ui/views/autofill_assistant/password_change/password_change_run_view.cc b/chrome/browser/ui/views/autofill_assistant/password_change/password_change_run_view.cc index 78e7b6b2..dee37620 100644 --- a/chrome/browser/ui/views/autofill_assistant/password_change/password_change_run_view.cc +++ b/chrome/browser/ui/views/autofill_assistant/password_change/password_change_run_view.cc
@@ -136,8 +136,10 @@ GetViewAccessibility().OverrideRole(ax::mojom::Role::kAlertDialog); // TODO(crbug.com/1329179): Ask accessibility reviewers what the best string // to use here is. - GetViewAccessibility().OverrideName(u"Automatic password change", - ax::mojom::NameFrom::kAttribute); + GetViewAccessibility().OverrideName( + l10n_util::GetStringUTF16( + IDS_ACCESSIBLE_AUTOFILL_ASSISTANT_PASSWORD_CHANGE), + ax::mojom::NameFrom::kAttribute); SetFocusBehavior(View::FocusBehavior::ACCESSIBLE_ONLY); top_icon_ =
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index 1f6da42..529e69c 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -2010,9 +2010,9 @@ } void BookmarkBarView::UpdateBookmarksSeparatorVisibility() { -#if BUILDFLAG(IS_CHROMEOS_ASH) - // Ash does not paint the bookmarks separator line because it looks odd on - // the flat background. We keep it present for layout, but don't draw it. +#if BUILDFLAG(IS_CHROMEOS) + // ChromeOS does not paint the bookmarks separator line because it looks odd + // on the flat background. We keep it present for layout, but don't draw it. bookmarks_separator_view_->SetVisible(false); #else bookmarks_separator_view_->SetVisible(other_bookmarks_button_->GetVisible());
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index d0b794ee..14bd46d 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -16,6 +16,7 @@ #include "base/i18n/rtl.h" #include "base/metrics/field_trial_params.h" #include "base/strings/utf_string_conversions.h" +#include "base/time/time.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/app/chrome_command_ids.h" @@ -1433,9 +1434,36 @@ weak_factory_.GetWeakPtr())); bubble->SetHighlightedButton(location_icon_view_); bubble->GetWidget()->Show(); + RecordPageInfoMetrics(); return true; } +void LocationBarView::RecordPageInfoMetrics() { + if (base::FeatureList::IsEnabled(permissions::features::kConfirmationChip) && + chip_controller_) { + bool confirmation_chip_collapsed_recently = + base::TimeTicks::Now() - confirmation_chip_collapsed_time_ <= + permissions::kConfirmationConsiderationDurationForUma; + + if (!chip_controller_->chip()->GetVisible() && + !confirmation_chip_collapsed_recently) { + permissions::PermissionUmaUtil::RecordPageInfoDialogAccessType( + permissions::PageInfoDialogAccessType::LOCK_CLICK); + } else if (chip_controller_->chip()->GetVisible()) { + permissions::PermissionUmaUtil::RecordPageInfoDialogAccessType( + permissions::PageInfoDialogAccessType:: + LOCK_CLICK_DURING_CONFIRMATION_CHIP); + } else { + permissions::PermissionUmaUtil::RecordPageInfoDialogAccessType( + permissions::PageInfoDialogAccessType:: + LOCK_CLICK_SHORTLY_AFTER_CONFIRMATION_CHIP); + } + } else { + permissions::PermissionUmaUtil::RecordPageInfoDialogAccessType( + permissions::PageInfoDialogAccessType::LOCK_CLICK); + } +} + ui::ImageModel LocationBarView::GetLocationIcon( LocationIconView::Delegate::IconFetchedCallback on_icon_fetched) const { return omnibox_view_
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h index 25eec4b0..91e4dd507 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.h +++ b/chrome/browser/ui/views/location_bar/location_bar_view.h
@@ -15,6 +15,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h" +#include "base/time/time.h" #include "build/build_config.h" #include "chrome/browser/extensions/extension_context_menu_model.h" #include "chrome/browser/ui/location_bar/location_bar.h" @@ -248,6 +249,16 @@ return content_setting_views_; } + void RecordPageInfoMetrics(); + + void ResetConfirmationChipShownTime() { + confirmation_chip_collapsed_time_ = base::TimeTicks::Now(); + } + + void SetConfirmationChipShownTimeForTesting(base::TimeTicks time) { + confirmation_chip_collapsed_time_ = time; + } + private: FRIEND_TEST_ALL_PREFIXES(SecurityIndicatorTest, CheckIndicatorText); FRIEND_TEST_ALL_PREFIXES(TouchLocationBarViewBrowserTest, @@ -463,6 +474,9 @@ bool is_initialized_ = false; + // Used for metrics collection. + base::TimeTicks confirmation_chip_collapsed_time_ = base::TimeTicks(); + base::CallbackListSubscription subscription_ = ui::TouchUiController::Get()->RegisterCallback( base::BindRepeating(&LocationBarView::OnTouchUiChanged,
diff --git a/chrome/browser/ui/views/permissions/chip_controller.cc b/chrome/browser/ui/views/permissions/chip_controller.cc index ea3cdf4..ab6e31c2a 100644 --- a/chrome/browser/ui/views/permissions/chip_controller.cc +++ b/chrome/browser/ui/views/permissions/chip_controller.cc
@@ -166,7 +166,6 @@ chip_->SetVisible(false); permission_prompt_model_ = std::make_unique<PermissionPromptChipModel>(delegate); - chip_shown_time_ = base::TimeTicks::Now(); if (active_chip_permission_request_manager_.has_value()) { active_chip_permission_request_manager_.value()->RemoveObserver(this); @@ -182,10 +181,12 @@ permissions::PermissionPrompt::Delegate* delegate) { DCHECK(delegate); InitializePermissionPrompt(web_contents, delegate); + + request_chip_shown_time_ = base::TimeTicks::Now(); + AnnouncePermissionRequestForAccessibility( permission_prompt_model_->GetAccessibilityChipText()); chip_->SetVisible(true); - chip_shown_time_ = base::TimeTicks::Now(); SyncChipWithModel(); @@ -193,8 +194,8 @@ chip_.get(), this, std::make_unique<views::Button::DefaultButtonControllerDelegate>( chip_.get()))); - chip_->SetCallback(base::BindRepeating(&ChipController::OnChipButtonPressed, - base::Unretained(this))); + chip_->SetCallback(base::BindRepeating( + &ChipController::OnRequestChipButtonPressed, base::Unretained(this))); chip_->ResetAnimation(); ObservePromptBubble(); @@ -290,11 +291,14 @@ base::Unretained(this))); bubble->GetWidget()->Show(); bubble_tracker.SetView(bubble); + permissions::PermissionUmaUtil::RecordPageInfoDialogAccessType( + permissions::PageInfoDialogAccessType::CONFIRMATION_CHIP_CLICK); } void ChipController::OnPageInfoBubbleClosed( views::Widget::ClosedReason closed_reason, bool reload_prompt) { + GetLocationBarView()->ResetConfirmationChipShownTime(); HideChip(); } @@ -303,6 +307,7 @@ base::BindRepeating(&ChipController::HideChip, base::Unretained(this))); chip_->AnimateCollapse(kConfirmationCollapseDuration); is_confirmation_showing_ = false; + GetLocationBarView()->ResetConfirmationChipShownTime(); } bool ChipController::should_start_open_for_testing() { @@ -387,7 +392,7 @@ new PermissionPromptBubbleView( browser_, permission_prompt_model_->GetDelegate().value()->GetWeakPtr(), - chip_shown_time_, PermissionPromptStyle::kChip); + request_chip_shown_time_, PermissionPromptStyle::kChip); bubble_tracker.SetView(prompt_bubble); prompt_bubble->Show(); } else if (permission_prompt_model_->GetPromptStyle() == @@ -430,9 +435,9 @@ GetBubbleWidget()->CloseWithReason(reason); } -void ChipController::RecordChipButtonPressed(const char* recordKey) { - base::UmaHistogramMediumTimes(recordKey, - base::TimeTicks::Now() - chip_shown_time_); +void ChipController::RecordRequestChipButtonPressed(const char* recordKey) { + base::UmaHistogramMediumTimes( + recordKey, base::TimeTicks::Now() - request_chip_shown_time_); } void ChipController::ObservePromptBubble() { @@ -470,17 +475,17 @@ } } -void ChipController::OnChipButtonPressed() { +void ChipController::OnRequestChipButtonPressed() { if (permission_prompt_model_ && (!IsBubbleShowing() || permission_prompt_model_->ShouldBubbleStartOpen())) { // Only record if its the first interaction. if (permission_prompt_model_->GetPromptStyle() == PermissionPromptStyle::kChip) { - RecordChipButtonPressed("Permissions.Chip.TimeToInteraction"); + RecordRequestChipButtonPressed("Permissions.Chip.TimeToInteraction"); } else if (permission_prompt_model_->GetPromptStyle() == PermissionPromptStyle::kQuietChip) { - RecordChipButtonPressed("Permissions.QuietChip.TimeToInteraction"); + RecordRequestChipButtonPressed("Permissions.QuietChip.TimeToInteraction"); } }
diff --git a/chrome/browser/ui/views/permissions/chip_controller.h b/chrome/browser/ui/views/permissions/chip_controller.h index 2614be3..6688ef0 100644 --- a/chrome/browser/ui/views/permissions/chip_controller.h +++ b/chrome/browser/ui/views/permissions/chip_controller.h
@@ -150,14 +150,14 @@ void ClosePermissionPromptBubbleWithReason( views::Widget::ClosedReason reason); - // Statistics. - void RecordChipButtonPressed(const char* recordKey); + // Statistics + void RecordRequestChipButtonPressed(const char* recordKey); // Event handling. void ObservePromptBubble(); void OnPromptBubbleDismissed(); void OnPromptExpired(); - void OnChipButtonPressed(); + void OnRequestChipButtonPressed(); void OnExpandAnimationEnded(); void OnChipVisibilityChanged(); @@ -196,8 +196,8 @@ raw_ptr<Browser> browser_; - // The time when the chip was displayed. - base::TimeTicks chip_shown_time_; + // The time when the request chip was displayed. + base::TimeTicks request_chip_shown_time_; // A timer used to dismiss the permission request after it's been collapsed // for a while.
diff --git a/chrome/browser/ui/views/permissions/permission_chip_interactive_test.cc b/chrome/browser/ui/views/permissions/permission_chip_interactive_test.cc index e6fcea3..ea3beb9 100644 --- a/chrome/browser/ui/views/permissions/permission_chip_interactive_test.cc +++ b/chrome/browser/ui/views/permissions/permission_chip_interactive_test.cc
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/ranges/algorithm.h" +#include "base/run_loop.h" #include "base/test/metrics/histogram_tester.h" #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h" #include "chrome/browser/permissions/quiet_notification_permission_ui_state.h" @@ -19,11 +20,13 @@ #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/common/chrome_features.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/ui_test_utils.h" #include "chrome/test/permissions/permission_request_manager_test_api.h" #include "components/metrics/content/subprocess_metrics_provider.h" #include "components/permissions/features.h" #include "components/permissions/permission_ui_selector.h" +#include "components/permissions/permission_uma_util.h" #include "components/permissions/permission_util.h" #include "components/permissions/request_type.h" #include "components/permissions/test/mock_permission_request.h" @@ -105,12 +108,14 @@ base::RunLoop().RunUntilIdle(); } - OmniboxChipButton* GetChip() { + LocationBarView* GetLocationBarView() { BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); - LocationBarView* lbv = browser_view->toolbar()->location_bar(); + return browser_view->toolbar()->location_bar(); + } - return lbv->chip_controller()->chip(); + OmniboxChipButton* GetChip() { + return GetLocationBarView()->chip_controller()->chip(); } ChipController* GetChipController() { @@ -137,6 +142,14 @@ base::RunLoop().RunUntilIdle(); } + void ClickOnLock() { + views::test::ButtonTestApi(GetLocationBarView()->location_icon_view()) + .NotifyClick(ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), + gfx::Point(), ui::EventTimeForNow(), + ui::EF_LEFT_MOUSE_BUTTON, 0)); + base::RunLoop().RunUntilIdle(); + } + void ExpectQuietAbusiveChip() { // PermissionChip lifetime is bound to a permission prompt view. ASSERT_TRUE(test_api_->manager()->view_for_testing()); @@ -494,6 +507,79 @@ REQUEST_AND_CONFIRMATION_CHIP, REQUEST_AND_CONFIRMATION_CHIP_LOCATION_BAR_ICON_OVERRIDE)); +class ConfirmationChipUmaInteractiveTest + : public PermissionChipInteractiveTest { + public: + ConfirmationChipUmaInteractiveTest() { + scoped_feature_list_.InitWithFeatures( + {permissions::features::kConfirmationChip}, + {permissions::features::kPermissionChipGestureSensitive, + permissions::features::kPermissionChipRequestTypeSensitive}); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(ConfirmationChipUmaInteractiveTest, VerifyUmaMetrics) { + base::HistogramTester histograms; + + ClickOnLock(); + + metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + histograms.ExpectBucketCount( + "Permissions.ConfirmationChip.PageInfoDialogAccessType", + static_cast<int>(permissions::PageInfoDialogAccessType::LOCK_CLICK), 1); + + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_ESCAPE, false, + false, false, false)); + base::RunLoop().RunUntilIdle(); + + RequestPermission(permissions::RequestType::kGeolocation); + test_api_->manager()->Accept(); + + ClickOnChip(GetChip()); + + metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + histograms.ExpectBucketCount( + "Permissions.ConfirmationChip.PageInfoDialogAccessType", + static_cast<int>( + permissions::PageInfoDialogAccessType::CONFIRMATION_CHIP_CLICK), + 1); + + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_ESCAPE, false, + false, false, false)); + + base::RunLoop().RunUntilIdle(); + + GetLocationBarView()->SetConfirmationChipShownTimeForTesting( + base::TimeTicks::Now() - base::Seconds(10)); + + ClickOnLock(); + + metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + histograms.ExpectBucketCount( + "Permissions.ConfirmationChip.PageInfoDialogAccessType", + static_cast<int>(permissions::PageInfoDialogAccessType:: + LOCK_CLICK_SHORTLY_AFTER_CONFIRMATION_CHIP), + 1); + + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_ESCAPE, false, + false, false, false)); + + base::RunLoop().RunUntilIdle(); + + GetLocationBarView()->SetConfirmationChipShownTimeForTesting( + base::TimeTicks::Now() - base::Seconds(21)); + + ClickOnLock(); + + metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + histograms.ExpectBucketCount( + "Permissions.ConfirmationChip.PageInfoDialogAccessType", + static_cast<int>(permissions::PageInfoDialogAccessType::LOCK_CLICK), 2); +} + class ChipGestureSensitiveEnabledInteractiveTest : public PermissionChipInteractiveTest { public:
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_chip.cc b/chrome/browser/ui/views/permissions/permission_prompt_chip.cc index b62663c..1f74e3f8 100644 --- a/chrome/browser/ui/views/permissions/permission_prompt_chip.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_chip.cc
@@ -43,8 +43,13 @@ UpdateBrowser(); LocationBarView* lbv = GetLocationBarView(); + + if (!lbv || !lbv->IsInitialized()) { + return false; // view should be recreated + } + const bool is_location_bar_drawn = - lbv && lbv->IsDrawn() && !lbv->GetWidget()->IsFullscreen(); + lbv->IsDrawn() && !lbv->GetWidget()->IsFullscreen(); if (chip_controller_->IsPermissionPromptChipVisible() && !is_location_bar_drawn) { chip_controller_->ResetPermissionPromptChip();
diff --git a/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.cc b/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.cc new file mode 100644 index 0000000..45ef7ce --- /dev/null +++ b/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.cc
@@ -0,0 +1,96 @@ +// 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. + +#include "chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.h" + +#include "base/logging.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h" +#include "chrome/browser/ui/views/profiles/profile_management_step_controller.h" + +namespace { + +// Helper to run `callback`, after hiding the profile picker. +void HideProfilePickerAndRun(ProfilePicker::BrowserOpenedCallback callback) { + ProfilePicker::Hide(); + + if (!callback) + return; + + // See if there is already a browser we can use. + ProfileManager* profile_manager = g_browser_process->profile_manager(); + Profile* profile = profile_manager->GetProfileByPath( + profile_manager->GetPrimaryUserProfilePath()); + DCHECK(profile); + Browser* browser = + chrome::FindAnyBrowser(profile, /*match_original_profiles=*/true); + if (!browser) { + // TODO(https://crbug.com/1300109): Create a browser to run `callback`. + DLOG(WARNING) + << "No browser found when finishing Lacros FRE. Expected to find " + << "one for the primary profile."; + return; + } + + std::move(callback).Run(browser); +} + +} // namespace + +FirstRunFlowControllerLacros::FirstRunFlowControllerLacros( + ProfilePickerWebContentsHost* host, + Profile* profile, + ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback) + : ProfileManagementFlowController(host, Step::kPostSignInFlow), + first_run_exited_callback_(std::move(first_run_exited_callback)) { + DCHECK(first_run_exited_callback_); + + auto finish_and_continue_in_browser_callback = + base::BindOnce(&FirstRunFlowControllerLacros::ExitFlowAndRun, + // Unretained ok: the callback is passed to a step that + // the `this` will own and outlive. + base::Unretained(this)); + + auto signed_in_flow = std::make_unique<LacrosFirstRunSignedInFlowController>( + host, profile, + content::WebContents::Create(content::WebContents::CreateParams(profile)), + std::move(finish_and_continue_in_browser_callback)); + signed_in_flow_ = signed_in_flow->GetWeakPtr(); + + RegisterStep(initial_step(), + ProfileManagementStepController::CreateForPostSignInFlow( + host, std::move(signed_in_flow))); +} + +FirstRunFlowControllerLacros::~FirstRunFlowControllerLacros() { + // Call the callback if not called yet. This can happen in case of early + // exits for example, the original intent callback just gets dropped. See + // https://crbug.com/1307754. + if (first_run_exited_callback_ && signed_in_flow_) { + std::move(first_run_exited_callback_) + .Run(signed_in_flow_->sync_confirmation_seen() + ? ProfilePicker::FirstRunExitStatus::kQuitAtEnd + : ProfilePicker::FirstRunExitStatus::kQuitEarly, + ProfilePicker::FirstRunExitSource::kControllerDestructor, + // Since the flow is exited already, we don't have anything to + // close or finish setting up, and the callback won't be executed + // anyway. + /*maybe_callback=*/base::OnceClosure()); + } +} + +void FirstRunFlowControllerLacros::ExitFlowAndRun( + ProfilePicker::BrowserOpenedCallback callback) { + ProfileManager* profile_manager = g_browser_process->profile_manager(); + Profile* profile = profile_manager->GetProfileByPath( + profile_manager->GetPrimaryUserProfilePath()); + DCHECK(profile); + + std::move(first_run_exited_callback_) + .Run(ProfilePicker::FirstRunExitStatus::kCompleted, + ProfilePicker::FirstRunExitSource::kFlowFinished, + base::BindOnce(&HideProfilePickerAndRun, std::move(callback))); +}
diff --git a/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.h b/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.h new file mode 100644 index 0000000..be4a5a1 --- /dev/null +++ b/chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.h
@@ -0,0 +1,41 @@ +// 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. + +#ifndef CHROME_BROWSER_UI_VIEWS_PROFILES_FIRST_RUN_FLOW_CONTROLLER_LACROS_H_ +#define CHROME_BROWSER_UI_VIEWS_PROFILES_FIRST_RUN_FLOW_CONTROLLER_LACROS_H_ + +#include "base/memory/weak_ptr.h" +#include "chrome/browser/ui/profile_picker.h" +#include "chrome/browser/ui/views/profiles/profile_management_flow_controller.h" + +class LacrosFirstRunSignedInFlowController; + +class FirstRunFlowControllerLacros : public ProfileManagementFlowController { + public: + FirstRunFlowControllerLacros( + ProfilePickerWebContentsHost* host, + Profile* profile, + ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback); + + FirstRunFlowControllerLacros(const FirstRunFlowControllerLacros&) = delete; + FirstRunFlowControllerLacros& operator=(const FirstRunFlowControllerLacros&) = + delete; + + ~FirstRunFlowControllerLacros() override; + + private: + void ExitFlowAndRun(ProfilePicker::BrowserOpenedCallback callback); + + // Captures the operation that the user expected to run at the time we chose + // to show them the FRE. When we complete the FRE, we run this and we expect + // that it will cause a browser to be opened. + ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback_; + + // Gives access to the signed-in flow controller, which is owned by the step. + // TODO(crbug.com/1358845): Remove it once we can monitor advancement after + // the first screen as a navigation from chrome://intro. + base::WeakPtr<LacrosFirstRunSignedInFlowController> signed_in_flow_; +}; + +#endif // CHROME_BROWSER_UI_VIEWS_PROFILES_FIRST_RUN_FLOW_CONTROLLER_LACROS_H_
diff --git a/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.cc b/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.cc index 3ab8649..fe946c3 100644 --- a/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.cc +++ b/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.cc
@@ -4,11 +4,8 @@ #include "chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h" -#include "base/bind.h" #include "base/logging.h" -#include "base/notreached.h" #include "base/scoped_observation.h" -#include "base/threading/sequenced_task_runner_handle.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/signin/identity_manager_factory.h" @@ -30,13 +27,10 @@ // signin::IdentityManager::Observer void OnRefreshTokensLoaded() override { - // The callback must be dispatched since proper functionality requires all - // other signin::IdentityManager::Observers to finish executing. See - // https://crbug.com/1340791. - if (callback_) { - base::SequencedTaskRunnerHandle::Get()->PostTask(FROM_HERE, - std::move(callback_)); - } + identity_manager_observation_.Reset(); + + if (callback_) + std::move(callback_).Run(); } private: @@ -47,61 +41,22 @@ identity_manager_observation_{this}; }; -// Helper to run `callback`, after hiding the profile picker. -// Unlike other signed in flow controllers, this one completes by staying in -// the current profile instead of switching to a new one, which normally would -// have handled hiding the picker. -void HideProfilePickerAndRun(ProfilePicker::BrowserOpenedCallback callback) { - ProfilePicker::Hide(); - - if (!callback) - return; - - // See if there is already a browser we can use. - ProfileManager* profile_manager = g_browser_process->profile_manager(); - Profile* profile = profile_manager->GetProfileByPath( - profile_manager->GetPrimaryUserProfilePath()); - DCHECK(profile); - Browser* browser = - chrome::FindAnyBrowser(profile, /*match_original_profiles=*/true); - if (!browser) { - // TODO(https://crbug.com/1300109): Create a browser to run `callback`. - DLOG(WARNING) - << "No browser found when finishing Lacros FRE. Expected to find " - << "one for the primary profile."; - return; - } - - std::move(callback).Run(browser); -} - } // namespace LacrosFirstRunSignedInFlowController::LacrosFirstRunSignedInFlowController( ProfilePickerWebContentsHost* host, Profile* profile, std::unique_ptr<content::WebContents> contents, - ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback) + base::OnceCallback<void(ProfilePicker::BrowserOpenedCallback + maybe_callback)> flow_completed_callback) : ProfilePickerSignedInFlowController(host, profile, std::move(contents), absl::optional<SkColor>()), - first_run_exited_callback_(std::move(first_run_exited_callback)) {} + flow_completed_callback_(std::move(flow_completed_callback)) {} -LacrosFirstRunSignedInFlowController::~LacrosFirstRunSignedInFlowController() { - // Call the callback if not called yet. This can happen in case of early exits - // for example, the registered callback just gets dropped. See - // https://crbug.com/1307754. - if (first_run_exited_callback_) { - std::move(first_run_exited_callback_) - .Run(sync_confirmation_seen_ - ? ProfilePicker::FirstRunExitStatus::kQuitAtEnd - : ProfilePicker::FirstRunExitStatus::kQuitEarly, - ProfilePicker::FirstRunExitSource::kControllerDestructor, - base::BindOnce(&HideProfilePickerAndRun, - ProfilePicker::BrowserOpenedCallback())); - } -} +LacrosFirstRunSignedInFlowController::~LacrosFirstRunSignedInFlowController() = + default; void LacrosFirstRunSignedInFlowController::Init() { signin::IdentityManager* identity_manager = @@ -121,8 +76,10 @@ // called again when they become available. can_retry_init_observer_ = std::make_unique<OnRefreshTokensLoadedObserver>( identity_manager, - base::BindOnce(&LacrosFirstRunSignedInFlowController::Init, - base::Unretained(this))); + base::BindOnce( + &LacrosFirstRunSignedInFlowController::Init, + // Unretained ok: `this` owns the observer and outlives it. + base::Unretained(this))); return; } @@ -134,13 +91,8 @@ void LacrosFirstRunSignedInFlowController::FinishAndOpenBrowser( ProfilePicker::BrowserOpenedCallback callback) { - if (!first_run_exited_callback_) - return; - - std::move(first_run_exited_callback_) - .Run(ProfilePicker::FirstRunExitStatus::kCompleted, - ProfilePicker::FirstRunExitSource::kFlowFinished, - base::BindOnce(&HideProfilePickerAndRun, std::move(callback))); + if (flow_completed_callback_) + std::move(flow_completed_callback_).Run(std::move(callback)); } void LacrosFirstRunSignedInFlowController::SwitchToSyncConfirmation() {
diff --git a/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h b/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h index 565e4458..86f5594 100644 --- a/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h +++ b/chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h
@@ -7,29 +7,27 @@ #include "base/memory/weak_ptr.h" #include "chrome/browser/ui/views/profiles/profile_picker_signed_in_flow_controller.h" - #include "components/signin/public/identity_manager/identity_manager.h" -// Class responsible for the first run (signed-in) flow for the primary profile -// on lacros (most importantly offering sync). class LacrosFirstRunSignedInFlowController : public ProfilePickerSignedInFlowController { public: - // `first_run_exited_callback` gets called when the user exits the FRE. - // It will receive `exit_status` to indicate the type of exit, for example - // whether the user completed it, or wants to quit. - // It also gets a `maybe_callback` as a parameter which is empty in most cases - // but must be called on a newly opened browser window if non-empty. + // `flow_completed_callback` gets called when the user completes the FRE. + // It gets `maybe_callback` as a parameter which is empty in most cases but + // must be called on a newly opened browser window if non-empty. LacrosFirstRunSignedInFlowController( ProfilePickerWebContentsHost* host, Profile* profile, std::unique_ptr<content::WebContents> contents, - ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback); + base::OnceCallback<void(ProfilePicker::BrowserOpenedCallback + maybe_callback)> flow_completed_callback); ~LacrosFirstRunSignedInFlowController() override; - LacrosFirstRunSignedInFlowController( - const ProfilePickerSignedInFlowController&) = delete; - LacrosFirstRunSignedInFlowController& operator=( - const ProfilePickerSignedInFlowController&) = delete; + + bool sync_confirmation_seen() const { return sync_confirmation_seen_; } + + base::WeakPtr<LacrosFirstRunSignedInFlowController> GetWeakPtr() const { + return weak_ptr_factory_.GetWeakPtr(); + } // ProfilePickerSignedInFlowController: void Init() override; @@ -44,8 +42,9 @@ // Tracks whether the user got to the last step of the FRE flow. bool sync_confirmation_seen_ = false; - // Callback that gets called if the onboarding finishes successfully. - ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback_; + // Callback that gets called if the first run flow is completed. + base::OnceCallback<void(ProfilePicker::BrowserOpenedCallback maybe_callback)> + flow_completed_callback_; std::unique_ptr<signin::IdentityManager::Observer> can_retry_init_observer_;
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view.cc b/chrome/browser/ui/views/profiles/profile_picker_view.cc index 7142e0b2..715f4054 100644 --- a/chrome/browser/ui/views/profiles/profile_picker_view.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_view.cc
@@ -4,10 +4,9 @@ #include "chrome/browser/ui/views/profiles/profile_picker_view.h" -#include "base/bind.h" -#include "base/callback.h" #include "base/containers/contains.h" #include "base/files/file_path.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_functions.h" @@ -66,8 +65,7 @@ #endif #if BUILDFLAG(IS_CHROMEOS_LACROS) -#include "chrome/browser/ui/views/profiles/lacros_first_run_signed_in_flow_controller.h" -#include "chrome/browser/ui/views/profiles/profile_management_step_controller.h" +#include "chrome/browser/ui/views/profiles/first_run_flow_controller_lacros.h" #include "chrome/grit/generated_resources.h" #endif @@ -113,27 +111,6 @@ ProfilePicker::EntryPoint::kLacrosPrimaryProfileFirstRun; } -#if BUILDFLAG(IS_CHROMEOS_LACROS) -class LacrosFirstRunFlowController : public ProfileManagementFlowController { - public: - LacrosFirstRunFlowController( - ProfilePickerWebContentsHost* host, - Profile* profile, - ProfilePicker::DebugFirstRunExitedCallback first_run_exited_callback) - : ProfileManagementFlowController(host, Step::kPostSignInFlow) { - RegisterStep( - initial_step(), - ProfileManagementStepController::CreateForPostSignInFlow( - host, std::make_unique<LacrosFirstRunSignedInFlowController>( - host, profile, - content::WebContents::Create( - content::WebContents::CreateParams(profile)), - std::move(first_run_exited_callback)))); - } - ~LacrosFirstRunFlowController() override = default; -}; -#endif - } // namespace // static @@ -624,7 +601,7 @@ } else if (params_.entry_point() == ProfilePicker::EntryPoint::kLacrosPrimaryProfileFirstRun) { #if BUILDFLAG(IS_CHROMEOS_LACROS) - flow_controller_ = std::make_unique<LacrosFirstRunFlowController>( + flow_controller_ = std::make_unique<FirstRunFlowControllerLacros>( /*host=*/this, picker_profile, base::BindOnce(&ProfilePicker::Params::NotifyFirstRunExited, // Unretained ok because the controller is owned
diff --git a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.cc b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.cc similarity index 99% rename from chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.cc rename to chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.cc index c7a53be..a5e3ab6 100644 --- a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.cc +++ b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h" +#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h" #include <memory> #include <utility>
diff --git a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h similarity index 94% rename from chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h rename to chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h index d4513b28..94a8e41 100644 --- a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h +++ b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_H_ -#define CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_H_ +#ifndef CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_MANAGER_H_ +#define CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_MANAGER_H_ #include "base/callback.h" @@ -44,4 +44,4 @@ } // namespace safe_browsing -#endif // CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_H_ +#endif // CHROME_BROWSER_UI_VIEWS_SAFE_BROWSING_TAILORED_SECURITY_DESKTOP_DIALOG_MANAGER_H_
diff --git a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_browsertest.cc b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager_browsertest.cc similarity index 99% rename from chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_browsertest.cc rename to chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager_browsertest.cc index 8a95a9f..b4fc09b5 100644 --- a/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_browsertest.cc +++ b/chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager_browsertest.cc
@@ -9,7 +9,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/test/test_browser_dialog.h" -#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog.h" +#include "chrome/browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager.h" #include "chrome/common/chrome_features.h" #include "components/safe_browsing/core/browser/tailored_security_service/tailored_security_outcome.h" #include "content/public/browser/web_contents.h"
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc index 9db99cef..108f929a 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -20,12 +20,10 @@ #include "chrome/browser/ash/login/existing_user_controller.h" #include "chrome/browser/ash/login/profile_auth_data.h" #include "chrome/browser/ash/login/screens/network_error.h" -#include "chrome/browser/ash/login/ui/login_display_host.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h" -#include "chromeos/ash/components/proximity_auth/screenlock_bridge.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" @@ -93,8 +91,6 @@ SigninScreenHandler::~SigninScreenHandler() { weak_factory_.InvalidateWeakPtrs(); network_state_informer_->RemoveObserver(this); - proximity_auth::ScreenlockBridge::Get()->SetLockHandler(nullptr); - proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(EmptyAccountId()); } void SigninScreenHandler::DeclareLocalizedValues(
diff --git a/chrome/browser/ui/webui/help/version_updater_chromeos.cc b/chrome/browser/ui/webui/help/version_updater_chromeos.cc index bf3c620c..9132d24b 100644 --- a/chrome/browser/ui/webui/help/version_updater_chromeos.cc +++ b/chrome/browser/ui/webui/help/version_updater_chromeos.cc
@@ -363,6 +363,16 @@ NOTREACHED(); } + // If the current auto update is non-interactive and will be deferred, ignore + // update status change and show UPDATED instead. The NEARLY_UPDATED or + // DEFERRED status will still be shown, because user may need to interact with + // UI to apply the update and reboot the device. + if (my_status != NEARLY_UPDATED && my_status != DEFERRED && + !status.is_interactive() && status.will_defer_update()) { + my_status = UPDATED; + progress = 0; + } + callback_.Run(my_status, progress, status.is_enterprise_rollback(), status.will_powerwash_after_reboot(), version, size, message); last_operation_ = status.current_operation();
diff --git a/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc b/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc index 574fc1f..37779aa 100644 --- a/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc +++ b/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc
@@ -218,6 +218,53 @@ version_updater_cros_ptr_->GetUpdateStatus(mock_callback.Get()); } +TEST_F(VersionUpdaterCrosTest, + GetUpdateStatus_SetToUpdatedForNonInteractiveDeferredUpdate) { + SetEthernetService(); + update_engine::StatusResult status; + // The update is non-interactive and will be deferred. + status.set_is_interactive(false); + status.set_will_defer_update(true); + fake_update_engine_client_->set_default_status(status); + + // Expect to set status to `UPDATED`. + StrictMock<base::MockCallback<VersionUpdater::StatusCallback>> mock_callback; + EXPECT_CALL(mock_callback, Run(VersionUpdater::UPDATED, 0, _, _, _, _, _)) + .Times(1); + version_updater_cros_ptr_->GetUpdateStatus(mock_callback.Get()); +} + +TEST_F(VersionUpdaterCrosTest, GetUpdateStatus_UpdatedButDeferred) { + SetEthernetService(); + update_engine::StatusResult status; + // The update is deferred. + status.set_is_interactive(false); + status.set_will_defer_update(true); + status.set_current_operation(update_engine::Operation::UPDATED_BUT_DEFERRED); + fake_update_engine_client_->set_default_status(status); + + // Expect the status to be `DEFERRED`. + StrictMock<base::MockCallback<VersionUpdater::StatusCallback>> mock_callback; + EXPECT_CALL(mock_callback, Run(VersionUpdater::DEFERRED, _, _, _, _, _, _)) + .Times(1); + version_updater_cros_ptr_->GetUpdateStatus(mock_callback.Get()); +} + +TEST_F(VersionUpdaterCrosTest, GetUpdateStatus_UpdatedNeedReboot) { + SetEthernetService(); + update_engine::StatusResult status; + status.set_is_interactive(false); + status.set_current_operation(update_engine::Operation::UPDATED_NEED_REBOOT); + fake_update_engine_client_->set_default_status(status); + + // Expect the status to be `NEARLY_UPDATED`. + StrictMock<base::MockCallback<VersionUpdater::StatusCallback>> mock_callback; + EXPECT_CALL(mock_callback, + Run(VersionUpdater::NEARLY_UPDATED, _, _, _, _, _, _)) + .Times(1); + version_updater_cros_ptr_->GetUpdateStatus(mock_callback.Get()); +} + TEST_F(VersionUpdaterCrosTest, ToggleFeature) { EXPECT_EQ(0, fake_update_engine_client_->toggle_feature_count()); version_updater_->ToggleFeature("feature-foo", true);
diff --git a/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc b/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc index a7098e2..03de650 100644 --- a/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc +++ b/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc
@@ -6,6 +6,7 @@ #include "ash/constants/ash_features.h" #include "base/feature_list.h" +#include "base/metrics/histogram_functions.h" #include "chrome/browser/ash/account_manager/account_apps_availability.h" #include "components/account_manager_core/account.h" #include "components/account_manager_core/account_addition_result.h" @@ -16,6 +17,11 @@ namespace chromeos { +namespace { +constexpr char kSecondaryGoogleAccountUsageHistogramName[] = + "Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status"; +} // namespace + using SigninRestrictionPolicyFetcher = ::ash::UserCloudSigninRestrictionPolicyFetcherChromeOS; @@ -152,6 +158,9 @@ SigninRestrictionPolicyFetcher::Status status, absl::optional<std::string> policy_result, const std::string& hosted_domain) { + base::UmaHistogramEnumeration(kSecondaryGoogleAccountUsageHistogramName, + status); + if (status == SigninRestrictionPolicyFetcher::Status::kUnsupportedAccountTypeError) { // SecondaryGoogleAccountUsage policy does not apply to non enterprise
diff --git a/chrome/browser/ui/webui/signin/signin_helper_chromeos.h b/chrome/browser/ui/webui/signin/signin_helper_chromeos.h index e639c59..f7a54ee 100644 --- a/chrome/browser/ui/webui/signin/signin_helper_chromeos.h +++ b/chrome/browser/ui/webui/signin/signin_helper_chromeos.h
@@ -84,8 +84,7 @@ void UpsertAccount(const std::string& refresh_token); // Receives the callback for `GetSecondaryGoogleAccountUsage()`. - // Virtual for testing. - virtual void OnGetSecondaryGoogleAccountUsage( + void OnGetSecondaryGoogleAccountUsage( ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status status, absl::optional<std::string> policy_result, const std::string& hosted_domain);
diff --git a/chrome/browser/ui/webui/signin/signin_helper_chromeos_browsertest.cc b/chrome/browser/ui/webui/signin/signin_helper_chromeos_browsertest.cc index b2370ab..0880699 100644 --- a/chrome/browser/ui/webui/signin/signin_helper_chromeos_browsertest.cc +++ b/chrome/browser/ui/webui/signin/signin_helper_chromeos_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/test/bind.h" +#include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/ash/account_manager/account_apps_availability.h" #include "chrome/browser/ash/account_manager/account_apps_availability_factory.h" @@ -62,6 +63,11 @@ const char kSecureConnectApiGetSecondaryGoogleAccountUsageURLBody[] = R"({"policyValue": "%s"})"; +constexpr char kSecondaryGoogleAccountUsageHistogramName[] = + "Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status"; +constexpr char kSecondaryGoogleAccountUsageLatencyHistogramName[] = + "Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.ResponseLatency"; + // Convenience helper to allow a `closure` to be used in a context which is // expecting a callback with arguments. template <typename... T> @@ -533,6 +539,9 @@ gaia_id, email, kFakeAuthCode, kFakeDeviceId); } + protected: + base::HistogramTester histogram_tester_; + private: base::test::ScopedFeatureList feature_list_; }; @@ -562,6 +571,11 @@ auto account = on_token_upserted_account(); ASSERT_TRUE(account.has_value()); EXPECT_EQ(account.value().raw_email, kFakeEmail); + histogram_tester_.ExpectBucketCount( + kSecondaryGoogleAccountUsageHistogramName, + ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status:: + kUnsupportedAccountTypeError, + 1); } IN_PROC_BROWSER_TEST_F(SigninHelperChromeOSTestSecondaryGoogleAccountUsage, @@ -590,6 +604,12 @@ auto account = on_token_upserted_account(); ASSERT_TRUE(account.has_value()); EXPECT_EQ(account.value().raw_email, kFakeEnterpriseEmail); + histogram_tester_.ExpectBucketCount( + kSecondaryGoogleAccountUsageHistogramName, + ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status::kSuccess, + 1); + histogram_tester_.ExpectTotalCount( + kSecondaryGoogleAccountUsageLatencyHistogramName, 1); } IN_PROC_BROWSER_TEST_F( @@ -619,6 +639,12 @@ auto account = on_token_upserted_account(); ASSERT_TRUE(account.has_value()); EXPECT_EQ(account.value().raw_email, kFakeEnterpriseEmail); + histogram_tester_.ExpectBucketCount( + kSecondaryGoogleAccountUsageHistogramName, + ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status::kSuccess, + 1); + histogram_tester_.ExpectTotalCount( + kSecondaryGoogleAccountUsageLatencyHistogramName, 1); } IN_PROC_BROWSER_TEST_F( @@ -647,6 +673,12 @@ // 0 account should be added. EXPECT_EQ(on_token_upserted_call_count(), 0); + histogram_tester_.ExpectBucketCount( + kSecondaryGoogleAccountUsageHistogramName, + ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status::kSuccess, + 1); + histogram_tester_.ExpectTotalCount( + kSecondaryGoogleAccountUsageLatencyHistogramName, 1); } IN_PROC_BROWSER_TEST_F(SigninHelperChromeOSTestSecondaryGoogleAccountUsage, @@ -671,6 +703,11 @@ // 1 account should be upserted. EXPECT_EQ(on_token_upserted_call_count(), 1); + histogram_tester_.ExpectBucketCount( + kSecondaryGoogleAccountUsageHistogramName, + ash::UserCloudSigninRestrictionPolicyFetcherChromeOS::Status:: + kUnsupportedAccountTypeError, + 0); } } // namespace chromeos
diff --git a/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.cc b/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.cc index 621ba35..d2f9e12 100644 --- a/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.cc +++ b/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.cc
@@ -6,7 +6,9 @@ #include "base/command_line.h" #include "base/json/json_string_value_serializer.h" +#include "base/metrics/histogram_functions.h" #include "base/strings/stringprintf.h" +#include "base/time/time.h" #include "base/values.h" #include "components/policy/core/browser/browser_policy_connector.h" #include "components/policy/core/common/policy_switches.h" @@ -22,6 +24,9 @@ namespace { +constexpr char kSecondaryGoogleAccountUsageLatencyHistogramName[] = + "Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.ResponseLatency"; + const char kAuthorizationHeaderFormat[] = "Bearer %s"; const char kSecureConnectApiGetSecondaryGoogleAccountUsageUrl[] = "https://secureconnect-pa.clients6.google.com/" @@ -179,7 +184,9 @@ void UserCloudSigninRestrictionPolicyFetcherChromeOS:: GetSecondaryGoogleAccountUsageInternal() { + policy_fetch_start_time_ = base::TimeTicks::Now(); // Each url loader can only be used for one request. + DCHECK(!url_loader_); url_loader_ = CreateUrlLoader(GURL(GetSecureConnectApiGetAccountSigninRestrictionUrl()), access_token_, kAnnotation); @@ -195,6 +202,9 @@ void UserCloudSigninRestrictionPolicyFetcherChromeOS:: OnSecondaryGoogleAccountUsageResult( std::unique_ptr<std::string> response_body) { + base::UmaHistogramMediumTimes( + kSecondaryGoogleAccountUsageLatencyHistogramName, + base::TimeTicks::Now() - policy_fetch_start_time_); absl::optional<std::string> restriction; Status status = Status::kUnknownError; std::unique_ptr<network::SimpleURLLoader> url_loader = std::move(url_loader_);
diff --git a/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.h b/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.h index 19a0f15..863a31f6 100644 --- a/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.h +++ b/chrome/browser/ui/webui/signin/user_cloud_signin_restriction_policy_fetcher_chromeos.h
@@ -19,6 +19,10 @@ class SimpleURLLoader; } +namespace base { +class TimeTicks; +} + namespace ash { // UserCloudSigninRestrictionPolicyFetcherChromeOS handles requesting @@ -62,15 +66,18 @@ static const char kSecondaryGoogleAccountUsagePolicyValuePrimaryAccountSignin[]; + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. enum Status { - kSuccess = 0, + kUnknownError = 0, + kSuccess, kNetworkError, kHttpError, kParsingResponseError, kUnsupportedAccountTypeError, kGetTokenError, kGetUserInfoError, - kUnknownError + kMaxValue = kGetUserInfoError, }; // Callback invoked when SecondaryGoogleAccountUsage policy value @@ -148,6 +155,7 @@ std::unique_ptr<OAuth2AccessTokenFetcher> access_token_fetcher_; std::unique_ptr<policy::UserInfoFetcher> user_info_fetcher_; PolicyInfoCallback callback_; + base::TimeTicks policy_fetch_start_time_; scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; std::unique_ptr<network::SimpleURLLoader> url_loader_;
diff --git a/chrome/browser/web_applications/commands/web_app_command.cc b/chrome/browser/web_applications/commands/web_app_command.cc index a22db6ad..7c58347 100644 --- a/chrome/browser/web_applications/commands/web_app_command.cc +++ b/chrome/browser/web_applications/commands/web_app_command.cc
@@ -6,8 +6,8 @@ #include "base/atomic_sequence_num.h" #include "chrome/browser/web_applications/web_app_command_manager.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" namespace web_app {
diff --git a/chrome/browser/web_applications/locks/lock.cc b/chrome/browser/web_applications/locks/lock.cc index 22fe3c5c..b183522 100644 --- a/chrome/browser/web_applications/locks/lock.cc +++ b/chrome/browser/web_applications/locks/lock.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/web_applications/locks/lock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" namespace web_app {
diff --git a/chrome/browser/web_applications/locks/lock.h b/chrome/browser/web_applications/locks/lock.h index ed662ab..b0e108c 100644 --- a/chrome/browser/web_applications/locks/lock.h +++ b/chrome/browser/web_applications/locks/lock.h
@@ -12,7 +12,7 @@ #include "chrome/browser/web_applications/web_app_id.h" namespace content { -struct LeveledLockHolder; +struct PartitionedLockHolder; } namespace web_app { @@ -62,7 +62,7 @@ kMaxValue = kApp, }; - std::unique_ptr<content::LeveledLockHolder> holder_; + std::unique_ptr<content::PartitionedLockHolder> holder_; const base::flat_set<AppId> app_ids_{}; const Type type_;
diff --git a/chrome/browser/web_applications/locks/web_app_lock_manager.cc b/chrome/browser/web_applications/locks/web_app_lock_manager.cc index d111776e..504351d 100644 --- a/chrome/browser/web_applications/locks/web_app_lock_manager.cc +++ b/chrome/browser/web_applications/locks/web_app_lock_manager.cc
@@ -14,15 +14,15 @@ #include "chrome/browser/web_applications/locks/shared_web_contents_lock.h" #include "chrome/browser/web_applications/locks/shared_web_contents_with_app_lock.h" #include "chrome/browser/web_applications/web_app_id.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" namespace web_app { namespace { -// Creates a `LeveledLockRange` that only includes the provided string `key` -content::LeveledLockRange StringToLockRange(std::string key) { - return content::LeveledLockRange{key, key + static_cast<char>(0)}; +// Creates a `PartitionedLockRange` that only includes the provided string `key` +content::PartitionedLockRange StringToLockRange(std::string key) { + return content::PartitionedLockRange{key, key + static_cast<char>(0)}; } enum class LockLevel { @@ -37,57 +37,59 @@ kNoOp = 2, }; -content::LeveledLockManager::LeveledLockRequest GetSystemLock( - content::LeveledLockManager::LockType type) { - return content::LeveledLockManager::LeveledLockRequest( +content::PartitionedLockManager::PartitionedLockRequest GetSystemLock( + content::PartitionedLockManager::LockType type) { + return content::PartitionedLockManager::PartitionedLockRequest( static_cast<int>(LockLevel::kStatic), StringToLockRange(base::NumberToString(KeysOnStaticLevel::kFullSystem)), type); } -content::LeveledLockManager::LeveledLockRequest GetSharedWebContentsLock() { - return content::LeveledLockManager::LeveledLockRequest( +content::PartitionedLockManager::PartitionedLockRequest +GetSharedWebContentsLock() { + return content::PartitionedLockManager::PartitionedLockRequest( {static_cast<int>(LockLevel::kStatic), StringToLockRange( base::NumberToString(KeysOnStaticLevel::kBackgroundWebContents)), - content::LeveledLockManager::LockType::kExclusive}); + content::PartitionedLockManager::LockType::kExclusive}); } -std::vector<content::LeveledLockManager::LeveledLockRequest> GetAppIdLocks( - const base::flat_set<AppId>& app_ids) { - std::vector<content::LeveledLockManager::LeveledLockRequest> lock_requests; +std::vector<content::PartitionedLockManager::PartitionedLockRequest> +GetAppIdLocks(const base::flat_set<AppId>& app_ids) { + std::vector<content::PartitionedLockManager::PartitionedLockRequest> + lock_requests; for (const AppId& app_id : app_ids) { lock_requests.emplace_back( static_cast<int>(LockLevel::kApp), StringToLockRange(app_id), - content::LeveledLockManager::LockType::kExclusive); + content::PartitionedLockManager::LockType::kExclusive); } return lock_requests; } -std::vector<content::LeveledLockManager::LeveledLockRequest> +std::vector<content::PartitionedLockManager::PartitionedLockRequest> GetLockRequestsForLock(const Lock& lock) { - std::vector<content::LeveledLockManager::LeveledLockRequest> requests; + std::vector<content::PartitionedLockManager::PartitionedLockRequest> requests; switch (lock.type()) { case Lock::Type::kNoOp: requests = { - GetSystemLock(content::LeveledLockManager::LockType::kShared)}; + GetSystemLock(content::PartitionedLockManager::LockType::kShared)}; break; case Lock::Type::kApp: requests = GetAppIdLocks(lock.app_ids()); requests.push_back( - GetSystemLock(content::LeveledLockManager::LockType::kShared)); + GetSystemLock(content::PartitionedLockManager::LockType::kShared)); break; case Lock::Type::kAppAndWebContents: requests = GetAppIdLocks(lock.app_ids()); ABSL_FALLTHROUGH_INTENDED; case Lock::Type::kBackgroundWebContents: requests.push_back( - GetSystemLock(content::LeveledLockManager::LockType::kShared)); + GetSystemLock(content::PartitionedLockManager::LockType::kShared)); requests.push_back(GetSharedWebContentsLock()); break; case Lock::Type::kFullSystem: requests = { - GetSystemLock(content::LeveledLockManager::LockType::kExclusive)}; + GetSystemLock(content::PartitionedLockManager::LockType::kExclusive)}; break; } return requests; @@ -100,15 +102,15 @@ bool WebAppLockManager::IsSharedWebContentsLockFree() { return lock_manager_.TestLock(GetSharedWebContentsLock()) == - content::DisjointRangeLockManager::TestLockResult::kFree; + content::PartitionedLockManagerImpl::TestLockResult::kFree; } void WebAppLockManager::AcquireLock(Lock& lock, base::OnceClosure on_lock_acquired) { CHECK(!lock.HasLockBeenRequested()) << "Cannot acquire a lock twice."; - std::vector<content::LeveledLockManager::LeveledLockRequest> requests = - GetLockRequestsForLock(lock); - lock.holder_ = std::make_unique<content::LeveledLockHolder>(); + std::vector<content::PartitionedLockManager::PartitionedLockRequest> + requests = GetLockRequestsForLock(lock); + lock.holder_ = std::make_unique<content::PartitionedLockHolder>(); bool success = lock_manager_.AcquireLocks(std::move(requests), lock.holder_->AsWeakPtr(), std::move(on_lock_acquired));
diff --git a/chrome/browser/web_applications/locks/web_app_lock_manager.h b/chrome/browser/web_applications/locks/web_app_lock_manager.h index 9f593ce..bbffb48 100644 --- a/chrome/browser/web_applications/locks/web_app_lock_manager.h +++ b/chrome/browser/web_applications/locks/web_app_lock_manager.h
@@ -10,7 +10,7 @@ #include "base/callback_forward.h" #include "base/containers/flat_set.h" #include "chrome/browser/web_applications/web_app_id.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" namespace web_app { @@ -51,7 +51,7 @@ base::OnceClosure on_lock_acquired); private: - content::DisjointRangeLockManager lock_manager_{2}; + content::PartitionedLockManagerImpl lock_manager_{2}; }; } // namespace web_app
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 4c12c22..56d4418 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1665381181-6c04357dc0107d559222bffd4a36ab2d7530ada7.profdata +chrome-linux-main-1665403116-edc4d5b611473aea982a3176709d64b919a34747.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index bea4014..fdebf5c2 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1665381181-223e920cb0c878e32ef46fe4d4ce698272f4cd08.profdata +chrome-mac-main-1665403116-6b4c83a9a303ff616ca3927b10b35c6100a02ca3.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index aa47bcb2..4fe9bb7 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1665381181-b87eb3c35687591c4118434d3cb69a8319af5596.profdata +chrome-win32-main-1665403116-9aa0be9b05e17e99e87df9b0c1b4acf9c14ce7f4.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index d6c56d2a..38b6e7ba 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1665391197-fdf024cfd15aa7581b9d75533f809e47b8504782.profdata +chrome-win64-main-1665403116-07a960ea0328122340c0817d0f3fe69a85984d8b.profdata
diff --git a/chrome/common/features.gni b/chrome/common/features.gni index dc20a7f..b1a0c38 100644 --- a/chrome/common/features.gni +++ b/chrome/common/features.gni
@@ -10,6 +10,7 @@ import("//components/feed/features.gni") import("//components/nacl/features.gni") import("//components/safe_browsing/buildflags.gni") +import("//components/signin/features.gni") import("//crypto/features.gni") import("//device/vr/buildflags/buildflags.gni") import("//extensions/buildflags/buildflags.gni") @@ -99,6 +100,7 @@ "enable_hangout_services_extension=$enable_hangout_services_extension", "enable_nacl=$enable_nacl", "enable_plugins=$enable_plugins", + "enable_dice_support=$enable_dice_support", "enable_pdf=$enable_pdf", "enable_print_preview=$enable_print_preview", "enable_service_discovery=$enable_service_discovery",
diff --git a/chrome/docs/OWNERS b/chrome/docs/OWNERS index b1804300..b5dc4f6 100644 --- a/chrome/docs/OWNERS +++ b/chrome/docs/OWNERS
@@ -1,10 +1,2 @@ -# For documentation. -arthure@chromium.org -awatson@chromium.org -deannarubin@chromium.org -mkearney@chromium.org -rkunkle@chromium.org - # For server related things (Python, JavaScript, templates, etc). -mangini@chromium.org rockot@google.com
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 6844a8f..b82c38f 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -3433,7 +3433,7 @@ "../browser/ui/views/safe_browsing/deep_scanning_failure_modal_dialog_browsertest.cc", "../browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog_browsertest.cc", "../browser/ui/views/safe_browsing/prompt_for_scanning_modal_dialog_browsertest.cc", - "../browser/ui/views/safe_browsing/tailored_security_desktop_dialog_browsertest.cc", + "../browser/ui/views/safe_browsing/tailored_security_desktop_dialog_manager_browsertest.cc", "../browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_browsertest.cc", "../browser/ui/views/session_crashed_bubble_view_browsertest.cc", "../browser/ui/views/side_search/default_search_icon_source_browsertest.cc", @@ -8944,6 +8944,7 @@ "../browser/supervised_user/child_accounts/permission_request_creator_apiary_unittest.cc", "../browser/supervised_user/kids_chrome_management/kids_access_token_fetcher_unittest.cc", "../browser/supervised_user/kids_chrome_management/kids_external_fetcher_unittest.cc", + "../browser/supervised_user/kids_chrome_management/kids_profile_manager_unittest.cc", "../browser/supervised_user/kids_management_url_checker_client_unittest.cc", "../browser/supervised_user/parental_control_metrics_unittest.cc", "../browser/supervised_user/supervised_user_favicon_request_handler_unittest.cc",
diff --git a/chrome/test/data/webui/access_code_cast/access_code_cast_app_test.ts b/chrome/test/data/webui/access_code_cast/access_code_cast_app_test.ts index 23fc61b..8f59cc7 100644 --- a/chrome/test/data/webui/access_code_cast/access_code_cast_app_test.ts +++ b/chrome/test/data/webui/access_code_cast/access_code_cast_app_test.ts
@@ -25,7 +25,8 @@ ); BrowserProxy.setInstance(mockProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('access-code-cast-app'); document.body.appendChild(app); await waitAfterNextRender(app);
diff --git a/chrome/test/data/webui/access_code_cast/browser_proxy_test.ts b/chrome/test/data/webui/access_code_cast/browser_proxy_test.ts index 0aa22c1..abad5e6 100644 --- a/chrome/test/data/webui/access_code_cast/browser_proxy_test.ts +++ b/chrome/test/data/webui/access_code_cast/browser_proxy_test.ts
@@ -20,7 +20,8 @@ let proxy: BrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; BrowserProxy.setInstance(new BrowserProxy(true)); proxy = BrowserProxy.getInstance(); });
diff --git a/chrome/test/data/webui/access_code_cast/error_message_test.ts b/chrome/test/data/webui/access_code_cast/error_message_test.ts index 1a05c36..45d434f0 100644 --- a/chrome/test/data/webui/access_code_cast/error_message_test.ts +++ b/chrome/test/data/webui/access_code_cast/error_message_test.ts
@@ -14,7 +14,8 @@ let c2cErrorMessage: ErrorMessageElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; c2cErrorMessage = document.createElement('c2c-error-message'); document.body.appendChild(c2cErrorMessage);
diff --git a/chrome/test/data/webui/access_code_cast/passcode_input_test.ts b/chrome/test/data/webui/access_code_cast/passcode_input_test.ts index 88762778..ed082293 100644 --- a/chrome/test/data/webui/access_code_cast/passcode_input_test.ts +++ b/chrome/test/data/webui/access_code_cast/passcode_input_test.ts
@@ -13,7 +13,8 @@ let c2cInput: PasscodeInputElement; setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; c2cInput = document.createElement('c2c-passcode-input'); c2cInput.length = 6; @@ -136,4 +137,4 @@ assertTrue(c2cInput.getDisplayChar(1).classList.contains('disabled')); assertTrue(c2cInput.getDisplayChar(2).classList.contains('disabled')); }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/app_home/app_list_test.ts b/chrome/test/data/webui/app_home/app_list_test.ts index d846eeb6..140905f 100644 --- a/chrome/test/data/webui/app_home/app_list_test.ts +++ b/chrome/test/data/webui/app_home/app_list_test.ts
@@ -48,7 +48,8 @@ testProxy = new TestAppHomeBrowserProxy(apps); BrowserProxy.setInstance(testProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; appListElement = document.createElement('app-list'); document.body.appendChild(appListElement); await waitAfterNextRender(appListElement);
diff --git a/chrome/test/data/webui/app_home/tsconfig_base.json b/chrome/test/data/webui/app_home/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/app_home/tsconfig_base.json +++ b/chrome/test/data/webui/app_home/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/app_settings/app_test.ts b/chrome/test/data/webui/app_settings/app_test.ts index ffe22798..404f7713 100644 --- a/chrome/test/data/webui/app_settings/app_test.ts +++ b/chrome/test/data/webui/app_settings/app_test.ts
@@ -67,7 +67,8 @@ testProxy = new TestAppManagementBrowserProxy(app); BrowserProxy.setInstance(testProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; appSettingsApp = document.createElement('web-app-settings-app'); document.body.appendChild(appSettingsApp); await waitAfterNextRender(appSettingsApp);
diff --git a/chrome/test/data/webui/app_settings/tsconfig_base.json b/chrome/test/data/webui/app_settings/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/app_settings/tsconfig_base.json +++ b/chrome/test/data/webui/app_settings/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/bookmarks/test_util.ts b/chrome/test/data/webui/bookmarks/test_util.ts index b7490bc..82e5ee9 100644 --- a/chrome/test/data/webui/bookmarks/test_util.ts +++ b/chrome/test/data/webui/bookmarks/test_util.ts
@@ -10,7 +10,7 @@ * Replace the current body of the test with a new element. */ export function replaceBody(element: Element) { - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', '/');
diff --git a/chrome/test/data/webui/bookmarks/tsconfig_base.json b/chrome/test/data/webui/bookmarks/tsconfig_base.json index c7bb73b..6ec0e9db 100644 --- a/chrome/test/data/webui/bookmarks/tsconfig_base.json +++ b/chrome/test/data/webui/bookmarks/tsconfig_base.json
@@ -5,6 +5,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/chromeos/ash_common/list_property_update_behavior_tests.ts b/chrome/test/data/webui/chromeos/ash_common/list_property_update_behavior_tests.ts index 593d5fa..3fb03ff3 100644 --- a/chrome/test/data/webui/chromeos/ash_common/list_property_update_behavior_tests.ts +++ b/chrome/test/data/webui/chromeos/ash_common/list_property_update_behavior_tests.ts
@@ -137,7 +137,8 @@ // Initialize a list-property-update-behavior-test-element before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('list-property-update-behavior-test-element'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/chromeos/cloud_upload/tsconfig_base.json b/chrome/test/data/webui/chromeos/cloud_upload/tsconfig_base.json index 6938348..c11d0a444 100644 --- a/chrome/test/data/webui/chromeos/cloud_upload/tsconfig_base.json +++ b/chrome/test/data/webui/chromeos/cloud_upload/tsconfig_base.json
@@ -5,6 +5,6 @@ "typeRoots": [ "../../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/chromeos/manage_mirrorsync/tsconfig.json b/chrome/test/data/webui/chromeos/manage_mirrorsync/tsconfig.json index eba6718..09ae482 100644 --- a/chrome/test/data/webui/chromeos/manage_mirrorsync/tsconfig.json +++ b/chrome/test/data/webui/chromeos/manage_mirrorsync/tsconfig.json
@@ -4,7 +4,7 @@ "typeRoots": [ "../../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/chromeos/personalization_app/personalization_app_test_utils.ts b/chrome/test/data/webui/chromeos/personalization_app/personalization_app_test_utils.ts index 14fa7c1..78e9b4e4 100644 --- a/chrome/test/data/webui/chromeos/personalization_app/personalization_app_test_utils.ts +++ b/chrome/test/data/webui/chromeos/personalization_app/personalization_app_test_utils.ts
@@ -62,7 +62,7 @@ setUserProviderForTesting(userProvider); const personalizationStore = new TestPersonalizationStore(initialState); personalizationStore.replaceSingleton(); - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; return { ambientProvider, keyboardBacklightProvider,
diff --git a/chrome/test/data/webui/chromeos/personalization_app/tsconfig_base.json b/chrome/test/data/webui/chromeos/personalization_app/tsconfig_base.json index eba6718..09ae482 100644 --- a/chrome/test/data/webui/chromeos/personalization_app/tsconfig_base.json +++ b/chrome/test/data/webui/chromeos/personalization_app/tsconfig_base.json
@@ -4,7 +4,7 @@ "typeRoots": [ "../../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/chromeos/print_management/tsconfig_base.json b/chrome/test/data/webui/chromeos/print_management/tsconfig_base.json index edffdeca..c11d0a444 100644 --- a/chrome/test/data/webui/chromeos/print_management/tsconfig_base.json +++ b/chrome/test/data/webui/chromeos/print_management/tsconfig_base.json
@@ -5,6 +5,6 @@ "typeRoots": [ "../../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } -} \ No newline at end of file +}
diff --git a/chrome/test/data/webui/commander/commander_app_test.ts b/chrome/test/data/webui/commander/commander_app_test.ts index 1218ef2..8ccde72 100644 --- a/chrome/test/data/webui/commander/commander_app_test.ts +++ b/chrome/test/data/webui/commander/commander_app_test.ts
@@ -62,7 +62,8 @@ setup(async () => { testProxy = new TestCommanderBrowserProxy(); BrowserProxyImpl.setInstance(testProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('commander-app'); document.body.appendChild(app); await flushTasks();
diff --git a/chrome/test/data/webui/cr_components/app_management/file_handling_item_test.ts b/chrome/test/data/webui/cr_components/app_management/file_handling_item_test.ts index d6849805..18f6b66e 100644 --- a/chrome/test/data/webui/cr_components/app_management/file_handling_item_test.ts +++ b/chrome/test/data/webui/cr_components/app_management/file_handling_item_test.ts
@@ -22,7 +22,8 @@ let app: App; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = createTestApp(); testProxy = new TestAppManagementBrowserProxy(); BrowserProxy.setInstance(testProxy);
diff --git a/chrome/test/data/webui/cr_components/app_management/permission_item_test.ts b/chrome/test/data/webui/cr_components/app_management/permission_item_test.ts index 547be0a..6e9b9762 100644 --- a/chrome/test/data/webui/cr_components/app_management/permission_item_test.ts +++ b/chrome/test/data/webui/cr_components/app_management/permission_item_test.ts
@@ -20,7 +20,8 @@ let testProxy: TestAppManagementBrowserProxy; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const app = createTestApp(); testProxy = new TestAppManagementBrowserProxy(); BrowserProxy.setInstance(testProxy);
diff --git a/chrome/test/data/webui/cr_components/app_management/window_mode_item_test.ts b/chrome/test/data/webui/cr_components/app_management/window_mode_item_test.ts index 65812bd..e0ac1157 100644 --- a/chrome/test/data/webui/cr_components/app_management/window_mode_item_test.ts +++ b/chrome/test/data/webui/cr_components/app_management/window_mode_item_test.ts
@@ -19,7 +19,8 @@ let testProxy: TestAppManagementBrowserProxy; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testProxy = new TestAppManagementBrowserProxy(); BrowserProxy.setInstance(testProxy); });
diff --git a/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.ts b/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.ts index 8e8f6f68..ceeecc5de 100644 --- a/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.ts +++ b/chrome/test/data/webui/cr_components/certificate_manager_provisioning_test.ts
@@ -198,7 +198,8 @@ let dialog: CertificateProvisioningDetailsDialogElement; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestCertificateProvisioningBrowserProxy(); CertificateProvisioningBrowserProxyImpl.setInstance(browserProxy);
diff --git a/chrome/test/data/webui/cr_components/certificate_manager_test.ts b/chrome/test/data/webui/cr_components/certificate_manager_test.ts index 962b32ca..c24684c 100644 --- a/chrome/test/data/webui/cr_components/certificate_manager_test.ts +++ b/chrome/test/data/webui/cr_components/certificate_manager_test.ts
@@ -200,7 +200,8 @@ browserProxy.setCaCertificateTrust(caTrustInfo); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('ca-trust-edit-dialog'); }); @@ -286,7 +287,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('certificate-delete-confirmation-dialog'); dialog.model = model; dialog.certificateType = CertificateType.PERSONAL; @@ -335,7 +337,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('certificate-password-encryption-dialog'); document.body.appendChild(dialog); }); @@ -407,7 +410,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('certificate-password-decryption-dialog'); document.body.appendChild(dialog); }); @@ -468,7 +472,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; subentry = document.createElement('certificate-subentry'); subentry.model = createSampleCertificateSubnode(); subentry.certificateType = CertificateType.PERSONAL; @@ -600,7 +605,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('certificate-manager'); document.body.appendChild(page); }); @@ -863,7 +869,8 @@ setup(function() { browserProxy = new TestCertificatesBrowserProxy(); CertificatesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('certificate-list'); document.body.appendChild(element); });
diff --git a/chrome/test/data/webui/cr_components/color_change_listener_test.ts b/chrome/test/data/webui/cr_components/color_change_listener_test.ts index 206858dc..98ab7347 100644 --- a/chrome/test/data/webui/cr_components/color_change_listener_test.ts +++ b/chrome/test/data/webui/cr_components/color_change_listener_test.ts
@@ -60,7 +60,8 @@ assertFalse(refreshColorCss()); // Handles the case where the link element does not exist. - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; assertFalse(refreshColorCss()); }); });
diff --git a/chrome/test/data/webui/cr_components/customize_themes_test.ts b/chrome/test/data/webui/cr_components/customize_themes_test.ts index 32162cb8..6b8b8160 100644 --- a/chrome/test/data/webui/cr_components/customize_themes_test.ts +++ b/chrome/test/data/webui/cr_components/customize_themes_test.ts
@@ -119,7 +119,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testProxy = new TestCustomizeThemesBrowserProxy(); CustomizeThemesBrowserProxyImpl.setInstance(testProxy); }); @@ -552,7 +553,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; themeIcon = document.createElement('cr-theme-icon'); document.body.appendChild(themeIcon);
diff --git a/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts b/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts index 5eaaaae8..1e446ed 100644 --- a/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts +++ b/chrome/test/data/webui/cr_components/help_bubble_mixin_test.ts
@@ -201,7 +201,8 @@ testProxy = new TestHelpBubbleProxy(); HelpBubbleProxyImpl.setInstance(testProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; container = document.createElement('help-bubble-mixin-test-element'); document.body.appendChild(container); return waitForVisibilityEvents();
diff --git a/chrome/test/data/webui/cr_components/history_clusters_test.ts b/chrome/test/data/webui/cr_components/history_clusters_test.ts index 91c3929f..2810bd91 100644 --- a/chrome/test/data/webui/cr_components/history_clusters_test.ts +++ b/chrome/test/data/webui/cr_components/history_clusters_test.ts
@@ -24,7 +24,8 @@ suite('history-clusters', () => { setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; createBrowserProxy(); });
diff --git a/chrome/test/data/webui/cr_components/managed_dialog_test.ts b/chrome/test/data/webui/cr_components/managed_dialog_test.ts index 47fefe7..1d7462d9 100644 --- a/chrome/test/data/webui/cr_components/managed_dialog_test.ts +++ b/chrome/test/data/webui/cr_components/managed_dialog_test.ts
@@ -16,7 +16,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/cr_components/managed_footnote_test.ts b/chrome/test/data/webui/cr_components/managed_footnote_test.ts index f992b8e..da6e9aa 100644 --- a/chrome/test/data/webui/cr_components/managed_footnote_test.ts +++ b/chrome/test/data/webui/cr_components/managed_footnote_test.ts
@@ -21,7 +21,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/cr_components/most_visited_focus_test.ts b/chrome/test/data/webui/cr_components/most_visited_focus_test.ts index d04b5f5..b269f12 100644 --- a/chrome/test/data/webui/cr_components/most_visited_focus_test.ts +++ b/chrome/test/data/webui/cr_components/most_visited_focus_test.ts
@@ -45,7 +45,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const handler = TestBrowserProxy.fromClass(MostVisitedPageHandlerRemote); const callbackRouter = new MostVisitedPageCallbackRouter();
diff --git a/chrome/test/data/webui/cr_components/most_visited_test.ts b/chrome/test/data/webui/cr_components/most_visited_test.ts index 65dd938..6017314 100644 --- a/chrome/test/data/webui/cr_components/most_visited_test.ts +++ b/chrome/test/data/webui/cr_components/most_visited_test.ts
@@ -147,7 +147,8 @@ suite('General', () => { setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; createBrowserProxy(); createWindowProxy(); @@ -457,7 +458,8 @@ }); setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; createBrowserProxy(); createWindowProxy(); @@ -1005,7 +1007,8 @@ suite('Theming', () => { setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; createBrowserProxy(); createWindowProxy();
diff --git a/chrome/test/data/webui/cr_components/tsconfig_base.json b/chrome/test/data/webui/cr_components/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/cr_components/tsconfig_base.json +++ b/chrome/test/data/webui/cr_components/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/cr_elements/cr_a11y_announcer_test.ts b/chrome/test/data/webui/cr_elements/cr_a11y_announcer_test.ts index aceee617..f8363cfb 100644 --- a/chrome/test/data/webui/cr_elements/cr_a11y_announcer_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_a11y_announcer_test.ts
@@ -10,7 +10,8 @@ suite('CrA11yAnnouncerElementTest', () => { setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('CreatesAndGetsAnnouncers', () => {
diff --git a/chrome/test/data/webui/cr_elements/cr_auto_img_test.ts b/chrome/test/data/webui/cr_elements/cr_auto_img_test.ts index a44f451..3cad297 100644 --- a/chrome/test/data/webui/cr_elements/cr_auto_img_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_auto_img_test.ts
@@ -32,7 +32,8 @@ let img: CrAutoImgElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; img = new CrAutoImgElement(); document.body.appendChild(img); });
diff --git a/chrome/test/data/webui/cr_elements/cr_button_tests.ts b/chrome/test/data/webui/cr_elements/cr_button_tests.ts index 4e67ccc..ec396be 100644 --- a/chrome/test/data/webui/cr_elements/cr_button_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_button_tests.ts
@@ -14,7 +14,8 @@ let button: CrButtonElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; button = /** @type {!CrButtonElement} */ (document.createElement('cr-button')); document.body.appendChild(button);
diff --git a/chrome/test/data/webui/cr_elements/cr_card_radio_button_test.ts b/chrome/test/data/webui/cr_elements/cr_card_radio_button_test.ts index e2b55c3..29f1de61 100644 --- a/chrome/test/data/webui/cr_elements/cr_card_radio_button_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_card_radio_button_test.ts
@@ -14,7 +14,8 @@ let radioButton: CrCardRadioButtonElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; radioButton = document.createElement('cr-card-radio-button'); document.body.appendChild(radioButton); });
diff --git a/chrome/test/data/webui/cr_elements/cr_container_shadow_behavior_test.ts b/chrome/test/data/webui/cr_elements/cr_container_shadow_behavior_test.ts index 529950b0..1779a109 100644 --- a/chrome/test/data/webui/cr_elements/cr_container_shadow_behavior_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_container_shadow_behavior_test.ts
@@ -43,7 +43,8 @@ customElements.define(TestElement.is, TestElement); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('no bottom shadow', function() {
diff --git a/chrome/test/data/webui/cr_elements/cr_container_shadow_mixin_test.ts b/chrome/test/data/webui/cr_elements/cr_container_shadow_mixin_test.ts index b584b01..b51876a 100644 --- a/chrome/test/data/webui/cr_elements/cr_container_shadow_mixin_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_container_shadow_mixin_test.ts
@@ -42,7 +42,8 @@ customElements.define(TestElement.is, TestElement); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('no bottom shadow', function() {
diff --git a/chrome/test/data/webui/cr_elements/cr_dialog_test.ts b/chrome/test/data/webui/cr_elements/cr_dialog_test.ts index a230ebd9..eb4359ab 100644 --- a/chrome/test/data/webui/cr_elements/cr_dialog_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_dialog_test.ts
@@ -48,7 +48,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Ensure svg, which is referred to by a relative URL, is loaded from // chrome://resources and not chrome://test const base = document.createElement('base');
diff --git a/chrome/test/data/webui/cr_elements/cr_drawer_tests.ts b/chrome/test/data/webui/cr_elements/cr_drawer_tests.ts index 2d6b3f4..8238d58 100644 --- a/chrome/test/data/webui/cr_elements/cr_drawer_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_drawer_tests.ts
@@ -15,7 +15,8 @@ suite('cr-drawer', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); function createDrawer(align: string): CrDrawerElement {
diff --git a/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts b/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts index 7b695dc..ab0bd98 100644 --- a/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_expand_button_tests.ts
@@ -17,7 +17,8 @@ const collapseTitle = 'collapse title'; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; button = document.createElement('cr-expand-button'); document.body.appendChild(button); icon = button.shadowRoot!.querySelector<CrIconButtonElement>('#icon')!;
diff --git a/chrome/test/data/webui/cr_elements/cr_fingerprint_progress_arc_tests.ts b/chrome/test/data/webui/cr_elements/cr_fingerprint_progress_arc_tests.ts index 0c4f34fb..9f52d5007 100644 --- a/chrome/test/data/webui/cr_elements/cr_fingerprint_progress_arc_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_fingerprint_progress_arc_tests.ts
@@ -82,7 +82,8 @@ fakeMediaQueryList = new FakeMediaQueryList('(prefers-color-scheme: dark)'); matchMediaMock.returnValue = fakeMediaQueryList; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; progressArc = /** @type {!CrFingerprintProgressArcElement} */ ( document.createElement('cr-fingerprint-progress-arc')); document.body.appendChild(progressArc);
diff --git a/chrome/test/data/webui/cr_elements/cr_grid_focus_test.ts b/chrome/test/data/webui/cr_elements/cr_grid_focus_test.ts index 688db1c..15a556f 100644 --- a/chrome/test/data/webui/cr_elements/cr_grid_focus_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_grid_focus_test.ts
@@ -37,7 +37,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('right focuses right item', () => {
diff --git a/chrome/test/data/webui/cr_elements/cr_icon_button_tests.ts b/chrome/test/data/webui/cr_elements/cr_icon_button_tests.ts index 24ff048..a5fbbcbb 100644 --- a/chrome/test/data/webui/cr_elements/cr_icon_button_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_icon_button_tests.ts
@@ -24,7 +24,8 @@ } setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; button = document.createElement('cr-icon-button'); document.body.appendChild(button); await flushTasks();
diff --git a/chrome/test/data/webui/cr_elements/cr_input_test.ts b/chrome/test/data/webui/cr_elements/cr_input_test.ts index 675d137..a29e62b 100644 --- a/chrome/test/data/webui/cr_elements/cr_input_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_input_test.ts
@@ -20,7 +20,8 @@ }); function regenerateNewInput() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; crInput = document.createElement('cr-input'); document.body.appendChild(crInput); input = crInput.inputElement; @@ -278,7 +279,8 @@ * This function assumes attributes are passed in priority order. */ function testAriaLabel(attributes: string[]) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; crInput = document.createElement('cr-input'); attributes.forEach(attribute => { // Using their name as the value out of convenience.
diff --git a/chrome/test/data/webui/cr_elements/cr_lottie_tests.ts b/chrome/test/data/webui/cr_elements/cr_lottie_tests.ts index 65f6414e..2240e10 100644 --- a/chrome/test/data/webui/cr_elements/cr_lottie_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_lottie_tests.ts
@@ -82,7 +82,8 @@ }); function createLottieElement(autoplay: boolean = true) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; crLottieElement = document.createElement('cr-lottie'); crLottieElement.animationUrl = SAMPLE_LOTTIE_GREEN; crLottieElement.autoplay = autoplay;
diff --git a/chrome/test/data/webui/cr_elements/cr_menu_selector_focus_test.ts b/chrome/test/data/webui/cr_elements/cr_menu_selector_focus_test.ts index d794c48..e78049bd 100644 --- a/chrome/test/data/webui/cr_elements/cr_menu_selector_focus_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_menu_selector_focus_test.ts
@@ -15,7 +15,8 @@ let element: CrMenuSelector; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('cr-menu-selector') as CrMenuSelector; // Slot some menu items.
diff --git a/chrome/test/data/webui/cr_elements/cr_policy_indicator_behavior_tests.ts b/chrome/test/data/webui/cr_elements/cr_policy_indicator_behavior_tests.ts index 0ed7ce92..a11ba88f 100644 --- a/chrome/test/data/webui/cr_elements/cr_policy_indicator_behavior_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_policy_indicator_behavior_tests.ts
@@ -29,7 +29,8 @@ let indicator: TestIndicatorElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; indicator = document.createElement('test-indicator') as TestIndicatorElement; document.body.appendChild(indicator);
diff --git a/chrome/test/data/webui/cr_elements/cr_policy_indicator_mixin_tests.ts b/chrome/test/data/webui/cr_elements/cr_policy_indicator_mixin_tests.ts index b13d4a4e..3f3acab 100644 --- a/chrome/test/data/webui/cr_elements/cr_policy_indicator_mixin_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_policy_indicator_mixin_tests.ts
@@ -26,7 +26,8 @@ let indicator: TestIndicatorElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; indicator = document.createElement('test-indicator') as TestIndicatorElement; document.body.appendChild(indicator);
diff --git a/chrome/test/data/webui/cr_elements/cr_policy_indicator_tests.ts b/chrome/test/data/webui/cr_elements/cr_policy_indicator_tests.ts index 93855cad..2b32693 100644 --- a/chrome/test/data/webui/cr_elements/cr_policy_indicator_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_policy_indicator_tests.ts
@@ -17,7 +17,8 @@ let indicator: CrPolicyIndicatorElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; indicator = document.createElement('cr-policy-indicator'); document.body.appendChild(indicator); });
diff --git a/chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.ts b/chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.ts index a099a056..9f90524 100644 --- a/chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.ts
@@ -17,7 +17,8 @@ let indicator: CrPolicyPrefIndicatorElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; indicator = document.createElement('cr-policy-pref-indicator'); document.body.appendChild(indicator);
diff --git a/chrome/test/data/webui/cr_elements/cr_radio_button_test.ts b/chrome/test/data/webui/cr_elements/cr_radio_button_test.ts index 362b4ef3..0912e682 100644 --- a/chrome/test/data/webui/cr_elements/cr_radio_button_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_radio_button_test.ts
@@ -13,7 +13,8 @@ let radioButton: CrRadioButtonElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; radioButton = document.createElement('cr-radio-button'); document.body.appendChild(radioButton); });
diff --git a/chrome/test/data/webui/cr_elements/cr_scrollable_behavior_tests.ts b/chrome/test/data/webui/cr_elements/cr_scrollable_behavior_tests.ts index c439c17..c29525f 100644 --- a/chrome/test/data/webui/cr_elements/cr_scrollable_behavior_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_scrollable_behavior_tests.ts
@@ -56,7 +56,8 @@ let ironList: IronListElement; setup(function(done) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-element') as TestElement; document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/cr_elements/cr_scrollable_mixin_tests.ts b/chrome/test/data/webui/cr_elements/cr_scrollable_mixin_tests.ts index 2a88234..82c830d 100644 --- a/chrome/test/data/webui/cr_elements/cr_scrollable_mixin_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_scrollable_mixin_tests.ts
@@ -54,7 +54,8 @@ let ironList: IronListElement; setup(function(done) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-element') as TestElement; document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/cr_elements/cr_search_field_tests.ts b/chrome/test/data/webui/cr_elements/cr_search_field_tests.ts index b0cdfd4..e21b37c 100644 --- a/chrome/test/data/webui/cr_elements/cr_search_field_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_search_field_tests.ts
@@ -23,7 +23,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Ensure svg, which is referred to by a relative URL, is loaded from // chrome://resources and not chrome://test const base = document.createElement('base');
diff --git a/chrome/test/data/webui/cr_elements/cr_tabs_test.ts b/chrome/test/data/webui/cr_elements/cr_tabs_test.ts index dc31437c..d3d03a2e 100644 --- a/chrome/test/data/webui/cr_elements/cr_tabs_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_tabs_test.ts
@@ -16,7 +16,8 @@ let tabs: CrTabsElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; tabs = document.createElement('cr-tabs'); tabs.tabNames = ['tab1', 'tab2', 'tab3']; tabs.tabIcons = ['chrome://icon1.png'];
diff --git a/chrome/test/data/webui/cr_elements/cr_toast_manager_test.ts b/chrome/test/data/webui/cr_elements/cr_toast_manager_test.ts index b94efee..975377fd 100644 --- a/chrome/test/data/webui/cr_elements/cr_toast_manager_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_toast_manager_test.ts
@@ -15,7 +15,8 @@ let toastManager: CrToastManagerElement; suiteSetup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toastManager = /** @type {!CrToastManagerElement} */ ( document.createElement('cr-toast-manager')); document.body.appendChild(toastManager);
diff --git a/chrome/test/data/webui/cr_elements/cr_toast_test.ts b/chrome/test/data/webui/cr_elements/cr_toast_test.ts index a7f2a2f..982b228 100644 --- a/chrome/test/data/webui/cr_elements/cr_toast_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_toast_test.ts
@@ -15,7 +15,8 @@ let mockTimer: MockTimer; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toast = document.createElement('cr-toast'); document.body.appendChild(toast); mockTimer = new MockTimer();
diff --git a/chrome/test/data/webui/cr_elements/cr_toggle_test.ts b/chrome/test/data/webui/cr_elements/cr_toggle_test.ts index 98c878324..a893676 100644 --- a/chrome/test/data/webui/cr_elements/cr_toggle_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_toggle_test.ts
@@ -14,7 +14,8 @@ let toggle: CrToggleElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toggle = document.createElement('cr-toggle'); document.body.appendChild(toggle); assertNotChecked();
diff --git a/chrome/test/data/webui/cr_elements/cr_toolbar_focus_tests.ts b/chrome/test/data/webui/cr_elements/cr_toolbar_focus_tests.ts index 430389a..169f571 100644 --- a/chrome/test/data/webui/cr_elements/cr_toolbar_focus_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_toolbar_focus_tests.ts
@@ -15,7 +15,8 @@ let toolbar: CrToolbarElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toolbar = document.createElement('cr-toolbar'); document.body.appendChild(toolbar); });
diff --git a/chrome/test/data/webui/cr_elements/cr_toolbar_search_field_tests.ts b/chrome/test/data/webui/cr_elements/cr_toolbar_search_field_tests.ts index 7b76e01..9b72d189 100644 --- a/chrome/test/data/webui/cr_elements/cr_toolbar_search_field_tests.ts +++ b/chrome/test/data/webui/cr_elements/cr_toolbar_search_field_tests.ts
@@ -24,7 +24,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; field = document.createElement('cr-toolbar-search-field'); searches = []; field.addEventListener('search-changed', function(event) {
diff --git a/chrome/test/data/webui/cr_elements/cr_toolbar_test.ts b/chrome/test/data/webui/cr_elements/cr_toolbar_test.ts index b4675b1..4d58c3a 100644 --- a/chrome/test/data/webui/cr_elements/cr_toolbar_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_toolbar_test.ts
@@ -16,7 +16,8 @@ let toolbar: CrToolbarElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toolbar = document.createElement('cr-toolbar'); document.body.appendChild(toolbar); });
diff --git a/chrome/test/data/webui/cr_elements/cr_tree_test.ts b/chrome/test/data/webui/cr_elements/cr_tree_test.ts index 7ca8e53..2b75b62b8 100644 --- a/chrome/test/data/webui/cr_elements/cr_tree_test.ts +++ b/chrome/test/data/webui/cr_elements/cr_tree_test.ts
@@ -21,7 +21,8 @@ let baz: CrTreeItemElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; tree = document.createElement('cr-tree'); document.body.appendChild(tree);
diff --git a/chrome/test/data/webui/cr_elements/find_shortcut_mixin_test.ts b/chrome/test/data/webui/cr_elements/find_shortcut_mixin_test.ts index 63a1aaf..8327886 100644 --- a/chrome/test/data/webui/cr_elements/find_shortcut_mixin_test.ts +++ b/chrome/test/data/webui/cr_elements/find_shortcut_mixin_test.ts
@@ -110,11 +110,13 @@ customElements.define('find-shortcut-element', FindShortcutElement); suiteSetup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); teardown(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; assertEquals(0, FindShortcutManager.listeners.length); });
diff --git a/chrome/test/data/webui/cr_elements/i18n_mixin_test.ts b/chrome/test/data/webui/cr_elements/i18n_mixin_test.ts index 345cd297..a3a84b5 100644 --- a/chrome/test/data/webui/cr_elements/i18n_mixin_test.ts +++ b/chrome/test/data/webui/cr_elements/i18n_mixin_test.ts
@@ -32,7 +32,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-element') as TestElement; document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/cr_elements/list_property_update_mixin_tests.ts b/chrome/test/data/webui/cr_elements/list_property_update_mixin_tests.ts index e4153291..f5668967 100644 --- a/chrome/test/data/webui/cr_elements/list_property_update_mixin_tests.ts +++ b/chrome/test/data/webui/cr_elements/list_property_update_mixin_tests.ts
@@ -135,7 +135,8 @@ // Initialize a list-property-update-mixin-test-element before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('list-property-update-mixin-test-element'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/cr_elements/tsconfig_base.json b/chrome/test/data/webui/cr_elements/tsconfig_base.json index c7bb73b..6ec0e9db 100644 --- a/chrome/test/data/webui/cr_elements/tsconfig_base.json +++ b/chrome/test/data/webui/cr_elements/tsconfig_base.json
@@ -5,6 +5,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/cr_elements/web_ui_listener_mixin_test.ts b/chrome/test/data/webui/cr_elements/web_ui_listener_mixin_test.ts index 31c0db5..14a1894 100644 --- a/chrome/test/data/webui/cr_elements/web_ui_listener_mixin_test.ts +++ b/chrome/test/data/webui/cr_elements/web_ui_listener_mixin_test.ts
@@ -16,7 +16,8 @@ let testElement: TestElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-element') as TestElement; document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/cr_focus_row_behavior_test.ts b/chrome/test/data/webui/cr_focus_row_behavior_test.ts index 6a223c0..9ed9c947 100644 --- a/chrome/test/data/webui/cr_focus_row_behavior_test.ts +++ b/chrome/test/data/webui/cr_focus_row_behavior_test.ts
@@ -84,7 +84,8 @@ let testElement: TestFocusRowBehaviorElement; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-focus-row-behavior-element'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/cr_focus_row_mixin_test.ts b/chrome/test/data/webui/cr_focus_row_mixin_test.ts index 6ee0310..83636a9 100644 --- a/chrome/test/data/webui/cr_focus_row_mixin_test.ts +++ b/chrome/test/data/webui/cr_focus_row_mixin_test.ts
@@ -83,7 +83,8 @@ let testElement: TestFocusRowMixinElement; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-focus-row-mixin-element'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/downloads/item_tests.ts b/chrome/test/data/webui/downloads/item_tests.ts index a14a0e6..d1a7628 100644 --- a/chrome/test/data/webui/downloads/item_tests.ts +++ b/chrome/test/data/webui/downloads/item_tests.ts
@@ -16,7 +16,8 @@ let toastManager: CrToastManagerElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // This isn't strictly necessary, but is a probably good idea. BrowserProxy.setInstance(new TestDownloadsProxy());
diff --git a/chrome/test/data/webui/downloads/manager_tests.ts b/chrome/test/data/webui/downloads/manager_tests.ts index 3cd2000..3e947d15f 100644 --- a/chrome/test/data/webui/downloads/manager_tests.ts +++ b/chrome/test/data/webui/downloads/manager_tests.ts
@@ -19,7 +19,8 @@ let toastManager: CrToastManagerElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testBrowserProxy = new TestDownloadsProxy(); callbackRouterRemote = testBrowserProxy.callbackRouterRemote;
diff --git a/chrome/test/data/webui/downloads/toolbar_tests.ts b/chrome/test/data/webui/downloads/toolbar_tests.ts index d9eea99..607f86d 100644 --- a/chrome/test/data/webui/downloads/toolbar_tests.ts +++ b/chrome/test/data/webui/downloads/toolbar_tests.ts
@@ -19,7 +19,8 @@ } } - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toolbar = document.createElement('downloads-toolbar'); SearchService.setInstance(new TestSearchService()); document.body.appendChild(toolbar);
diff --git a/chrome/test/data/webui/downloads/tsconfig_base.json b/chrome/test/data/webui/downloads/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/downloads/tsconfig_base.json +++ b/chrome/test/data/webui/downloads/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/extensions/activity_log_history_item_test.ts b/chrome/test/data/webui/extensions/activity_log_history_item_test.ts index 890d0fc..5e06ac5d 100644 --- a/chrome/test/data/webui/extensions/activity_log_history_item_test.ts +++ b/chrome/test/data/webui/extensions/activity_log_history_item_test.ts
@@ -20,7 +20,8 @@ // Initialize an extension activity log item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testActivityGroup = { activityIds: new Set(['1']), key: 'i18n.getUILanguage',
diff --git a/chrome/test/data/webui/extensions/activity_log_history_test.ts b/chrome/test/data/webui/extensions/activity_log_history_test.ts index 302a6d2..34a26d53 100644 --- a/chrome/test/data/webui/extensions/activity_log_history_test.ts +++ b/chrome/test/data/webui/extensions/activity_log_history_test.ts
@@ -145,7 +145,8 @@ let boundTestVisible: (selector: string, expectedVisible: boolean) => void; function setupActivityLogHistory() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; activityLogHistory = document.createElement('activity-log-history'); boundTestVisible = testVisible.bind(null, activityLogHistory);
diff --git a/chrome/test/data/webui/extensions/activity_log_stream_item_test.ts b/chrome/test/data/webui/extensions/activity_log_stream_item_test.ts index b10a504..ef5a223b 100644 --- a/chrome/test/data/webui/extensions/activity_log_stream_item_test.ts +++ b/chrome/test/data/webui/extensions/activity_log_stream_item_test.ts
@@ -24,7 +24,8 @@ // Initialize an activity log stream item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testStreamItem = { name: 'testAPI.testMethod', timestamp: 1550101623113,
diff --git a/chrome/test/data/webui/extensions/activity_log_stream_test.ts b/chrome/test/data/webui/extensions/activity_log_stream_test.ts index 8492435..4ec1182 100644 --- a/chrome/test/data/webui/extensions/activity_log_stream_test.ts +++ b/chrome/test/data/webui/extensions/activity_log_stream_test.ts
@@ -54,7 +54,8 @@ // Initialize an extension activity log item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; proxyDelegate = new TestService(); activityLogStream = document.createElement('activity-log-stream');
diff --git a/chrome/test/data/webui/extensions/activity_log_test.ts b/chrome/test/data/webui/extensions/activity_log_test.ts index 9fbe3e2a..8f66d54 100644 --- a/chrome/test/data/webui/extensions/activity_log_test.ts +++ b/chrome/test/data/webui/extensions/activity_log_test.ts
@@ -43,7 +43,8 @@ // Initialize an extension activity log before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Give this a large enough height that the tabs will be visible. document.body.style.height = '300px';
diff --git a/chrome/test/data/webui/extensions/code_section_test.ts b/chrome/test/data/webui/extensions/code_section_test.ts index 6ff8b47..df0f8c7f 100644 --- a/chrome/test/data/webui/extensions/code_section_test.ts +++ b/chrome/test/data/webui/extensions/code_section_test.ts
@@ -28,7 +28,8 @@ // Initialize an extension item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; codeSection = document.createElement('extensions-code-section'); codeSection.couldNotDisplayCode = couldNotDisplayCode; document.body.appendChild(codeSection);
diff --git a/chrome/test/data/webui/extensions/detail_view_test.ts b/chrome/test/data/webui/extensions/detail_view_test.ts index 9f26e56..6a3c214e 100644 --- a/chrome/test/data/webui/extensions/detail_view_test.ts +++ b/chrome/test/data/webui/extensions/detail_view_test.ts
@@ -44,7 +44,8 @@ // Initialize an extension item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; extensionData = createExtensionInfo({ incognitoAccess: {isEnabled: true, isActive: false}, fileAccess: {isEnabled: true, isActive: false},
diff --git a/chrome/test/data/webui/extensions/error_console_test.ts b/chrome/test/data/webui/extensions/error_console_test.ts index 33735d82..c201352 100644 --- a/chrome/test/data/webui/extensions/error_console_test.ts +++ b/chrome/test/data/webui/extensions/error_console_test.ts
@@ -17,7 +17,8 @@ // Initialize an extension activity log item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState( {}, '', '?errors=oehidglfoeondlkoeloailjdmmghacge'); const manager = document.createElement('extensions-manager');
diff --git a/chrome/test/data/webui/extensions/error_page_test.ts b/chrome/test/data/webui/extensions/error_page_test.ts index e421cbe..d345c82 100644 --- a/chrome/test/data/webui/extensions/error_page_test.ts +++ b/chrome/test/data/webui/extensions/error_page_test.ts
@@ -70,7 +70,8 @@ // Initialize an extension item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const runtimeError = Object.assign( { contextUrl: 'Unknown',
diff --git a/chrome/test/data/webui/extensions/extension_options_dialog_test.ts b/chrome/test/data/webui/extensions/extension_options_dialog_test.ts index 3dfb642..88aeb3f 100644 --- a/chrome/test/data/webui/extensions/extension_options_dialog_test.ts +++ b/chrome/test/data/webui/extensions/extension_options_dialog_test.ts
@@ -16,7 +16,8 @@ suite('ExtensionOptionsDialogTest', () => { test('show options dialog', async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState( {}, '', '/?id=ibbpngabdmdpednkhonkkobdeccpkiff');
diff --git a/chrome/test/data/webui/extensions/host_permissions_toggle_list_test.ts b/chrome/test/data/webui/extensions/host_permissions_toggle_list_test.ts index 51dad63c..04f9ab2 100644 --- a/chrome/test/data/webui/extensions/host_permissions_toggle_list_test.ts +++ b/chrome/test/data/webui/extensions/host_permissions_toggle_list_test.ts
@@ -25,7 +25,8 @@ }; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('extensions-host-permissions-toggle-list'); delegate = new TestService(); delegate.userSiteSettings = userSiteSettings;
diff --git a/chrome/test/data/webui/extensions/item_list_test.ts b/chrome/test/data/webui/extensions/item_list_test.ts index 72a58db..4af3c6d9 100644 --- a/chrome/test/data/webui/extensions/item_list_test.ts +++ b/chrome/test/data/webui/extensions/item_list_test.ts
@@ -31,7 +31,8 @@ // Initialize an extension item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; itemList = document.createElement('extensions-item-list'); boundTestVisible = testVisible.bind(null, itemList);
diff --git a/chrome/test/data/webui/extensions/item_test.ts b/chrome/test/data/webui/extensions/item_test.ts index 6d8d0a9..4f3fad7c 100644 --- a/chrome/test/data/webui/extensions/item_test.ts +++ b/chrome/test/data/webui/extensions/item_test.ts
@@ -97,7 +97,8 @@ // Initialize an extension item before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; mockDelegate = new MockItemDelegate(); item = document.createElement('extensions-item'); item.data = createExtensionInfo();
diff --git a/chrome/test/data/webui/extensions/keyboard_shortcuts_test.ts b/chrome/test/data/webui/extensions/keyboard_shortcuts_test.ts index 327df679..752845b 100644 --- a/chrome/test/data/webui/extensions/keyboard_shortcuts_test.ts +++ b/chrome/test/data/webui/extensions/keyboard_shortcuts_test.ts
@@ -34,7 +34,8 @@ let testDelegate: TestService; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; keyboardShortcuts = document.createElement('extensions-keyboard-shortcuts'); testDelegate = new TestService(); keyboardShortcuts.delegate = testDelegate;
diff --git a/chrome/test/data/webui/extensions/kiosk_mode_manager_unit_test.ts b/chrome/test/data/webui/extensions/kiosk_mode_manager_unit_test.ts index 8d09d10..b1009bd 100644 --- a/chrome/test/data/webui/extensions/kiosk_mode_manager_unit_test.ts +++ b/chrome/test/data/webui/extensions/kiosk_mode_manager_unit_test.ts
@@ -36,7 +36,8 @@ browserProxy = new TestKioskBrowserProxy(); KioskBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; service = new TestService(); Service.setInstance(service);
diff --git a/chrome/test/data/webui/extensions/kiosk_mode_test.ts b/chrome/test/data/webui/extensions/kiosk_mode_test.ts index 1f1ae08d..383c7a70 100644 --- a/chrome/test/data/webui/extensions/kiosk_mode_test.ts +++ b/chrome/test/data/webui/extensions/kiosk_mode_test.ts
@@ -69,7 +69,8 @@ } async function initPage() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy.reset(); dialog = document.createElement('extensions-kiosk-dialog'); document.body.appendChild(dialog);
diff --git a/chrome/test/data/webui/extensions/load_error_test.ts b/chrome/test/data/webui/extensions/load_error_test.ts index af4bf363..c4d93ee 100644 --- a/chrome/test/data/webui/extensions/load_error_test.ts +++ b/chrome/test/data/webui/extensions/load_error_test.ts
@@ -36,7 +36,8 @@ }; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; mockDelegate = new TestService(); loadError = document.createElement('extensions-load-error'); loadError.delegate = mockDelegate;
diff --git a/chrome/test/data/webui/extensions/manager_test.ts b/chrome/test/data/webui/extensions/manager_test.ts index a79354fd..37946a7c 100644 --- a/chrome/test/data/webui/extensions/manager_test.ts +++ b/chrome/test/data/webui/extensions/manager_test.ts
@@ -39,7 +39,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; manager = document.createElement('extensions-manager'); document.body.appendChild(manager);
diff --git a/chrome/test/data/webui/extensions/manager_test_with_activity_log_flag.ts b/chrome/test/data/webui/extensions/manager_test_with_activity_log_flag.ts index f1eea3d..36a47ff2 100644 --- a/chrome/test/data/webui/extensions/manager_test_with_activity_log_flag.ts +++ b/chrome/test/data/webui/extensions/manager_test_with_activity_log_flag.ts
@@ -29,7 +29,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState( {}, '', '/?id=ldnnhddmnhbkjipkidpdiheffobcpfmf');
diff --git a/chrome/test/data/webui/extensions/manager_test_with_id_query_param.ts b/chrome/test/data/webui/extensions/manager_test_with_id_query_param.ts index 49bb577..0339bfc9 100644 --- a/chrome/test/data/webui/extensions/manager_test_with_id_query_param.ts +++ b/chrome/test/data/webui/extensions/manager_test_with_id_query_param.ts
@@ -29,7 +29,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState( {}, '', '/?id=ldnnhddmnhbkjipkidpdiheffobcpfmf'); manager = document.createElement('extensions-manager');
diff --git a/chrome/test/data/webui/extensions/manager_unit_test.ts b/chrome/test/data/webui/extensions/manager_unit_test.ts index b512aa8..375b878 100644 --- a/chrome/test/data/webui/extensions/manager_unit_test.ts +++ b/chrome/test/data/webui/extensions/manager_unit_test.ts
@@ -37,7 +37,8 @@ let service: TestService; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; service = new TestService(); Service.setInstance(service);
diff --git a/chrome/test/data/webui/extensions/manager_unit_test_with_activity_log_flag.ts b/chrome/test/data/webui/extensions/manager_unit_test_with_activity_log_flag.ts index e1e01a40d..3a045f14 100644 --- a/chrome/test/data/webui/extensions/manager_unit_test_with_activity_log_flag.ts +++ b/chrome/test/data/webui/extensions/manager_unit_test_with_activity_log_flag.ts
@@ -33,7 +33,8 @@ const testActivities = {activities: []}; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; service = new TestService(); Service.setInstance(service);
diff --git a/chrome/test/data/webui/extensions/navigation_helper_test.ts b/chrome/test/data/webui/extensions/navigation_helper_test.ts index c6d13a3..ffc6846 100644 --- a/chrome/test/data/webui/extensions/navigation_helper_test.ts +++ b/chrome/test/data/webui/extensions/navigation_helper_test.ts
@@ -36,7 +36,8 @@ let navigationHelper: NavigationHelper; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; navigationHelper = new NavigationHelper(); });
diff --git a/chrome/test/data/webui/extensions/options_dialog_test.ts b/chrome/test/data/webui/extensions/options_dialog_test.ts index ec143c0d..83e01ca 100644 --- a/chrome/test/data/webui/extensions/options_dialog_test.ts +++ b/chrome/test/data/webui/extensions/options_dialog_test.ts
@@ -24,7 +24,8 @@ let data: chrome.developerPrivate.ExtensionInfo; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; optionsDialog = document.createElement('extensions-options-dialog'); document.body.appendChild(optionsDialog);
diff --git a/chrome/test/data/webui/extensions/pack_dialog_test.ts b/chrome/test/data/webui/extensions/pack_dialog_test.ts index 050dbb1..39c23870 100644 --- a/chrome/test/data/webui/extensions/pack_dialog_test.ts +++ b/chrome/test/data/webui/extensions/pack_dialog_test.ts
@@ -66,7 +66,8 @@ let mockDelegate: MockDelegate; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; mockDelegate = new MockDelegate(); packDialog = document.createElement('extensions-pack-dialog'); packDialog.delegate = mockDelegate;
diff --git a/chrome/test/data/webui/extensions/runtime_host_permissions_test.ts b/chrome/test/data/webui/extensions/runtime_host_permissions_test.ts index 75cc473..753897e 100644 --- a/chrome/test/data/webui/extensions/runtime_host_permissions_test.ts +++ b/chrome/test/data/webui/extensions/runtime_host_permissions_test.ts
@@ -21,7 +21,8 @@ const ITEM_ID = 'a'.repeat(32); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('extensions-runtime-host-permissions'); delegate = new TestService(); delegate.userSiteSettings = {permittedSites: [], restrictedSites: []};
diff --git a/chrome/test/data/webui/extensions/runtime_hosts_dialog_test.ts b/chrome/test/data/webui/extensions/runtime_hosts_dialog_test.ts index a9c8d4f6c..ce7cc5c 100644 --- a/chrome/test/data/webui/extensions/runtime_hosts_dialog_test.ts +++ b/chrome/test/data/webui/extensions/runtime_hosts_dialog_test.ts
@@ -28,7 +28,8 @@ }; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('extensions-runtime-hosts-dialog'); dialog.enableEnhancedSiteControls = true;
diff --git a/chrome/test/data/webui/extensions/shortcut_input_test.ts b/chrome/test/data/webui/extensions/shortcut_input_test.ts index 0db6936e..0f7d060 100644 --- a/chrome/test/data/webui/extensions/shortcut_input_test.ts +++ b/chrome/test/data/webui/extensions/shortcut_input_test.ts
@@ -32,7 +32,8 @@ let testService: TestService; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; input = document.createElement('extensions-shortcut-input'); testService = new TestService(); input.delegate = testService;
diff --git a/chrome/test/data/webui/extensions/sidebar_test.ts b/chrome/test/data/webui/extensions/sidebar_test.ts index a22552c8..597e3f8 100644 --- a/chrome/test/data/webui/extensions/sidebar_test.ts +++ b/chrome/test/data/webui/extensions/sidebar_test.ts
@@ -25,7 +25,8 @@ let sidebar: ExtensionsSidebarElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; sidebar = document.createElement('extensions-sidebar'); sidebar.enableEnhancedSiteControls = false; document.body.appendChild(sidebar); @@ -36,7 +37,8 @@ assertFalse(!!sidebar.shadowRoot!.querySelector(selector)); window.history.replaceState(undefined, '', '/shortcuts'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; sidebar = document.createElement('extensions-sidebar'); document.body.appendChild(sidebar); const whenSelected = eventToPromise('iron-select', sidebar.$.sectionMenu); @@ -48,7 +50,8 @@ 'sectionsShortcuts'); window.history.replaceState(undefined, '', '/'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; sidebar = document.createElement('extensions-sidebar'); document.body.appendChild(sidebar); const whenSelected =
diff --git a/chrome/test/data/webui/extensions/site_permissions_by_site_test.ts b/chrome/test/data/webui/extensions/site_permissions_by_site_test.ts index 04f141a..193ed771 100644 --- a/chrome/test/data/webui/extensions/site_permissions_by_site_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_by_site_test.ts
@@ -49,7 +49,8 @@ delegate = new TestService(); delegate.siteGroups = siteGroups; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('extensions-site-permissions-by-site'); element.delegate = delegate; document.body.appendChild(element);
diff --git a/chrome/test/data/webui/extensions/site_permissions_edit_permissions_dialog_test.ts b/chrome/test/data/webui/extensions/site_permissions_edit_permissions_dialog_test.ts index 78d5969..6bd5a155 100644 --- a/chrome/test/data/webui/extensions/site_permissions_edit_permissions_dialog_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_edit_permissions_dialog_test.ts
@@ -49,7 +49,8 @@ delegate = new TestService(); delegate.matchingExtensionsInfo = matchingExtensionsInfo; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('site-permissions-edit-permissions-dialog'); element.delegate = delegate;
diff --git a/chrome/test/data/webui/extensions/site_permissions_edit_url_dialog_test.ts b/chrome/test/data/webui/extensions/site_permissions_edit_url_dialog_test.ts index d9d5f73..aa36616d3 100644 --- a/chrome/test/data/webui/extensions/site_permissions_edit_url_dialog_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_edit_url_dialog_test.ts
@@ -18,7 +18,8 @@ setup(function() { delegate = new TestService(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('site-permissions-edit-url-dialog'); element.delegate = delegate; element.siteSet = chrome.developerPrivate.SiteSet.USER_PERMITTED;
diff --git a/chrome/test/data/webui/extensions/site_permissions_list_test.ts b/chrome/test/data/webui/extensions/site_permissions_list_test.ts index 7071bfc8..9173588 100644 --- a/chrome/test/data/webui/extensions/site_permissions_list_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_list_test.ts
@@ -19,7 +19,8 @@ setup(function() { delegate = new TestService(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('site-permissions-list'); element.delegate = delegate; element.siteSet = chrome.developerPrivate.SiteSet.USER_RESTRICTED;
diff --git a/chrome/test/data/webui/extensions/site_permissions_site_group_test.ts b/chrome/test/data/webui/extensions/site_permissions_site_group_test.ts index 7fc9d83..86e34b1 100644 --- a/chrome/test/data/webui/extensions/site_permissions_site_group_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_site_group_test.ts
@@ -18,7 +18,8 @@ let element: SitePermissionsSiteGroupElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('site-permissions-site-group'); document.body.appendChild(element); });
diff --git a/chrome/test/data/webui/extensions/site_permissions_test.ts b/chrome/test/data/webui/extensions/site_permissions_test.ts index 1ef72de..9e63935 100644 --- a/chrome/test/data/webui/extensions/site_permissions_test.ts +++ b/chrome/test/data/webui/extensions/site_permissions_test.ts
@@ -28,7 +28,8 @@ delegate.userSiteSettings = userSiteSettings; Service.setInstance(delegate); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('extensions-site-permissions'); element.delegate = delegate; element.enableEnhancedSiteControls = true;
diff --git a/chrome/test/data/webui/extensions/toolbar_test.ts b/chrome/test/data/webui/extensions/toolbar_test.ts index fb3fc417..10059f6 100644 --- a/chrome/test/data/webui/extensions/toolbar_test.ts +++ b/chrome/test/data/webui/extensions/toolbar_test.ts
@@ -36,7 +36,8 @@ let toolbar: ExtensionsToolbarElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; toolbar = document.createElement('extensions-toolbar'); document.body.appendChild(toolbar); toolbar.inDevMode = false;
diff --git a/chrome/test/data/webui/extensions/tsconfig_base.json b/chrome/test/data/webui/extensions/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/extensions/tsconfig_base.json +++ b/chrome/test/data/webui/extensions/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/history/history_drawer_test.ts b/chrome/test/data/webui/history/history_drawer_test.ts index b402e02..fb2b0c0 100644 --- a/chrome/test/data/webui/history/history_drawer_test.ts +++ b/chrome/test/data/webui/history/history_drawer_test.ts
@@ -15,7 +15,8 @@ let app: HistoryAppElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService); app = document.createElement('history-app');
diff --git a/chrome/test/data/webui/history/history_item_focus_test.ts b/chrome/test/data/webui/history/history_item_focus_test.ts index 8a7b24d..da033b74 100644 --- a/chrome/test/data/webui/history/history_item_focus_test.ts +++ b/chrome/test/data/webui/history/history_item_focus_test.ts
@@ -16,7 +16,8 @@ let item: HistoryItemElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; BrowserServiceImpl.setInstance(new TestBrowserService()); item = document.createElement('history-item');
diff --git a/chrome/test/data/webui/history/history_item_test.ts b/chrome/test/data/webui/history/history_item_test.ts index 0c867245..42ac697 100644 --- a/chrome/test/data/webui/history/history_item_test.ts +++ b/chrome/test/data/webui/history/history_item_test.ts
@@ -31,7 +31,8 @@ let item: HistoryItemElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; BrowserServiceImpl.setInstance(new TestBrowserService()); item = document.createElement('history-item'); @@ -74,7 +75,8 @@ let element: HistoryListElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_list_focus_test.ts b/chrome/test/data/webui/history/history_list_focus_test.ts index e3f337d..34ac277 100644 --- a/chrome/test/data/webui/history/history_list_focus_test.ts +++ b/chrome/test/data/webui/history/history_list_focus_test.ts
@@ -28,7 +28,8 @@ setup(function() { window.history.replaceState({}, '', '/'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService); testService.setQueryResult({
diff --git a/chrome/test/data/webui/history/history_list_test.ts b/chrome/test/data/webui/history/history_list_test.ts index d1d7024..c9548c9 100644 --- a/chrome/test/data/webui/history/history_list_test.ts +++ b/chrome/test/data/webui/history/history_list_test.ts
@@ -72,7 +72,8 @@ setup(function() { window.history.replaceState({}, '', '/'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_metrics_test.ts b/chrome/test/data/webui/history/history_metrics_test.ts index 0d11103..512fd98 100644 --- a/chrome/test/data/webui/history/history_metrics_test.ts +++ b/chrome/test/data/webui/history/history_metrics_test.ts
@@ -25,7 +25,8 @@ }); setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_overflow_menu_test.ts b/chrome/test/data/webui/history/history_overflow_menu_test.ts index c56bfbc..af7c39f 100644 --- a/chrome/test/data/webui/history/history_overflow_menu_test.ts +++ b/chrome/test/data/webui/history/history_overflow_menu_test.ts
@@ -17,7 +17,8 @@ let target2: HTMLElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_routing_test.ts b/chrome/test/data/webui/history/history_routing_test.ts index 442df72..fc1702b 100644 --- a/chrome/test/data/webui/history/history_routing_test.ts +++ b/chrome/test/data/webui/history/history_routing_test.ts
@@ -33,7 +33,8 @@ setup(function() { window.history.replaceState({}, '', '/'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; BrowserServiceImpl.setInstance(new TestBrowserService()); testBrowserProxy = new TestBrowserProxy(); BrowserProxyImpl.setInstance(testBrowserProxy);
diff --git a/chrome/test/data/webui/history/history_routing_with_query_param_test.ts b/chrome/test/data/webui/history/history_routing_with_query_param_test.ts index 406fff4..0777a505 100644 --- a/chrome/test/data/webui/history/history_routing_with_query_param_test.ts +++ b/chrome/test/data/webui/history/history_routing_with_query_param_test.ts
@@ -17,7 +17,8 @@ let testService: TestBrowserService; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', '/?q=query'); testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_supervised_user_test.ts b/chrome/test/data/webui/history/history_supervised_user_test.ts index 6013fc7..25953aeb7 100644 --- a/chrome/test/data/webui/history/history_supervised_user_test.ts +++ b/chrome/test/data/webui/history/history_supervised_user_test.ts
@@ -19,7 +19,8 @@ [createHistoryEntry('2016-03-15', 'https://www.google.com')]; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_synced_device_manager_focus_test.ts b/chrome/test/data/webui/history/history_synced_device_manager_focus_test.ts index 1df5898..fd7fb7d5 100644 --- a/chrome/test/data/webui/history/history_synced_device_manager_focus_test.ts +++ b/chrome/test/data/webui/history/history_synced_device_manager_focus_test.ts
@@ -16,7 +16,8 @@ let element: HistorySyncedDeviceManagerElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; return ensureLazyLoaded().then(() => { element = document.createElement('history-synced-device-manager');
diff --git a/chrome/test/data/webui/history/history_synced_tabs_test.ts b/chrome/test/data/webui/history/history_synced_tabs_test.ts index 4fb784c..57b8643 100644 --- a/chrome/test/data/webui/history/history_synced_tabs_test.ts +++ b/chrome/test/data/webui/history/history_synced_tabs_test.ts
@@ -37,7 +37,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', '/'); testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/history_toolbar_focus_test.ts b/chrome/test/data/webui/history/history_toolbar_focus_test.ts index 45dc4bc..e76b27fc 100644 --- a/chrome/test/data/webui/history/history_toolbar_focus_test.ts +++ b/chrome/test/data/webui/history/history_toolbar_focus_test.ts
@@ -16,7 +16,8 @@ let app: HistoryAppElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', '/'); BrowserServiceImpl.setInstance(new TestBrowserService());
diff --git a/chrome/test/data/webui/history/history_toolbar_test.ts b/chrome/test/data/webui/history/history_toolbar_test.ts index 0e9e4cc..4b288ac 100644 --- a/chrome/test/data/webui/history/history_toolbar_test.ts +++ b/chrome/test/data/webui/history/history_toolbar_test.ts
@@ -18,7 +18,8 @@ [createHistoryEntry('2016-03-15', 'https://google.com')]; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/link_click_test.ts b/chrome/test/data/webui/history/link_click_test.ts index f601c9b..617724a 100644 --- a/chrome/test/data/webui/history/link_click_test.ts +++ b/chrome/test/data/webui/history/link_click_test.ts
@@ -10,7 +10,8 @@ suite('listenForPrivilegedLinkClicks unit test', function() { test('click handler', async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const testService = new TestBrowserService(); BrowserServiceImpl.setInstance(testService);
diff --git a/chrome/test/data/webui/history/searched_label_test.ts b/chrome/test/data/webui/history/searched_label_test.ts index 9f866c33..0d9a03f 100644 --- a/chrome/test/data/webui/history/searched_label_test.ts +++ b/chrome/test/data/webui/history/searched_label_test.ts
@@ -12,7 +12,8 @@ let label: HistorySearchedLabelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; label = document.createElement('history-searched-label'); document.body.appendChild(label); });
diff --git a/chrome/test/data/webui/history/tsconfig_base.json b/chrome/test/data/webui/history/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/history/tsconfig_base.json +++ b/chrome/test/data/webui/history/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/inline_login/arc_account_picker_page_test.ts b/chrome/test/data/webui/inline_login/arc_account_picker_page_test.ts index b8dfd6dcd..8979b340 100644 --- a/chrome/test/data/webui/inline_login/arc_account_picker_page_test.ts +++ b/chrome/test/data/webui/inline_login/arc_account_picker_page_test.ts
@@ -44,7 +44,8 @@ async function testSetup( dialogArgs: AccountAdditionOptions|null, accountsNotAvailableInArc: Account[], authExtensionData: object) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testBrowserProxy = new TestInlineLoginBrowserProxy(); testBrowserProxy.setDialogArguments(dialogArgs);
diff --git a/chrome/test/data/webui/inline_login/inline_login_signin_blocked_by_policy_page_test.ts b/chrome/test/data/webui/inline_login/inline_login_signin_blocked_by_policy_page_test.ts index 4b3e102e..595b624 100644 --- a/chrome/test/data/webui/inline_login/inline_login_signin_blocked_by_policy_page_test.ts +++ b/chrome/test/data/webui/inline_login/inline_login_signin_blocked_by_policy_page_test.ts
@@ -44,11 +44,13 @@ } function testSetup(dialogArgs: AccountAdditionOptions|null) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testBrowserProxy = new TestInlineLoginBrowserProxy(); testBrowserProxy.setDialogArguments(dialogArgs); InlineLoginBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; inlineLoginComponent = /** @type {InlineLoginAppElement} */ ( document.createElement('inline-login-app')); document.body.appendChild(inlineLoginComponent);
diff --git a/chrome/test/data/webui/inline_login/inline_login_test.ts b/chrome/test/data/webui/inline_login/inline_login_test.ts index b9e6ecf2..fd41adef 100644 --- a/chrome/test/data/webui/inline_login/inline_login_test.ts +++ b/chrome/test/data/webui/inline_login/inline_login_test.ts
@@ -49,10 +49,12 @@ // </if> setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testBrowserProxy = new TestInlineLoginBrowserProxy(); InlineLoginBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; inlineLoginComponent = document.createElement('inline-login-app'); document.body.appendChild(inlineLoginComponent); testAuthenticator = new TestAuthenticator();
diff --git a/chrome/test/data/webui/inline_login/inline_login_welcome_page_test.ts b/chrome/test/data/webui/inline_login/inline_login_welcome_page_test.ts index 87c4de8..c37167926 100644 --- a/chrome/test/data/webui/inline_login/inline_login_welcome_page_test.ts +++ b/chrome/test/data/webui/inline_login/inline_login_welcome_page_test.ts
@@ -42,11 +42,13 @@ } function testSetup(dialogArgs: AccountAdditionOptions|null) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testBrowserProxy = new TestInlineLoginBrowserProxy(); testBrowserProxy.setDialogArguments(dialogArgs); InlineLoginBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; inlineLoginComponent = document.createElement('inline-login-app'); document.body.appendChild(inlineLoginComponent); testAuthenticator = new TestAuthenticator();
diff --git a/chrome/test/data/webui/inline_login/tsconfig_base.json b/chrome/test/data/webui/inline_login/tsconfig_base.json index 4880fbc..00a9587 100644 --- a/chrome/test/data/webui/inline_login/tsconfig_base.json +++ b/chrome/test/data/webui/inline_login/tsconfig_base.json
@@ -6,7 +6,7 @@ ], "types": [ "chai", - "mocha" + "mocha", "trusted-types" ] } }
diff --git a/chrome/test/data/webui/js/tsconfig_base.json b/chrome/test/data/webui/js/tsconfig_base.json index c7bb73b..6ec0e9db 100644 --- a/chrome/test/data/webui/js/tsconfig_base.json +++ b/chrome/test/data/webui/js/tsconfig_base.json
@@ -5,6 +5,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/media_router/cast_feedback_ui_test.ts b/chrome/test/data/webui/media_router/cast_feedback_ui_test.ts index 6edbe2bd..8596c4c2 100644 --- a/chrome/test/data/webui/media_router/cast_feedback_ui_test.ts +++ b/chrome/test/data/webui/media_router/cast_feedback_ui_test.ts
@@ -50,7 +50,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestFeedbackUiBrowserProxy(); FeedbackUiBrowserProxyImpl.setInstance(browserProxy); ui = document.createElement('feedback-ui');
diff --git a/chrome/test/data/webui/media_router/tsconfig_base.json b/chrome/test/data/webui/media_router/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/media_router/tsconfig_base.json +++ b/chrome/test/data/webui/media_router/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/metrics_reporter/tsconfig_base.json b/chrome/test/data/webui/metrics_reporter/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/metrics_reporter/tsconfig_base.json +++ b/chrome/test/data/webui/metrics_reporter/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/new_tab_page/app_test.ts b/chrome/test/data/webui/new_tab_page/app_test.ts index 6d53689..994fe0fc5 100644 --- a/chrome/test/data/webui/new_tab_page/app_test.ts +++ b/chrome/test/data/webui/new_tab_page/app_test.ts
@@ -32,7 +32,8 @@ const url: URL = new URL(location.href); setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; windowProxy = installMock(WindowProxy); handler = installMock(
diff --git a/chrome/test/data/webui/new_tab_page/background_manager_test.ts b/chrome/test/data/webui/new_tab_page/background_manager_test.ts index a447297..2d8cd986 100644 --- a/chrome/test/data/webui/new_tab_page/background_manager_test.ts +++ b/chrome/test/data/webui/new_tab_page/background_manager_test.ts
@@ -30,7 +30,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; backgroundImage = new FakeIFrameElement(); backgroundImage.id = 'backgroundImage';
diff --git a/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.ts b/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.ts index 900db354..1a3eab5 100644 --- a/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.ts +++ b/chrome/test/data/webui/new_tab_page/customize_backgrounds_test.ts
@@ -39,7 +39,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; windowProxy = installMock(WindowProxy); windowProxy.setResultFor('createIframeSrc', '');
diff --git a/chrome/test/data/webui/new_tab_page/customize_dialog_focus_test.ts b/chrome/test/data/webui/new_tab_page/customize_dialog_focus_test.ts index fae5ac8..9075221 100644 --- a/chrome/test/data/webui/new_tab_page/customize_dialog_focus_test.ts +++ b/chrome/test/data/webui/new_tab_page/customize_dialog_focus_test.ts
@@ -15,7 +15,8 @@ let customizeDialog: CustomizeDialogElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; customizeDialog = document.createElement('ntp-customize-dialog'); document.body.appendChild(customizeDialog);
diff --git a/chrome/test/data/webui/new_tab_page/customize_dialog_test.ts b/chrome/test/data/webui/new_tab_page/customize_dialog_test.ts index 2481b79d..8d3f2ce 100644 --- a/chrome/test/data/webui/new_tab_page/customize_dialog_test.ts +++ b/chrome/test/data/webui/new_tab_page/customize_dialog_test.ts
@@ -19,7 +19,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock( PageHandlerRemote,
diff --git a/chrome/test/data/webui/new_tab_page/customize_modules_test.ts b/chrome/test/data/webui/new_tab_page/customize_modules_test.ts index fd1a53c..5f44b215f 100644 --- a/chrome/test/data/webui/new_tab_page/customize_modules_test.ts +++ b/chrome/test/data/webui/new_tab_page/customize_modules_test.ts
@@ -44,7 +44,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock( PageHandlerRemote,
diff --git a/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.ts b/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.ts index 31a1d8a..f687157 100644 --- a/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.ts +++ b/chrome/test/data/webui/new_tab_page/customize_shortcuts_test.ts
@@ -18,7 +18,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock( PageHandlerRemote,
diff --git a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_focus_test.ts b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_focus_test.ts index 3c296004..70cea4a2 100644 --- a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_focus_test.ts +++ b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_focus_test.ts
@@ -12,7 +12,8 @@ let doodleShareDialog: DoodleShareDialogElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; doodleShareDialog = document.createElement('ntp-doodle-share-dialog'); document.body.appendChild(doodleShareDialog); });
diff --git a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.ts b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.ts index 9296862..0fee62c 100644 --- a/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.ts +++ b/chrome/test/data/webui/new_tab_page/doodle_share_dialog_test.ts
@@ -15,7 +15,8 @@ let windowProxy: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; windowProxy = installMock(WindowProxy);
diff --git a/chrome/test/data/webui/new_tab_page/logo_test.ts b/chrome/test/data/webui/new_tab_page/logo_test.ts index 1d6082966..68df9a8 100644 --- a/chrome/test/data/webui/new_tab_page/logo_test.ts +++ b/chrome/test/data/webui/new_tab_page/logo_test.ts
@@ -95,7 +95,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; windowProxy = installMock(WindowProxy); windowProxy.setResultFor('createIframeSrc', '');
diff --git a/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.ts b/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.ts index ff79387..5d9e291 100644 --- a/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.ts +++ b/chrome/test/data/webui/new_tab_page/middle_slot_promo_test.ts
@@ -25,7 +25,8 @@ let metrics: MetricsTracker; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; newTabPageHandler = installMock( PageHandlerRemote, mock => NewTabPageProxy.setInstance(mock, new PageCallbackRouter()));
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_card_test.ts b/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_card_test.ts index bf86e6d..fd40cfd 100644 --- a/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_card_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_card_test.ts
@@ -28,7 +28,8 @@ let discountConsentCard: DiscountConsentCard; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; discountConsentCard = document.createElement('discount-consent-card'); document.body.appendChild(discountConsentCard);
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_dialog_test.ts b/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_dialog_test.ts index 4e9854e..7953eda 100644 --- a/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_dialog_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/cart/discount_consent_dialog_test.ts
@@ -21,7 +21,8 @@ let actionSignalCaptured: ActionSignal; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; discountConsentDialog = document.createElement('discount-consent-dialog'); document.body.appendChild(discountConsentDialog);
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/cart/module_test.ts index 0d7e72b..d86134f8 100644 --- a/chrome/test/data/webui/new_tab_page/modules/cart/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/cart/module_test.ts
@@ -23,7 +23,8 @@ let metrics: MetricsTracker; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(CartHandlerRemote, ChromeCartProxy.setHandler); metrics = fakeMetricsPrivate();
diff --git a/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.ts index 25d6593..85dec62 100644 --- a/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/cart_v2/module_test.ts
@@ -21,7 +21,8 @@ let metrics: MetricsTracker; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(CartHandlerRemote, ChromeCartProxy.setHandler); metrics = fakeMetricsPrivate();
diff --git a/chrome/test/data/webui/new_tab_page/modules/drive/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/drive/module_test.ts index 36b2c79..b47cd847 100644 --- a/chrome/test/data/webui/new_tab_page/modules/drive/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/drive/module_test.ts
@@ -17,7 +17,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(DriveHandlerRemote, DriveProxy.setHandler); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.ts index ada0a09..0108ca6 100644 --- a/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/drive_v2/module_test.ts
@@ -17,7 +17,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(DriveHandlerRemote, DriveProxy.setHandler); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/dummy_v2/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/dummy_v2/module_test.ts index 2a080b3..5d925a4 100644 --- a/chrome/test/data/webui/new_tab_page/modules/dummy_v2/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/dummy_v2/module_test.ts
@@ -17,7 +17,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(FooHandlerRemote, FooProxy.setHandler); handler.setResultFor('getData', Promise.resolve({data: []}));
diff --git a/chrome/test/data/webui/new_tab_page/modules/feed/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/feed/module_test.ts index 45a0746..375a030 100644 --- a/chrome/test/data/webui/new_tab_page/modules/feed/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/feed/module_test.ts
@@ -17,7 +17,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(FeedHandlerRemote, FeedProxy.setHandler); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/info_dialog_test.ts b/chrome/test/data/webui/new_tab_page/modules/info_dialog_test.ts index 91b2a33..8f2f638 100644 --- a/chrome/test/data/webui/new_tab_page/modules/info_dialog_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/info_dialog_test.ts
@@ -11,7 +11,8 @@ let infoDialog: InfoDialogElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; infoDialog = new InfoDialogElement(); document.body.appendChild(infoDialog); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.ts b/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.ts index b06e4a4..0ef057f 100644 --- a/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/module_descriptor_test.ts
@@ -18,7 +18,8 @@ let metrics: MetricsTracker; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({ navigationStartTime: 0.0, });
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_header_test.ts b/chrome/test/data/webui/new_tab_page/modules/module_header_test.ts index b9e8b1f..dc6bd7e5 100644 --- a/chrome/test/data/webui/new_tab_page/modules/module_header_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/module_header_test.ts
@@ -14,7 +14,8 @@ let moduleHeader: ModuleHeaderElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; moduleHeader = new ModuleHeaderElement(); document.body.appendChild(moduleHeader); render(moduleHeader);
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.ts b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.ts index 8972e4eb..b62ff9e 100644 --- a/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.ts
@@ -20,7 +20,8 @@ let windowProxy: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({ navigationStartTime: 0.0, });
diff --git a/chrome/test/data/webui/new_tab_page/modules/modules_test.ts b/chrome/test/data/webui/new_tab_page/modules/modules_test.ts index ac80097..d4318340 100644 --- a/chrome/test/data/webui/new_tab_page/modules/modules_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/modules_test.ts
@@ -21,7 +21,8 @@ let moduleRegistry: TestBrowserProxy; setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; metrics = fakeMetricsPrivate(); handler = installMock( PageHandlerRemote,
diff --git a/chrome/test/data/webui/new_tab_page/modules/photos/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/photos/module_test.ts index 7d33709..dba2bb3e6 100644 --- a/chrome/test/data/webui/new_tab_page/modules/photos/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/photos/module_test.ts
@@ -20,7 +20,8 @@ let metrics: MetricsTracker; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(PhotosHandlerRemote, PhotosProxy.setHandler); metrics = fakeMetricsPrivate(); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/recipes/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/recipes/module_test.ts index a7b03ed9..37d372fc 100644 --- a/chrome/test/data/webui/new_tab_page/modules/recipes/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/recipes/module_test.ts
@@ -19,7 +19,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(RecipesHandlerRemote, RecipesHandlerProxy.setHandler); });
diff --git a/chrome/test/data/webui/new_tab_page/modules/recipes_v2/module_test.ts b/chrome/test/data/webui/new_tab_page/modules/recipes_v2/module_test.ts index 5ceef65..e50f60e6 100644 --- a/chrome/test/data/webui/new_tab_page/modules/recipes_v2/module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/recipes_v2/module_test.ts
@@ -16,7 +16,8 @@ let handler: TestBrowserProxy; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; handler = installMock(RecipesHandlerRemote, RecipesHandlerProxy.setHandler); });
diff --git a/chrome/test/data/webui/new_tab_page/realbox/realbox_test.ts b/chrome/test/data/webui/new_tab_page/realbox/realbox_test.ts index 84b6a9ec9..a00c06a 100644 --- a/chrome/test/data/webui/new_tab_page/realbox/realbox_test.ts +++ b/chrome/test/data/webui/new_tab_page/realbox/realbox_test.ts
@@ -132,7 +132,8 @@ }); setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testProxy = new TestRealboxBrowserProxy(); RealboxBrowserProxy.setInstance(testProxy); @@ -183,7 +184,8 @@ loadTimeData.overrideValues({ realboxDefaultIcon: 'search.svg', }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; realbox = document.createElement('ntp-realbox'); document.body.appendChild(realbox); @@ -196,7 +198,8 @@ loadTimeData.overrideValues({ realboxDefaultIcon: 'realbox/icons/google_g.svg', }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; realbox = document.createElement('ntp-realbox'); document.body.appendChild(realbox); @@ -2540,7 +2543,8 @@ loadTimeData.overrideValues({ realboxLensSearch: true, }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; realbox = document.createElement('ntp-realbox'); document.body.appendChild(realbox); await testProxy.callbackRouterRemote.$.flushForTesting(); @@ -2556,7 +2560,8 @@ loadTimeData.overrideValues({ realboxLensSearch: true, }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; realbox = document.createElement('ntp-realbox'); document.body.appendChild(realbox);
diff --git a/chrome/test/data/webui/new_tab_page/tsconfig_base.json b/chrome/test/data/webui/new_tab_page/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/new_tab_page/tsconfig_base.json +++ b/chrome/test/data/webui/new_tab_page/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.ts b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.ts index 76b5c729..b423b7b 100644 --- a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.ts +++ b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.ts
@@ -77,7 +77,8 @@ let metrics: MetricsTracker; setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.webkitSpeechRecognition = MockSpeechRecognition as unknown as typeof SpeechRecognition;
diff --git a/chrome/test/data/webui/password_manager/checkup_section_test.ts b/chrome/test/data/webui/password_manager/checkup_section_test.ts index 95cd044a..6f86f87 100644 --- a/chrome/test/data/webui/password_manager/checkup_section_test.ts +++ b/chrome/test/data/webui/password_manager/checkup_section_test.ts
@@ -18,7 +18,8 @@ let passwordManager: TestPasswordManagerProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager); return flushTasks();
diff --git a/chrome/test/data/webui/password_manager/password_manager_app_test.ts b/chrome/test/data/webui/password_manager/password_manager_app_test.ts index c3c24a1..7043126ef1 100644 --- a/chrome/test/data/webui/password_manager/password_manager_app_test.ts +++ b/chrome/test/data/webui/password_manager/password_manager_app_test.ts
@@ -14,7 +14,8 @@ let app: PasswordManagerAppElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('password-manager-app'); document.body.appendChild(app); app.setNarrowForTesting(false);
diff --git a/chrome/test/data/webui/password_manager/password_manager_routing_test.ts b/chrome/test/data/webui/password_manager/password_manager_routing_test.ts index 9a37f94..51f0d651 100644 --- a/chrome/test/data/webui/password_manager/password_manager_routing_test.ts +++ b/chrome/test/data/webui/password_manager/password_manager_routing_test.ts
@@ -32,7 +32,8 @@ let testElement: TestElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('test-element') as TestElement; document.body.appendChild(testElement); return flushTasks();
diff --git a/chrome/test/data/webui/password_manager/password_manager_side_bar_test.ts b/chrome/test/data/webui/password_manager/password_manager_side_bar_test.ts index 530c6d44..13d15ce 100644 --- a/chrome/test/data/webui/password_manager/password_manager_side_bar_test.ts +++ b/chrome/test/data/webui/password_manager/password_manager_side_bar_test.ts
@@ -13,7 +13,8 @@ let sidebar: PasswordManagerSideBarElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; sidebar = document.createElement('password-manager-side-bar'); document.body.appendChild(sidebar); return flushTasks();
diff --git a/chrome/test/data/webui/password_manager/passwords_section_test.ts b/chrome/test/data/webui/password_manager/passwords_section_test.ts index c63427e..9890433 100644 --- a/chrome/test/data/webui/password_manager/passwords_section_test.ts +++ b/chrome/test/data/webui/password_manager/passwords_section_test.ts
@@ -38,7 +38,8 @@ let passwordManager: TestPasswordManagerProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager); return flushTasks();
diff --git a/chrome/test/data/webui/password_manager/settings_section_test.ts b/chrome/test/data/webui/password_manager/settings_section_test.ts index 7e0c61b..0bb43da6 100644 --- a/chrome/test/data/webui/password_manager/settings_section_test.ts +++ b/chrome/test/data/webui/password_manager/settings_section_test.ts
@@ -14,7 +14,8 @@ let prefsProxy: TestPrefsBrowserProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; prefsProxy = new TestPrefsBrowserProxy(); PrefsBrowserProxyImpl.setInstance(prefsProxy); prefsProxy.prefs = makePasswordManagerPrefs();
diff --git a/chrome/test/data/webui/password_manager/tsconfig_base.json b/chrome/test/data/webui/password_manager/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/password_manager/tsconfig_base.json +++ b/chrome/test/data/webui/password_manager/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/print_preview/advanced_dialog_test.ts b/chrome/test/data/webui/print_preview/advanced_dialog_test.ts index 643e88d..165843c 100644 --- a/chrome/test/data/webui/print_preview/advanced_dialog_test.ts +++ b/chrome/test/data/webui/print_preview/advanced_dialog_test.ts
@@ -36,7 +36,8 @@ // Create destination destination = new Destination(printerId, DestinationOrigin.EXTENSION, printerName); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model: PrintPreviewModelElement = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/advanced_item_test.ts b/chrome/test/data/webui/print_preview/advanced_item_test.ts index bc5d880..ee4fce2 100644 --- a/chrome/test/data/webui/print_preview/advanced_item_test.ts +++ b/chrome/test/data/webui/print_preview/advanced_item_test.ts
@@ -33,7 +33,8 @@ /** @override */ setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model: PrintPreviewModelElement = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/button_strip_interactive_test.ts b/chrome/test/data/webui/print_preview/button_strip_interactive_test.ts index cc186f9..8939d7f 100644 --- a/chrome/test/data/webui/print_preview/button_strip_interactive_test.ts +++ b/chrome/test/data/webui/print_preview/button_strip_interactive_test.ts
@@ -20,7 +20,8 @@ let buttonStrip: PrintPreviewButtonStripElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; buttonStrip = document.createElement('print-preview-button-strip'); buttonStrip.destination = new Destination( 'FooDevice',
diff --git a/chrome/test/data/webui/print_preview/button_strip_test.ts b/chrome/test/data/webui/print_preview/button_strip_test.ts index b002f73f..598e62ba 100644 --- a/chrome/test/data/webui/print_preview/button_strip_test.ts +++ b/chrome/test/data/webui/print_preview/button_strip_test.ts
@@ -22,7 +22,8 @@ let buttonStrip: PrintPreviewButtonStripElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; buttonStrip = document.createElement('print-preview-button-strip'); buttonStrip.destination = new Destination(
diff --git a/chrome/test/data/webui/print_preview/color_settings_test.ts b/chrome/test/data/webui/print_preview/color_settings_test.ts index e7b3656d..600441a5 100644 --- a/chrome/test/data/webui/print_preview/color_settings_test.ts +++ b/chrome/test/data/webui/print_preview/color_settings_test.ts
@@ -17,7 +17,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/copies_settings_test.ts b/chrome/test/data/webui/print_preview/copies_settings_test.ts index bb8e9ac..31b64e75 100644 --- a/chrome/test/data/webui/print_preview/copies_settings_test.ts +++ b/chrome/test/data/webui/print_preview/copies_settings_test.ts
@@ -14,7 +14,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); model.set('settings.collate.available', true);
diff --git a/chrome/test/data/webui/print_preview/custom_margins_test.ts b/chrome/test/data/webui/print_preview/custom_margins_test.ts index c3b9867b..316d8bc 100644 --- a/chrome/test/data/webui/print_preview/custom_margins_test.ts +++ b/chrome/test/data/webui/print_preview/custom_margins_test.ts
@@ -49,7 +49,8 @@ ['marginTop', 'marginRight', 'marginBottom', 'marginLeft']; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; measurementSystem = new MeasurementSystem(',', '.', MeasurementSystemUnitType.IMPERIAL); model = document.createElement('print-preview-model');
diff --git a/chrome/test/data/webui/print_preview/destination_dialog_cros_interactive_test.ts b/chrome/test/data/webui/print_preview/destination_dialog_cros_interactive_test.ts index 339f05c..68c6d880 100644 --- a/chrome/test/data/webui/print_preview/destination_dialog_cros_interactive_test.ts +++ b/chrome/test/data/webui/print_preview/destination_dialog_cros_interactive_test.ts
@@ -36,7 +36,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Create destinations. nativeLayer = new NativeLayerStub();
diff --git a/chrome/test/data/webui/print_preview/destination_dialog_interactive_test.ts b/chrome/test/data/webui/print_preview/destination_dialog_interactive_test.ts index 6c92392..aa1961d 100644 --- a/chrome/test/data/webui/print_preview/destination_dialog_interactive_test.ts +++ b/chrome/test/data/webui/print_preview/destination_dialog_interactive_test.ts
@@ -34,7 +34,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Create destinations. nativeLayer = new NativeLayerStub();
diff --git a/chrome/test/data/webui/print_preview/destination_dropdown_cros_test.ts b/chrome/test/data/webui/print_preview/destination_dropdown_cros_test.ts index 94e6d6c0..25637bd 100644 --- a/chrome/test/data/webui/print_preview/destination_dropdown_cros_test.ts +++ b/chrome/test/data/webui/print_preview/destination_dropdown_cros_test.ts
@@ -83,7 +83,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dropdown = document.createElement('print-preview-destination-dropdown-cros');
diff --git a/chrome/test/data/webui/print_preview/destination_item_test.ts b/chrome/test/data/webui/print_preview/destination_item_test.ts index 6e1bdafd..09239a0 100644 --- a/chrome/test/data/webui/print_preview/destination_item_test.ts +++ b/chrome/test/data/webui/print_preview/destination_item_test.ts
@@ -27,7 +27,8 @@ const printerName: string = 'FooName'; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; item = document.createElement('print-preview-destination-list-item'); // Create destination
diff --git a/chrome/test/data/webui/print_preview/destination_search_test.ts b/chrome/test/data/webui/print_preview/destination_search_test.ts index e0c4bcac..aa72e24 100644 --- a/chrome/test/data/webui/print_preview/destination_search_test.ts +++ b/chrome/test/data/webui/print_preview/destination_search_test.ts
@@ -48,7 +48,8 @@ dialog = document.createElement('print-preview-destination-dialog'); dialog.destinationStore = destinationStore; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(dialog); return nativeLayer.whenCalled('getPrinterCapabilities').then(function() { dialog.show();
diff --git a/chrome/test/data/webui/print_preview/destination_search_test_chromeos.ts b/chrome/test/data/webui/print_preview/destination_search_test_chromeos.ts index 2bd896ac..9728e71 100644 --- a/chrome/test/data/webui/print_preview/destination_search_test_chromeos.ts +++ b/chrome/test/data/webui/print_preview/destination_search_test_chromeos.ts
@@ -58,7 +58,8 @@ // Set up dialog dialog = document.createElement('print-preview-destination-dialog-cros'); dialog.destinationStore = destinationStore; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(dialog); return nativeLayer.whenCalled('getPrinterCapabilities').then(function() { dialog.show();
diff --git a/chrome/test/data/webui/print_preview/destination_select_test.ts b/chrome/test/data/webui/print_preview/destination_select_test.ts index 07eb9bc3..99c9362 100644 --- a/chrome/test/data/webui/print_preview/destination_select_test.ts +++ b/chrome/test/data/webui/print_preview/destination_select_test.ts
@@ -26,7 +26,8 @@ const meta = new IronMeta({type: 'iconset', value: undefined}); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; destinationSelect = document.createElement('print-preview-destination-select'); destinationSelect.disabled = false;
diff --git a/chrome/test/data/webui/print_preview/destination_select_test_cros.ts b/chrome/test/data/webui/print_preview/destination_select_test_cros.ts index 674b8fbb..c2a46b4 100644 --- a/chrome/test/data/webui/print_preview/destination_select_test_cros.ts +++ b/chrome/test/data/webui/print_preview/destination_select_test_cros.ts
@@ -158,7 +158,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; configureMatchMediaMock(); // Stub out native layer.
diff --git a/chrome/test/data/webui/print_preview/destination_settings_test.ts b/chrome/test/data/webui/print_preview/destination_settings_test.ts index 53e2dee8..0109ce8b 100644 --- a/chrome/test/data/webui/print_preview/destination_settings_test.ts +++ b/chrome/test/data/webui/print_preview/destination_settings_test.ts
@@ -78,7 +78,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Stub out native layer. nativeLayer = new NativeLayerStub();
diff --git a/chrome/test/data/webui/print_preview/destination_store_test.ts b/chrome/test/data/webui/print_preview/destination_store_test.ts index 7680aa9..73cd8e8 100644 --- a/chrome/test/data/webui/print_preview/destination_store_test.ts +++ b/chrome/test/data/webui/print_preview/destination_store_test.ts
@@ -61,7 +61,8 @@ setup(function() { // Clear the UI. - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; setupTestListenerElement();
diff --git a/chrome/test/data/webui/print_preview/dpi_settings_test.ts b/chrome/test/data/webui/print_preview/dpi_settings_test.ts index 868bd558..fe961da 100644 --- a/chrome/test/data/webui/print_preview/dpi_settings_test.ts +++ b/chrome/test/data/webui/print_preview/dpi_settings_test.ts
@@ -27,7 +27,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/duplex_settings_test.ts b/chrome/test/data/webui/print_preview/duplex_settings_test.ts index 5ba43b0..265e3fb0 100644 --- a/chrome/test/data/webui/print_preview/duplex_settings_test.ts +++ b/chrome/test/data/webui/print_preview/duplex_settings_test.ts
@@ -16,7 +16,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); model.set('settings.duplex.available', true);
diff --git a/chrome/test/data/webui/print_preview/header_test.ts b/chrome/test/data/webui/print_preview/header_test.ts index 07e3b1b..83c85221 100644 --- a/chrome/test/data/webui/print_preview/header_test.ts +++ b/chrome/test/data/webui/print_preview/header_test.ts
@@ -26,7 +26,8 @@ let pluralString: TestPluralStringProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; pluralString = new TestPluralStringProxy(); PrintPreviewPluralStringProxyImpl.setInstance(pluralString);
diff --git a/chrome/test/data/webui/print_preview/invalid_settings_browsertest.ts b/chrome/test/data/webui/print_preview/invalid_settings_browsertest.ts index 6715ac8..2d4046a 100644 --- a/chrome/test/data/webui/print_preview/invalid_settings_browsertest.ts +++ b/chrome/test/data/webui/print_preview/invalid_settings_browsertest.ts
@@ -54,7 +54,8 @@ // <if expr="is_chromeos"> setNativeLayerCrosInstance(); // </if> - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/print_preview/key_event_test.ts b/chrome/test/data/webui/print_preview/key_event_test.ts index f436e1b..f9b8963 100644 --- a/chrome/test/data/webui/print_preview/key_event_test.ts +++ b/chrome/test/data/webui/print_preview/key_event_test.ts
@@ -57,7 +57,8 @@ const pluginProxy = new TestPluginProxy(); PluginProxyImpl.setInstance(pluginProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('print-preview-app'); document.body.appendChild(page);
diff --git a/chrome/test/data/webui/print_preview/layout_settings_test.ts b/chrome/test/data/webui/print_preview/layout_settings_test.ts index 9ad3c24..d20ac5d 100644 --- a/chrome/test/data/webui/print_preview/layout_settings_test.ts +++ b/chrome/test/data/webui/print_preview/layout_settings_test.ts
@@ -16,7 +16,8 @@ /** @override */ setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/link_container_test.ts b/chrome/test/data/webui/print_preview/link_container_test.ts index 6eaf5dc..2380c33 100644 --- a/chrome/test/data/webui/print_preview/link_container_test.ts +++ b/chrome/test/data/webui/print_preview/link_container_test.ts
@@ -27,7 +27,8 @@ let linkContainer: PrintPreviewLinkContainerElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; linkContainer = document.createElement('print-preview-link-container'); document.body.appendChild(linkContainer);
diff --git a/chrome/test/data/webui/print_preview/margins_settings_test.ts b/chrome/test/data/webui/print_preview/margins_settings_test.ts index 4b85d35..95b7908 100644 --- a/chrome/test/data/webui/print_preview/margins_settings_test.ts +++ b/chrome/test/data/webui/print_preview/margins_settings_test.ts
@@ -15,7 +15,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/media_size_settings_test.ts b/chrome/test/data/webui/print_preview/media_size_settings_test.ts index 99baf09..6fd7a14 100644 --- a/chrome/test/data/webui/print_preview/media_size_settings_test.ts +++ b/chrome/test/data/webui/print_preview/media_size_settings_test.ts
@@ -17,7 +17,8 @@ getCddTemplate('FooPrinter').capabilities!.printer!.media_size!; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/model_settings_availability_test.ts b/chrome/test/data/webui/print_preview/model_settings_availability_test.ts index c16d092..150e2e3 100644 --- a/chrome/test/data/webui/print_preview/model_settings_availability_test.ts +++ b/chrome/test/data/webui/print_preview/model_settings_availability_test.ts
@@ -15,7 +15,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/model_settings_policy_test.ts b/chrome/test/data/webui/print_preview/model_settings_policy_test.ts index 8fbaee8..a23fab77 100644 --- a/chrome/test/data/webui/print_preview/model_settings_policy_test.ts +++ b/chrome/test/data/webui/print_preview/model_settings_policy_test.ts
@@ -16,7 +16,8 @@ let model: PrintPreviewModelElement; function setupModel() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/model_test.ts b/chrome/test/data/webui/print_preview/model_test.ts index 922b73f..03ec621 100644 --- a/chrome/test/data/webui/print_preview/model_test.ts +++ b/chrome/test/data/webui/print_preview/model_test.ts
@@ -37,7 +37,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); });
diff --git a/chrome/test/data/webui/print_preview/other_options_settings_test.ts b/chrome/test/data/webui/print_preview/other_options_settings_test.ts index 379f92a..92502e36 100644 --- a/chrome/test/data/webui/print_preview/other_options_settings_test.ts +++ b/chrome/test/data/webui/print_preview/other_options_settings_test.ts
@@ -16,7 +16,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); model.set('settings.headerFooter.available', true);
diff --git a/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.ts b/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.ts index 2ea1f33..c705722 100644 --- a/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.ts +++ b/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.ts
@@ -15,7 +15,8 @@ let pagesPerSheetSection: PrintPreviewPagesPerSheetSettingsElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/pages_settings_test.ts b/chrome/test/data/webui/print_preview/pages_settings_test.ts index d45674a..b0511bd8 100644 --- a/chrome/test/data/webui/print_preview/pages_settings_test.ts +++ b/chrome/test/data/webui/print_preview/pages_settings_test.ts
@@ -39,7 +39,8 @@ const limitError: string = 'Out of bounds page reference, limit is '; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/pdf_toolbar_manager_test.ts b/chrome/test/data/webui/print_preview/pdf_toolbar_manager_test.ts index 6606afe..06e712b8 100644 --- a/chrome/test/data/webui/print_preview/pdf_toolbar_manager_test.ts +++ b/chrome/test/data/webui/print_preview/pdf_toolbar_manager_test.ts
@@ -126,7 +126,8 @@ let callCount: number = 0; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; mockWindow = new MockWindow(1920, 1080); zoomToolbar = document.createElement('viewer-zoom-toolbar');
diff --git a/chrome/test/data/webui/print_preview/pdf_viewer_test.ts b/chrome/test/data/webui/print_preview/pdf_viewer_test.ts index 990ef4a..3dec5799 100644 --- a/chrome/test/data/webui/print_preview/pdf_viewer_test.ts +++ b/chrome/test/data/webui/print_preview/pdf_viewer_test.ts
@@ -26,7 +26,8 @@ suite(pdf_viewer_test.suiteName, function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test(pdf_viewer_test.TestNames.Basic, async () => {
diff --git a/chrome/test/data/webui/print_preview/pdf_zoom_toolbar_test.ts b/chrome/test/data/webui/print_preview/pdf_zoom_toolbar_test.ts index 845b646..26f015f 100644 --- a/chrome/test/data/webui/print_preview/pdf_zoom_toolbar_test.ts +++ b/chrome/test/data/webui/print_preview/pdf_zoom_toolbar_test.ts
@@ -33,7 +33,8 @@ const fitPageIcon: string = 'fullscreen-exit'; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; zoomToolbar = document.createElement('viewer-zoom-toolbar'); document.body.appendChild(zoomToolbar);
diff --git a/chrome/test/data/webui/print_preview/pin_settings_test.ts b/chrome/test/data/webui/print_preview/pin_settings_test.ts index 0349c7e..5eb27c4 100644 --- a/chrome/test/data/webui/print_preview/pin_settings_test.ts +++ b/chrome/test/data/webui/print_preview/pin_settings_test.ts
@@ -15,7 +15,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); model.set('settings.pin.available', true);
diff --git a/chrome/test/data/webui/print_preview/policy_test.ts b/chrome/test/data/webui/print_preview/policy_test.ts index 7f6eb0e..3937ec79 100644 --- a/chrome/test/data/webui/print_preview/policy_test.ts +++ b/chrome/test/data/webui/print_preview/policy_test.ts
@@ -65,7 +65,8 @@ */ function loadInitialSettings(initialSettings: NativeInitialSettings): Promise<void> { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const nativeLayer = new NativeLayerStub(); nativeLayer.setInitialSettings(initialSettings); nativeLayer.setLocalDestinations(
diff --git a/chrome/test/data/webui/print_preview/preview_area_test.ts b/chrome/test/data/webui/print_preview/preview_area_test.ts index 6ae1d6f7..0cf57c53 100644 --- a/chrome/test/data/webui/print_preview/preview_area_test.ts +++ b/chrome/test/data/webui/print_preview/preview_area_test.ts
@@ -35,7 +35,8 @@ pluginProxy = new TestPluginProxy(); PluginProxyImpl.setInstance(pluginProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const model = document.createElement('print-preview-model'); document.body.appendChild(model); model.setSetting('pages', [1, 2, 3]);
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.ts b/chrome/test/data/webui/print_preview/preview_generation_test.ts index 19772c6..276186a 100644 --- a/chrome/test/data/webui/print_preview/preview_generation_test.ts +++ b/chrome/test/data/webui/print_preview/preview_generation_test.ts
@@ -62,7 +62,8 @@ // <if expr="is_chromeos"> setNativeLayerCrosInstance(); // </if> - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/print_preview/print_button_test.ts b/chrome/test/data/webui/print_preview/print_button_test.ts index 83387e9..14f3992e 100644 --- a/chrome/test/data/webui/print_preview/print_button_test.ts +++ b/chrome/test/data/webui/print_preview/print_button_test.ts
@@ -45,7 +45,8 @@ // <if expr="is_chromeos"> setNativeLayerCrosInstance(); // </if> - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; nativeLayer.setInitialSettings(initialSettings); const localDestinationInfos = [ {printerName: 'FooName', deviceName: 'FooDevice'},
diff --git a/chrome/test/data/webui/print_preview/print_preview_app_test.ts b/chrome/test/data/webui/print_preview/print_preview_app_test.ts index 2ecefcc..477a83a 100644 --- a/chrome/test/data/webui/print_preview/print_preview_app_test.ts +++ b/chrome/test/data/webui/print_preview/print_preview_app_test.ts
@@ -72,7 +72,8 @@ setup(function() { // Stub out the native layer and the plugin. - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; nativeLayer = new NativeLayerStub(); NativeLayerImpl.setInstance(nativeLayer); // <if expr="is_chromeos">
diff --git a/chrome/test/data/webui/print_preview/print_preview_sidebar_test.ts b/chrome/test/data/webui/print_preview/print_preview_sidebar_test.ts index 8baa928..7137a46 100644 --- a/chrome/test/data/webui/print_preview/print_preview_sidebar_test.ts +++ b/chrome/test/data/webui/print_preview/print_preview_sidebar_test.ts
@@ -42,7 +42,8 @@ // </if> nativeLayer.setLocalDestinationCapabilities(getCddTemplate('FooDevice')); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/restore_state_test.ts b/chrome/test/data/webui/print_preview/restore_state_test.ts index 0401d40..0297140a 100644 --- a/chrome/test/data/webui/print_preview/restore_state_test.ts +++ b/chrome/test/data/webui/print_preview/restore_state_test.ts
@@ -38,7 +38,8 @@ // <if expr="is_chromeos"> setNativeLayerCrosInstance(); // </if> - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/print_preview/scaling_settings_interactive_test.ts b/chrome/test/data/webui/print_preview/scaling_settings_interactive_test.ts index 23b5c4f..49567c0 100644 --- a/chrome/test/data/webui/print_preview/scaling_settings_interactive_test.ts +++ b/chrome/test/data/webui/print_preview/scaling_settings_interactive_test.ts
@@ -28,7 +28,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model); model.set('settings.scalingTypePdf.available', false);
diff --git a/chrome/test/data/webui/print_preview/scaling_settings_test.ts b/chrome/test/data/webui/print_preview/scaling_settings_test.ts index 9df3ca3..4d183d4 100644 --- a/chrome/test/data/webui/print_preview/scaling_settings_test.ts +++ b/chrome/test/data/webui/print_preview/scaling_settings_test.ts
@@ -26,7 +26,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/select_mixin_test.ts b/chrome/test/data/webui/print_preview/select_mixin_test.ts index 086a518..0ecf833 100644 --- a/chrome/test/data/webui/print_preview/select_mixin_test.ts +++ b/chrome/test/data/webui/print_preview/select_mixin_test.ts
@@ -52,7 +52,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testSelect = document.createElement('test-select') as ( HTMLElement & SelectMixinInterface); document.body.appendChild(testSelect);
diff --git a/chrome/test/data/webui/print_preview/settings_select_test.ts b/chrome/test/data/webui/print_preview/settings_select_test.ts index 4c7ab25..c2c94c43 100644 --- a/chrome/test/data/webui/print_preview/settings_select_test.ts +++ b/chrome/test/data/webui/print_preview/settings_select_test.ts
@@ -18,7 +18,8 @@ let model: PrintPreviewModelElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; model = document.createElement('print-preview-model'); document.body.appendChild(model);
diff --git a/chrome/test/data/webui/print_preview/system_dialog_browsertest.ts b/chrome/test/data/webui/print_preview/system_dialog_browsertest.ts index 4102f1c..7c012c99 100644 --- a/chrome/test/data/webui/print_preview/system_dialog_browsertest.ts +++ b/chrome/test/data/webui/print_preview/system_dialog_browsertest.ts
@@ -41,7 +41,8 @@ setup(function() { nativeLayer = new NativeLayerStub(); NativeLayerImpl.setInstance(nativeLayer); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const initialSettings = getDefaultInitialSettings(); nativeLayer.setInitialSettings(initialSettings);
diff --git a/chrome/test/data/webui/print_preview/tsconfig_base.json b/chrome/test/data/webui/print_preview/tsconfig_base.json index 8650324b..4f05d96 100644 --- a/chrome/test/data/webui/print_preview/tsconfig_base.json +++ b/chrome/test/data/webui/print_preview/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
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 7e3a797..5a9246a 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
@@ -53,7 +53,8 @@ browserProxy = new TestPrivacySandboxDialogBrowserProxy(); PrivacySandboxDialogBrowserProxy.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-sandbox-dialog-app'); document.body.appendChild(page); @@ -155,7 +156,8 @@ browserProxy = new TestPrivacySandboxDialogBrowserProxy(); PrivacySandboxDialogBrowserProxy.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-sandbox-dialog-app'); document.body.appendChild(page);
diff --git a/chrome/test/data/webui/privacy_sandbox/tsconfig_base.json b/chrome/test/data/webui/privacy_sandbox/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/privacy_sandbox/tsconfig_base.json +++ b/chrome/test/data/webui/privacy_sandbox/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/settings/about_page_tests.ts b/chrome/test/data/webui/settings/about_page_tests.ts index 7ab3076..b59d760 100644 --- a/chrome/test/data/webui/settings/about_page_tests.ts +++ b/chrome/test/data/webui/settings/about_page_tests.ts
@@ -73,7 +73,8 @@ function initNewPage(): Promise<void> { aboutBrowserProxy.reset(); lifetimeBrowserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-about-page'); Router.getInstance().navigateTo(testRoutes.ABOUT); document.body.appendChild(page); @@ -315,7 +316,8 @@ setupRouter(); browserProxy = new TestAboutPageBrowserProxy(); AboutPageBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-about-page'); document.body.appendChild(page); });
diff --git a/chrome/test/data/webui/settings/advanced_page_test.ts b/chrome/test/data/webui/settings/advanced_page_test.ts index 63ef831..aba93bf 100644 --- a/chrome/test/data/webui/settings/advanced_page_test.ts +++ b/chrome/test/data/webui/settings/advanced_page_test.ts
@@ -17,7 +17,8 @@ let basicPage: SettingsBasicPageElement; suiteSetup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const settingsUi = document.createElement('settings-ui'); document.body.appendChild(settingsUi); return CrSettingsPrefs.initialized
diff --git a/chrome/test/data/webui/settings/all_sites_tests.ts b/chrome/test/data/webui/settings/all_sites_tests.ts index cb6b46d..15df615 100644 --- a/chrome/test/data/webui/settings/all_sites_tests.ts +++ b/chrome/test/data/webui/settings/all_sites_tests.ts
@@ -59,7 +59,8 @@ // Initialize a site-list before each test. setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; prefsVarious = createSiteSettingsPrefs([], [ createContentSettingTypeToValuePair( @@ -462,7 +463,8 @@ // The default sorting (most visited) will have the ascending storage // values. With the URL param, we expect the sites to be sorted by usage in // descending order. - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; setUpAllSites(prefsVarious, SortMethod.STORAGE); testElement = document.createElement('all-sites'); document.body.appendChild(testElement); @@ -514,7 +516,8 @@ }); test('can sort by name by passing URL param', async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; setUpAllSites(prefsVarious, SortMethod.NAME); testElement = document.createElement('all-sites'); document.body.appendChild(testElement); @@ -1087,7 +1090,8 @@ // Initialize a site-list before each test. setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestSiteSettingsPrefsBrowserProxy(); localDataBrowserProxy = new TestLocalDataBrowserProxy(); @@ -1507,7 +1511,8 @@ // Initialize a site-list before each test. setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestSiteSettingsPrefsBrowserProxy(); localDataBrowserProxy = new TestLocalDataBrowserProxy();
diff --git a/chrome/test/data/webui/settings/appearance_fonts_page_test.ts b/chrome/test/data/webui/settings/appearance_fonts_page_test.ts index 4bb8ab1..d8478f2e 100644 --- a/chrome/test/data/webui/settings/appearance_fonts_page_test.ts +++ b/chrome/test/data/webui/settings/appearance_fonts_page_test.ts
@@ -47,7 +47,8 @@ fontsBrowserProxy = new TestFontsBrowserProxy(); FontsBrowserProxyImpl.setInstance(fontsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; fontsPage = document.createElement('settings-appearance-fonts-page'); document.body.appendChild(fontsPage);
diff --git a/chrome/test/data/webui/settings/appearance_page_test.ts b/chrome/test/data/webui/settings/appearance_page_test.ts index 877dff8..e3e6e75 100644 --- a/chrome/test/data/webui/settings/appearance_page_test.ts +++ b/chrome/test/data/webui/settings/appearance_page_test.ts
@@ -95,7 +95,7 @@ function createAppearancePage() { appearanceBrowserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; appearancePage = document.createElement('settings-appearance-page'); appearancePage.set('prefs', { @@ -324,7 +324,8 @@ setup(function() { appearanceBrowserProxy = new TestAppearanceBrowserProxy(); AppearanceBrowserProxyImpl.setInstance(appearanceBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; homeUrlInput = document.createElement('home-url-input'); homeUrlInput.set(
diff --git a/chrome/test/data/webui/settings/autofill_page_test.ts b/chrome/test/data/webui/settings/autofill_page_test.ts index 024881f..64414a1f 100644 --- a/chrome/test/data/webui/settings/autofill_page_test.ts +++ b/chrome/test/data/webui/settings/autofill_page_test.ts
@@ -142,7 +142,8 @@ setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); @@ -308,7 +309,7 @@ value: false, }, }; - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(autofillPage); flush(); return autofillPage;
diff --git a/chrome/test/data/webui/settings/autofill_section_test.ts b/chrome/test/data/webui/settings/autofill_section_test.ts index 6bdc78b..66623f8 100644 --- a/chrome/test/data/webui/settings/autofill_section_test.ts +++ b/chrome/test/data/webui/settings/autofill_section_test.ts
@@ -96,7 +96,7 @@ autofillManager.data.addresses = [address]; AutofillManagerImpl.setInstance(autofillManager); - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; const section = document.createElement('settings-autofill-section'); document.body.appendChild(section); flush(); @@ -143,7 +143,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('verifyNoAddresses', function() { @@ -504,7 +505,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); // US address has 3 fields on the same line.
diff --git a/chrome/test/data/webui/settings/avatar_icon_test.ts b/chrome/test/data/webui/settings/avatar_icon_test.ts index bfa871f6..ea67e5f 100644 --- a/chrome/test/data/webui/settings/avatar_icon_test.ts +++ b/chrome/test/data/webui/settings/avatar_icon_test.ts
@@ -16,7 +16,8 @@ let syncBrowserProxy: TestSyncBrowserProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; syncBrowserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(syncBrowserProxy);
diff --git a/chrome/test/data/webui/settings/basic_page_test.ts b/chrome/test/data/webui/settings/basic_page_test.ts index f9430203..7d3a0f1 100644 --- a/chrome/test/data/webui/settings/basic_page_test.ts +++ b/chrome/test/data/webui/settings/basic_page_test.ts
@@ -49,7 +49,8 @@ }); setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Because some test() cases below call navigateTo(), need to ensure that // the route is being reset before each test. @@ -296,7 +297,8 @@ loadTimeData.overrideValues({showPrivacyGuide: true}); privacyGuideBrowserProxy = new TestPrivacyGuideBrowserProxy(); PrivacyGuideBrowserProxyImpl.setInstance(privacyGuideBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-basic-page'); page.prefs = settingsPrefs.prefs!; // The promo is only shown when privacy guide hasn't been visited yet. @@ -448,7 +450,8 @@ } async function createNewBasicPage() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-basic-page'); document.body.appendChild(page); flush();
diff --git a/chrome/test/data/webui/settings/battery_page_test.ts b/chrome/test/data/webui/settings/battery_page_test.ts index fe9ab26..1d7f622e 100644 --- a/chrome/test/data/webui/settings/battery_page_test.ts +++ b/chrome/test/data/webui/settings/battery_page_test.ts
@@ -29,7 +29,8 @@ openWindowProxy = new TestOpenWindowProxy(); OpenWindowProxyImpl.setInstance(openWindowProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; batteryPage = document.createElement('settings-battery-page'); batteryPage.set('prefs', { performance_tuning: { @@ -121,4 +122,4 @@ assertFalse(!!sendFeedbackLink); // </if> }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/settings/category_default_setting_tests.ts b/chrome/test/data/webui/settings/category_default_setting_tests.ts index 3d84b6b..92ad8b4 100644 --- a/chrome/test/data/webui/settings/category_default_setting_tests.ts +++ b/chrome/test/data/webui/settings/category_default_setting_tests.ts
@@ -26,7 +26,8 @@ setup(function() { browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('category-default-setting'); testElement.subOptionLabel = 'test label'; document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/settings/category_setting_exceptions_tests.ts b/chrome/test/data/webui/settings/category_setting_exceptions_tests.ts index 87fcbf6..8b811edb 100644 --- a/chrome/test/data/webui/settings/category_setting_exceptions_tests.ts +++ b/chrome/test/data/webui/settings/category_setting_exceptions_tests.ts
@@ -27,7 +27,8 @@ setup(function() { browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('category-setting-exceptions'); document.body.appendChild(testElement); }); @@ -56,7 +57,8 @@ test( 'all lists are read-only if the default policy is set by policy', async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const policyPref = createSiteSettingsPrefs( [ createContentSettingTypeToValuePair( @@ -90,7 +92,8 @@ test( 'all lists are not read-only if the default policy is set by user', async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const dummyPref = createSiteSettingsPrefs( [ createContentSettingTypeToValuePair(
diff --git a/chrome/test/data/webui/settings/checkbox_tests.ts b/chrome/test/data/webui/settings/checkbox_tests.ts index 120e134d..b110348c2 100644 --- a/chrome/test/data/webui/settings/checkbox_tests.ts +++ b/chrome/test/data/webui/settings/checkbox_tests.ts
@@ -25,7 +25,8 @@ // Initialize a checked settings-checkbox before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-checkbox'); testElement.set('pref', pref); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/settings/chooser_exception_list_entry_tests.ts b/chrome/test/data/webui/settings/chooser_exception_list_entry_tests.ts index ea6de960..8619cd1 100644 --- a/chrome/test/data/webui/settings/chooser_exception_list_entry_tests.ts +++ b/chrome/test/data/webui/settings/chooser_exception_list_entry_tests.ts
@@ -32,7 +32,8 @@ setup(function() { browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('chooser-exception-list-entry'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/chooser_exception_list_tests.ts b/chrome/test/data/webui/settings/chooser_exception_list_tests.ts index 9f1750b..e929eb7 100644 --- a/chrome/test/data/webui/settings/chooser_exception_list_tests.ts +++ b/chrome/test/data/webui/settings/chooser_exception_list_tests.ts
@@ -112,7 +112,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('chooser-exception-list'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/chrome_cleanup_page_test.ts b/chrome/test/data/webui/settings/chrome_cleanup_page_test.ts index 88d888e0..cc4e604 100644 --- a/chrome/test/data/webui/settings/chrome_cleanup_page_test.ts +++ b/chrome/test/data/webui/settings/chrome_cleanup_page_test.ts
@@ -220,7 +220,8 @@ chromeCleanupProxy = new TestChromeCleanupProxy(); ChromeCleanupProxyImpl.setInstance(chromeCleanupProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; chromeCleanupPage = document.createElement('settings-chrome-cleanup-page'); chromeCleanupPage.prefs = {
diff --git a/chrome/test/data/webui/settings/clear_browsing_data_test.ts b/chrome/test/data/webui/settings/clear_browsing_data_test.ts index 3ff10e8..06eafb67 100644 --- a/chrome/test/data/webui/settings/clear_browsing_data_test.ts +++ b/chrome/test/data/webui/settings/clear_browsing_data_test.ts
@@ -110,7 +110,8 @@ ClearBrowsingDataBrowserProxyImpl.setInstance(testBrowserProxy); testSyncBrowserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(testSyncBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('settings-clear-browsing-data-dialog'); element.set('prefs', getClearBrowsingDataPrefs()); document.body.appendChild(element); @@ -293,7 +294,8 @@ setup(function() { testBrowserProxy = new TestClearBrowsingDataBrowserProxy(); ClearBrowsingDataBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('settings-clear-browsing-data-dialog'); element.set('prefs', getClearBrowsingDataPrefs()); document.body.appendChild(element); @@ -712,7 +714,8 @@ testBrowserProxy = new TestClearBrowsingDataBrowserProxy(); testBrowserProxy.setInstalledApps(installedApps); ClearBrowsingDataBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('settings-clear-browsing-data-dialog'); element.set('prefs', getClearBrowsingDataPrefs()); document.body.appendChild(element);
diff --git a/chrome/test/data/webui/settings/collapse_radio_button_tests.ts b/chrome/test/data/webui/settings/collapse_radio_button_tests.ts index 07e1d6e..896a289 100644 --- a/chrome/test/data/webui/settings/collapse_radio_button_tests.ts +++ b/chrome/test/data/webui/settings/collapse_radio_button_tests.ts
@@ -16,7 +16,8 @@ let collapseRadioButton: SettingsCollapseRadioButtonElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; collapseRadioButton = document.createElement('settings-collapse-radio-button'); document.body.appendChild(collapseRadioButton);
diff --git a/chrome/test/data/webui/settings/controlled_button_tests.ts b/chrome/test/data/webui/settings/controlled_button_tests.ts index 90833fb..3333b4fb 100644 --- a/chrome/test/data/webui/settings/controlled_button_tests.ts +++ b/chrome/test/data/webui/settings/controlled_button_tests.ts
@@ -41,7 +41,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; controlledButton = document.createElement('controlled-button'); controlledButton.pref = uncontrolledPref; document.body.appendChild(controlledButton);
diff --git a/chrome/test/data/webui/settings/controlled_radio_button_tests.ts b/chrome/test/data/webui/settings/controlled_radio_button_tests.ts index 39fd6cf..8f734a2b 100644 --- a/chrome/test/data/webui/settings/controlled_radio_button_tests.ts +++ b/chrome/test/data/webui/settings/controlled_radio_button_tests.ts
@@ -19,7 +19,8 @@ }; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; radioButton = document.createElement('controlled-radio-button'); radioButton.set('pref', pref); document.body.appendChild(radioButton);
diff --git a/chrome/test/data/webui/settings/cookies_page_test.ts b/chrome/test/data/webui/settings/cookies_page_test.ts index ff01abc..791741ac 100644 --- a/chrome/test/data/webui/settings/cookies_page_test.ts +++ b/chrome/test/data/webui/settings/cookies_page_test.ts
@@ -39,7 +39,8 @@ MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy); siteSettingsBrowserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(siteSettingsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-cookies-page'); page.prefs = settingsPrefs.prefs!; page.set('prefs.generated.cookie_session_only', { @@ -294,7 +295,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-cookies-page'); page.prefs = settingsPrefs.prefs!; page.set('prefs.generated.cookie_session_only', { @@ -337,7 +339,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-cookies-page'); page.prefs = settingsPrefs.prefs!; page.set('prefs.generated.cookie_session_only', { @@ -379,7 +382,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-cookies-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page); @@ -411,7 +415,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-cookies-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page);
diff --git a/chrome/test/data/webui/settings/default_browser_test.ts b/chrome/test/data/webui/settings/default_browser_test.ts index 01f22019..c93b27b1 100644 --- a/chrome/test/data/webui/settings/default_browser_test.ts +++ b/chrome/test/data/webui/settings/default_browser_test.ts
@@ -66,7 +66,8 @@ function initPage() { browserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-default-browser-page'); document.body.appendChild(page); return browserProxy.whenCalled('requestDefaultBrowserState');
diff --git a/chrome/test/data/webui/settings/do_not_track_toggle_test.ts b/chrome/test/data/webui/settings/do_not_track_toggle_test.ts index 9ee925b..61e8324 100644 --- a/chrome/test/data/webui/settings/do_not_track_toggle_test.ts +++ b/chrome/test/data/webui/settings/do_not_track_toggle_test.ts
@@ -22,7 +22,8 @@ setup(function() { testMetricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-do-not-track-toggle'); testElement.prefs = { enable_do_not_track: {
diff --git a/chrome/test/data/webui/settings/downloads_page_test.ts b/chrome/test/data/webui/settings/downloads_page_test.ts index 378d79a8..51409c6 100644 --- a/chrome/test/data/webui/settings/downloads_page_test.ts +++ b/chrome/test/data/webui/settings/downloads_page_test.ts
@@ -61,7 +61,8 @@ downloadsBrowserProxy = new TestDownloadsBrowserProxy(); DownloadsBrowserProxyImpl.setInstance(downloadsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; downloadsPage = document.createElement('settings-downloads-page'); document.body.appendChild(downloadsPage);
diff --git a/chrome/test/data/webui/settings/dropdown_menu_tests.ts b/chrome/test/data/webui/settings/dropdown_menu_tests.ts index ce653b3..ce75364 100644 --- a/chrome/test/data/webui/settings/dropdown_menu_tests.ts +++ b/chrome/test/data/webui/settings/dropdown_menu_tests.ts
@@ -33,7 +33,8 @@ } setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dropdown = document.createElement('settings-dropdown-menu'); document.body.appendChild(dropdown); selectElement = dropdown.shadowRoot!.querySelector('select')!;
diff --git a/chrome/test/data/webui/settings/edit_dictionary_page_test.ts b/chrome/test/data/webui/settings/edit_dictionary_page_test.ts index 20f7b59d..fe83ffa 100644 --- a/chrome/test/data/webui/settings/edit_dictionary_page_test.ts +++ b/chrome/test/data/webui/settings/edit_dictionary_page_test.ts
@@ -50,7 +50,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; settingsPrefs = document.createElement('settings-prefs'); const settingsPrivate = new FakeSettingsPrivate(getFakePrefs()) as unknown as typeof chrome.settingsPrivate;
diff --git a/chrome/test/data/webui/settings/extension_controlled_indicator_tests.ts b/chrome/test/data/webui/settings/extension_controlled_indicator_tests.ts index 4b1c9337..f0cc66dd 100644 --- a/chrome/test/data/webui/settings/extension_controlled_indicator_tests.ts +++ b/chrome/test/data/webui/settings/extension_controlled_indicator_tests.ts
@@ -19,7 +19,8 @@ let openWindowProxy: TestOpenWindowProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestExtensionControlBrowserProxy(); ExtensionControlBrowserProxyImpl.setInstance(browserProxy); openWindowProxy = new TestOpenWindowProxy();
diff --git a/chrome/test/data/webui/settings/help_page_test.ts b/chrome/test/data/webui/settings/help_page_test.ts index 1ac71506..eb02f9d8 100644 --- a/chrome/test/data/webui/settings/help_page_test.ts +++ b/chrome/test/data/webui/settings/help_page_test.ts
@@ -16,7 +16,8 @@ // Register mocha tests. suite('SettingsHelpPage', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // The ChromeContentBrowserClient will rewrite chrome://help to // chrome://settings/help. window.history.pushState('', 'Test', 'chrome://settings/help');
diff --git a/chrome/test/data/webui/settings/import_data_dialog_test.ts b/chrome/test/data/webui/settings/import_data_dialog_test.ts index 4812aaa..2c26403 100644 --- a/chrome/test/data/webui/settings/import_data_dialog_test.ts +++ b/chrome/test/data/webui/settings/import_data_dialog_test.ts
@@ -100,7 +100,8 @@ browserProxy = new TestImportDataBrowserProxy(); browserProxy.setBrowserProfiles(browserProfiles); ImportDataBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-import-data-dialog'); dialog.set('prefs', prefs); document.body.appendChild(dialog);
diff --git a/chrome/test/data/webui/settings/incompatible_applications_page_test.ts b/chrome/test/data/webui/settings/incompatible_applications_page_test.ts index ed76093f..e74f4a4 100644 --- a/chrome/test/data/webui/settings/incompatible_applications_page_test.ts +++ b/chrome/test/data/webui/settings/incompatible_applications_page_test.ts
@@ -124,7 +124,8 @@ async function initPage(hasAdminRights: boolean): Promise<void> { incompatibleApplicationsBrowserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({ hasAdminRights: hasAdminRights,
diff --git a/chrome/test/data/webui/settings/languages_page_metrics_test_browser.ts b/chrome/test/data/webui/settings/languages_page_metrics_test_browser.ts index d774966b..4da8851 100644 --- a/chrome/test/data/webui/settings/languages_page_metrics_test_browser.ts +++ b/chrome/test/data/webui/settings/languages_page_metrics_test_browser.ts
@@ -28,7 +28,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const settingsPrefs = document.createElement('settings-prefs'); const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()) as unknown as typeof chrome.settingsPrivate;
diff --git a/chrome/test/data/webui/settings/languages_page_tests.ts b/chrome/test/data/webui/settings/languages_page_tests.ts index e09e5f375..271881d6 100644 --- a/chrome/test/data/webui/settings/languages_page_tests.ts +++ b/chrome/test/data/webui/settings/languages_page_tests.ts
@@ -38,7 +38,8 @@ const initialLanguages = 'en-US,sw'; suiteSetup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; CrSettingsPrefs.deferInitialization = true; }); @@ -85,7 +86,8 @@ }); teardown(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); suite(languages_page_tests.TestNames.AddLanguagesDialog, function() {
diff --git a/chrome/test/data/webui/settings/languages_tests.ts b/chrome/test/data/webui/settings/languages_tests.ts index 5087822c..a414bf46 100644 --- a/chrome/test/data/webui/settings/languages_tests.ts +++ b/chrome/test/data/webui/settings/languages_tests.ts
@@ -30,7 +30,8 @@ suiteSetup(function() { CrSettingsPrefs.deferInitialization = true; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); setup(function() {
diff --git a/chrome/test/data/webui/settings/metrics_reporting_tests.ts b/chrome/test/data/webui/settings/metrics_reporting_tests.ts index 941a0c653..bfc8664 100644 --- a/chrome/test/data/webui/settings/metrics_reporting_tests.ts +++ b/chrome/test/data/webui/settings/metrics_reporting_tests.ts
@@ -23,7 +23,8 @@ setup(function() { testBrowserProxy = new TestPrivacyPageBrowserProxy(); PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-personalization-options'); document.body.appendChild(page); });
diff --git a/chrome/test/data/webui/settings/on_startup_page_tests.ts b/chrome/test/data/webui/settings/on_startup_page_tests.ts index f63036bd..88274667a 100644 --- a/chrome/test/data/webui/settings/on_startup_page_tests.ts +++ b/chrome/test/data/webui/settings/on_startup_page_tests.ts
@@ -51,7 +51,8 @@ async function initPage(): Promise<void> { onStartupBrowserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-on-startup-page'); testElement.prefs = { session: {
diff --git a/chrome/test/data/webui/settings/passkey_edit_dialog_test.ts b/chrome/test/data/webui/settings/passkey_edit_dialog_test.ts index 0220ff69..458d365 100644 --- a/chrome/test/data/webui/settings/passkey_edit_dialog_test.ts +++ b/chrome/test/data/webui/settings/passkey_edit_dialog_test.ts
@@ -140,7 +140,8 @@ setup(async function() { browserProxy = new TestPasskeysBrowserProxy(); PasskeysBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-passkeys-subpage'); });
diff --git a/chrome/test/data/webui/settings/passkeys_subpage_test.ts b/chrome/test/data/webui/settings/passkeys_subpage_test.ts index 21da59ad..f56a06a3 100644 --- a/chrome/test/data/webui/settings/passkeys_subpage_test.ts +++ b/chrome/test/data/webui/settings/passkeys_subpage_test.ts
@@ -109,7 +109,8 @@ setup(async function() { browserProxy = new TestPasskeysBrowserProxy(); PasskeysBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-passkeys-subpage'); });
diff --git a/chrome/test/data/webui/settings/password_edit_dialog_test.ts b/chrome/test/data/webui/settings/password_edit_dialog_test.ts index 82a86ad8..c107bc6 100644 --- a/chrome/test/data/webui/settings/password_edit_dialog_test.ts +++ b/chrome/test/data/webui/settings/password_edit_dialog_test.ts
@@ -213,7 +213,8 @@ let elementFactory: PasswordSectionElementFactory; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager);
diff --git a/chrome/test/data/webui/settings/password_view_test.ts b/chrome/test/data/webui/settings/password_view_test.ts index 0c607e1..7a4b113 100644 --- a/chrome/test/data/webui/settings/password_view_test.ts +++ b/chrome/test/data/webui/settings/password_view_test.ts
@@ -94,7 +94,8 @@ Router.resetInstanceForTesting(buildRouter()); routes.PASSWORD_VIEW = (Router.getInstance().getRoutes() as SettingsRoutes).PASSWORD_VIEW; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager); });
diff --git a/chrome/test/data/webui/settings/passwords_device_section_test.ts b/chrome/test/data/webui/settings/passwords_device_section_test.ts index 1661d5b..614ba1af 100644 --- a/chrome/test/data/webui/settings/passwords_device_section_test.ts +++ b/chrome/test/data/webui/settings/passwords_device_section_test.ts
@@ -73,7 +73,8 @@ let elementFactory: PasswordDeviceSectionElementFactory; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager); syncBrowserProxy = new TestSyncBrowserProxy();
diff --git a/chrome/test/data/webui/settings/passwords_export_dialog_test.ts b/chrome/test/data/webui/settings/passwords_export_dialog_test.ts index 2486944..caa69c2f 100644 --- a/chrome/test/data/webui/settings/passwords_export_dialog_test.ts +++ b/chrome/test/data/webui/settings/passwords_export_dialog_test.ts
@@ -263,7 +263,8 @@ setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager);
diff --git a/chrome/test/data/webui/settings/passwords_import_dialog_test.ts b/chrome/test/data/webui/settings/passwords_import_dialog_test.ts index 88ea5c2..f24c85a0 100644 --- a/chrome/test/data/webui/settings/passwords_import_dialog_test.ts +++ b/chrome/test/data/webui/settings/passwords_import_dialog_test.ts
@@ -91,7 +91,8 @@ let elementFactory: PasswordSectionElementFactory; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager);
diff --git a/chrome/test/data/webui/settings/passwords_section_test.ts b/chrome/test/data/webui/settings/passwords_section_test.ts index 699b843..7926199 100644 --- a/chrome/test/data/webui/settings/passwords_section_test.ts +++ b/chrome/test/data/webui/settings/passwords_section_test.ts
@@ -236,7 +236,8 @@ let testHatsBrowserProxy: TestHatsBrowserProxy; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); pluralString = new TestPluralStringProxy();
diff --git a/chrome/test/data/webui/settings/passwords_section_test_cros.ts b/chrome/test/data/webui/settings/passwords_section_test_cros.ts index 3ff78d8..0cba375 100644 --- a/chrome/test/data/webui/settings/passwords_section_test_cros.ts +++ b/chrome/test/data/webui/settings/passwords_section_test_cros.ts
@@ -105,7 +105,8 @@ let elementFactory: CrosPasswordSectionElementFactory; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override the PasswordManagerImpl for testing. passwordManager = new TestPasswordManagerProxy(); PasswordManagerImpl.setInstance(passwordManager);
diff --git a/chrome/test/data/webui/settings/payments_section_interactive_test.ts b/chrome/test/data/webui/settings/payments_section_interactive_test.ts index 201a243..c2106e75 100644 --- a/chrome/test/data/webui/settings/payments_section_interactive_test.ts +++ b/chrome/test/data/webui/settings/payments_section_interactive_test.ts
@@ -24,7 +24,8 @@ suite('PaymentsSectionCreditCardEditDialogTest', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/settings/payments_section_test.ts b/chrome/test/data/webui/settings/payments_section_test.ts index 5aa90ba..dec267c 100644 --- a/chrome/test/data/webui/settings/payments_section_test.ts +++ b/chrome/test/data/webui/settings/payments_section_test.ts
@@ -39,7 +39,8 @@ suite('PaymentsSection', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({ migrationEnabled: true, virtualCardEnrollmentEnabled: true,
diff --git a/chrome/test/data/webui/settings/people_page_manage_profile_test.ts b/chrome/test/data/webui/settings/people_page_manage_profile_test.ts index aa14546..0d40a78 100644 --- a/chrome/test/data/webui/settings/people_page_manage_profile_test.ts +++ b/chrome/test/data/webui/settings/people_page_manage_profile_test.ts
@@ -92,7 +92,8 @@ setup(function() { browserProxy = new TestManageProfileBrowserProxy(); ManageProfileBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({profileShortcutsEnabled: false}); manageProfile = createManageProfileElement(); Router.getInstance().navigateTo(routes.MANAGE_PROFILE); @@ -199,7 +200,8 @@ // Tests profile shortcut toggle is visible and toggling it removes and // creates the profile shortcut respectively. test('ManageProfileShortcutToggle', async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({profileShortcutsEnabled: true}); manageProfile = createManageProfileElement(); flush(); @@ -238,7 +240,8 @@ browserProxy.setProfileShortcutStatus( ProfileShortcutStatus.PROFILE_SHORTCUT_NOT_FOUND); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({profileShortcutsEnabled: true}); manageProfile = createManageProfileElement(); flush(); @@ -263,7 +266,8 @@ browserProxy.setProfileShortcutStatus( ProfileShortcutStatus.PROFILE_SHORTCUT_SETTING_HIDDEN); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({profileShortcutsEnabled: true}); manageProfile = createManageProfileElement(); flush();
diff --git a/chrome/test/data/webui/settings/people_page_sync_controls_test.ts b/chrome/test/data/webui/settings/people_page_sync_controls_test.ts index ef139d1..76d3dbd 100644 --- a/chrome/test/data/webui/settings/people_page_sync_controls_test.ts +++ b/chrome/test/data/webui/settings/people_page_sync_controls_test.ts
@@ -28,7 +28,8 @@ browserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; syncControls = document.createElement('settings-sync-controls'); document.body.appendChild(syncControls); @@ -148,7 +149,8 @@ browserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; syncControls = document.createElement('settings-sync-controls'); const router = Router.getInstance();
diff --git a/chrome/test/data/webui/settings/people_page_sync_page_interactive_test.ts b/chrome/test/data/webui/settings/people_page_sync_page_interactive_test.ts index 3f519158..ef0003f 100644 --- a/chrome/test/data/webui/settings/people_page_sync_page_interactive_test.ts +++ b/chrome/test/data/webui/settings/people_page_sync_page_interactive_test.ts
@@ -21,7 +21,8 @@ setup(function() { setupRouterWithSyncRoutes(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; SyncBrowserProxyImpl.setInstance(new TestSyncBrowserProxy()); const router = Router.getInstance(); router.navigateTo((router.getRoutes() as SyncRoutes).SYNC);
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 b1cd7fa..e44bd3b 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
@@ -40,7 +40,8 @@ let encryptWithPassphrase: CrRadioButtonElement; function setupSyncPage() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; syncPage = document.createElement('settings-sync-page'); const router = Router.getInstance(); router.navigateTo((router.getRoutes() as SyncRoutes).SYNC);
diff --git a/chrome/test/data/webui/settings/people_page_test.ts b/chrome/test/data/webui/settings/people_page_test.ts index 206cd6c0..c1f8efb 100644 --- a/chrome/test/data/webui/settings/people_page_test.ts +++ b/chrome/test/data/webui/settings/people_page_test.ts
@@ -59,7 +59,8 @@ syncBrowserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(syncBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.pageVisibility = pageVisibility; document.body.appendChild(peoplePage); @@ -111,7 +112,8 @@ profileInfoBrowserProxy = new TestProfileInfoBrowserProxy(); ProfileInfoBrowserProxyImpl.setInstance(profileInfoBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.pageVisibility = pageVisibility; document.body.appendChild(peoplePage); @@ -149,7 +151,8 @@ profileInfoBrowserProxy = new TestProfileInfoBrowserProxy(); ProfileInfoBrowserProxyImpl.setInstance(profileInfoBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.pageVisibility = pageVisibility; document.body.appendChild(peoplePage); @@ -452,7 +455,8 @@ profileInfoBrowserProxy = new TestProfileInfoBrowserProxy(); ProfileInfoBrowserProxyImpl.setInstance(profileInfoBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.pageVisibility = pageVisibility; document.body.appendChild(peoplePage);
diff --git a/chrome/test/data/webui/settings/people_page_test_cros.ts b/chrome/test/data/webui/settings/people_page_test_cros.ts index 2ef665d4..ceace4d 100644 --- a/chrome/test/data/webui/settings/people_page_test_cros.ts +++ b/chrome/test/data/webui/settings/people_page_test_cros.ts
@@ -76,7 +76,8 @@ accountManagerBrowserProxy = new TestAccountManagerBrowserProxy(); AccountManagerBrowserProxyImpl.setInstance(accountManagerBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.prefs = DEFAULT_PREFS; peoplePage.pageVisibility = pageVisibility; @@ -135,7 +136,8 @@ profileInfoBrowserProxy = new TestProfileInfoBrowserProxy(); ProfileInfoBrowserProxyImpl.setInstance(profileInfoBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; peoplePage = document.createElement('settings-people-page'); peoplePage.prefs = DEFAULT_PREFS; peoplePage.pageVisibility = pageVisibility;
diff --git a/chrome/test/data/webui/settings/performance_page_test.ts b/chrome/test/data/webui/settings/performance_page_test.ts index be1938f1..1b988c3 100644 --- a/chrome/test/data/webui/settings/performance_page_test.ts +++ b/chrome/test/data/webui/settings/performance_page_test.ts
@@ -55,7 +55,8 @@ openWindowProxy = new TestOpenWindowProxy(); OpenWindowProxyImpl.setInstance(openWindowProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; performancePage = document.createElement('settings-performance-page'); performancePage.set('prefs', { performance_tuning: { @@ -222,4 +223,4 @@ ['foo', 'baz'], tabDiscardExceptionsList.$.list.items, 'expected valid rule to be added to the end of the list'); }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/settings/personalization_options_test.ts b/chrome/test/data/webui/settings/personalization_options_test.ts index 742da845..80f8aa3 100644 --- a/chrome/test/data/webui/settings/personalization_options_test.ts +++ b/chrome/test/data/webui/settings/personalization_options_test.ts
@@ -38,7 +38,8 @@ }); function buildTestElement() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-personalization-options'); testElement.prefs = { autofill_assistant: {enabled: {value: false}}, @@ -328,7 +329,8 @@ setup(function() { testBrowserProxy = new TestPrivacyPageBrowserProxy(); PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-personalization-options'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/prefs_tests.ts b/chrome/test/data/webui/settings/prefs_tests.ts index a4331cc9..f36bae3 100644 --- a/chrome/test/data/webui/settings/prefs_tests.ts +++ b/chrome/test/data/webui/settings/prefs_tests.ts
@@ -76,7 +76,8 @@ // Initialize a <settings-prefs> before each test. setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Override chrome.settingsPrivate with FakeSettingsPrivate. fakeApi = new FakeSettingsPrivate(prefsTestCases.map(function(testCase) { @@ -97,7 +98,8 @@ CrSettingsPrefs.deferInitialization = false; prefs.resetForTesting(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('receives and caches prefs', function testGetPrefs() {
diff --git a/chrome/test/data/webui/settings/privacy_guide_page_test.ts b/chrome/test/data/webui/settings/privacy_guide_page_test.ts index f55baee0..59859540 100644 --- a/chrome/test/data/webui/settings/privacy_guide_page_test.ts +++ b/chrome/test/data/webui/settings/privacy_guide_page_test.ts
@@ -313,7 +313,7 @@ // Bundles functionality to create the page object for tests. function createPrivacyGuidePageForTest(settingsPrefs: SettingsPrefsElement) { - document.body.innerHTML = ''; + document.body.innerHTML = window.trustedTypes!.emptyHTML as unknown as string; const page = document.createElement('settings-privacy-guide-page'); page.disableAnimationsForTesting(); page.prefs = settingsPrefs.prefs!; @@ -1325,7 +1325,8 @@ syncBrowserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(syncBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-guide-history-sync-fragment'); document.body.appendChild(page); return flushTasks(); @@ -1499,7 +1500,8 @@ testMetricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-guide-completion-fragment'); document.body.appendChild(page); @@ -1576,7 +1578,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-guide-completion-fragment'); document.body.appendChild(page); @@ -1627,7 +1630,8 @@ testMetricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('privacy-guide-completion-fragment'); document.body.appendChild(page); @@ -1668,7 +1672,8 @@ let page: SettingsPrivacyGuideDialogElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-guide-dialog'); document.body.appendChild(page); @@ -1703,7 +1708,8 @@ suite('CardHeaderTestsPrivacyGuide2Enabled', function() { test('phase2HeadersVisible', function() { for (const fragmentName of SETTINGS_FRAGMENT_NAMES) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const page = document.createElement(fragmentName); document.body.appendChild(page); flush(); @@ -1727,7 +1733,8 @@ test('phase1HeadersVisible', function() { for (const fragmentName of SETTINGS_FRAGMENT_NAMES) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const page = document.createElement(fragmentName); document.body.appendChild(page); flush();
diff --git a/chrome/test/data/webui/settings/privacy_page_test.ts b/chrome/test/data/webui/settings/privacy_page_test.ts index 9ac8dba..4b9d94f 100644 --- a/chrome/test/data/webui/settings/privacy_page_test.ts +++ b/chrome/test/data/webui/settings/privacy_page_test.ts
@@ -90,7 +90,8 @@ metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page); @@ -181,7 +182,8 @@ setup(function() { metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page); @@ -234,7 +236,8 @@ loadTimeData.overrideValues({showPrivacyGuide: true}); metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page); @@ -327,7 +330,8 @@ setup(function() { metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page); @@ -369,7 +373,8 @@ PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); Router.getInstance().navigateTo(routes.SITE_SETTINGS_SOUND); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); document.body.appendChild(page); return flushTasks(); @@ -464,7 +469,8 @@ setup(function() { testHatsBrowserProxy = new TestHatsBrowserProxy(); HatsBrowserProxyImpl.setInstance(testHatsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-privacy-page'); page.prefs = settingsPrefs.prefs!; document.body.appendChild(page);
diff --git a/chrome/test/data/webui/settings/privacy_sandbox_test.ts b/chrome/test/data/webui/settings/privacy_sandbox_test.ts index 991d5ef5..1aa277be 100644 --- a/chrome/test/data/webui/settings/privacy_sandbox_test.ts +++ b/chrome/test/data/webui/settings/privacy_sandbox_test.ts
@@ -69,7 +69,8 @@ testPrivacySandboxBrowserProxy = new TestPrivacySandboxBrowserProxy(); PrivacySandboxBrowserProxyImpl.setInstance(testPrivacySandboxBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = /** @type {!PrivacySandboxAppElement} */ (document.createElement('privacy-sandbox-app')); document.body.appendChild(page);
diff --git a/chrome/test/data/webui/settings/protocol_handlers_tests.ts b/chrome/test/data/webui/settings/protocol_handlers_tests.ts index 6591ee4d..51d80a6 100644 --- a/chrome/test/data/webui/settings/protocol_handlers_tests.ts +++ b/chrome/test/data/webui/settings/protocol_handlers_tests.ts
@@ -157,7 +157,8 @@ /** @return {!Promise} */ async function initPage() { browserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('protocol-handlers'); document.body.appendChild(testElement); await browserProxy.whenCalled('observeAppProtocolHandlers');
diff --git a/chrome/test/data/webui/settings/recent_site_permissions_test.ts b/chrome/test/data/webui/settings/recent_site_permissions_test.ts index 2762887..9e1d4487 100644 --- a/chrome/test/data/webui/settings/recent_site_permissions_test.ts +++ b/chrome/test/data/webui/settings/recent_site_permissions_test.ts
@@ -27,7 +27,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-recent-site-permissions'); document.body.appendChild(testElement); flush();
diff --git a/chrome/test/data/webui/settings/relaunch_confirmation_dialog_test.ts b/chrome/test/data/webui/settings/relaunch_confirmation_dialog_test.ts index 2bce93f..f44ad86 100644 --- a/chrome/test/data/webui/settings/relaunch_confirmation_dialog_test.ts +++ b/chrome/test/data/webui/settings/relaunch_confirmation_dialog_test.ts
@@ -44,7 +44,8 @@ lifetimeBrowserProxy = new TestLifetimeBrowserProxy(); LifetimeBrowserProxyImpl.setInstance(lifetimeBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testRelaunchMixin = document.createElement('test-relaunch-mixin-element'); document.body.appendChild(testRelaunchMixin); flush();
diff --git a/chrome/test/data/webui/settings/reset_page_test.ts b/chrome/test/data/webui/settings/reset_page_test.ts index 49633d14c..ce3aae2 100644 --- a/chrome/test/data/webui/settings/reset_page_test.ts +++ b/chrome/test/data/webui/settings/reset_page_test.ts
@@ -32,7 +32,8 @@ resetPageBrowserProxy = new TestResetBrowserProxy(); ResetBrowserProxyImpl.setInstance(resetPageBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; resetPage = document.createElement('settings-reset-page'); document.body.appendChild(resetPage); });
diff --git a/chrome/test/data/webui/settings/reset_profile_banner_test.ts b/chrome/test/data/webui/settings/reset_profile_banner_test.ts index 97b06576..2c717f6 100644 --- a/chrome/test/data/webui/settings/reset_profile_banner_test.ts +++ b/chrome/test/data/webui/settings/reset_profile_banner_test.ts
@@ -17,7 +17,8 @@ setup(function() { browserProxy = new TestResetBrowserProxy(); ResetBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; resetBanner = document.createElement('settings-reset-profile-banner'); document.body.appendChild(resetBanner); assertTrue(resetBanner.$.dialog.open);
diff --git a/chrome/test/data/webui/settings/review_notification_permissions_test.ts b/chrome/test/data/webui/settings/review_notification_permissions_test.ts index 5d61f46..e578df5 100644 --- a/chrome/test/data/webui/settings/review_notification_permissions_test.ts +++ b/chrome/test/data/webui/settings/review_notification_permissions_test.ts
@@ -56,7 +56,8 @@ browserProxy.setNotificationPermissionReview(mock_data); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('review-notification-permissions'); document.body.appendChild(testElement); flush();
diff --git a/chrome/test/data/webui/settings/route_tests.ts b/chrome/test/data/webui/settings/route_tests.ts index 06a37c8b..f2ef30a 100644 --- a/chrome/test/data/webui/settings/route_tests.ts +++ b/chrome/test/data/webui/settings/route_tests.ts
@@ -25,7 +25,8 @@ } teardown(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /** @@ -312,7 +313,8 @@ suite('DynamicParameters', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', 'search?guid=a%2Fb&foo=42'); const settingsUi = document.createElement('settings-ui'); document.body.appendChild(settingsUi); @@ -346,7 +348,8 @@ suite('NonExistentRoute', function() { setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; window.history.replaceState({}, '', 'non/existent/route'); const settingsUi = document.createElement('settings-ui'); document.body.appendChild(settingsUi);
diff --git a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.ts b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.ts index 3889cd4..40b4abe 100644 --- a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.ts +++ b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.ts
@@ -96,7 +96,8 @@ metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-chrome-cleaner-child'); document.body.appendChild(page); flush();
diff --git a/chrome/test/data/webui/settings/safety_check_page_test.ts b/chrome/test/data/webui/settings/safety_check_page_test.ts index 46fc8109..d5ebec4 100644 --- a/chrome/test/data/webui/settings/safety_check_page_test.ts +++ b/chrome/test/data/webui/settings/safety_check_page_test.ts
@@ -132,7 +132,8 @@ safetyCheckBrowserProxy.setParentRanDisplayString('Dummy string'); SafetyCheckBrowserProxyImpl.setInstance(safetyCheckBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-page'); document.body.appendChild(page); flush(); @@ -216,7 +217,8 @@ let page: SettingsSafetyCheckChildElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-child'); document.body.appendChild(page); }); @@ -369,7 +371,8 @@ metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-updates-child'); document.body.appendChild(page); flush(); @@ -495,7 +498,8 @@ metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-passwords-child'); document.body.appendChild(page); flush(); @@ -658,7 +662,8 @@ metricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(metricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-safe-browsing-child'); document.body.appendChild(page); flush(); @@ -803,7 +808,8 @@ openWindowProxy = new TestOpenWindowProxy(); OpenWindowProxyImpl.setInstance(openWindowProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-extensions-child'); document.body.appendChild(page); flush(); @@ -960,7 +966,8 @@ const unusedSiteElementName = 'settings-safety-check-unused-site-permissions'; function createPage() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-page'); document.body.appendChild(page); flush();
diff --git a/chrome/test/data/webui/settings/safety_check_permissions_test.ts b/chrome/test/data/webui/settings/safety_check_permissions_test.ts index df2589be..b5802b3 100644 --- a/chrome/test/data/webui/settings/safety_check_permissions_test.ts +++ b/chrome/test/data/webui/settings/safety_check_permissions_test.ts
@@ -14,7 +14,8 @@ let page: SettingsSafetyCheckUnusedSitePermissionsElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-safety-check-unused-site-permissions'); document.body.appendChild(page); @@ -48,7 +49,8 @@ let page: SettingsSafetyCheckNotificationPermissionsElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement( 'settings-safety-check-notification-permissions'); document.body.appendChild(page);
diff --git a/chrome/test/data/webui/settings/search_engines_page_test.ts b/chrome/test/data/webui/settings/search_engines_page_test.ts index a9b71c48..dab958a 100644 --- a/chrome/test/data/webui/settings/search_engines_page_test.ts +++ b/chrome/test/data/webui/settings/search_engines_page_test.ts
@@ -50,7 +50,8 @@ setup(function() { browserProxy = new TestSearchEnginesBrowserProxy(); SearchEnginesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-search-engine-edit-dialog'); document.body.appendChild(dialog); }); @@ -153,7 +154,8 @@ setup(function() { browserProxy = new TestSearchEnginesBrowserProxy(); SearchEnginesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; entry = document.createElement('settings-search-engine-entry'); entry.set('engine', searchEngine); entry.set('isActiveSearchEnginesFlagEnabled', false); @@ -430,7 +432,8 @@ }); loadTimeData.overrideValues({'isActiveSearchEnginesFlagEnabled': false}); SearchEnginesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-search-engines-page'); page.set('prefs.omnibox.keyword_space_triggering_enabled', { key: 'prefs.omnibox.keyword_space_triggering_enabled', @@ -747,7 +750,8 @@ setup(function() { browserProxy = new TestExtensionControlBrowserProxy(); ExtensionControlBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; entry = document.createElement('settings-omnibox-extension-entry'); entry.set('engine', createSampleOmniboxExtension()); document.body.appendChild(entry);
diff --git a/chrome/test/data/webui/settings/search_page_test.ts b/chrome/test/data/webui/settings/search_page_test.ts index 56c9e532..0cad039 100644 --- a/chrome/test/data/webui/settings/search_page_test.ts +++ b/chrome/test/data/webui/settings/search_page_test.ts
@@ -36,7 +36,8 @@ browserProxy = new TestSearchEnginesBrowserProxy(); browserProxy.setSearchEnginesInfo(generateSearchEngineInfo()); SearchEnginesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-search-page'); page.prefs = { default_search_provider_data: {
diff --git a/chrome/test/data/webui/settings/search_settings_test.ts b/chrome/test/data/webui/settings/search_settings_test.ts index 66f9d80..76fb70da 100644 --- a/chrome/test/data/webui/settings/search_settings_test.ts +++ b/chrome/test/data/webui/settings/search_settings_test.ts
@@ -14,7 +14,8 @@ setup(function() { searchManager = getSearchManager(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); /**
diff --git a/chrome/test/data/webui/settings/secure_dns_interactive_test.ts b/chrome/test/data/webui/settings/secure_dns_interactive_test.ts index 7df48cd7..b1fda2a 100644 --- a/chrome/test/data/webui/settings/secure_dns_interactive_test.ts +++ b/chrome/test/data/webui/settings/secure_dns_interactive_test.ts
@@ -32,7 +32,8 @@ setup(function() { assertTrue(document.hasFocus()); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('secure-dns-input'); document.body.appendChild(testElement); flush(); @@ -86,7 +87,8 @@ testBrowserProxy = new TestPrivacyPageBrowserProxy(); testBrowserProxy.setResolverList(resolverList); PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-secure-dns'); testElement.prefs = { dns_over_https:
diff --git a/chrome/test/data/webui/settings/secure_dns_test.ts b/chrome/test/data/webui/settings/secure_dns_test.ts index 85d0c53..afc06476a 100644 --- a/chrome/test/data/webui/settings/secure_dns_test.ts +++ b/chrome/test/data/webui/settings/secure_dns_test.ts
@@ -44,7 +44,8 @@ setup(function() { testBrowserProxy = new TestPrivacyPageBrowserProxy(); PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('secure-dns-input'); document.body.appendChild(testElement); flush(); @@ -147,7 +148,8 @@ testBrowserProxy = new TestPrivacyPageBrowserProxy(); testBrowserProxy.setResolverList(resolverList); PrivacyPageBrowserProxyImpl.setInstance(testBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-secure-dns'); testElement.prefs = { dns_over_https:
diff --git a/chrome/test/data/webui/settings/security_keys_phones_subpage_test.ts b/chrome/test/data/webui/settings/security_keys_phones_subpage_test.ts index b6591fe..b1fc45e 100644 --- a/chrome/test/data/webui/settings/security_keys_phones_subpage_test.ts +++ b/chrome/test/data/webui/settings/security_keys_phones_subpage_test.ts
@@ -137,7 +137,8 @@ setup(async function() { browserProxy = new TestSecurityKeysPhonesBrowserProxy(); SecurityKeysPhonesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('security-keys-phones-subpage'); browserProxy.setNextPhonesList(initialSynced, initialLinked);
diff --git a/chrome/test/data/webui/settings/security_keys_subpage_test.ts b/chrome/test/data/webui/settings/security_keys_subpage_test.ts index 7d6d5fc..8f65107 100644 --- a/chrome/test/data/webui/settings/security_keys_subpage_test.ts +++ b/chrome/test/data/webui/settings/security_keys_subpage_test.ts
@@ -215,7 +215,8 @@ setup(function() { browserProxy = new TestSecurityKeysResetBrowserProxy(); SecurityKeysResetBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-security-keys-reset-dialog'); allDivs = Object.values(ResetDialogPage); }); @@ -330,7 +331,8 @@ setup(function() { browserProxy = new TestSecurityKeysPINBrowserProxy(); SecurityKeysPINBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-security-keys-set-pin-dialog'); allDivs = Object.values(SetPINDialogPage); }); @@ -595,7 +597,8 @@ setup(function() { browserProxy = new TestSecurityKeysCredentialBrowserProxy(); SecurityKeysCredentialBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement( 'settings-security-keys-credential-management-dialog'); allDivs = Object.values(CredentialManagementDialogPage); @@ -830,7 +833,8 @@ setup(function() { browserProxy = new TestSecurityKeysBioEnrollProxy(); SecurityKeysBioEnrollProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-security-keys-bio-enroll-dialog'); allDivs = Object.values(BioEnrollDialogPage); });
diff --git a/chrome/test/data/webui/settings/security_page_test.ts b/chrome/test/data/webui/settings/security_page_test.ts index 2bb1e291..3682711 100644 --- a/chrome/test/data/webui/settings/security_page_test.ts +++ b/chrome/test/data/webui/settings/security_page_test.ts
@@ -66,7 +66,8 @@ openWindowProxy = new TestOpenWindowProxy(); OpenWindowProxyImpl.setInstance(openWindowProxy); // </if> - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-security-page'); page.prefs = pagePrefs(); document.body.appendChild(page); @@ -614,7 +615,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-security-page'); page.prefs = pagePrefs(); document.body.appendChild(page);
diff --git a/chrome/test/data/webui/settings/settings_category_default_radio_group_tests.ts b/chrome/test/data/webui/settings/settings_category_default_radio_group_tests.ts index 7fa08918..4094d9c 100644 --- a/chrome/test/data/webui/settings/settings_category_default_radio_group_tests.ts +++ b/chrome/test/data/webui/settings/settings_category_default_radio_group_tests.ts
@@ -27,7 +27,8 @@ setup(function() { browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-category-default-radio-group'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/settings/settings_main_test.ts b/chrome/test/data/webui/settings/settings_main_test.ts index 11ec8ec..af638cc 100644 --- a/chrome/test/data/webui/settings/settings_main_test.ts +++ b/chrome/test/data/webui/settings/settings_main_test.ts
@@ -54,7 +54,8 @@ Router.getInstance().navigateTo(routes.BASIC); searchManager = new TestSearchManager(); setSearchManagerForTesting(searchManager); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; settingsMain = document.createElement('settings-main'); settingsMain.prefs = settingsPrefs.prefs!; settingsMain.toolbarSpinnerActive = false;
diff --git a/chrome/test/data/webui/settings/settings_menu_interactive_ui_test.ts b/chrome/test/data/webui/settings/settings_menu_interactive_ui_test.ts index 5d1dcee..f02d7ea 100644 --- a/chrome/test/data/webui/settings/settings_menu_interactive_ui_test.ts +++ b/chrome/test/data/webui/settings/settings_menu_interactive_ui_test.ts
@@ -9,7 +9,8 @@ let settingsMenu: SettingsMenuElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; settingsMenu = document.createElement('settings-menu'); settingsMenu.pageVisibility = pageVisibility; document.body.appendChild(settingsMenu);
diff --git a/chrome/test/data/webui/settings/settings_menu_test.ts b/chrome/test/data/webui/settings/settings_menu_test.ts index 8b7c894..be2409f 100644 --- a/chrome/test/data/webui/settings/settings_menu_test.ts +++ b/chrome/test/data/webui/settings/settings_menu_test.ts
@@ -15,7 +15,8 @@ let settingsMenu: SettingsMenuElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; settingsMenu = document.createElement('settings-menu'); settingsMenu.pageVisibility = pageVisibility; document.body.appendChild(settingsMenu); @@ -55,7 +56,8 @@ let settingsMenu: SettingsMenuElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; Router.getInstance().navigateTo(routes.RESET, undefined); settingsMenu = document.createElement('settings-menu'); document.body.appendChild(settingsMenu);
diff --git a/chrome/test/data/webui/settings/settings_slider_tests.ts b/chrome/test/data/webui/settings/settings_slider_tests.ts index 4625471..76ace39 100644 --- a/chrome/test/data/webui/settings/settings_slider_tests.ts +++ b/chrome/test/data/webui/settings/settings_slider_tests.ts
@@ -25,7 +25,8 @@ const ticks: number[] = [2, 4, 8, 16, 32, 64, 128]; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; slider = document.createElement('settings-slider'); slider.pref = { key: '',
diff --git a/chrome/test/data/webui/settings/settings_subpage_test.ts b/chrome/test/data/webui/settings/settings_subpage_test.ts index 1395fc0..89b9ce5 100644 --- a/chrome/test/data/webui/settings/settings_subpage_test.ts +++ b/chrome/test/data/webui/settings/settings_subpage_test.ts
@@ -53,7 +53,8 @@ setupPopstateListener(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); function createSettingsSubpageWithPreserveSearchTerm() { @@ -220,7 +221,8 @@ suite('SettingsSubpageSearch', function() { test('host autofocus propagates to <cr-input>', function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const element = document.createElement('cr-search-field'); element.toggleAttribute('autofocus', true); document.body.appendChild(element);
diff --git a/chrome/test/data/webui/settings/settings_textarea_tests.ts b/chrome/test/data/webui/settings/settings_textarea_tests.ts index d8a735a..f396ee6 100644 --- a/chrome/test/data/webui/settings/settings_textarea_tests.ts +++ b/chrome/test/data/webui/settings/settings_textarea_tests.ts
@@ -15,7 +15,8 @@ let textarea: HTMLTextAreaElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; settingsTextarea = document.createElement('settings-textarea'); document.body.appendChild(settingsTextarea); textarea = settingsTextarea.$.input;
diff --git a/chrome/test/data/webui/settings/settings_toggle_button_tests.ts b/chrome/test/data/webui/settings/settings_toggle_button_tests.ts index 08016c3..47c42e2 100644 --- a/chrome/test/data/webui/settings/settings_toggle_button_tests.ts +++ b/chrome/test/data/webui/settings/settings_toggle_button_tests.ts
@@ -27,7 +27,8 @@ type: chrome.settingsPrivate.PrefType.BOOLEAN, value: true, }; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-toggle-button'); testElement.set('pref', pref); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/settings/settings_ui_tests.ts b/chrome/test/data/webui/settings/settings_ui_tests.ts index 385abc70..38797c6 100644 --- a/chrome/test/data/webui/settings/settings_ui_tests.ts +++ b/chrome/test/data/webui/settings/settings_ui_tests.ts
@@ -16,7 +16,8 @@ let drawer: CrDrawerElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; ui = document.createElement('settings-ui'); document.body.appendChild(ui); return CrSettingsPrefs.initialized.then(() => { @@ -78,7 +79,8 @@ let searchField: CrToolbarSearchFieldElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; ui = document.createElement('settings-ui'); document.body.appendChild(ui); return CrSettingsPrefs.initialized.then(() => {
diff --git a/chrome/test/data/webui/settings/site_data_details_subpage_tests.ts b/chrome/test/data/webui/settings/site_data_details_subpage_tests.ts index 1bc00d2..9bb5c3f 100644 --- a/chrome/test/data/webui/settings/site_data_details_subpage_tests.ts +++ b/chrome/test/data/webui/settings/site_data_details_subpage_tests.ts
@@ -47,7 +47,8 @@ LocalDataBrowserProxyImpl.setInstance(browserProxy); testMetricsBrowserProxy = new TestMetricsBrowserProxy(); MetricsBrowserProxyImpl.setInstance(testMetricsBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('site-data-details-subpage'); Router.getInstance().navigateTo( routes.SITE_SETTINGS_DATA_DETAILS, new URLSearchParams('site=' + site));
diff --git a/chrome/test/data/webui/settings/site_details_permission_tests.ts b/chrome/test/data/webui/settings/site_details_permission_tests.ts index 5fb5422..369f90c9 100644 --- a/chrome/test/data/webui/settings/site_details_permission_tests.ts +++ b/chrome/test/data/webui/settings/site_details_permission_tests.ts
@@ -40,7 +40,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-details-permission'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/site_details_tests.ts b/chrome/test/data/webui/settings/site_details_tests.ts index 9a18e61..2bc86596 100644 --- a/chrome/test/data/webui/settings/site_details_tests.ts +++ b/chrome/test/data/webui/settings/site_details_tests.ts
@@ -179,7 +179,8 @@ websiteUsageProxy = new TestWebsiteUsageBrowserProxy(); WebsiteUsageBrowserProxyImpl.setInstance(websiteUsageProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); function createSiteDetails(origin: string) {
diff --git a/chrome/test/data/webui/settings/site_entry_tests.ts b/chrome/test/data/webui/settings/site_entry_tests.ts index 266455b9..98fdbcb 100644 --- a/chrome/test/data/webui/settings/site_entry_tests.ts +++ b/chrome/test/data/webui/settings/site_entry_tests.ts
@@ -63,7 +63,8 @@ SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); LocalDataBrowserProxyImpl.setInstance(localDataBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-entry'); document.body.appendChild(testElement); }); @@ -484,7 +485,8 @@ SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); LocalDataBrowserProxyImpl.setInstance(localDataBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-entry'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/site_favicon_test.ts b/chrome/test/data/webui/settings/site_favicon_test.ts index c73d019..e6919d7f8 100644 --- a/chrome/test/data/webui/settings/site_favicon_test.ts +++ b/chrome/test/data/webui/settings/site_favicon_test.ts
@@ -11,7 +11,8 @@ let siteFavicon: SiteFaviconElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; siteFavicon = document.createElement('site-favicon'); document.body.appendChild(siteFavicon); });
diff --git a/chrome/test/data/webui/settings/site_list_entry_tests.ts b/chrome/test/data/webui/settings/site_list_entry_tests.ts index 3734eef..8eaa49ec 100644 --- a/chrome/test/data/webui/settings/site_list_entry_tests.ts +++ b/chrome/test/data/webui/settings/site_list_entry_tests.ts
@@ -25,7 +25,8 @@ setup(function() { browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-list-entry'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/settings/site_list_tests.ts b/chrome/test/data/webui/settings/site_list_tests.ts index ee9b9715..dc3a89d 100644 --- a/chrome/test/data/webui/settings/site_list_tests.ts +++ b/chrome/test/data/webui/settings/site_list_tests.ts
@@ -289,7 +289,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-list'); testElement.searchFilter = ''; document.body.appendChild(testElement); @@ -366,7 +367,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-list'); testElement.searchFilter = ''; document.body.appendChild(testElement); @@ -1012,7 +1014,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-edit-exception-dialog'); dialog.model = cookieException; document.body.appendChild(dialog); @@ -1098,7 +1101,8 @@ browserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('add-site-dialog'); dialog.category = ContentSettingsTypes.GEOLOCATION; dialog.contentSetting = ContentSetting.ALLOW;
diff --git a/chrome/test/data/webui/settings/site_list_tests_cros.ts b/chrome/test/data/webui/settings/site_list_tests_cros.ts index 12938a3..076b9bd9 100644 --- a/chrome/test/data/webui/settings/site_list_tests_cros.ts +++ b/chrome/test/data/webui/settings/site_list_tests_cros.ts
@@ -51,7 +51,8 @@ androidInfoBrowserProxy = new TestAndroidInfoBrowserProxy(); AndroidInfoBrowserProxyImpl.setInstance(androidInfoBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('site-list'); testElement.searchFilter = ''; document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/settings/site_settings_page_test.ts b/chrome/test/data/webui/settings/site_settings_page_test.ts index b6906791..8f48932 100644 --- a/chrome/test/data/webui/settings/site_settings_page_test.ts +++ b/chrome/test/data/webui/settings/site_settings_page_test.ts
@@ -26,7 +26,8 @@ siteSettingsBrowserProxy = new TestSiteSettingsPrefsBrowserProxy(); SiteSettingsPrefsBrowserProxyImpl.setInstance(siteSettingsBrowserProxy); siteSettingsBrowserProxy.setCookieSettingDescription(testLabels[0]!); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-site-settings-page'); page.prefs = { generated: {
diff --git a/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts b/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts index 493f55ba..d368dbb 100644 --- a/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts +++ b/chrome/test/data/webui/settings/spell_check_page_metrics_test_browser.ts
@@ -56,7 +56,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const settingsPrefs = document.createElement('settings-prefs'); const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()) as unknown as typeof chrome.settingsPrivate; @@ -101,7 +102,8 @@ }); teardown(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); suite(spell_check_page_metrics_test_browser.TestNames.SpellCheckMetrics, function() {
diff --git a/chrome/test/data/webui/settings/spell_check_page_tests.ts b/chrome/test/data/webui/settings/spell_check_page_tests.ts index 929fddd..ece9dd1 100644 --- a/chrome/test/data/webui/settings/spell_check_page_tests.ts +++ b/chrome/test/data/webui/settings/spell_check_page_tests.ts
@@ -45,7 +45,8 @@ let browserProxy: TestLanguagesBrowserProxy; suiteSetup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; CrSettingsPrefs.deferInitialization = true; }); @@ -91,7 +92,8 @@ }); teardown(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); suite(spell_check_page_tests.TestNames.Spellcheck, function() {
diff --git a/chrome/test/data/webui/settings/startup_urls_page_test.ts b/chrome/test/data/webui/settings/startup_urls_page_test.ts index f9a7a18a..c8673d0 100644 --- a/chrome/test/data/webui/settings/startup_urls_page_test.ts +++ b/chrome/test/data/webui/settings/startup_urls_page_test.ts
@@ -77,7 +77,8 @@ setup(function() { browserProxy = new TestStartupUrlsPageBrowserProxy(); StartupUrlsPageBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; dialog = document.createElement('settings-startup-url-dialog'); }); @@ -200,7 +201,8 @@ setup(function() { browserProxy = new TestStartupUrlsPageBrowserProxy(); StartupUrlsPageBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; page = document.createElement('settings-startup-urls-page'); page.prefs = { session: { @@ -327,7 +329,8 @@ setup(function() { browserProxy = new TestStartupUrlsPageBrowserProxy(); StartupUrlsPageBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; element = document.createElement('settings-startup-url-entry'); element.model = createSampleUrlEntry(); document.body.appendChild(element);
diff --git a/chrome/test/data/webui/settings/sync_account_control_test.ts b/chrome/test/data/webui/settings/sync_account_control_test.ts index 16ea7199..593bd15 100644 --- a/chrome/test/data/webui/settings/sync_account_control_test.ts +++ b/chrome/test/data/webui/settings/sync_account_control_test.ts
@@ -41,7 +41,8 @@ browserProxy = new TestSyncBrowserProxy(); SyncBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('settings-sync-account-control'); testElement.syncStatus = { signedIn: true,
diff --git a/chrome/test/data/webui/settings/system_page_tests.ts b/chrome/test/data/webui/settings/system_page_tests.ts index 927a5f6..f38d9d9b 100644 --- a/chrome/test/data/webui/settings/system_page_tests.ts +++ b/chrome/test/data/webui/settings/system_page_tests.ts
@@ -37,7 +37,8 @@ let systemPage: SettingsSystemPageElement; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; lifetimeBrowserProxy = new TestLifetimeBrowserProxy(); LifetimeBrowserProxyImpl.setInstance(lifetimeBrowserProxy); systemBrowserProxy = new TestSystemPageBrowserProxy();
diff --git a/chrome/test/data/webui/settings/tab_discard_exception_dialog_test.ts b/chrome/test/data/webui/settings/tab_discard_exception_dialog_test.ts index b6e6683a..332fa63 100644 --- a/chrome/test/data/webui/settings/tab_discard_exception_dialog_test.ts +++ b/chrome/test/data/webui/settings/tab_discard_exception_dialog_test.ts
@@ -24,7 +24,8 @@ performanceBrowserProxy.setValidationResult(true); PerformanceBrowserProxyImpl.setInstance(performanceBrowserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); function setupAddDialog() { @@ -168,4 +169,4 @@ await assertUserInputValidated(VALID_RULE); await assertSubmit(VALID_RULE); }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/settings/translate_page_metrics_test_browser.ts b/chrome/test/data/webui/settings/translate_page_metrics_test_browser.ts index 369c891f..5a79210 100644 --- a/chrome/test/data/webui/settings/translate_page_metrics_test_browser.ts +++ b/chrome/test/data/webui/settings/translate_page_metrics_test_browser.ts
@@ -27,7 +27,8 @@ }); setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; const settingsPrefs = document.createElement('settings-prefs'); const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()) as unknown as typeof chrome.settingsPrivate;
diff --git a/chrome/test/data/webui/settings/translate_page_tests.ts b/chrome/test/data/webui/settings/translate_page_tests.ts index f55e6c3a..8675c138 100644 --- a/chrome/test/data/webui/settings/translate_page_tests.ts +++ b/chrome/test/data/webui/settings/translate_page_tests.ts
@@ -40,7 +40,8 @@ loadTimeData.overrideValues({ enableDesktopDetailedLanguageSettings: true, }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; CrSettingsPrefs.deferInitialization = true; }); @@ -86,7 +87,8 @@ }); teardown(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); suite(translate_page_tests.TestNames.TranslateSettings, function() {
diff --git a/chrome/test/data/webui/settings/tsconfig_base.json b/chrome/test/data/webui/settings/tsconfig_base.json index fade5b2..ef23956 100644 --- a/chrome/test/data/webui/settings/tsconfig_base.json +++ b/chrome/test/data/webui/settings/tsconfig_base.json
@@ -6,7 +6,7 @@ ], "types": [ "chai", - "mocha", + "mocha", "trusted-types", "w3c-css-typed-object-model-level-1" ] }
diff --git a/chrome/test/data/webui/settings/zoom_levels_tests.ts b/chrome/test/data/webui/settings/zoom_levels_tests.ts index ae64ef9..601616d 100644 --- a/chrome/test/data/webui/settings/zoom_levels_tests.ts +++ b/chrome/test/data/webui/settings/zoom_levels_tests.ts
@@ -53,7 +53,8 @@ /** @return {!Promise} */ async function initPage() { browserProxy.reset(); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('zoom-levels'); document.body.appendChild(testElement); await browserProxy.whenCalled('fetchZoomLevels');
diff --git a/chrome/test/data/webui/side_panel/bookmarks/bookmark_folder_test.ts b/chrome/test/data/webui/side_panel/bookmarks/bookmark_folder_test.ts index 5f7bc44a..c218db8 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/bookmark_folder_test.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/bookmark_folder_test.ts
@@ -53,7 +53,8 @@ } setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; bookmarksApi = new TestBookmarksApiProxy(); BookmarksApiProxyImpl.setInstance(bookmarksApi);
diff --git a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_drag_manager_test.ts b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_drag_manager_test.ts index eab4658..182e518 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_drag_manager_test.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_drag_manager_test.ts
@@ -83,7 +83,8 @@ } setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; loadTimeData.overrideValues({ bookmarksDragAndDropEnabled: true,
diff --git a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_interactive_ui_test.ts b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_interactive_ui_test.ts index d11ce34..a607ffed 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_interactive_ui_test.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_interactive_ui_test.ts
@@ -73,7 +73,8 @@ } setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; bookmarksApi = new TestBookmarksApiProxy(); bookmarksApi.setFolders(JSON.parse(JSON.stringify(folders))); @@ -175,4 +176,4 @@ down(bookmarksList, {x: 0, y: 0}); assertFalse(focusOutlineManager.visible); }); -}); \ No newline at end of file +});
diff --git a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_test.ts b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_test.ts index 813ff722..b8fe1fad 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_test.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/bookmarks_list_test.ts
@@ -100,7 +100,8 @@ setup(async () => { window.localStorage[LOCAL_STORAGE_OPEN_FOLDERS_KEY] = undefined; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; metrics = fakeMetricsPrivate();
diff --git a/chrome/test/data/webui/side_panel/bookmarks/commerce/shopping_list_test.ts b/chrome/test/data/webui/side_panel/bookmarks/commerce/shopping_list_test.ts index 8116a9ba..a2228fa 100644 --- a/chrome/test/data/webui/side_panel/bookmarks/commerce/shopping_list_test.ts +++ b/chrome/test/data/webui/side_panel/bookmarks/commerce/shopping_list_test.ts
@@ -115,7 +115,8 @@ } setup(async () => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; metrics = fakeMetricsPrivate();
diff --git a/chrome/test/data/webui/side_panel/read_anything/read_anything_app_test.ts b/chrome/test/data/webui/side_panel/read_anything/read_anything_app_test.ts index 965dfab0..4d6777d 100644 --- a/chrome/test/data/webui/side_panel/read_anything/read_anything_app_test.ts +++ b/chrome/test/data/webui/side_panel/read_anything/read_anything_app_test.ts
@@ -17,7 +17,8 @@ chrome.readAnything.onConnected = function() {}; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; readAnythingApp = document.createElement('read-anything-app'); document.body.appendChild(readAnythingApp); chrome.readAnything.setThemeForTesting('default', 18.0, 0, 0, 1, 0);
diff --git a/chrome/test/data/webui/side_panel/reading_list/reading_list_app_test.ts b/chrome/test/data/webui/side_panel/reading_list/reading_list_app_test.ts index 7826fd3..3298ebb 100644 --- a/chrome/test/data/webui/side_panel/reading_list/reading_list_app_test.ts +++ b/chrome/test/data/webui/side_panel/reading_list/reading_list_app_test.ts
@@ -82,7 +82,8 @@ testProxy = new TestReadingListApiProxy(); ReadingListApiProxyImpl.setInstance(testProxy); testProxy.setEntries(getSampleData()); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; readingListApp = document.createElement('reading-list-app'); document.body.appendChild(readingListApp);
diff --git a/chrome/test/data/webui/side_panel/side_panel_app_test.ts b/chrome/test/data/webui/side_panel/side_panel_app_test.ts index 6ae9280..28a5864 100644 --- a/chrome/test/data/webui/side_panel/side_panel_app_test.ts +++ b/chrome/test/data/webui/side_panel/side_panel_app_test.ts
@@ -13,7 +13,8 @@ let sidePanelApp: SidePanelAppElement; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; sidePanelApp = document.createElement('side-panel-app'); document.body.appendChild(sidePanelApp); });
diff --git a/chrome/test/data/webui/side_panel/tsconfig_base.json b/chrome/test/data/webui/side_panel/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/side_panel/tsconfig_base.json +++ b/chrome/test/data/webui/side_panel/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/signin/account_selection_lacros_test.ts b/chrome/test/data/webui/signin/account_selection_lacros_test.ts index c2e106a..a359ca1 100644 --- a/chrome/test/data/webui/signin/account_selection_lacros_test.ts +++ b/chrome/test/data/webui/signin/account_selection_lacros_test.ts
@@ -56,7 +56,8 @@ }, '', '/account-selection-lacros'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('account-selection-lacros'); testElement.profileThemeInfo = browserProxy.profileThemeInfo; document.body.append(testElement);
diff --git a/chrome/test/data/webui/signin/dice_web_signin_intercept_test.ts b/chrome/test/data/webui/signin/dice_web_signin_intercept_test.ts index bb5e394..96131b0 100644 --- a/chrome/test/data/webui/signin/dice_web_signin_intercept_test.ts +++ b/chrome/test/data/webui/signin/dice_web_signin_intercept_test.ts
@@ -47,7 +47,8 @@ browserProxy = new TestDiceWebSigninInterceptBrowserProxy(); browserProxy.setInterceptionParameters(PARAMETERS); DiceWebSigninInterceptBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('dice-web-signin-intercept-app'); document.body.append(app); await waitAfterNextRender(app); @@ -168,7 +169,8 @@ browserProxy = new TestDiceWebSigninInterceptBrowserProxy(); browserProxy.setInterceptionParameters(PARAMETERS); DiceWebSigninInterceptBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('dice-web-signin-intercept-app'); document.body.append(app); await waitAfterNextRender(app);
diff --git a/chrome/test/data/webui/signin/enterprise_profile_welcome_test.ts b/chrome/test/data/webui/signin/enterprise_profile_welcome_test.ts index 252dc70..66e80f1 100644 --- a/chrome/test/data/webui/signin/enterprise_profile_welcome_test.ts +++ b/chrome/test/data/webui/signin/enterprise_profile_welcome_test.ts
@@ -38,7 +38,8 @@ browserProxy = new TestEnterpriseProfileWelcomeBrowserProxy(testEnterpriseInfo); EnterpriseProfileWelcomeBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('enterprise-profile-welcome-app'); document.body.appendChild(app); await waitAfterNextRender(app); @@ -76,7 +77,8 @@ loadTimeData.overrideValues({'showLinkDataCheckbox': true}); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('enterprise-profile-welcome-app'); document.body.appendChild(app); await waitAfterNextRender(app); @@ -107,7 +109,8 @@ loadTimeData.overrideValues({'showLinkDataCheckbox': true}); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('enterprise-profile-welcome-app'); document.body.appendChild(app); await waitAfterNextRender(app);
diff --git a/chrome/test/data/webui/signin/local_profile_customization_focus_test.ts b/chrome/test/data/webui/signin/local_profile_customization_focus_test.ts index a24af611..34cc2d70 100644 --- a/chrome/test/data/webui/signin/local_profile_customization_focus_test.ts +++ b/chrome/test/data/webui/signin/local_profile_customization_focus_test.ts
@@ -19,7 +19,8 @@ let browserProxy: TestManageProfilesBrowserProxy; async function resetTestElement(route: Routes) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; navigateTo(route); testElement = document.createElement('profile-picker-app'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/signin/local_profile_customization_test.ts b/chrome/test/data/webui/signin/local_profile_customization_test.ts index 34f5c229..82c36d3 100644 --- a/chrome/test/data/webui/signin/local_profile_customization_test.ts +++ b/chrome/test/data/webui/signin/local_profile_customization_test.ts
@@ -20,7 +20,8 @@ const defaultAvatarIndex: number = 26; async function resetCustomizeProfileElement() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; customizeProfileElement = document.createElement('local-profile-customization'); customizeProfileElement.profileThemeInfo = browserProxy.profileThemeInfo;
diff --git a/chrome/test/data/webui/signin/profile_card_menu_test.ts b/chrome/test/data/webui/signin/profile_card_menu_test.ts index 6de5147..285ff89 100644 --- a/chrome/test/data/webui/signin/profile_card_menu_test.ts +++ b/chrome/test/data/webui/signin/profile_card_menu_test.ts
@@ -29,7 +29,8 @@ setup(function() { browserProxy = new TestManageProfilesBrowserProxy(); ManageProfilesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; profileCardMenuElement = document.createElement('profile-card-menu'); document.body.appendChild(profileCardMenuElement); const testProfileState: ProfileState = { @@ -200,7 +201,8 @@ setup(async function() { browserProxy = new TestManageProfilesBrowserProxy(); ManageProfilesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; primaryProfileCardMenuElement = document.createElement('profile-card-menu'); document.body.appendChild(primaryProfileCardMenuElement); const testPrimaryProfileState: ProfileState = {
diff --git a/chrome/test/data/webui/signin/profile_customization_test.ts b/chrome/test/data/webui/signin/profile_customization_test.ts index 3d1eb67..e6744d5f 100644 --- a/chrome/test/data/webui/signin/profile_customization_test.ts +++ b/chrome/test/data/webui/signin/profile_customization_test.ts
@@ -42,7 +42,8 @@ welcomeTitle: WELCOME_TEXT_1, }); ProfileCustomizationBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('profile-customization-app'); document.body.append(app); return browserProxy.whenCalled('initialized'); @@ -180,7 +181,8 @@ welcomeTitle: '', }); ProfileCustomizationBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('profile-customization-app'); document.body.append(app); return browserProxy.whenCalled('initialized');
diff --git a/chrome/test/data/webui/signin/profile_picker_app_test.ts b/chrome/test/data/webui/signin/profile_picker_app_test.ts index 6d4006b3..39b9358 100644 --- a/chrome/test/data/webui/signin/profile_picker_app_test.ts +++ b/chrome/test/data/webui/signin/profile_picker_app_test.ts
@@ -25,7 +25,8 @@ let browserProxy: TestManageProfilesBrowserProxy; function resetTestElement(route: Routes) { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; navigateTo(route); testElement = document.createElement('profile-picker-app'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/signin/profile_picker_main_view_test.ts b/chrome/test/data/webui/signin/profile_picker_main_view_test.ts index 7c706a5..80b600a 100644 --- a/chrome/test/data/webui/signin/profile_picker_main_view_test.ts +++ b/chrome/test/data/webui/signin/profile_picker_main_view_test.ts
@@ -51,7 +51,8 @@ let navigationElement: NavigationElement; function resetTest() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; navigationElement = document.createElement('navigation-element'); document.body.appendChild(navigationElement); mainViewElement = document.createElement('profile-picker-main-view');
diff --git a/chrome/test/data/webui/signin/profile_switch_test.ts b/chrome/test/data/webui/signin/profile_switch_test.ts index 2be0f909..b06e181 100644 --- a/chrome/test/data/webui/signin/profile_switch_test.ts +++ b/chrome/test/data/webui/signin/profile_switch_test.ts
@@ -23,7 +23,8 @@ getSwitchProfilePromiseResolver = new PromiseResolver(); browserProxy.setGetSwitchProfilePromise( getSwitchProfilePromiseResolver.promise); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; profileSwitchElement = document.createElement('profile-switch'); document.body.appendChild(profileSwitchElement); return waitBeforeNextRender(profileSwitchElement);
diff --git a/chrome/test/data/webui/signin/profile_type_choice_test.ts b/chrome/test/data/webui/signin/profile_type_choice_test.ts index e118997..fac801e 100644 --- a/chrome/test/data/webui/signin/profile_type_choice_test.ts +++ b/chrome/test/data/webui/signin/profile_type_choice_test.ts
@@ -19,7 +19,8 @@ setup(function() { browserProxy = new TestManageProfilesBrowserProxy(); ManageProfilesBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; choice = document.createElement('profile-type-choice'); document.body.append(choice); });
diff --git a/chrome/test/data/webui/signin/signin_reauth_test.ts b/chrome/test/data/webui/signin/signin_reauth_test.ts index d7b46726..5d31c09d 100644 --- a/chrome/test/data/webui/signin/signin_reauth_test.ts +++ b/chrome/test/data/webui/signin/signin_reauth_test.ts
@@ -20,7 +20,8 @@ setup(function() { browserProxy = new TestSigninReauthBrowserProxy(); SigninReauthBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('signin-reauth-app'); document.body.append(app); });
diff --git a/chrome/test/data/webui/signin/sync_confirmation_test.ts b/chrome/test/data/webui/signin/sync_confirmation_test.ts index 487a9b8..66f22d7 100644 --- a/chrome/test/data/webui/signin/sync_confirmation_test.ts +++ b/chrome/test/data/webui/signin/sync_confirmation_test.ts
@@ -60,7 +60,8 @@ setup(async function() { browserProxy = new TestSyncConfirmationBrowserProxy(); SyncConfirmationBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('sync-confirmation-app'); document.body.append(app); // Check that the account image is requested when the app element is @@ -115,7 +116,8 @@ browserProxy = new TestSyncConfirmationBrowserProxy(); SyncConfirmationBrowserProxyImpl.setInstance(browserProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; app = document.createElement('sync-confirmation-app'); document.body.append(app); // Wait for the app element to get attached to the document (which is
diff --git a/chrome/test/data/webui/signin/tsconfig_base.json b/chrome/test/data/webui/signin/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/signin/tsconfig_base.json +++ b/chrome/test/data/webui/signin/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/support_tool/support_tool_test.ts b/chrome/test/data/webui/support_tool/support_tool_test.ts index 621f351..8395df5 100644 --- a/chrome/test/data/webui/support_tool/support_tool_test.ts +++ b/chrome/test/data/webui/support_tool/support_tool_test.ts
@@ -152,7 +152,8 @@ setup(async function() { loadTimeData.overrideValues(strings); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestSupportToolBrowserProxy(); BrowserProxyImpl.setInstance(browserProxy); supportTool = document.createElement('support-tool'); @@ -270,7 +271,8 @@ let browserProxy: TestSupportToolBrowserProxy; setup(async function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; browserProxy = new TestSupportToolBrowserProxy(); BrowserProxyImpl.setInstance(browserProxy); urlGenerator = document.createElement('url-generator');
diff --git a/chrome/test/data/webui/support_tool/tsconfig_base.json b/chrome/test/data/webui/support_tool/tsconfig_base.json index 3ad2fa5..66013020 100644 --- a/chrome/test/data/webui/support_tool/tsconfig_base.json +++ b/chrome/test/data/webui/support_tool/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } -} \ No newline at end of file +}
diff --git a/chrome/test/data/webui/tab_search/infinite_list_test.ts b/chrome/test/data/webui/tab_search/infinite_list_test.ts index 13319dd4..04c96e23 100644 --- a/chrome/test/data/webui/tab_search/infinite_list_test.ts +++ b/chrome/test/data/webui/tab_search/infinite_list_test.ts
@@ -52,7 +52,8 @@ async function setupTest(sampleData: Array<TabData|TitleItem>) { const testApp = document.createElement('test-app'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(testApp); infiniteList = testApp.shadowRoot!.querySelector('infinite-list')!;
diff --git a/chrome/test/data/webui/tab_search/tab_search_app_focus_test.ts b/chrome/test/data/webui/tab_search/tab_search_app_focus_test.ts index 8b6e8b3..eb3a527 100644 --- a/chrome/test/data/webui/tab_search/tab_search_app_focus_test.ts +++ b/chrome/test/data/webui/tab_search/tab_search_app_focus_test.ts
@@ -30,7 +30,8 @@ tabSearchApp = document.createElement('tab-search-app'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(tabSearchApp); await flushTasks(); }
diff --git a/chrome/test/data/webui/tab_search/tab_search_app_test.ts b/chrome/test/data/webui/tab_search/tab_search_app_test.ts index 3068e1a..593ce3fc 100644 --- a/chrome/test/data/webui/tab_search/tab_search_app_test.ts +++ b/chrome/test/data/webui/tab_search/tab_search_app_test.ts
@@ -52,7 +52,8 @@ tabSearchApp = document.createElement('tab-search-app'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(tabSearchApp); await flushTasks(); }
diff --git a/chrome/test/data/webui/tab_search/tab_search_item_test.ts b/chrome/test/data/webui/tab_search/tab_search_item_test.ts index 46310a5..6495cc7b 100644 --- a/chrome/test/data/webui/tab_search/tab_search_item_test.ts +++ b/chrome/test/data/webui/tab_search/tab_search_item_test.ts
@@ -16,7 +16,8 @@ async function setupTest(data: TabData) { tabSearchItem = document.createElement('tab-search-item'); tabSearchItem.data = data; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(tabSearchItem); await flushTasks(); }
diff --git a/chrome/test/data/webui/tab_search/tab_search_media_tabs_test.ts b/chrome/test/data/webui/tab_search/tab_search_media_tabs_test.ts index adf2b25..8e7c565 100644 --- a/chrome/test/data/webui/tab_search/tab_search_media_tabs_test.ts +++ b/chrome/test/data/webui/tab_search/tab_search_media_tabs_test.ts
@@ -52,7 +52,8 @@ tabSearchApp = document.createElement('tab-search-app'); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.appendChild(tabSearchApp); await flushTasks(); }
diff --git a/chrome/test/data/webui/tab_search/tsconfig_base.json b/chrome/test/data/webui/tab_search/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/tab_search/tsconfig_base.json +++ b/chrome/test/data/webui/tab_search/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/tab_strip/alert_indicator_test.ts b/chrome/test/data/webui/tab_strip/alert_indicator_test.ts index 40a9c3ed..01b439f 100644 --- a/chrome/test/data/webui/tab_strip/alert_indicator_test.ts +++ b/chrome/test/data/webui/tab_strip/alert_indicator_test.ts
@@ -14,7 +14,8 @@ let alertIndicatorStyle: CSSStyleDeclaration; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; alertIndicatorElement = document.createElement('tabstrip-alert-indicator'); document.body.appendChild(alertIndicatorElement);
diff --git a/chrome/test/data/webui/tab_strip/alert_indicators_test.ts b/chrome/test/data/webui/tab_strip/alert_indicators_test.ts index ba38e58..4aaff4e3 100644 --- a/chrome/test/data/webui/tab_strip/alert_indicators_test.ts +++ b/chrome/test/data/webui/tab_strip/alert_indicators_test.ts
@@ -18,7 +18,8 @@ } setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; alertIndicatorsElement = document.createElement('tabstrip-alert-indicators');
diff --git a/chrome/test/data/webui/tab_strip/tab_group_test.ts b/chrome/test/data/webui/tab_strip/tab_group_test.ts index 7fb2e69..9b632004 100644 --- a/chrome/test/data/webui/tab_strip/tab_group_test.ts +++ b/chrome/test/data/webui/tab_strip/tab_group_test.ts
@@ -23,7 +23,8 @@ testTabsApiProxy = new TestTabsApiProxy(); TabsApiProxyImpl.setInstance(testTabsApiProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; tabGroupElement = document.createElement('tabstrip-tab-group'); tabGroupElement.dataset['groupId'] = groupId; tabGroupElement.appendChild(document.createElement('tabstrip-tab'));
diff --git a/chrome/test/data/webui/tab_strip/tab_list_test.ts b/chrome/test/data/webui/tab_strip/tab_list_test.ts index 9cf5c5b..d60ba37 100644 --- a/chrome/test/data/webui/tab_strip/tab_list_test.ts +++ b/chrome/test/data/webui/tab_strip/tab_list_test.ts
@@ -92,7 +92,8 @@ setup(async () => { document.documentElement.dir = 'ltr'; - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; document.body.style.margin = '0'; testTabsApiProxy = new TestTabsApiProxy();
diff --git a/chrome/test/data/webui/tab_strip/tab_swiper_test.ts b/chrome/test/data/webui/tab_strip/tab_swiper_test.ts index d1800ee..14291ad 100644 --- a/chrome/test/data/webui/tab_strip/tab_swiper_test.ts +++ b/chrome/test/data/webui/tab_strip/tab_swiper_test.ts
@@ -12,7 +12,8 @@ let tabSwiper: TabSwiper; setup(() => { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; tabElement = document.createElement('div'); document.body.appendChild(tabElement);
diff --git a/chrome/test/data/webui/tab_strip/tab_test.ts b/chrome/test/data/webui/tab_strip/tab_test.ts index 833a5ee..3f0d7677 100644 --- a/chrome/test/data/webui/tab_strip/tab_test.ts +++ b/chrome/test/data/webui/tab_strip/tab_test.ts
@@ -44,7 +44,8 @@ setup(() => { loadTimeData.overrideValues(strings); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Set CSS variable for animations document.body.style.setProperty('--tabstrip-tab-height', '100px');
diff --git a/chrome/test/data/webui/tab_strip/tsconfig_base.json b/chrome/test/data/webui/tab_strip/tsconfig_base.json index 96502c6d..62b0430 100644 --- a/chrome/test/data/webui/tab_strip/tsconfig_base.json +++ b/chrome/test/data/webui/tab_strip/tsconfig_base.json
@@ -5,7 +5,7 @@ "./../../../../../third_party/node/node_modules/@types" ], "types": [ - "mocha", + "mocha", "trusted-types", "trusted-types" ] }
diff --git a/chrome/test/data/webui/tsconfig_base.json b/chrome/test/data/webui/tsconfig_base.json index 80e92484..fd3b64d6 100644 --- a/chrome/test/data/webui/tsconfig_base.json +++ b/chrome/test/data/webui/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/welcome/app_chooser_test.ts b/chrome/test/data/webui/welcome/app_chooser_test.ts index 6f7e8606..032b4a8 100644 --- a/chrome/test/data/webui/welcome/app_chooser_test.ts +++ b/chrome/test/data/webui/welcome/app_chooser_test.ts
@@ -66,7 +66,8 @@ testAppBrowserProxy.setAppList(apps); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('nux-google-apps'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/welcome/navigation_mixin_test.ts b/chrome/test/data/webui/welcome/navigation_mixin_test.ts index 8388964..44b38e0d 100644 --- a/chrome/test/data/webui/welcome/navigation_mixin_test.ts +++ b/chrome/test/data/webui/welcome/navigation_mixin_test.ts
@@ -67,7 +67,8 @@ }); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; // Creates 3 elements with IDs step-(0~2). for (let i = 0; i < 3; i++) { elements.push(document.createElement('test-element') as TestElement);
diff --git a/chrome/test/data/webui/welcome/nux_ntp_background_test.ts b/chrome/test/data/webui/welcome/nux_ntp_background_test.ts index 4e0676e..97bd973 100644 --- a/chrome/test/data/webui/welcome/nux_ntp_background_test.ts +++ b/chrome/test/data/webui/welcome/nux_ntp_background_test.ts
@@ -46,7 +46,8 @@ NtpBackgroundProxyImpl.setInstance(testNtpBackgroundProxy); testNtpBackgroundProxy.setBackgroundsList(backgrounds); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('nux-ntp-background'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/welcome/nux_set_as_default_test.ts b/chrome/test/data/webui/welcome/nux_set_as_default_test.ts index ac82cf55..241e058 100644 --- a/chrome/test/data/webui/welcome/nux_set_as_default_test.ts +++ b/chrome/test/data/webui/welcome/nux_set_as_default_test.ts
@@ -21,7 +21,8 @@ testSetAsDefaultProxy = new TestNuxSetAsDefaultProxy(); NuxSetAsDefaultProxyImpl.setInstance(testSetAsDefaultProxy); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('nux-set-as-default'); document.body.appendChild(testElement); navigatedPromise = new Promise(resolve => {
diff --git a/chrome/test/data/webui/welcome/signin_view_test.ts b/chrome/test/data/webui/welcome/signin_view_test.ts index c0df852..0a7083dd 100644 --- a/chrome/test/data/webui/welcome/signin_view_test.ts +++ b/chrome/test/data/webui/welcome/signin_view_test.ts
@@ -25,7 +25,8 @@ // calls to backend. SigninViewProxyImpl.setInstance(new TestSigninViewProxy()); - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; testElement = document.createElement('signin-view'); document.body.appendChild(testElement); });
diff --git a/chrome/test/data/webui/welcome/tsconfig_base.json b/chrome/test/data/webui/welcome/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/welcome/tsconfig_base.json +++ b/chrome/test/data/webui/welcome/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/welcome/welcome_app_test.ts b/chrome/test/data/webui/welcome/welcome_app_test.ts index c49196a..2c25b748 100644 --- a/chrome/test/data/webui/welcome/welcome_app_test.ts +++ b/chrome/test/data/webui/welcome/welcome_app_test.ts
@@ -25,7 +25,8 @@ let testSetAsDefaultProxy: TestNuxSetAsDefaultProxy; function resetTestElement() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; navigateTo(Routes.LANDING, 0); testElement = document.createElement('welcome-app'); document.body.appendChild(testElement);
diff --git a/chrome/test/data/webui/whats_new/tsconfig_base.json b/chrome/test/data/webui/whats_new/tsconfig_base.json index ca011a1..3fcdeaee 100644 --- a/chrome/test/data/webui/whats_new/tsconfig_base.json +++ b/chrome/test/data/webui/whats_new/tsconfig_base.json
@@ -4,6 +4,6 @@ "typeRoots": [ "./../../../../../third_party/node/node_modules/@types" ], - "types": ["mocha"] + "types": ["mocha", "trusted-types"] } }
diff --git a/chrome/test/data/webui/whats_new/whats_new_app_test.ts b/chrome/test/data/webui/whats_new/whats_new_app_test.ts index f484aff..f4639873 100644 --- a/chrome/test/data/webui/whats_new/whats_new_app_test.ts +++ b/chrome/test/data/webui/whats_new/whats_new_app_test.ts
@@ -40,7 +40,8 @@ 'chrome://webui-test/whats_new/test_with_command_3.html'; setup(function() { - document.body.innerHTML = ''; + document.body.innerHTML = + window.trustedTypes!.emptyHTML as unknown as string; }); test('with query parameters', async () => {
diff --git a/chromeos/dbus/dlp/dlp_client.h b/chromeos/dbus/dlp/dlp_client.h index 4420a23..dbb8ca0e 100644 --- a/chromeos/dbus/dlp/dlp_client.h +++ b/chromeos/dbus/dlp/dlp_client.h
@@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/component_export.h" #include "base/files/scoped_file.h" +#include "base/functional/callback_forward.h" #include "chromeos/dbus/dlp/dlp_service.pb.h" #include "dbus/object_proxy.h" @@ -35,9 +36,14 @@ using RequestFileAccessCallback = base::OnceCallback<void(const dlp::RequestFileAccessResponse response, base::ScopedFD fd)>; + using AddFileCall = + base::RepeatingCallback<void(const dlp::AddFileRequest, AddFileCallback)>; + using GetFilesSourceCall = + base::RepeatingCallback<void(const dlp::GetFilesSourcesRequest, + GetFilesSourcesCallback)>; - // Interface with testing functionality. Accessed through GetTestInterface(), - // only implemented in the fake implementation. + // Interface with testing functionality. Accessed through + // GetTestInterface(), only implemented in the fake implementation. class TestInterface { public: // Returns how many times |SetDlpFilesPolicyCount| was called. @@ -56,6 +62,12 @@ // Sets the response for IsAlive call. virtual void SetIsAlive(bool is_alive) = 0; + // use |mock| for AddFile calls. + virtual void SetAddFileMock(AddFileCall mock) = 0; + + // use |mock| for GetFilesSource calls; + virtual void SetGetFilesSourceMock(GetFilesSourceCall mock) = 0; + protected: virtual ~TestInterface() = default; }; @@ -76,8 +88,8 @@ static DlpClient* Get(); // Dlp daemon D-Bus method calls. See org.chromium.Dlp.xml and - // dlp_service.proto in Chromium OS code for the documentation of the methods - // and request/response messages. + // dlp_service.proto in Chromium OS code for the documentation of the + // methods and request/response messages. virtual void SetDlpFilesPolicy(const dlp::SetDlpFilesPolicyRequest request, SetDlpFilesPolicyCallback callback) = 0; virtual void AddFile(const dlp::AddFileRequest request,
diff --git a/chromeos/dbus/dlp/fake_dlp_client.cc b/chromeos/dbus/dlp/fake_dlp_client.cc index cdf481f..995409e 100644 --- a/chromeos/dbus/dlp/fake_dlp_client.cc +++ b/chromeos/dbus/dlp/fake_dlp_client.cc
@@ -40,6 +40,10 @@ void FakeDlpClient::AddFile(const dlp::AddFileRequest request, AddFileCallback callback) { + if (add_file_mock_.has_value()) { + add_file_mock_->Run(request, std::move(callback)); + return; + } if (request.has_file_path() && request.has_source_url()) { files_database_[GetInodeValue(base::FilePath(request.file_path()))] = request.source_url(); @@ -50,6 +54,10 @@ void FakeDlpClient::GetFilesSources(const dlp::GetFilesSourcesRequest request, GetFilesSourcesCallback callback) { + if (get_files_source_mock_.has_value()) { + get_files_source_mock_->Run(request, std::move(callback)); + return; + } dlp::GetFilesSourcesResponse response; for (const auto& file_inode : request.files_inodes()) { auto file_itr = files_database_.find(file_inode); @@ -109,4 +117,11 @@ is_alive_ = is_alive; } +void FakeDlpClient::SetAddFileMock(AddFileCall mock) { + add_file_mock_ = mock; +} +void FakeDlpClient::SetGetFilesSourceMock(GetFilesSourceCall mock) { + get_files_source_mock_ = mock; +} + } // namespace chromeos
diff --git a/chromeos/dbus/dlp/fake_dlp_client.h b/chromeos/dbus/dlp/fake_dlp_client.h index f8b9ab43..319e87f 100644 --- a/chromeos/dbus/dlp/fake_dlp_client.h +++ b/chromeos/dbus/dlp/fake_dlp_client.h
@@ -44,6 +44,8 @@ dlp::CheckFilesTransferResponse response) override; void SetFileAccessAllowed(bool allowed) override; void SetIsAlive(bool is_alive) override; + void SetAddFileMock(AddFileCall mock) override; + void SetGetFilesSourceMock(GetFilesSourceCall mock) override; private: int set_dlp_files_policy_count_ = 0; @@ -53,6 +55,8 @@ absl::optional<std::string> fake_source_; absl::optional<dlp::CheckFilesTransferResponse> check_files_transfer_response_; + absl::optional<AddFileCall> add_file_mock_; + absl::optional<GetFilesSourceCall> get_files_source_mock_; }; } // namespace chromeos
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni index 489cb27..b1dfc6fb 100644 --- a/chromeos/tast_control.gni +++ b/chromeos/tast_control.gni
@@ -315,6 +315,11 @@ "lacros.AudioPinnedStream.record", "lacros.AudioPlay", "lacros.AudioRecord", + + # https://crbug.com/1356506 + "inputs.PhysicalKeyboardCantoneseTyping", + "inputs.PhysicalKeyboardCantoneseTyping.lacros", + "inputs.VirtualKeyboardChangeInput.a11y", ] # To create filters to be used on specific builders add them like this:
diff --git a/components/autofill/core/browser/form_parsing/name_field.cc b/components/autofill/core/browser/form_parsing/name_field.cc index ecdaeef..f3b282c 100644 --- a/components/autofill/core/browser/form_parsing/name_field.cc +++ b/components/autofill/core/browser/form_parsing/name_field.cc
@@ -518,8 +518,7 @@ std::unique_ptr<FirstLastNameField> field = ParseSharedNameLabelSequence( scanner, page_language, pattern_source, log_manager); - if (!field && base::FeatureList::IsEnabled( - features::kAutofillEnableNameSurenameParsing)) { + if (!field) { field = ParseNameSurnameLabelSequence(scanner, page_language, pattern_source, log_manager); }
diff --git a/components/autofill/core/browser/form_parsing/name_field_unittest.cc b/components/autofill/core/browser/form_parsing/name_field_unittest.cc index 4c86a85..17daf4c 100644 --- a/components/autofill/core/browser/form_parsing/name_field_unittest.cc +++ b/components/autofill/core/browser/form_parsing/name_field_unittest.cc
@@ -71,10 +71,6 @@ } TEST_P(NameFieldTest, NameSurname) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - features::kAutofillEnableNameSurenameParsing); - AddTextFormFieldData("name", "name", NAME_FIRST); AddTextFormFieldData("surname", "surname", NAME_LAST); @@ -82,10 +78,6 @@ } TEST_P(NameFieldTest, NameSurnameWithMiddleName) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - features::kAutofillEnableNameSurenameParsing); - AddTextFormFieldData("name", "name", NAME_FIRST); AddTextFormFieldData("middlename", "middlename", NAME_MIDDLE); AddTextFormFieldData("surname", "surname", NAME_LAST); @@ -94,10 +86,6 @@ } TEST_P(NameFieldTest, NameSurname_DE) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - features::kAutofillEnableNameSurenameParsing); - AddTextFormFieldData("name", "name", NAME_FIRST); AddTextFormFieldData("nachname", "nachname", NAME_LAST);
diff --git a/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc b/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc index e1feaee..5322302 100644 --- a/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc +++ b/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc
@@ -20,7 +20,6 @@ #include "components/autofill/core/browser/proto/autofill_sync.pb.h" #include "components/autofill/core/browser/webdata/autofill_table.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" -#include "components/autofill/core/common/autofill_features.h" #include "components/sync/model/client_tag_based_model_type_processor.h" #include "components/sync/model/model_type_change_processor.h" #include "components/sync/model/mutable_data_batch.h" @@ -323,7 +322,9 @@ AutocompleteSyncBridge::CreateMetadataChangeList() { DCHECK(thread_checker_.CalledOnValidThread()); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL); + GetAutofillTable(), syncer::AUTOFILL, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } optional<syncer::ModelError> AutocompleteSyncBridge::MergeSyncData( @@ -417,9 +418,8 @@ return; } - auto metadata_change_list = - std::make_unique<syncer::SyncMetadataStoreChangeList>(GetAutofillTable(), - syncer::AUTOFILL); + std::unique_ptr<MetadataChangeList> metadata_change_list = + CreateMetadataChangeList(); for (const auto& change : changes) { const std::string storage_key = GetStorageKeyFromModel(change.key()); switch (change.type()) { @@ -466,9 +466,6 @@ // the metadata change list) because the open WebDatabase transaction is // committed by the AutofillWebDataService when the original local write // operation (that triggered this notification to the bridge) finishes. - - if (optional<ModelError> error = metadata_change_list->TakeError()) - change_processor()->ReportError(*error); } void AutocompleteSyncBridge::LoadMetadata() {
diff --git a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc index 2f61b1b..633af8e 100644 --- a/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc +++ b/components/autofill/core/browser/webdata/autofill_profile_sync_bridge.cc
@@ -11,12 +11,9 @@ #include "base/bind.h" #include "base/callback_helpers.h" #include "base/containers/contains.h" -#include "base/guid.h" #include "base/strings/utf_string_conversions.h" #include "components/autofill/core/browser/autofill_profile_sync_util.h" #include "components/autofill/core/browser/data_model/autofill_profile.h" -#include "components/autofill/core/browser/field_types.h" -#include "components/autofill/core/browser/geo/country_names.h" #include "components/autofill/core/browser/proto/autofill_sync.pb.h" #include "components/autofill/core/browser/webdata/autofill_profile_sync_difference_tracker.h" #include "components/autofill/core/browser/webdata/autofill_table.h" @@ -95,7 +92,9 @@ AutofillProfileSyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL_PROFILE); + GetAutofillTable(), syncer::AUTOFILL_PROFILE, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } optional<syncer::ModelError> AutofillProfileSyncBridge::MergeSyncData( @@ -211,9 +210,8 @@ return; } - auto metadata_change_list = - std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL_PROFILE); + std::unique_ptr<MetadataChangeList> metadata_change_list = + CreateMetadataChangeList(); switch (change.type()) { case AutofillProfileChange::ADD: @@ -236,10 +234,6 @@ // the metadata change list) because the open WebDatabase transaction is // committed by the AutofillWebDataService when the original local write // operation (that triggered this notification to the bridge) finishes. - - if (optional<ModelError> error = metadata_change_list->TakeError()) { - change_processor()->ReportError(*error); - } } absl::optional<syncer::ModelError> AutofillProfileSyncBridge::FlushSyncTracker(
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc index 1ab4cec5..7976ec05 100644 --- a/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc +++ b/components/autofill/core/browser/webdata/autofill_wallet_metadata_sync_bridge.cc
@@ -9,7 +9,7 @@ #include <utility> #include <vector> -#include "base/base64.h" +#include "base/bind.h" #include "base/callback_helpers.h" #include "base/check_op.h" #include "base/containers/contains.h" @@ -367,7 +367,9 @@ AutofillWalletMetadataSyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL_WALLET_METADATA); + GetAutofillTable(), syncer::AUTOFILL_WALLET_METADATA, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } absl::optional<syncer::ModelError>
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge.cc index 3aee5557..5620cc3 100644 --- a/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge.cc +++ b/components/autofill/core/browser/webdata/autofill_wallet_offer_sync_bridge.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/bind.h" #include "base/callback_helpers.h" #include "base/logging.h" #include "components/autofill/core/browser/data_model/autofill_offer_data.h" @@ -79,7 +80,9 @@ AutofillWalletOfferSyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL_WALLET_OFFER); + GetAutofillTable(), syncer::AUTOFILL_WALLET_OFFER, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } absl::optional<syncer::ModelError> AutofillWalletOfferSyncBridge::MergeSyncData(
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc index 0cbdbbf..a27f6f82 100644 --- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc +++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge.cc
@@ -6,15 +6,10 @@ #include <utility> -#include "base/base64.h" +#include "base/bind.h" #include "base/callback_helpers.h" -#include "base/feature_list.h" #include "base/logging.h" #include "base/ranges/algorithm.h" -#include "base/strings/string_util.h" -#include "base/strings/utf_string_conversions.h" -#include "components/autofill/core/browser/autofill_profile_sync_util.h" -#include "components/autofill/core/browser/data_model/autofill_profile.h" #include "components/autofill/core/browser/data_model/credit_card.h" #include "components/autofill/core/browser/data_model/credit_card_cloud_token_data.h" #include "components/autofill/core/browser/metrics/autofill_metrics.h" @@ -23,8 +18,6 @@ #include "components/autofill/core/browser/webdata/autofill_table.h" #include "components/autofill/core/browser/webdata/autofill_webdata_backend.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" -#include "components/autofill/core/common/autofill_util.h" -#include "components/sync/base/data_type_histogram.h" #include "components/sync/base/hash_util.h" #include "components/sync/model/client_tag_based_model_type_processor.h" #include "components/sync/model/mutable_data_batch.h" @@ -178,7 +171,9 @@ AutofillWalletSyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - GetAutofillTable(), syncer::AUTOFILL_WALLET_DATA); + GetAutofillTable(), syncer::AUTOFILL_WALLET_DATA, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } absl::optional<syncer::ModelError> AutofillWalletSyncBridge::MergeSyncData(
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc index 9df33b8..27c25de 100644 --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc
@@ -286,13 +286,6 @@ "AutofillEnableLabelPrecedenceForTurkishAddresses", base::FEATURE_DISABLED_BY_DEFAULT); -// Enables the parsing of a sequence of fields that follows the pattern of Name, -// Surname. -// TODO(crbug.com/1277480): Remove once launched. -BASE_FEATURE(kAutofillEnableNameSurenameParsing, - "AutofillEnableNameSurenameParsing", - base::FEATURE_ENABLED_BY_DEFAULT); - // When enabled, the address profile deduplication logic runs after the browser // startup, once per chrome version. BASE_FEATURE(kAutofillEnableProfileDeduplication,
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h index b4d19ccd..e5b3f084 100644 --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h
@@ -103,8 +103,6 @@ COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillEnableLabelPrecedenceForTurkishAddresses); COMPONENT_EXPORT(AUTOFILL) -BASE_DECLARE_FEATURE(kAutofillEnableNameSurenameParsing); -COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillEnableProfileDeduplication); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillEnableSupportForParsingWithSharedLabels);
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb index 53e9494..b07adf3 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -263,7 +263,7 @@ <translation id="6554732001434021288">上次瀏覽日期:<ph name="NUM_DAYS" /> 天前</translation> <translation id="6561560012278703671">使用靜態訊息功能 (免受通知提示干擾)</translation> <translation id="6593061639179217415">桌面版網站</translation> -<translation id="6608211702542341247">這個網站屬於 <ph name="FPS_OWNER" /> 的網站群組,因此可以查看你在群組中的活動</translation> +<translation id="6608211702542341247">此網站屬於 <ph name="FPS_OWNER" /> 的網站群組,因此可查看您在群組中的活動</translation> <translation id="6608650720463149374"><ph name="GIGABYTES" /> GB</translation> <translation id="6612358246767739896">受保護內容</translation> <translation id="662080504995468778">不離開</translation>
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index fdb1fe2..11b1b34 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "13.12", - "log_list_timestamp": "2022-10-09T12:54:59Z", + "version": "13.13", + "log_list_timestamp": "2022-10-10T12:55:22Z", "operators": [ { "name": "Google",
diff --git a/components/content_settings/core/browser/cookie_settings_unittest.cc b/components/content_settings/core/browser/cookie_settings_unittest.cc index 19a1ed579..df1b19b4 100644 --- a/components/content_settings/core/browser/cookie_settings_unittest.cc +++ b/components/content_settings/core/browser/cookie_settings_unittest.cc
@@ -549,10 +549,10 @@ } // Subdomains of the granted resource url should not gain access if a valid -// grant exists. +// grant exists; the grant should also not apply on different schemes. TEST_P(CookieSettingsTest, GetCookieSettingSAAResourceWildcards) { const GURL top_level_url = GURL(kFirstPartySite); - const GURL url = GURL(kHttpSite); + const GURL url = GURL(kHttpsSite); prefs_.SetInteger(prefs::kCookieControlsMode, static_cast<int>(CookieControlsMode::kBlockThirdParty)); @@ -569,12 +569,15 @@ top_level_url, nullptr, QueryReason::kCookies), CONTENT_SETTING_BLOCK); + EXPECT_EQ(cookie_settings_->GetCookieSetting(GURL(kHttpSite), top_level_url, + nullptr, QueryReason::kCookies), + CONTENT_SETTING_BLOCK); } // Subdomains of the granted top level url should not grant access if a valid -// grant exists. +// grant exists; the grant should also not apply on different schemes. TEST_P(CookieSettingsTest, GetCookieSettingSAATopLevelWildcards) { - const GURL top_level_url = GURL(kHttpSite); + const GURL top_level_url = GURL(kHttpsSite); const GURL url = GURL(kFirstPartySite); prefs_.SetInteger(prefs::kCookieControlsMode, @@ -591,6 +594,9 @@ EXPECT_EQ(cookie_settings_->GetCookieSetting(url, GURL(kHttpsSubdomainSite), nullptr, QueryReason::kCookies), CONTENT_SETTING_BLOCK); + EXPECT_EQ(cookie_settings_->GetCookieSetting(url, GURL(kHttpSite), nullptr, + QueryReason::kCookies), + CONTENT_SETTING_BLOCK); } // Explicit settings should be respected regardless of whether Storage Access
diff --git a/components/digital_asset_links/android/java/src/org/chromium/components/digital_asset_links/OriginVerifier.java b/components/digital_asset_links/android/java/src/org/chromium/components/digital_asset_links/OriginVerifier.java index e10ae372..0cef8f1 100644 --- a/components/digital_asset_links/android/java/src/org/chromium/components/digital_asset_links/OriginVerifier.java +++ b/components/digital_asset_links/android/java/src/org/chromium/components/digital_asset_links/OriginVerifier.java
@@ -202,9 +202,13 @@ } mVerificationStartTime = SystemClock.uptimeMillis(); - boolean requestSent = OriginVerifierJni.get().verifyOrigin(mNativeOriginVerifier, - OriginVerifier.this, mPackageName, mSignatureFingerprints.toArray(new String[0]), - origin.toString(), mRelation, mWebContents); + String[] fingerprints = mSignatureFingerprints == null + ? null + : mSignatureFingerprints.toArray(new String[0]); + + boolean requestSent = + OriginVerifierJni.get().verifyOrigin(mNativeOriginVerifier, OriginVerifier.this, + mPackageName, fingerprints, origin.toString(), mRelation, mWebContents); if (!requestSent) { recordResultMetrics(VerifierResult.REQUEST_FAILURE); PostTask.runOrPostTask(
diff --git a/components/history/core/browser/sync/history_sync_bridge.cc b/components/history/core/browser/sync/history_sync_bridge.cc index 7dedf70..319bfd3 100644 --- a/components/history/core/browser/sync/history_sync_bridge.cc +++ b/components/history/core/browser/sync/history_sync_bridge.cc
@@ -5,6 +5,7 @@ #include "components/history/core/browser/sync/history_sync_bridge.h" #include "base/auto_reset.h" +#include "base/bind.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" #include "base/strings/string_number_conversions.h" @@ -442,7 +443,9 @@ HistorySyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - sync_metadata_database_, syncer::HISTORY); + sync_metadata_database_, syncer::HISTORY, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } absl::optional<syncer::ModelError> HistorySyncBridge::MergeSyncData( @@ -681,16 +684,6 @@ change_processor()->Put(storage_key, std::move(entity_data), metadata_change_list.get()); } - - // `metadata_change_list` must have been created via - // CreateMetadataChangeList(), so downcasting is safe. - absl::optional<syncer::ModelError> metadata_error = - static_cast<syncer::SyncMetadataStoreChangeList*>( - metadata_change_list.get()) - ->TakeError(); - if (metadata_error) { - change_processor()->ReportError(metadata_error.value()); - } } void HistorySyncBridge::OnURLsModified(HistoryBackend* history_backend, @@ -778,16 +771,6 @@ change_processor()->Put(storage_key, std::move(entity_data), metadata_change_list.get()); } - - // `metadata_change_list` must have been created via - // CreateMetadataChangeList(), so downcasting is safe. - absl::optional<syncer::ModelError> metadata_error = - static_cast<syncer::SyncMetadataStoreChangeList*>( - metadata_change_list.get()) - ->TakeError(); - if (metadata_error) { - change_processor()->ReportError(metadata_error.value()); - } } void HistorySyncBridge::OnVisitDeleted(const VisitRow& visit_row) {
diff --git a/components/history/core/browser/sync/history_sync_bridge_unittest.cc b/components/history/core/browser/sync/history_sync_bridge_unittest.cc index b99af14..66764d25 100644 --- a/components/history/core/browser/sync/history_sync_bridge_unittest.cc +++ b/components/history/core/browser/sync/history_sync_bridge_unittest.cc
@@ -205,6 +205,10 @@ return sync_pb::EntitySpecifics::default_instance(); } + base::WeakPtr<syncer::ModelTypeChangeProcessor> GetWeakPtr() override { + return weak_ptr_factory_.GetWeakPtr(); + } + std::unique_ptr<ModelTypeChangeProcessor> CreateForwardingProcessor() { return base::WrapUnique<ModelTypeChangeProcessor>( new syncer::ForwardingModelTypeChangeProcessor(this)); @@ -223,6 +227,8 @@ // Set of storage keys of all unsynced entities (i.e. with local changes that // are pending commit). std::set<std::string> unsynced_entities_; + + base::WeakPtrFactory<FakeModelTypeChangeProcessor> weak_ptr_factory_{this}; }; class HistorySyncBridgeTest : public testing::Test {
diff --git a/components/history/core/browser/sync/typed_url_sync_bridge.cc b/components/history/core/browser/sync/typed_url_sync_bridge.cc index 4c138bc..487d267c 100644 --- a/components/history/core/browser/sync/typed_url_sync_bridge.cc +++ b/components/history/core/browser/sync/typed_url_sync_bridge.cc
@@ -6,6 +6,7 @@ #include "base/auto_reset.h" #include "base/big_endian.h" +#include "base/bind.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" #include "base/ranges/algorithm.h" @@ -105,7 +106,9 @@ TypedURLSyncBridge::CreateMetadataChangeList() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return std::make_unique<syncer::SyncMetadataStoreChangeList>( - sync_metadata_database_, syncer::TYPED_URLS); + sync_metadata_database_, syncer::TYPED_URLS, + base::BindRepeating(&syncer::ModelTypeChangeProcessor::ReportError, + change_processor()->GetWeakPtr())); } absl::optional<syncer::ModelError> TypedURLSyncBridge::MergeSyncData(
diff --git a/components/keyed_service/content/browser_context_keyed_service_factory.h b/components/keyed_service/content/browser_context_keyed_service_factory.h index 3154030..a7bdf5c 100644 --- a/components/keyed_service/content/browser_context_keyed_service_factory.h +++ b/components/keyed_service/content/browser_context_keyed_service_factory.h
@@ -109,6 +109,9 @@ // Interface for people building a concrete FooServiceFactory: -------------- // Finds which browser context (if any) to use. + // + // Should return nullptr when the service should not be created for the given + // |context|. virtual content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const; @@ -128,6 +131,13 @@ // All subclasses of BrowserContextKeyedServiceFactory must return a // KeyedService instead of just a BrowserContextKeyedBase. + // + // This should not return nullptr; instead, return nullptr from + // `GetBrowserContextToUse()`. + // NOTE: There is a //chrome-specific exception to this rule for a + // ChromeOS-specific case until crbug.com/1284664 is resolved. See + // documentation on //chrome's // + // `ProfileKeyedServiceFactory::BuildServiceInstanceFor()` for details. virtual KeyedService* BuildServiceInstanceFor( content::BrowserContext* context) const = 0;
diff --git a/components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h b/components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h index 93c724e2..c3fc87df 100644 --- a/components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h +++ b/components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h
@@ -85,6 +85,9 @@ // Interface for people building a concrete FooServiceFactory: -------------- // Finds which browser context (if any) to use. + // + // Should return nullptr when the service should not be created for the given + // |context|. virtual content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const; @@ -104,6 +107,14 @@ // All subclasses of BrowserContextKeyedServiceFactory must return a // KeyedService instead of just a BrowserContextKeyedBase. + // + // This should not return nullptr; instead, return nullptr from + // `GetBrowserContextToUse()`. + // NOTE: There is a //chrome-specific exception to this rule for a + // ChromeOS-specific case until crbug.com/1284664 is resolved. See + // documentation on //chrome's // + // `RefcountedProfileKeyedServiceFactory::BuildServiceInstanceFor()` for + // details. virtual scoped_refptr<RefcountedKeyedService> BuildServiceInstanceFor( content::BrowserContext* context) const = 0;
diff --git a/components/omnibox/resources/translations/omnibox_pedal_synonyms_da.xtb b/components/omnibox/resources/translations/omnibox_pedal_synonyms_da.xtb index 4a35c8d..0488100 100644 --- a/components/omnibox/resources/translations/omnibox_pedal_synonyms_da.xtb +++ b/components/omnibox/resources/translations/omnibox_pedal_synonyms_da.xtb
@@ -27,7 +27,7 @@ <translation id="7153639895359139570">tilføj adresse, skift leveringsadresse, rediger adresser, administrer adresser</translation> <translation id="7242693601647412075">administrer sikkerhedsindstillinger</translation> <translation id="7441773108452086364">skift gmail adgangskode, skift gmail-adgangskode, skift min gmail adgangskode, skift min gmail-adgangskode, skift google adgangskode, skift google-adgangskode, nulstil adgangskode til gmail konto, nulstil adgangskode til gmail-konto</translation> -<translation id="7660956169713698963">tilpas Chrome OS-hjælpefunktioner, administrer hjælpefunktioner, juster hjælpefunktioner, tilpas hjælpefunktioner, tilpas hjælpefunktioner i Chrome OS, administrer hjælpefunktioner i Chrome OS, juster hjælpefunktioner i Chrome OS, styr hjælpefunktioner</translation> +<translation id="7660956169713698963">tilpas ChromeOS-hjælpefunktioner, administrer hjælpefunktioner, juster hjælpefunktioner, tilpas hjælpefunktioner, tilpas hjælpefunktioner i ChromeOS, administrer hjælpefunktioner i ChromeOS, juster hjælpefunktioner i ChromeOS, styr hjælpefunktioner</translation> <translation id="7700496593710078083">se Chrome-historik, se browserhistorik, se Chrome-historikken, se browserhistorikken, se historikken for Chrome, se historikken for browsing, tjek Chrome-historikken, tjek browserhistorikken</translation> <translation id="7739523284295786564">administrer Chrome-downloads, se downloads, styr downloads, styr Chrome-downloads, administrer downloads i Chrome, se downloads i Chrome, se Chrome-downloads, styr downloads i Chrome</translation> <translation id="7873993277886791795">opret google-dias, opret google dias, opret google slides-præsentation, opret google slides præsentation, opret google slides dias, opret nyt dias, ny google-præsentation, opret ny google præsentation, start google-præsentation, start google præsentation</translation>
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge.cc b/components/password_manager/core/browser/sync/password_sync_bridge.cc index 7502d941..6e986439 100644 --- a/components/password_manager/core/browser/sync/password_sync_bridge.cc +++ b/components/password_manager/core/browser/sync/password_sync_bridge.cc
@@ -8,7 +8,8 @@ #include <utility> #include "base/auto_reset.h" -#include "base/callback.h" +#include "base/bind.h" +#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/containers/flat_map.h" #include "base/feature_list.h" @@ -17,7 +18,6 @@ #include "base/notreached.h" #include "base/strings/escape.h" #include "base/strings/string_number_conversions.h" -#include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "components/password_manager/core/browser/password_form.h" #include "components/password_manager/core/browser/password_manager_metrics_util.h" @@ -322,8 +322,11 @@ return; } + // Note: No `error_callback` is required since any errors are handled + // explicitly via TakeError() below. syncer::SyncMetadataStoreChangeList metadata_change_list( - password_store_sync_->GetMetadataStore(), syncer::PASSWORDS); + password_store_sync_->GetMetadataStore(), syncer::PASSWORDS, + /*error_callback=*/base::DoNothing()); for (const PasswordStoreChange& change : local_changes) { const std::string storage_key = @@ -577,8 +580,11 @@ // Persist the metadata changes. // TODO(mamir): add some test coverage for the metadata persistence. + // Note: No `error_callback` is required since any errors are handled + // explicitly via TakeError() below. syncer::SyncMetadataStoreChangeList sync_metadata_store_change_list( - password_store_sync_->GetMetadataStore(), syncer::PASSWORDS); + password_store_sync_->GetMetadataStore(), syncer::PASSWORDS, + /*error_callback=*/base::DoNothing()); // |metadata_change_list| must have been created via // CreateMetadataChangeList() so downcasting is safe. static_cast<syncer::InMemoryMetadataChangeList*>(metadata_change_list.get()) @@ -753,8 +759,11 @@ // Persist the metadata changes. // TODO(mamir): add some test coverage for the metadata persistence. + // Note: No `error_callback` is required since any errors are handled + // explicitly via TakeError() below. syncer::SyncMetadataStoreChangeList sync_metadata_store_change_list( - password_store_sync_->GetMetadataStore(), syncer::PASSWORDS); + password_store_sync_->GetMetadataStore(), syncer::PASSWORDS, + /*error_callback=*/base::DoNothing()); // |metadata_change_list| must have been created via // CreateMetadataChangeList() so downcasting is safe. static_cast<syncer::InMemoryMetadataChangeList*>(metadata_change_list.get())
diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc index 8d61cf9..6a4cf25 100644 --- a/components/permissions/permission_uma_util.cc +++ b/components/permissions/permission_uma_util.cc
@@ -1020,6 +1020,13 @@ } } +// static +void PermissionUmaUtil::RecordPageInfoDialogAccessType( + PageInfoDialogAccessType access_type) { + base::UmaHistogramEnumeration( + "Permissions.ConfirmationChip.PageInfoDialogAccessType", access_type); +} + std::string PermissionUmaUtil::GetPermissionActionString( PermissionAction permission_action) { switch (permission_action) {
diff --git a/components/permissions/permission_uma_util.h b/components/permissions/permission_uma_util.h index 7362151..7bdb533 100644 --- a/components/permissions/permission_uma_util.h +++ b/components/permissions/permission_uma_util.h
@@ -256,6 +256,31 @@ kMaxValue = SERVER_SIDE, }; +// This enum backs up the 'PageInfoDialogAccessType' histogram enum. +// It is used for collecting page info access type metrics in the context of +// the confirmation chip. +enum class PageInfoDialogAccessType { + // The user opened page info by clicking on the lock in a situation that is + // considered independent of the display of a confirmation chip. + LOCK_CLICK = 0, + // The user opened page info by clicking on the lock while a confirmation chip + // was being displayed. + LOCK_CLICK_DURING_CONFIRMATION_CHIP = 1, + // The user opened page info by clicking on the confirmation chip while it was + // being displayed. + CONFIRMATION_CHIP_CLICK = 2, + // The user opened page info by clicking on the lock within + // 'kConfirmationConsiderationDurationForUma' after confirmation chip has + // collapsed. This click may be considered influenced by the displaying of the + // confirmation chip. + LOCK_CLICK_SHORTLY_AFTER_CONFIRMATION_CHIP = 3, + + // Always keep at the end. + kMaxValue = LOCK_CLICK_SHORTLY_AFTER_CONFIRMATION_CHIP +}; + +constexpr auto kConfirmationConsiderationDurationForUma = base::Seconds(20); + // Provides a convenient way of logging UMA for permission related operations. class PermissionUmaUtil { public: @@ -366,6 +391,9 @@ bool is_on_device, bool is_heldback); + static void RecordPageInfoDialogAccessType( + PageInfoDialogAccessType access_type); + static std::string GetPermissionActionString( PermissionAction permission_action);
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 716c3bef..17b93ea 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -52,6 +52,7 @@ Si no se establece la política, los usuarios gestionados no podrán usar esta función, pero otros usuarios sí (por defecto).</translation> <translation id="1035860095382451169">Habilitar el icono del candado en el omnibox en el caso de las conexiones seguras</translation> +<translation id="1037470927044831850">Permitir que los sitios soliciten al usuario que comparta un stream de vídeo de su pantalla</translation> <translation id="1040125341954178855">Esta función se ha eliminado en Chrome 100. Si se habilita esta política, se mostrarán recomendaciones de aplicaciones instaladas anteriormente por el usuario en otros dispositivos. Estas recomendaciones aparecerán en el menú de aplicaciones después de las de aplicaciones locales si no se ha introducido ningún texto de búsqueda. @@ -284,6 +285,7 @@ Si no se asigna ningún valor a esta política, o si el valor que se obtiene de la sustitución no es un nombre de host válido, no se establece ningún nombre de host en la solicitud DHCP.</translation> <translation id="1257550411839719984">Establecer directorio de descargas predeterminado</translation> +<translation id="1262993197422487260">No incluir el botón para mostrar la contraseña en la pantalla de inicio de sesión y de bloqueo</translation> <translation id="1265053460044691532">Limitar el tiempo durante el que un usuario autenticado a través de SAML puede iniciar sesión sin conexión</translation> <translation id="1271811620059192171">Habilitar grupos atómicos de políticas</translation> <translation id="127264587838521316">Habilita las solicitudes de instalación de extensiones de <ph name="PRODUCT_NAME" /></translation> @@ -337,6 +339,7 @@ Si se selecciona "Forzado" (2), el usuario no podrá eliminar el selector de perfil. El selector de perfil se mostrará aunque solo haya un perfil disponible.</translation> <translation id="1339174690935954950">Evitar que los usuarios envíen sugerencias</translation> +<translation id="1340053691042184658">Impedir que se inicie sesión en el navegador con el modo Invitado</translation> <translation id="1342918903685430097">Configurar la versión mínima permitida de <ph name="PRODUCT_OS_NAME" /> en el dispositivo</translation> <translation id="1343128241903870688">Inhabilitar los informes sobre las aplicaciones del dispositivo</translation> <translation id="1347198119056266798">Esta política está obsoleta. Te recomendamos que utilices <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> y <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Esta política se ignorará si se asigna un valor a las políticas <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> o <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (obsoleta). @@ -514,6 +517,7 @@ <translation id="1503969899251962413">Si se le asigna un valor a esta política, se especificará la clave de licencia de <ph name="PLUGIN_VM_NAME" /> de este dispositivo. Esta política se quitó en la versión M94.</translation> +<translation id="1507373253059695424">Habilitar siempre la pantalla de privacidad en la pantalla de inicio de sesión</translation> <translation id="150857982247452081">Permite definir una lista de protocolos y una lista asociada de patrones de origen permitidos para cada uno de los protocolos, que pueden abrir una aplicación externa sin pedir permiso al usuario. No se debe incluir el separador del final al añadir el protocolo a la lista, así que añade "skype" en lugar de "skype:" o "skype://". Si se define esta política, un protocolo solo podrá abrir una aplicación externa sin pedir permiso (por política) si está en la lista y si el origen del sitio que intenta iniciar el protocolo coincide con uno de los patrones de origen de la lista allowed_origins del protocolo. Si no se cumple alguna de estas condiciones, esta política no omitirá la solicitud para iniciar el protocolo externo. @@ -688,6 +692,7 @@ Si asignas un valor a esta política, los usuarios no podrán cambiarlo ni anularlo. Si no le asignas ningún valor, la función de dictado estará inhabilitada inicialmente en la pantalla de inicio de sesión, pero el usuario podrá habilitarla en cualquier momento.</translation> +<translation id="1673097259557436886">Indicar siempre a los sitios web que no hay métodos de pago guardados</translation> <translation id="1674287836076801014">SAML</translation> <translation id="1675002386741412210">Compatible con:</translation> <translation id="167514072300004091">Si se asigna el valor 3 a esta política, los sitios web podrán solicitar acceso a los dispositivos conectados por USB. Si se le asigna el valor 2, se bloqueará el acceso a los dispositivos conectados por USB. @@ -764,6 +769,7 @@ Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Esta política no acepta el valor <ph name="WILDCARD_VALUE" />.</translation> <translation id="1736269219679256369">Permitir que se continúe desde la página de advertencia de SSL</translation> +<translation id="1744340218280697033">No permitir que los padres añadan cuentas supervisadas</translation> <translation id="1751429117283165017">Si se le asigna un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios no pueden pedir a los usuarios que les concedan acceso de escritura a archivos o directorios en el sistema de archivos del sistema operativo del host. Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios, si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. @@ -781,6 +787,7 @@ Nota: Puedes consultar más ejemplos detallados en The Chromium Projects: https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett</translation> <translation id="1767673020408652620">Habilitar la opción Aplicaciones recomendadas en estado cero del cuadro de búsqueda.</translation> +<translation id="1770071413238151235">Formato de reloj de 12 horas</translation> <translation id="1780323582106687813">Esta política está obsoleta. Usa la política <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> en su lugar. Si se define esta política, se especificará qué extensiones están exentas de la lista de extensiones prohibidas. En <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />, usa el valor <ph name="ALL_EXTENSIONS" /> para prohibir todas las extensiones. De ese modo, los usuarios solo podrán instalar extensiones que estén permitidas de forma explícita. De forma predeterminada, se permiten todas las extensiones. Sin embargo, si has prohibido las extensiones mediante una política, usa la lista de extensiones permitidas para cambiar esa política.</translation> @@ -827,6 +834,7 @@ </translation> <translation id="1808715480127969042">Bloquear cookies en estos sitios</translation> <translation id="1810261428246410396">Permitir conexión compartida instantánea.</translation> +<translation id="1813638828646876133">Habilitar el envío automático de PIN en la pantalla de bloqueo y de inicio de sesión</translation> <translation id="1813672770917912317">Te permite definir si <ph name="PRODUCT_NAME" /> ejecutará el motor V8 de JavaScript con un compilador en tiempo de ejecución (JIT) habilitado o no. Si se inhabilita el uso de JavaScript con JIT, es posible que <ph name="PRODUCT_NAME" /> renderice contenido web de forma más lenta y que también se inhabiliten algunas partes de JavaScript, como WebAssembly. Al inhabilitarse el uso de JavaScript con JIT, es posible que <ph name="PRODUCT_NAME" /> renderice contenido web con una configuración más segura. @@ -930,6 +938,7 @@ Si no se define esta política, se desactivará la autenticación <ph name="HTTP_NEGOTIATE" /> en Android.</translation> <translation id="1923704782248889851">Habilitar el dictado</translation> <translation id="1925529914257504750">Actualización automática de conexiones P2P habilitada</translation> +<translation id="1928355425032308464">Habilitar entrada de vídeo</translation> <translation id="1930094135927166199">Inhabilitar la energía compartida por USB</translation> <translation id="1930127294345368978">Número máximo de hojas que se puede usar en un mismo trabajo de impresión</translation> <translation id="193259052151668190">Lista blanca de dispositivos USB que se pueden separar</translation> @@ -1017,6 +1026,7 @@ Si se asigna el valor "false" a esta política o no se establece, no se enviará ninguna información. Si se le asigna el valor "true", se informará sobre la zona horaria establecida en el dispositivo.</translation> <translation id="199764499252435679">Habilitar las actualizaciones de componentes en <ph name="PRODUCT_NAME" /></translation> +<translation id="1997943707974344423">Permitir Smart Lock</translation> <translation id="1998504583649140526">Configuración de solicitudes de redes privadas</translation> <translation id="1999000620918508488">Fuerza la pantalla de inicio de sesión a mostrar u ocultar la información del sistema.</translation> <translation id="1999942889260716089">Si se le asigna el valor True a esta política, se activarán las sugerencias de búsqueda en la barra de direcciones de <ph name="PRODUCT_NAME" />. Si se le asigna el valor False, se desactivarán esas sugerencias de búsqueda. @@ -1037,6 +1047,7 @@ <translation id="2006530844219044261">Gestión de la batería</translation> <translation id="2006954055163088863">Considerar que el usuario está inactivo durante la reproducción de vídeos</translation> <translation id="2008514891623783266">La política que gestiona la IP de WebRTC</translation> +<translation id="2012296492055302633">Habilitar siempre la pantalla de privacidad</translation> <translation id="2013285471046373727">Especifica cómo se instala una aplicación. OPTIONAL: la aplicación no se instalará automáticamente, pero el usuario podrá instalarla. Si no se asigna ningún valor a esta política, este será el valor predeterminado. PRELOAD: la aplicación se instalará automáticamente, pero el usuario podrá desinstalarla. FORCE_INSTALLED: la aplicación se instalará automáticamente y el usuario no podrá desinstalarla. BLOCKED: la aplicación estará bloqueada y no se podrá instalar. Si la aplicación se instaló cuando estaba vigente una política anterior, se desinstalará.</translation> <translation id="2014757022750736514">Controla el comportamiento de la pantalla de inicio de sesión, donde los usuarios acceden a sus cuentas. Entre los ajustes se incluyen los siguientes: quién puede iniciar sesión, qué tipos de cuentas se permiten y qué métodos de autenticación se deben usar, así como ajustes de accesibilidad general, método de introducción y configuración regional.</translation> <translation id="201557587962247231">Frecuencia de subida de informes de estado del dispositivo</translation> @@ -1081,6 +1092,7 @@ <translation id="2057317273526988987">Permitir el acceso a una lista de URLs</translation> <translation id="2058055310819710697">Habilitar el modo desarrollador de aplicaciones aisladas</translation> <translation id="205807990145127714">Datos de telemetría para registrar en los cambios de intensidad de la señal</translation> +<translation id="2060153898336610735">Automático en función del idioma seleccionado</translation> <translation id="2061123930713023976">Permite capturas de paquetes de red de depuración</translation> <translation id="2061810934846663491">Configurar los nombres de dominio obligatorios para hosts de acceso remoto</translation> <translation id="2062632109797189011">Volver a habilitar la API obsoleta window.webkitStorageInfo</translation> @@ -1112,6 +1124,7 @@ <translation id="209586405398070749">Canal estable</translation> <translation id="2096932573113293941">Pedir permiso al usuario para ejecutar complementos que requieran autorización</translation> <translation id="2098658257603918882">Habilitar informes de uso y de datos sobre fallos</translation> +<translation id="2099380339157427935">No mostrar el botón de cerrar sesión en la bandeja</translation> <translation id="2104418465060359056">Recoger información sobre extensiones y complementos</translation> <translation id="2106627642643925514">Anula el modo predeterminado de impresión con PIN Si este modo no está disponible, se ignorará esta política.</translation> <translation id="2107563874993284076">Si se habilita esta política, se permitirá que los usuarios usen sistemas de archivos compartidos en red para <ph name="PRODUCT_NAME" />. Si se inhabilita, los usuarios no podrán usar esta función.</translation> @@ -1145,6 +1158,7 @@ <translation id="2135335181634291106">Si <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> está activada y se asigna un valor a <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" />, se especificará la URL del icono favorito del proveedor de búsquedas predeterminado. Si no se asigna ningún valor a <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" />, el proveedor de búsquedas no tendrá ningún icono.</translation> +<translation id="2144236546337326489">Permitir que se habilite la continuación de tareas de Mi teléfono</translation> <translation id="2145735238144543545">Certificados de cliente obligatorios</translation> <translation id="2146103669166779785">Color hexadecimal que se usará para generar y aplicar un tema al navegador.</translation> <translation id="2148769554831004951">Fuerza que se habilite WebSQL.</translation> @@ -1197,6 +1211,7 @@ <translation id="2171952274731262470">Retrasos y acciones que se deben llevar a cabo cuando el dispositivo esté inactivo y funcione con la batería</translation> <translation id="2175353308236295184">Objeto de configuración JSON específico de la aplicación con un conjunto de pares clave-valor; por ejemplo, '"managedConfiguration": { "key1": value1, "key2": value2 }'. Las claves se definen en el manifiesto de la aplicación.</translation> <translation id="2176115444876446233">Evita que los usuarios recojan trazas de rendimiento del sistema.</translation> +<translation id="2177696016354404697">Inhabilitar siempre la pantalla de privacidad</translation> <translation id="2178899310296064282">Aplicar como mínimo el modo restringido moderado en YouTube</translation> <translation id="2180958780733364832">Controla el uso del modo sin interfaz gráfica</translation> <translation id="2182291258410176649">El usuario decide si quiere habilitar la opción para crear una copia de seguridad y restaurar los datos</translation> @@ -1304,6 +1319,8 @@ Los usuarios no podrán modificar ni anular este ajuste. Nota: Esta política provoca que el encabezado X-GoogApps-Allowed-Domains se añada a todas las solicitudes HTTP y HTTPS en todos los dominios de google.com, como se describe en https://support.google.com/a/answer/1668854.</translation> +<translation id="2282174652047982960">Usar el cliente DNS integrado siempre que esté disponible</translation> +<translation id="2288506601233091655">No permitir que se elimine el historial de trabajos de impresión</translation> <translation id="2289265947759479962">Esta política determina si se recoge información de versiones, como la versión, la plataforma o la arquitectura del SO, la versión de <ph name="PRODUCT_NAME" /> y el canal de <ph name="PRODUCT_NAME" />. Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará. @@ -1341,6 +1358,7 @@ <translation id="2309284543927494965">Bloquear las actualizaciones</translation> <translation id="2309341709647905294">No proporcionar información sobre los periféricos conectados al dispositivo</translation> <translation id="2309390639296060546">Configuración de ubicación geográfica predeterminada</translation> +<translation id="2318583605563438459">Permitir que los padres añadan cuentas supervisadas</translation> <translation id="2331354174913096226">La plantilla URI de la resolución de DNS-over-HTTPS deseada. Para especificar varias resoluciones de DNS-over-HTTPS, separa las plantillas URI correspondientes con espacios. Si se asigna el valor <ph name="SECURE_DNS_MODE_SECURE" /> a DnsOverHttpsMode, esta política debe definirse y no dejarse vacía. @@ -1449,6 +1467,7 @@ Si no se le asigna ningún valor, la pantalla de privacidad se inhabilitará inicialmente, pero el usuario podrá controlarla.</translation> <translation id="2413899611035194909">Mostrar las opciones de accesibilidad en el menú de la bandeja del sistema de la pantalla de inicio de sesión</translation> <translation id="2415715982424988916">Explorar (compatible desde la versión 91)</translation> +<translation id="2421400544595297401">No permitir que los usuarios no afiliados utilicen aplicaciones Android</translation> <translation id="2421677964966613267">Esta política está obsoleta en M88. Chrome ya no es compatible con Flash. Si le asignas un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios no pueden ejecutar el complemento <ph name="FLASH_PLUGIN_NAME" />. Si no se le asigna ningún valor, <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> se aplicará en todos los sitios, si se ha definido previamente. Si no, se aplicará la configuración personal del usuario. @@ -1484,6 +1503,7 @@ <translation id="2436302465999055995">Establecer que <ph name="LACROS_NAME" /> sea el único navegador disponible (aún no se ha implementado)</translation> <translation id="2439187682308339104">No permite que ningún sitio solicite acceso a los dispositivos HID a través de la API WebHID</translation> <translation id="2439733504887695659">Habilitar la opción de cerrar alertas de contraseñas vulneradas para credenciales introducidas</translation> +<translation id="2446244536806499267">No considerar que el usuario está inactivo mientras se reproduce audio</translation> <translation id="2448315169529769573">Si se habilita la política, <ph name="PRODUCT_OS_NAME" /> enviará métricas de uso y datos de diagnóstico, como informes sobre fallos, a Google. Si se inhabilita la política, no se enviarán métricas ni datos de diagnóstico. Si no se establece la política, se desactivarán las métricas y los datos de diagnóstico en los dispositivos no administrados, y se activarán en los dispositivos administrados.</translation> @@ -1682,6 +1702,7 @@ <translation id="2625398797484317969">Controla los ajustes de Respuestas rápidas.</translation> <translation id="262740370354162807">Habilitar el envío de documentos a <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2633084400146331575">Habilitar mensajes de voz</translation> +<translation id="2633907568797306353">Permitir que se habiliten las notificaciones de Mi teléfono</translation> <translation id="2635872253077105112">Esta política controla la lista de sitios web que se abrirán en un navegador alternativo. Cada elemento se trata como una regla para que los sitios web se abran en un navegador alternativo. <ph name="PRODUCT_NAME" /> usará esas reglas al determinar si una URL debe abrirse en un navegador alternativo. Si el complemento de <ph name="IE_PRODUCT_NAME" /> está activado, <ph name="IE_PRODUCT_NAME" /> cambiará de nuevo a <ph name="PRODUCT_NAME" /> si las reglas no coinciden. Si las reglas se contradicen entre ellas, <ph name="PRODUCT_NAME" /> usará la más específica. Si no se asigna ningún valor a esta política, no se añadirá ningún sitio web a la lista. @@ -1763,6 +1784,7 @@ <translation id="2725855586003209701">Si se habilita la política o no se establece, los dispositivos registrados informarán sobre la lista de usuarios de dispositivos que hayan iniciado sesión recientemente. Si se inhabilita la política, los dispositivos registrados no informarán sobre la lista de usuarios.</translation> +<translation id="2730200383593984228">Permitir que los usuarios no afiliados utilicen aplicaciones Android</translation> <translation id="2730419309754848345">Imprimir PDF como imagen de forma predeterminada</translation> <translation id="2731299561202635374">Esta política controla la comprobación de URLs en tiempo real para identificar URL no seguras. @@ -1907,6 +1929,7 @@ <translation id="2841911109921764691">El botón derecho es el principal en la pantalla de inicio de sesión</translation> <translation id="284288632677954003">URL de un archivo XML que contiene URLs que nunca deben activar un cambio de navegador.</translation> <translation id="2846689894646472396">Intervalo de comprobación de eventos de red en milisegundos</translation> +<translation id="2847788524147474533">Las políticas basadas en la plataforma del equipo tienen prioridad sobre las políticas basadas en la nube</translation> <translation id="2849275596224278787">Ocultar las opciones de accesibilidad en el menú de la bandeja del sistema de la pantalla de inicio de sesión</translation> <translation id="2853649500575897584">No bloquea los puntos de extensión antiguos en el proceso del navegador</translation> <translation id="285480231336205327">Habilitar modo de contraste alto</translation> @@ -1914,6 +1937,8 @@ <translation id="2856674246949497058">Vuelve a instalar la versión de destino si la versión del SO es más reciente que la de destino. Realiza un Powerwash durante el proceso.</translation> <translation id="2866619962692161453">Tipo de metapolítica</translation> <translation id="2866726566162790531">Lista de orígenes que permiten todas las autenticaciones de HTTP</translation> +<translation id="2868756546751652023">Permitir que los usuarios utilicen la conexión compartida instantánea</translation> +<translation id="286898786908566256">Permitir que los usuarios envíen números de teléfono a su dispositivo Android desde Chrome</translation> <translation id="2872098849906555324">Inhabilitar la sincronización de Google Drive</translation> <translation id="2872961005593481000">Apagar</translation> <translation id="2874209944580848064">Nota para los dispositivos <ph name="PRODUCT_OS_NAME" /> compatibles con las aplicaciones de Android:</translation> @@ -1974,6 +1999,7 @@ <translation id="2906874737073861391">Lista de extensiones AppPack</translation> <translation id="2908277604670530363">Número máximo de conexiones simultáneas con el servidor proxy</translation> <translation id="2912366658685903301">Configurar el color del tema del navegador</translation> +<translation id="2914283793640833265">Impedir que se habilite la continuación de tareas de Mi teléfono</translation> <translation id="291853569864365550">No mostrar sugerencias de contenido en la página Nueva pestaña</translation> <translation id="2920795918401557243">Esta opción permite recoger trazas de rendimiento del sistema usando el servicio de trazado del sistema. @@ -2074,6 +2100,7 @@ Si una política está en la lista, pero no se ha publicado oficialmente, su valor sí se aplicará. Esta política no tiene ningún efecto en las políticas ya publicadas.</translation> +<translation id="3002067315837777719">Impedir que se habiliten las notificaciones de Mi teléfono</translation> <translation id="3016255526521614822">Aplicaciones para tomar notas incluidas en la lista blanca que están permitidas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" /></translation> <translation id="3017578958356048910">El visor de PDF puede anotar PDFs</translation> <translation id="3020623128585817424">Inhabilitar la comprobación de navegador predeterminado al iniciar</translation> @@ -2263,6 +2290,7 @@ Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation> <translation id="3168968618972302728">Políticas relacionadas con la autenticación Kerberos.</translation> +<translation id="3169872426103732947">Mostrar la URL predeterminada y permitir que los usuarios cambien a la URL completa</translation> <translation id="3171369832001535378">Plantilla de nombre de host de red de dispositivo</translation> <translation id="3177802893484440532">Requiere comprobaciones de OCSP/CRL online para los anclajes de veracidad locales</translation> <translation id="3180671894201217988">Si se habilita la política o no se le asigna ningún valor, se impide que software de terceros pueda insertar código ejecutable en los procesos de <ph name="PRODUCT_NAME" />. @@ -2481,6 +2509,7 @@ Esta política es temporal y se eliminará en futuras versiones de <ph name="PRODUCT_NAME" />.</translation> +<translation id="3351835664671920945">Usar un teclado estándar de forma predeterminada para escribir contraseñas</translation> <translation id="3359186795130278362">Habilitar sesión de invitado administrada y restringida.</translation> <translation id="33592541385181121">No incluir el puerto en el SPN de Kerberos generado</translation> <translation id="3360093276083825336">Ten en cuenta que esta política está obsoleta y se eliminará de la versión 85 de <ph name="PRODUCT_OS_NAME" />. Utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> en su lugar. @@ -2521,6 +2550,7 @@ <translation id="3398051852031115795">Comportamiento predeterminado del sistema (depende del tamaño de la pantalla)</translation> <translation id="3399859571630358395">Forzar que se inhabilite Emparejamiento rápido (función que permite emparejar rápidamente mediante Bluetooth).</translation> <translation id="3404681701763345449">Habilita la integración con <ph name="GOOGLE_CALENDAR_NAME" />.</translation> +<translation id="3406122462682235653">No preguntar al usuario (las descargas se inician inmediatamente)</translation> <translation id="3408078762098350617">Controla la experiencia de usuario de las funciones inhabilitadas que aparecen en <ph name="SYSTEM_FEATURES_DISABLE_LIST_POLICY_NAME" />. Si a esta política se le asigna el valor "blocked", los usuarios no podrán utilizar las funciones inhabilitadas, pero sí podrán verlas. @@ -2596,6 +2626,7 @@ Si se asigna un valor a esta política, los usuarios no podrán cambiarlo ni anularlo. Si no se le asigna ningún valor, la función Enunciar selección se inhabilitará inicialmente en la pantalla de inicio de sesión, pero el usuario podrá habilitarla en cualquier momento.</translation> +<translation id="3483585138745445814">Permitir que los usuarios habiliten Compartir con Nearby</translation> <translation id="348495353354674884">Habilitar teclado virtual</translation> <translation id="3485200437120267231">Inhabilitar interceptación de inicio de sesión</translation> <translation id="3487651201232258606">Mensajes nativos</translation> @@ -2639,6 +2670,7 @@ <translation id="3528000905991875314">Habilitar páginas de error alternativas</translation> <translation id="3531084733660068324">Ajustes de supervisión parental</translation> <translation id="3536263244905016305">Inhabilitar la optimización de detección automática de proxy web (WPAD)</translation> +<translation id="3538869107794555625">Habilitar el teclado en pantalla en el modo Tablet</translation> <translation id="3539103206548425861">Si se establece esta política, los vídeos podrán reproducirse automáticamente (sin el consentimiento del usuario) con contenido de audio en <ph name="PRODUCT_NAME" />. Si se asigna el valor "True" a <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" />, esta política no tendrá efecto. Si se asigna el valor "False" a <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" />, todos los patrones de URL establecidos en esta política podrán reproducir contenido. Si se realizan cambios en esta política mientras <ph name="PRODUCT_NAME" /> está abierto, solo se aplicarán al abrir pestañas nuevas. Para obtener información detallada sobre los patrones de URL válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> @@ -2677,6 +2709,7 @@ <translation id="3568762199045490351">Si la función de JavaScript setTimeout() tiene un tiempo de espera de 0 ms, se redondeará a 1 ms.</translation> <translation id="3574450691573438824">Inhabilitar la subida de registros del sistema en el dispositivo</translation> <translation id="3575011234198230041">Autenticación HTTP</translation> +<translation id="3575159471980949522">No permitir que los usuarios envíen números de teléfono a su dispositivo Android desde Chrome</translation> <translation id="3577251398714997599">Configuración de anuncios de sitios web con anuncios invasivos</translation> <translation id="3577628175311752799">Utiliza una política de referer predeterminada de no-referrer-when-downgrade.</translation> <translation id="357917253161699596">Permitir que los usuarios gestionen certificados de usuario</translation> @@ -3311,6 +3344,7 @@ <translation id="4187576366596772431">Bloquea la API WebHID en estos sitios</translation> <translation id="4190316993598857632">Habilitar la edición de marcadores</translation> <translation id="4192388905594723944">URL para validar el token de autenticación de clientes de acceso remoto</translation> +<translation id="4195698007674066525">Usar un teclado numérico de forma predeterminada para escribir contraseñas</translation> <translation id="4203055629055264833">Si se habilita esta política o no se establece, los usuarios podrán mostrar su página más reciente de resultados del buscador predeterminado en un panel lateral mediante la activación de un icono en la barra de herramientas. Si se inhabilita esta política, se quitará de la barra de herramientas el icono que abre el panel lateral con la página de resultados del buscador predeterminado.</translation> @@ -3413,6 +3447,7 @@ <translation id="4314538398999793073">Inhabilitar la búsqueda de CNAME durante la autenticación Kerberos</translation> <translation id="4320592646346933548">Wi-Fi</translation> <translation id="4322842393287974810">Permite que la aplicación de kiosco sin retardo con inicio automático controle la versión de <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="4323412353642577604">Habilitar la atestación remota para proteger el contenido</translation> <translation id="4325690621216251241">Añadir un botón para cerrar sesión en la bandeja del sistema</translation> <translation id="4329095223358818804">Permitir que la función de Respuestas rápidas acceda al contenido seleccionado</translation> <translation id="4330908525441222205">Usar el comportamiento predeterminado de AppCache</translation> @@ -3447,6 +3482,7 @@ <translation id="4370937370030117032">Inhabilitar el envío de nombres de usuario y de archivo a impresoras nativas</translation> <translation id="4372704773119750918">No permitir que el usuario de empresa forme parte de la función de varios perfiles (usuario principal o secundario)</translation> <translation id="4373332965635821723">Habilitar los accesos directos de accesibilidad</translation> +<translation id="4377377599658208627">Permitir que las URLs de los sitios lleven a fragmentos de texto concretos</translation> <translation id="4377599627073874279">Permitir que todos los sitios muestren todas las imágenes</translation> <translation id="437791893267799639">Política no establecida (no permitir la migración de datos ni ARC)</translation> <translation id="4380159792986204036">Permitir que una aplicación web de kiosco abra más de una ventana del navegador en cualquier pantalla</translation> @@ -3599,6 +3635,7 @@ <translation id="4558166110367609724">Omite los Términos del Servicio automáticamente y carga el navegador.</translation> <translation id="4559846397119102037">Permitir el uso de <ph name="LACROS_NAME" /></translation> <translation id="4561560385824323005">Permitir que los usuarios seleccionen un diseño de escritorio preconfigurado para que se cargue</translation> +<translation id="4561940244682063697">No permitir que los sitios soliciten al usuario que comparta un stream de vídeo de su pantalla</translation> <translation id="4562165737444703281">Permitir a los usuarios [habilitar/configurar] la redirección de puertos a Crostini</translation> <translation id="456686782928669977">Esta política controla si se cargarán las reglas de la política SiteList de <ph name="IE_PRODUCT_NAME" />. @@ -3615,6 +3652,28 @@ Si se inhabilita esta política o no se establece, los sitios no tendrán permiso para abrir nuevas ventanas/pestañas y desplazarse por ellas simultáneamente.</translation> <translation id="4572577129745420844">No permitir que los usuarios añadan cuentas de Kerberos</translation> <translation id="457430673056611745">Política de configuración del conector OnPrint de <ph name="PRODUCT_NAME" /> Enterprise</translation> +<translation id="4576760454200781316">Cuando se habilita, la función <ph name="PRODUCT_NAME" /> hace que los temporizadores de JavaScript de las pestañas que están en segundo plano se limiten considerablemente y se fusionen. Se ejecutan como máximo una vez por minuto después de que una página haya estado en segundo plano durante 5 minutos o más. + + Esta función cumple los estándares web, pero es posible que afecte a la funcionalidad + de algunos sitios web al causar que determinadas acciones se retrasen hasta un + minuto. Sin embargo, cuando se habilita se consigue un ahorro de batería y de CPU + significativo. Consulta https://bit.ly/30b1XR4 para obtener más información. + + Si se habilita esta política, se habilitará la función de forma forzosa y + los usuarios no podrán anular esa acción. + + Si se inhabilita, entonces la función se inhabilitará de forma forzosa y + los usuarios no podrán anular esa acción. + + Si no se define esta política, la función la controlará su + propia lógica interna y los usuarios podrán configurarla manualmente. + + Ten en cuenta que la política se aplica por proceso de renderizado, aplicando el valor + de configuración de política más reciente que esté en vigor al empezar un proceso de renderizado. Es necesario + un reinicio completo para asegurar que todas las pestañas que están cargadas reciben una configuración + de política coherente. Ejecutar los procesos con diferentes valores de esta política no les afecta + de forma negativa. + </translation> <translation id="4578265298946081589">No reiniciar cuando el usuario cierre sesión.</translation> <translation id="4581507927311097234">El tiempo que debe transcurrir (en milisegundos) sin que el usuario realice ninguna acción antes de que se apague la pantalla</translation> <translation id="4582338216073557489">Si se asigna el valor None a la política, <ph name="PRODUCT_NAME" /> usará el tamaño de caché predeterminado para guardar archivos almacenados en caché en el disco. Los usuarios no pueden cambiar la configuración. @@ -3665,6 +3724,7 @@ * Si se asigna el valor <ph name="EMPTY_DICTIONARY" /> a <ph name="FILTER_PLACEHOLDER" />, no se aplicarán más restricciones a la selección de certificados de cliente. Ten en cuenta que seguirán aplicándose los filtros proporcionados por el servidor web. Si no se asigna ningún valor a esta política, no se aplicará la selección automática en ningún sitio web.</translation> +<translation id="4611983465824842867">No mostrar advertencias o inhabilitar Autocompletar en formularios no seguros</translation> <translation id="4615003180013429835">Modo de análisis de la lista de sitios</translation> <translation id="4617338332148204752">Saltarla comprobación de etiquetas meta en <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4624417808625504735">Impedir que JavaScript use JIT en estos sitios</translation> @@ -3826,6 +3886,7 @@ <translation id="4856471929724652373">Envía información de las actualizaciones del sistema operativo, como el estado de actualización, la versión de la plataforma, la última comprobación de actualizaciones y el último reinicio. Si se asigna el valor False a esta política o no se le asigna ninguno, no se enviará información de las actualizaciones del sistema operativo. Si se le asigna el valor True, se enviará información de las actualizaciones del sistema operativo.</translation> +<translation id="4857223512478723171">No permitir el modo de pantalla completa</translation> <translation id="4858735034935305895">Permitir modo de pantalla completa</translation> <translation id="486146220825734683">No permitir que los usuarios activen la opción de recordar contraseñas de Kerberos</translation> <translation id="4861767323695239729">Configurar los métodos de introducción admitidos en una sesión de usuario</translation> @@ -3925,7 +3986,9 @@ indicado para procesar las solicitudes keepalive (https://fetch.spec.whatwg.org/#request-keepalive-flag). El valor predeterminado (0) significa que esta función está inhabilitada.</translation> +<translation id="4937423591320233496">Inhabilitar sugerencias de contenido</translation> <translation id="4940810901775798837">Permitir que los sitios web no seguros envíen solicitudes a cualquier punto final de la red</translation> +<translation id="4942096314850617489">Inhabilitar la atestación remota para el usuario</translation> <translation id="4942681160308347946">Si se le asigna el valor "true" a esta política, los mensajes de voz se activan en la pantalla de inicio de sesión. Si se le asigna el valor "false", los mensajes de voz se desactivan en la pantalla de inicio de sesión. Si se configura esta política, los usuarios pueden activar y desactivar temporalmente los mensajes de voz. Cuando la pantalla de inicio de sesión se vuelve a cargar o permanece inactiva durante un minuto, vuelve a su estado original. @@ -3941,6 +4004,7 @@ para desarrolladores). Los usuarios pueden cambiar la visibilidad con operaciones específicas (por ejemplo, pulsando Alt + V).</translation> <translation id="494613465159630803">Cast Receiver</translation> <translation id="494924690085329212">Reiniciar al cerrar sesión si se ha iniciado Android.</translation> +<translation id="4950447493143157880">No usar nunca el cliente DNS integrado</translation> <translation id="4952347392677351397">Si se le asigna el valor 1 a esta política, los sitios web podrán usar y acceder a los sensores, como los de luz o movimiento. Si se le asigna el valor 2, se denegará el acceso a los sensores. Si no se le asigna ningún valor, se aplicará la política <ph name="ALLOW_SENSORS_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> @@ -4017,6 +4081,7 @@ <translation id="5034504101537897433">Habilitar los datos de informes sobre fallos del dispositivo</translation> <translation id="5039110755072335605">Compatibilidad con encabezados de solicitud CORS sin comodín</translation> <translation id="504116558738617678">Solor mostrar advertencias de poco espacio en disco si el dispositivo no está gestionado o si únicamente hay 1 usuario</translation> +<translation id="5053779531788741830">Usar el cliente DNS integrado en macOS, Android y ChromeOS</translation> <translation id="5055474681190962362">Día del mes [1-31] en el que se debe reiniciar, interpretado en la zona horaria local del dispositivo. Solo se utiliza si el valor de "frequency" (frecuencia) es "MONTHLY" (mensual). Si este valor es superior al número máximo de días de un mes concreto, se seleccionará el último día del mes.</translation> <translation id="5056708224511062314">Lupa inhabilitada</translation> <translation id="5058573563327660283">Seleccionar la estrategia utilizada para liberar espacio en disco durante la limpieza automática (obsoleta)</translation> @@ -4175,6 +4240,8 @@ Si no se establece esta política, pero sí se establece la política de fondo de pantalla del usuario, esta última decidirá qué contenido se mostrará.</translation> <translation id="5219844027738217407">En el caso de las aplicaciones para Android, esta política afecta solo al micrófono. Si se asigna el valor true a esta política, el micrófono se silenciará en todas las aplicaciones para Android, sin excepciones.</translation> +<translation id="5222325605346216869">Forzar la limitación de los temporizadores de JavaScript en segundo plano</translation> +<translation id="5223606242837275233">No permitir que las URLs de los sitios lleven a fragmentos de texto concretos</translation> <translation id="5227124062673546005">Controla el modo en que <ph name="PRODUCT_NAME" /> imprime en <ph name="MS_WIN_NAME" />. Al imprimir en una impresora PostScript en <ph name="MS_WIN_NAME" />, diferentes métodos de generación de PostScript pueden afectar al rendimiento de impresión. @@ -4213,6 +4280,7 @@ Si se inhabilita la política, Limpiador de Chrome no llevará a cabo un análisis periódico, y la activación manual estará inhabilitada. En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome.</translation> +<translation id="5245647012663146075">Impedir que se habilite Mi teléfono</translation> <translation id="5245671702326993331">Permite las notificaciones nativas</translation> <translation id="524637053580639111">Esta política se eliminará en la versión M82. Utiliza MinimumChromeVersionEnforced en su lugar. @@ -4614,6 +4682,7 @@ <translation id="5630352020869108293">Restaurar la última sesión</translation> <translation id="5633871703004128675">Habilitar la función de accesibilidad de resaltado del símbolo de intercalación de texto</translation> <translation id="5634032995857968056">Habilitar el entorno aislado del contenedor de aplicaciones del renderizador</translation> +<translation id="5638334542697444045">No permitir que los usuarios utilicen la conexión compartida instantánea</translation> <translation id="5639454129004500060">Si se establece esta política, contendrá información para descargar un archivo de plantilla de escritorio. Este archivo contiene una plantilla de escritorio que se proporcionará al usuario actual. Si no se establece esta política, no se incluirá ninguna plantilla de escritorio preconfigurada en la lista de plantillas de escritorio. Si la política <ph name="DESK_TEMPLATES_ENABLED_POLICY_NAME" /> no tiene asignado el valor true, no tendrá efecto.</translation> @@ -4712,6 +4781,7 @@ Si se inhabilita esta política o no se establece, los retrasos de administración de energía y el límite de tiempo comienzan en cuanto empieza la sesión.</translation> <translation id="5733357908790472408">Usar Chrome Root Store</translation> <translation id="5735915264686983150">Ocultar y bloquear las funciones inhabilitadas</translation> +<translation id="5736498355107027047">Mostrar el botón de cerrar sesión en la bandeja</translation> <translation id="5737394734996319911">La función de accesibilidad de <ph name="PRODUCT_NAME" /> permite que las personas con discapacidad visual que usen un lector de pantalla obtengan descripciones de imágenes sin etiquetar en la Web. Los usuarios que habiliten esta función @@ -4889,6 +4959,7 @@ <translation id="5915023683182228340">Si se habilita la política o no se establece, se permitirá que se use el protocolo QUIC en <ph name="PRODUCT_NAME" />. Si se inhabilita la política, no se permitirá el uso del protocolo QUIC.</translation> +<translation id="5916855682471300200">Las políticas basadas en la nube tienen prioridad sobre las políticas basadas en la plataforma del equipo</translation> <translation id="5921713479449475707">Permitir descargas de actualizaciones automáticas a través de HTTP</translation> <translation id="5927903236543424081">Forzar al usuario a iniciar sesión antes de usar el navegador</translation> <translation id="5928633129285224981">Controla si <ph name="PRODUCT_NAME" /> hace que la opción Imprimir como imagen esté definida de forma predeterminada al imprimir PDFs. @@ -5093,6 +5164,7 @@ Ten en cuenta que esta política debilita la protección de las IP locales si así lo necesitan los administradores.</translation> <translation id="614662973812186053">Esta política también controla la recopilación de los datos de uso y diagnóstico de Android.</translation> <translation id="614665605501218241">Permite que los sitios de la lista envíen solicitudes a puntos finales de red más privados de una manera no segura.</translation> +<translation id="6150320133676152520">Inhabilitar el envío automático de PIN en la pantalla de bloqueo y de inicio de sesión</translation> <translation id="6155350825868160236">Permitir que el usuario elija si se utilizan servicios web de Google para corregir errores ortográficos</translation> <translation id="6155936611791017817">Establecer el estado predeterminado del cursor grande en la pantalla de inicio de sesión</translation> <translation id="6157537876488211233">Lista de reglas de omisión de proxy separadas por comas</translation> @@ -5177,6 +5249,7 @@ <translation id="6261643884958898336">Proporcionar información de identificación de equipos</translation> <translation id="6265892395051519509">Permitir el acceso a los sensores en estos sitios web</translation> <translation id="6266043141694454734">Determina si Chrome Root Store y el verificador de certificados integrado se usarán para verificar los certificados de los servidores</translation> +<translation id="6270615143812355589">Habilitar entrada de audio</translation> <translation id="6270791075656665237">No permitir QUIC</translation> <translation id="6273015149273504999"> Permite especificar una lista de aplicaciones y extensiones que se instalan de forma silenciosa en la pantalla de inicio de sesión sin la intervención del usuario, que no podrá desinstalarlas ni inhabilitarlas. @@ -5334,6 +5407,7 @@ Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation> <translation id="6353890097388312479">Si se asigna el valor All (0) a esta política o no se establece, los usuarios podrán editar la configuración de confianza de todos los certificados AC, quitar certificados importados por el usuario e importar certificados mediante el administrador de certificados. Si se le asigna el valor UserOnly (1), los usuarios podrán gestionar únicamente certificados importados por usuarios, pero no podrán cambiar la configuración de confianza de los certificados integrados. Si se le asigna el valor None (2), los usuarios podrán ver los certificados AC, pero no gestionarlos.</translation> +<translation id="6358320368815225772">Inhabilitar la atestación remota para el dispositivo</translation> <translation id="6362856770865555544">Si se habilita la política o no se establece, se habilitará la optimización de WPAD (detección automática de proxy web) en <ph name="PRODUCT_NAME" />. Si se inhabilita la política, se inhabilitará la optimización de WPAD, lo que hará que <ph name="PRODUCT_NAME" /> tenga que esperar más tiempo la respuesta de los servidores WPAD basados en DNS. @@ -5430,12 +5504,14 @@ A partir de la versión M106, los métodos de introducción de texto permitidos se habilitan automáticamente en la sesión de kiosco. Nota: Si no se admite el método de introducción actual, se cambiará al diseño de teclado del hardware (si se permite) o a la primera entrada válida de esta lista. Se ignorarán los métodos no válidos o no admitidos.</translation> +<translation id="6483115462650732746">Mostrar el menú de accesibilidad flotante en modo Kiosco</translation> <translation id="6489084406497912050">Controla si los usuarios pueden añadir cuentas de Kerberos. Si se habilita esta política o no se le asigna ningún valor, los usuarios podrán añadir cuentas de Kerberos a través de la página de configuración de cuentas de Kerberos. Los usuarios tendrán control total sobre las cuentas que han añadido y podrán modificarlas o eliminarlas. Si se inhabilita esta política, los usuarios no podrán añadir cuentas de Kerberos. Solo se podrán añadir cuentas mediante la política "Configurar cuentas de Kerberos". Esta es una forma efectiva de bloquear cuentas.</translation> <translation id="6491139795995924304">Permitir Bluetooth en el dispositivo</translation> +<translation id="6491305972928809525">No mostrar el menú de accesibilidad flotante en modo Kiosco</translation> <translation id="6491872498385040936">Esta política está obsoleta, pero puedes utilizar <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, que la anula y permite un ajuste más detallado. Permite forzar el modo restringido moderado de YouTube e impide que los usuarios cambien esta opción. @@ -5443,6 +5519,7 @@ Si se habilita esta opción, se aplicará siempre el modo restringido en YouTube en la opción moderada como mínimo. Si esta opción está inhabilitada o no se le asigna ningún valor, <ph name="PRODUCT_NAME" /> no aplicará el modo restringido en YouTube. No obstante, las políticas externas (como las políticas de YouTube), pueden seguir aplicando este modo.</translation> +<translation id="6492177700737407141">Los usuarios registrados en el Programa de Protección Avanzada solo recibirán protección de consumidor estándar</translation> <translation id="6492737559291967859">Si se establece esta política, se especificará la configuración regional que use <ph name="PRODUCT_NAME" />. Si la política se desactiva o no se establece, la configuración regional será la primera válida de entre las siguientes: @@ -5484,6 +5561,7 @@ <translation id="6521971538031711337">Impedir que el usuario administrado configure el nombre de host del dispositivo</translation> <translation id="6523079496775454310">Habilitar el consentimiento de señales de dispositivo para usuarios gestionados en dispositivos no gestionados</translation> <translation id="652593254122955308">Tiempo de espera hasta que se cierre el perfil inactivo</translation> +<translation id="6527674993612811419">Mostrar advertencias e inhabilitar Autocompletar en formularios no seguros</translation> <translation id="6532026122543921610">A menos que la política <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> desactive la detección automática de la zona horaria, asignar un valor a esta política define el método de detección automática de la zona horaria, el cual los usuarios no pueden cambiar. Si se asignan los siguientes valores: @@ -5494,7 +5572,9 @@ Si no se le asigna ningún valor o se le asigna Dejar que los usuarios decidan o Ninguno, los usuarios controlarán la detección automática de la zona horaria con los controles normales de chrome://settings.</translation> <translation id="6532769014584932288">Permitir wake locks</translation> +<translation id="6533881418188970751">Preguntar al usuario dónde se guardará el archivo antes de descargarlo</translation> <translation id="6536600139108165863">Reinicio automático al cerrar el dispositivo</translation> +<translation id="6538653424603921690">Inhabilitar siempre la pantalla de privacidad en la pantalla de inicio de sesión</translation> <translation id="6539246272469751178">Esta política no afecta a las aplicaciones para Android. Siempre utilizan el directorio de descargas predeterminado y no pueden acceder a ningún archivo que <ph name="PRODUCT_OS_NAME" /> haya descargado en un directorio de descargas que no sea el predeterminado.</translation> <translation id="654303922206238013">Estrategia de migración para eCryptfs</translation> <translation id="6543277347547044538">Fin del intervalo, exclusivo.</translation> @@ -5506,6 +5586,7 @@ <translation id="654546276700640113">Si se establece esta política, se aplicará la longitud máxima definida del PIN. Si el valor de esta opción es 0 o inferior, el usuario podrá establecer un PIN de cualquier longitud. Si el valor es inferior a <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> pero superior a 0, la longitud máxima será la misma que la mínima. Si no se establece la política, no se aplicará ninguna longitud máxima.</translation> +<translation id="6546185795045702747">Permitir que los sitios web comprueben si el usuario tiene métodos de pago guardados</translation> <translation id="6553143066970470539">Porcentaje de brillo de la pantalla</translation> <translation id="6555557921186817432">Programa un reinicio automático después de que se haya aplicado una actualización de <ph name="PRODUCT_OS_NAME" />. @@ -5573,6 +5654,7 @@ Esta política no tendrá efecto si se habilita, se deja vacía o no se establece.</translation> <translation id="6583249367505445969">Inhabilitar barra de marcadores</translation> <translation id="6584541828182430328">Inhabilitar que se muestre la alerta en pantalla completa</translation> +<translation id="6588634282328239769">Mostrar la URL completa</translation> <translation id="6593350713192882944">Habilitar Respuestas rápidas</translation> <translation id="6594372503585248865">Habilitar la UI relacionada con la conexión en el escritorio del host remoto cuando una conexión esté activa</translation> <translation id="65947892191748867">Inhabilitar el consentimiento de señales de dispositivo para usuarios gestionados en dispositivos no gestionados</translation> @@ -5609,6 +5691,7 @@ <translation id="6625136649067113817">Un indicador booleano que especifica si el teclado en pantalla permite usar la función de corrector ortográfico.</translation> <translation id="66265932317331474">Proporcionar información sobre la CPU</translation> <translation id="6628120204569232711">Informar sobre el estado del almacenamiento</translation> +<translation id="662991036483361836">Impedir que los usuarios habiliten Compartir con Nearby</translation> <translation id="663685822663765995">Restringir el modo de impresión en color</translation> <translation id="6637946190026453735">Lista con los ajustes de los servicios de <ph name="PRODUCT_NAME" /> Enterprise Connectors que se van a aplicar al conector <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> de Enterprise, que se activa cuando se imprimen una página o un archivo desde <ph name="PRODUCT_NAME" />. @@ -5842,6 +5925,7 @@ Si la lista no se ha configurado o no incluye una extensión, se mostrará al usuario el cuadro de diálogo de confirmación de trabajo de impresión para cada llamada de función de <ph name="SUBMIT_JOB_FUNCTION" />. Esta política está obsoleta. Usa la política <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> en su lugar.</translation> +<translation id="6847379587945465889">Habilitar la transferencia de cookies de SSO basado en SAML a la sesión de usuario durante el inicio de sesión</translation> <translation id="684856667300805181">Esta política se retiró en <ph name="PRODUCT_NAME" /> 68 y se ha sustituido por <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6848721032946289937">Si se habilita esta política o no se le asigna ningún valor, se activará la aceleración por hardware, si está disponible. @@ -5979,6 +6063,7 @@ Si no se asigna ningún valor a esta política, los certificados que se deban comunicar a través de la transparencia en los certificados no serán de confianza para <ph name="PRODUCT_NAME" /> si no se comunican. Los patrones de URL tienen este formato: https://www.chromium.org/administrators/url-blocklist-filter-format. Sin embargo, como la validez de los certificados de un determinado nombre de host es independiente del esquema, puerto o ruta, <ph name="PRODUCT_NAME" /> solo tiene en cuenta la parte del nombre del host de la URL. No se admiten hosts comodín.</translation> +<translation id="6969332115615661188">Inhabilitar entrada de vídeo</translation> <translation id="6972540544240464302">Selecciona la configuración del programador de tareas</translation> <translation id="6975533677426693807">Abrir siempre archivos PDF usando el lector de PDF interno</translation> <translation id="6979158407327259162">Google Drive</translation> @@ -6005,6 +6090,7 @@ En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation> <translation id="6990736882800900101">Permitir que todas las ventanas emergentes abiertas con <ph name="BLANK_PAGE_NAME" /> como objetivo interactúen con la página que ha solicitado abrir la ventana emergente a no ser que esa página haya rechazado explícitamente dicha interacción </translation> +<translation id="6992943675460798920">Permitir que los usuarios hagan capturas de pantalla y graben vídeos</translation> <translation id="6994082778848658360">Especifica cómo se puede utilizar el hardware del elemento seguro integrado para proporcionar una autenticación de dos factores si es compatible con esta función. El botón de encendido del ordenador se utiliza para detectar la presencia física del usuario. Si se inhabilita esta opción, no se proporciona ninguna autenticación de dos factores. @@ -6024,8 +6110,10 @@ <translation id="7003746348783715221">Preferencias de <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Un indicador booleano que especifica si el controlador de protocolos debe ser la opción predeterminada.</translation> <translation id="7008308728445338159">Comprobaciones de interceptación de DNS habilitadas</translation> +<translation id="7009043124653876961">Inhabilitar sugerencias de emojis cuando los usuarios escriben</translation> <translation id="7010006999849135962">Habilitar la autenticación sin PIN para el host de acceso remoto</translation> <translation id="7013484314513229844">Habilitar el inicio con CA</translation> +<translation id="7014427417852575165">Los usuarios registrados en el Programa de Protección Avanzada recibirán protección adicional</translation> <translation id="7016587686120059767">Inhabilitar el modo Invitado</translation> <translation id="7016736684656067099">Si se asigna el valor 1 a esta política, todos los sitios web podrán mostrar imágenes. Si se le asigna el valor 2, se denegará la visualización de imágenes. @@ -6074,9 +6162,11 @@ <translation id="7039815268521168329">Mostrar el flujo de Voice Match del Asistente de Google durante la configuración inicial</translation> <translation id="7040229947030068419">Valor de ejemplo:</translation> <translation id="7044883996351280650">Controlar el servicio de copia de seguridad y restauración de Android</translation> +<translation id="7046113122884041950">No permitir Smart Lock</translation> <translation id="7046997898355294677">Mostrar las notificaciones de privacidad hasta que las cierre el usuario</translation> <translation id="7047495632846973438">Especifica si se comprobará o se saltará la política de permisos mostrar-capturar.</translation> <translation id="7055022222176591388">No permitir versiones obsoletas de <ph name="FLASH_PLUGIN_NAME" /></translation> +<translation id="7062803946218028349">Permitir que se habilite Mi teléfono</translation> <translation id="7066292150801784098">Inhabilitar la interacción de los usuarios remotos con ventanas con permisos de administrador en sesiones de asistencia remota</translation> <translation id="706669471845501145">Permitir que los sitios muestren notificaciones de escritorio</translation> <translation id="70681795425744184">No permitir que CRD ejecute las solicitudes a la API WebAuthn mediante un proxy desde un host remoto.</translation> @@ -6085,6 +6175,7 @@ <translation id="7072567600438630966">Permite habilitar Mi teléfono.</translation> <translation id="7074437930865599190">Bloquea la versión principal de la cadena user-agent en la 99</translation> <translation id="707988220162760379">Abrir siempre archivos PDF usando un lector de PDF externo</translation> +<translation id="7081699207881888532">Habilitar sugerencias de emojis cuando los usuarios escriben</translation> <translation id="7081784525008938771">Si se habilita la política o no se establece, no se considerará que el usuario está inactivo mientras se reproduzca vídeo. Esto impide que se alcancen el retraso de inactividad, el retraso de atenuación de pantalla y el retraso de bloqueo de pantalla y que se lleven a cabo las acciones correspondientes. Si se inhabilita la política, la actividad de vídeo no impedirá que se considere al usuario como inactivo.</translation> @@ -6347,6 +6438,7 @@ Si esta política no se establece, la limpieza automática utilizará la estrategia integrada predeterminada. Actualmente, se trata de la estrategia RemoveLRUIfDormant.</translation> <translation id="733381360015511815">Configurar la lista de aplicaciones web aisladas de instalación forzada</translation> <translation id="7334517274921831425">Permite que los usuarios utilicen <ph name="BOREALIS_NAME" /> en <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="7334639219471717734">No permitir que los usuarios inicien sesión en su dispositivo con Smart Lock</translation> <translation id="7336785017449297672">Controla los ajustes del reloj y de la zona horaria.</translation> <translation id="7336878834592315572">Guardar las cookies durante la duración de la sesión</translation> <translation id="7338217396351647423">Si se asigna un valor a esta política, se especifica el conjunto de políticas que se enviará al entorno de ejecución ARC. Los administradores pueden usarla para seleccionar las aplicaciones de Android que se instalarán automáticamente. Escribe un valor en formato JSON. @@ -6356,6 +6448,7 @@ <translation id="7340034977315324840">Notificar tiempo de actividad del dispositivo</translation> <translation id="7343004974628511824">Realizar comprobaciones de interceptación de DNS</translation> <translation id="7343497214039883642">Archivo de configuración de las impresoras de empresa para los dispositivos</translation> +<translation id="7357148531287978404">Inhabilitar entrada de audio</translation> <translation id="7358012133037776875">Te permite definir una lista de patrones de URL donde se especifique qué sitios otorgarán automáticamente el permiso de colocación de ventanas. Esto extenderá la habilidad de los sitios de ver información sobre las pantallas de los dispositivos y usarla para abrir y colocar ventanas, o solicitar la pantalla completa en pantallas específicas. Para obtener información detallada sobre los patrones de URL de sitios válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Se permite el uso de caracteres comodín (<ph name="WILDCARD_VALUE" />). Esta política solo detecta coincidencias basadas en el origen, así que se ignora cualquier ruta del patrón de URL. @@ -6610,6 +6703,7 @@ Esta política solo se aplica a usuarios menores de edad. Cuando esta política está activada, el código de acceso parental se puede verificar en el dispositivo del menor. Cuando esta política está desactivada, no se puede verificar el código de acceso parental en el dispositivo del menor.</translation> +<translation id="7623431489198474050">Inhabilitar la atestación remota para proteger el contenido</translation> <translation id="7628747690141606652">Inhabilitar traducción de Respuestas rápidas</translation> <translation id="7629840767216985001">Si se le asigna el valor "true" a esta política, el cursor grande se activa en la pantalla de inicio de sesión. Si se le asigna el valor "false", el cursor grande se desactiva en la pantalla de inicio de sesión. @@ -6777,6 +6871,7 @@ Si no se establece esta política, <ph name="DEFAULT_CLIPBOARD_SETTING" /> se aplicará a todos los sitios si se ha definido. Si no, se aplicará la configuración personal del usuario. Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Esta política no acepta el valor <ph name="WILDCARD_VALUE" />.</translation> +<translation id="7791215522423893512">No permitir que los usuarios hagan capturas de pantalla ni graben vídeos</translation> <translation id="7792796937016596423">El usuario no podrá realizar capturas de paquetes de red</translation> <translation id="7798441698807517880">Esta política se quitó a partir de la versión 89 de <ph name="PRODUCT_NAME" /> porque <ph name="FLASH_PLUGIN_NAME" /> ya no está disponible. @@ -6850,6 +6945,7 @@ Recomendación: Bloquea la pantalla en modo de inactividad activando el bloqueo de pantalla en el modo de suspensión y configurando <ph name="PRODUCT_OS_NAME" /> para que realice la suspensión después del periodo de inactividad indicado. Utiliza esta política únicamente si el bloqueo de la pantalla debería producirse mucho antes que la suspensión, o cuando no quieras que se produzca la suspensión en modo de inactividad.</translation> <translation id="7895553628261067384">Acceso remoto</translation> +<translation id="789975630884141379">Habilitar sugerencias de contenido</translation> <translation id="7899952578398457262">Pedir el consentimiento de los usuarios gestionados para compartir señales de dispositivo en dispositivos no gestionados para obtener acceso</translation> <translation id="7900469325540540107">Conservar datos de navegación de forma predeterminada al crear un perfil de empresa</translation> <translation id="7902040092815978832">Muestra el teclado numérico para introducir la contraseña</translation> @@ -6973,6 +7069,7 @@ Si esta política se habilita, el usuario podrá usar el navegador <ph name="LACROS_NAME" />.</translation> <translation id="8020222525161221827">Habilitar la Desk API para el control de Chrome OS por terceros</translation> <translation id="802147957407376460">Girar la pantalla 0 grados</translation> +<translation id="8021777486638359878">Considerar que el usuario está inactivo mientras se reproduce audio</translation> <translation id="80243978433618492">No permitir ningún filtro de parámetros de URL</translation> <translation id="8025620823136567878">Las combinaciones de teclas internacionales se asignan a la ubicación de las teclas en el teclado en lugar del glifo de la tecla.</translation> <translation id="802776363472387903">El hash SHA-256 de la imagen de <ph name="PLUGIN_VM_NAME" />.</translation> @@ -7351,6 +7448,7 @@ <translation id="8378266419596669629">Bloquear el permiso de fuentes locales en estos sitios</translation> <translation id="8379317372795444261">Se permite la autenticación <ph name="BASIC_AUTH" /> en conexiones HTTP</translation> <translation id="8381678031726288574">Aplicar configuración predeterminada para la desactivación de la API U2F.</translation> +<translation id="8381774264911275515">Inhabilitar la transferencia de cookies de SSO basado en SAML a la sesión de usuario durante el inicio de sesión</translation> <translation id="8382184662529825177">Habilitar el uso de la confirmación remota para la protección del contenido del dispositivo</translation> <translation id="838870586332499308">Habilitar el roaming de datos</translation> <translation id="8393850527597048037">Solo en la plataforma</translation> @@ -7475,6 +7573,7 @@ Advertencia: No se recomienda configurar restricciones de versiones porque pueden evitar que los usuarios reciban actualizaciones de software y correcciones de seguridad muy importantes. Restringir las actualizaciones al prefijo de una versión específica podría suponer un riesgo para los usuarios.</translation> <translation id="8508489378025029342">Habilitar los informes sobre el tiempo de actividad del dispositivo</translation> +<translation id="8511192250554640451">Permitir que la lógica de Chrome controle la limitación de los temporizadores de JavaScript en segundo plano y que los usuarios puedan configurar esta limitación</translation> <translation id="8519264904050090490">URLs de excepción manual de usuario administrado</translation> <translation id="8519516251436131647">Esta política habilita las combinaciones de teclas para las funciones de accesibilidad. @@ -7887,6 +7986,7 @@ <translation id="8921669704201370845">Habilitar los informes en la nube de <ph name="PRODUCT_NAME" /> de un perfil gestionado</translation> <translation id="8922231993239705844">Inhabilitar el resaltado del cursor</translation> <translation id="8922494933893518624">Forzar que WebSQL se habilite en contextos no seguros.</translation> +<translation id="8923028772162236077">Mostrar la URL predeterminada</translation> <translation id="8930064580550462145">Durante el inicio de sesión en la pantalla de bloqueo, <ph name="PRODUCT_OS_NAME" /> puede realizar la autenticación a través de un servidor (con conexión) o una contraseña almacenada en caché (sin conexión). Si se le asigna el valor -2 a esta política, coincidirá con el valor del límite de tiempo de inicio de sesión sin conexión de la pantalla de inicio de sesión dado por <ph name="POLICY" />. @@ -8127,6 +8227,7 @@ La sesión del usuario se restaurará tras el reinicio.</translation> <translation id="9160028464653564229">No permitir a ningún sitio web solicitar acceso a puertos serie a través de la API Serial</translation> +<translation id="9162444960513782569">No forzar ninguna limitación de los temporizadores de JavaScript en segundo plano</translation> <translation id="916461878260574432">Especifica si se pueden utilizar conexiones P2P para las cargas útiles de las actualizaciones del sistema operativo. Si se le asigna el valor True, los dispositivos compartirán e intentarán consumir cargas útiles de actualizaciones en la red LAN, lo que podría reducir el uso del ancho de banda de Internet y la congestión de la red. Si la carga útil de actualizaciones no está disponible en la red LAN, el dispositivo deberá realizar las descargas desde un servidor de actualizaciones. Si se le asigna el valor False, no se utilizarán conexiones P2P. @@ -8142,6 +8243,7 @@ Esta política es una medida temporal y se eliminará en futuras versiones de <ph name="PRODUCT_NAME" />. Cuando se elimine, <ph name="PRODUCT_NAME" /> podrá consultar tipos de DNS adicionales en cualquier momento.</translation> <translation id="9167719789236691545">Inhabilitar Drive en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9180108183162961002">Permitir que se inicie sesión en el navegador con el modo Invitado</translation> <translation id="9185963199234034321">Habilitar el contraste alto en la pantalla de inicio de sesión y permitir que el usuario lo inhabilite temporalmente</translation> <translation id="9187743794267626640">Inhabilitar la activación del almacenamiento externo</translation> <translation id="9190022798664427644">Habilitar el audio en mono</translation> @@ -8156,6 +8258,7 @@ <translation id="9200828125069750521">Parámetros para URL de imagen que utiliza POST</translation> <translation id="9204863016826119209">Las aplicaciones Android que estén instaladas y aparezcan en esta política pueden usar claves corporativas.</translation> <translation id="9207596996305971030">No informar de eventos de inicio o cierre de sesión</translation> +<translation id="9210647066889383361">Permitir que los usuarios inicien sesión en su dispositivo con Smart Lock</translation> <translation id="9213751049772256263">Inhabilitar todas las variaciones</translation> <translation id="9217154963008402249">Frecuencia de los paquetes de red de monitorización</translation> <translation id="9220314833408124365">Usar una política de referente predeterminada de no-referrer-when-downgrade</translation> @@ -8205,6 +8308,7 @@ <translation id="966425658642788645">Aplicar comportamiento predeterminado</translation> <translation id="971677226939413180">Opción Imprimir como imagen no disponible para el usuario.</translation> <translation id="974349541138387272">Especifica la plantilla URI de resolución de DNS-over-HTTPS deseada</translation> +<translation id="978658824596356870">Formato de reloj de 24 horas</translation> <translation id="979467274961593903">No permitir el uso de la depuración remota</translation> <translation id="980218166381006412">Si se habilita esta política, se activará el modo de segundo plano. En el modo de segundo plano, un proceso de <ph name="PRODUCT_NAME" /> comienza al iniciar sesión en el sistema operativo y sigue ejecutándose cuando se cierra la última ventana del navegador, lo que permite que las aplicaciones en segundo plano y la sesión de navegación sigan activas. El proceso en segundo plano muestra un icono en la bandeja del sistema y se puede cerrar desde ahí en cualquier momento.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 0f8a973..b0cbabf 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -52,6 +52,7 @@ Jika kebijakan tidak disetel, secara default fitur tidak diizinkan bagi pengguna terkelola tetapi diizinkan bagi pengguna lainnya.</translation> <translation id="1035860095382451169">Mengaktifkan ikon gembok di omnibox untuk koneksi aman</translation> +<translation id="1037470927044831850">Izinkan situs meminta pengguna untuk membagikan streaming video dari layar mereka</translation> <translation id="1040125341954178855">Fitur ini telah dihapus di Chrome 100. Jika kebijakan ini disetel ke Aktif, rekomendasi untuk aplikasi yang sebelumnya diinstal oleh pengguna pada perangkat lain akan ditampilkan. Jika tidak ada penelusuran teks yang dimasukkan, rekomendasi ini akan muncul di peluncur setelah rekomendasi aplikasi lokal. @@ -284,6 +285,7 @@ Jika kebijakan tidak disetel atau jika nilai setelah substitusi bukan berupa hostname yang valid, tidak ada hostname yang akan disetel dalam permintaan DHCP.</translation> <translation id="1257550411839719984">Setel direktori download default</translation> +<translation id="1262993197422487260">Jangan perlihatkan tombol tampilkan sandi pada layar login dan layar kunci</translation> <translation id="1265053460044691532">Batasi waktu bagi pengguna yang diautentikasi melalui SAML untuk dapat masuk saat offline.</translation> <translation id="1271811620059192171">Aktifkan grup atom kebijakan</translation> <translation id="127264587838521316">Mengaktifkan permintaan penginstalan ekstensi <ph name="PRODUCT_NAME" /></translation> @@ -336,6 +338,7 @@ Jika 'Forced' (2) dipilih, pemilih profil tidak dapat disembunyikan oleh pengguna. Pemilih profil akan ditampilkan meski hanya tersedia satu profil.</translation> <translation id="1339174690935954950">Cegah pengguna mengirim masukan</translation> +<translation id="1340053691042184658">Cegah login browser tamu</translation> <translation id="1342918903685430097">Mengonfigurasi versi minimum <ph name="PRODUCT_OS_NAME" /> yang diizinkan untuk perangkat.</translation> <translation id="1343128241903870688">Nonaktifkan pelaporan info aplikasi perangkat</translation> <translation id="1347198119056266798">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> dan <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Kebijakan ini diabaikan jika salah satu dari kebijakan <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> atau <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (tidak digunakan lagi) ditetapkan. @@ -513,6 +516,7 @@ <translation id="1503969899251962413">Menyetel kebijakan akan menentukan kunci lisensi <ph name="PLUGIN_VM_NAME" /> untuk perangkat ini. Kebijakan ini dihapus di M94.</translation> +<translation id="1507373253059695424">Selalu aktifkan layar privasi pada layar login</translation> <translation id="150857982247452081">Memungkinkan Anda menyetel daftar protokol, dan daftar terkait pola asal yang diizinkan untuk setiap protokol, yang dapat meluncurkan aplikasi eksternal tanpa meminta izin pengguna. Pemisah di akhir tidak boleh disertakan saat mencantumkan protokol, jadi cantumkan "skype" bukan "skype:" atau "skype://". Jika kebijakan ini disetel, protokol hanya akan diizinkan oleh kebijakan untuk meluncurkan aplikasi eksternal tanpa meminta izin jika protokol tersebut tercantum, dan asal situs yang mencoba meluncurkan protokol tersebut cocok dengan pola asal dalam daftar allowed_origins protokol. Jika salah satu kondisinya tidak terpenuhi, permintaan izin peluncuran protokol eksternal tidak akan dihilangkan oleh kebijakan. @@ -688,6 +692,7 @@ Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya. Jika kebijakan ini tidak ditetapkan, fitur dikte mula-mula akan dinonaktifkan di layar login, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation> +<translation id="1673097259557436886">Selalu beri tahu situs bahwa tidak ada metode pembayaran yang disimpan</translation> <translation id="1674287836076801014">SAML</translation> <translation id="1675002386741412210">Didukung di:</translation> <translation id="167514072300004091">Jika kebijakan disetel ke 3, situs akan meminta akses ke perangkat USB yang terhubung. Jika kebijakan disetel ke 2, akses ke perangkat USB yang terhubung akan ditolak. @@ -764,6 +769,7 @@ Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation> <translation id="1736269219679256369">Memungkinkan melanjutkan dari halaman peringatan SSL</translation> +<translation id="1744340218280697033">Jangan izinkan orang tua menambahkan akun yang diawasi</translation> <translation id="1751429117283165017">Menyetel kebijakan memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang tidak dapat meminta akses tulis ke file atau direktori di sistem file pada sistem operasi host. Tidak menyetel kebijakan berarti <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> akan berlaku untuk semua situs, jika disetel. Jika tidak, setelan pribadi pengguna akan berlaku. @@ -781,6 +787,7 @@ Catatan: Untuk contoh yang lebih mendetail, buka Project Chromium ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation> <translation id="1767673020408652620">Aktifkan fitur Rekomendasi Aplikasi pada Status Kosong Kotak Penelusuran</translation> +<translation id="1770071413238151235">Format jam 12 jam</translation> <translation id="1780323582106687813">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan kebijakan '<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />'. Menyetel kebijakan akan menentukan ekstensi mana yang dikecualikan dari daftar ekstensi terlarang. Gunakan nilai <ph name="ALL_EXTENSIONS" /> untuk <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> guna melarang semua ekstensi, dan pengguna hanya dapat menginstal ekstensi yang diizinkan secara eksplisit. Secara default, semua ekstensi akan diizinkan. Namun, jika Anda melarang ekstensi berdasarkan kebijakan, gunakan daftar ekstensi yang diizinkan untuk mengubah kebijakan tersebut.</translation> @@ -827,6 +834,7 @@ </translation> <translation id="1808715480127969042">Cekal cookie di situs ini</translation> <translation id="1810261428246410396">Izinkan Tethering Instan untuk digunakan.</translation> +<translation id="1813638828646876133">Aktifkan pengiriman otomatis PIN di layar kunci dan layar login</translation> <translation id="1813672770917912317">Memungkinkan Anda menyetel apakah <ph name="PRODUCT_NAME" /> akan menjalankan mesin JavaScript v8 dengan compiler JIT (Just In Time) yang diaktifkan atau tidak. Jika JIT JavaScript dinonaktifkan, <ph name="PRODUCT_NAME" /> dapat merender konten web dengan lebih lambat, serta dapat menonaktifkan bagian JavaScript termasuk WebAssembly. Jika JIT JavaScript dinonaktifkan, <ph name="PRODUCT_NAME" /> dapat merender konten web dalam konfigurasi yang lebih aman. @@ -930,6 +938,7 @@ Jika kebijakan tidak disetel, autentikasi <ph name="HTTP_NEGOTIATE" /> akan dinonaktifkan di Android.</translation> <translation id="1923704782248889851">Aktifkan dikte</translation> <translation id="1925529914257504750">Update P2P otomatis telah diaktifkan</translation> +<translation id="1928355425032308464">Aktifkan input video</translation> <translation id="1930094135927166199">Nonaktifkan berbagi daya USB</translation> <translation id="1930127294345368978">Jumlah sheet maksimal yang boleh digunakan untuk satu pekerjaan cetak</translation> <translation id="193259052151668190">Daftar putih perangkat USB yang dapat dilepas</translation> @@ -1017,6 +1026,7 @@ Jika kebijakan ini ditetapkan ke false, atau tidak ditetapkan, informasi tidak akan dilaporkan. Jika ditetapkan ke true, zona waktu yang ditetapkan di perangkat saat ini akan dilaporkan.</translation> <translation id="199764499252435679">Aktifkan update komponen di <ph name="PRODUCT_NAME" /></translation> +<translation id="1997943707974344423">Izinkan Smart Lock</translation> <translation id="1998504583649140526">Setelan permintaan jaringan pribadi</translation> <translation id="1999000620918508488">Memaksa layar login untuk menampilkan atau menyembunyikan informasi sistem.</translation> <translation id="1999942889260716089">Jika kebijakan disetel ke Benar (True), saran penelusuran akan diaktifkan di kolom URL <ph name="PRODUCT_NAME" />. Jika kebijakan disetel ke Salah (False), saran penelusuran akan dinonaktifkan. @@ -1037,6 +1047,7 @@ <translation id="2006530844219044261">Pengelolaan daya</translation> <translation id="2006954055163088863">Anggap pengguna sebagai tidak ada aktivitas saat video diputar</translation> <translation id="2008514891623783266">Kebijakan penanganan IP WebRTC</translation> +<translation id="2012296492055302633">Selalu aktifkan layar privasi</translation> <translation id="2013285471046373727">Menentukan bagaimana aplikasi diinstal. OPTIONAL: Aplikasi tidak otomatis diinstal, tetapi pengguna dapat menginstalnya. Ini adalah setelan default jika kebijakan tidak ditentukan. PRELOAD: Aplikasi otomatis diinstal, tetapi pengguna dapat meng-uninstal. FORCE_INSTALLED: Aplikasi otomatis diinstal dan pengguna tidak dapat meng-uninstal. BLOCKED: Aplikasi diblokir dan tidak dapat diinstal. Jika aplikasi diinstal berdasarkan kebijakan sebelumnya, aplikasi akan di-uninstal.</translation> <translation id="2014757022750736514">Mengontrol perilaku layar login tempat pengguna login ke akun. Setelan mencakup siapa saja yang dapat login, jenis akun yang diizinkan, metode autentikasi yang harus digunakan, serta aksesibilitas umum, metode masukan, dan setelan lokal.</translation> <translation id="201557587962247231">Frekuensi upload laporan status perangkat</translation> @@ -1081,6 +1092,7 @@ <translation id="2057317273526988987">Izinkan akses ke daftar URL</translation> <translation id="2058055310819710697">Aktifkan Mode Developer Aplikasi Terisolasi</translation> <translation id="205807990145127714">Data telemetri yang akan dilaporkan saat peristiwa perubahan kekuatan sinyal terjadi.</translation> +<translation id="2060153898336610735">Otomatis berdasarkan bahasa saat ini</translation> <translation id="2061123930713023976">Mengizinkan debug untuk rekaman paket jaringan</translation> <translation id="2061810934846663491">Mengonfigurasi nama domain wajib untuk host akses jarak jauh</translation> <translation id="2062632109797189011">Mengaktifkan kembali window.webkitStorageInfo API yang sudah tidak digunakan lagi</translation> @@ -1112,6 +1124,7 @@ <translation id="209586405398070749">Saluran stabil</translation> <translation id="2096932573113293941">Minta izin pengguna untuk menjalankan plugin yang memerlukan otorisasi</translation> <translation id="2098658257603918882">Aktifkan laporan data penggunaan dan yang terkait error</translation> +<translation id="2099380339157427935">Jangan tampilkan tombol logout di baki</translation> <translation id="2104418465060359056">Melaporkan informasi Ekstensi dan Plugin</translation> <translation id="2106627642643925514">Mengganti mode pencetakan PIN default. Jika mode ini tidak tersedia, kebijakan ini akan diabaikan.</translation> <translation id="2107563874993284076">Jika kebijakan disetel ke Aktif, pengguna dapat menggunakan Berbagi File Jaringan untuk <ph name="PRODUCT_NAME" />. Jika kebijakan disetel ke Nonaktif, pengguna tidak dapat menggunakan fitur ini.</translation> @@ -1145,6 +1158,7 @@ <translation id="2135335181634291106">Jika <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> aktif, menyetel <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> akan menentukan URL ikon favorit penyedia penelusuran default. Jika <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> tidak disetel, tidak akan ada ikon untuk penyedia penelusuran.</translation> +<translation id="2144236546337326489">Izinkan pengaktifkan kelanjutan tugas Phone Hub</translation> <translation id="2145735238144543545">Sertifikat Klien yang diperlukan</translation> <translation id="2146103669166779785">Warna hex yang akan digunakan untuk membuat dan menerapkan tema ke browser.</translation> <translation id="2148769554831004951">Paksa pengaktifan WebSQL.</translation> @@ -1197,6 +1211,7 @@ <translation id="2171952274731262470">Penundaan dan tindakan yang harus diambil saat perangkat tidak beraktivitas dan menggunakan baterai.</translation> <translation id="2175353308236295184">Objek konfigurasi JSON khusus aplikasi dengan sekumpulan key-value pair, mis. '"managedConfiguration": { "key1": value1, "key2": value2}'. Kunci ditentukan dalam manifes aplikasi.</translation> <translation id="2176115444876446233">Cegah pengguna mengumpulkan jejak performa di seluruh sistem.</translation> +<translation id="2177696016354404697">Selalu nonaktifkan layar privasi</translation> <translation id="2178899310296064282">Terapkan setidaknya Mode Terbatas Menengah di YouTube</translation> <translation id="2180958780733364832">Mengontrol penggunaan Mode Headless</translation> <translation id="2182291258410176649">Pengguna memutuskan apakah akan mengaktifkan opsi pencadangan dan pemulihan</translation> @@ -1303,6 +1318,8 @@ Pengguna tidak dapat mengubah atau mengganti setelan ini. Catatan: Kebijakan ini menyebabkan header X-GoogApps-Allowed-Domains ditambahkan ke semua permintaan HTTP dan HTTPS di semua domain google.com, seperti yang dijelaskan di https://support.google.com/a/answer/1668854.</translation> +<translation id="2282174652047982960">Selalu gunakan klien DNS standar jika ada</translation> +<translation id="2288506601233091655">Jangan izinkan histori tugas pencetakan dihapus</translation> <translation id="2289265947759479962">Kebijakan ini mengontrol apakah informasi versi akan dilaporkan atau tidak, misalnya versi OS, platform OS, arsitektur OS, versi <ph name="PRODUCT_NAME" />, dan saluran <ph name="PRODUCT_NAME" />. Jika kebijakan <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> tidak disetel atau disetel ke nonaktif, kebijakan ini akan diabaikan. @@ -1340,6 +1357,7 @@ <translation id="2309284543927494965">Blokir update</translation> <translation id="2309341709647905294">Jangan laporkan informasi tentang periferal yang dicolokkan ke perangkat</translation> <translation id="2309390639296060546">Setelan geolokasi default</translation> +<translation id="2318583605563438459">Izinkan orang tua menambahkan akun yang diawasi</translation> <translation id="2331354174913096226">Template URI pada resolver DNS-over-HTTPS yang diinginkan. Untuk menentukan beberapa resolver DNS-over-HTTPS, pisahkan template URI terkait dengan spasi. Jika DnsOverHttpsMode ditetapkan ke <ph name="SECURE_DNS_MODE_SECURE" />, kebijakan ini harus ditetapkan dan tidak boleh kosong. @@ -1448,6 +1466,7 @@ Jika kebijakan ini tidak ditetapkan, layar privasi mula-mula akan dinonaktifkan tetapi dapat dikontrol oleh pengguna.</translation> <translation id="2413899611035194909">Tampilkan opsi aksesibilitas di menu baki sistem layar login</translation> <translation id="2415715982424988916">Jelajahi (didukung sejak versi 91)</translation> +<translation id="2421400544595297401">Jangan izinkan pengguna yang tidak terafiliasi menggunakan aplikasi Android</translation> <translation id="2421677964966613267">Kebijakan ini tidak digunakan lagi di M88, Flash tidak lagi didukung oleh Chrome. Jika kebijakan disetel, Anda akan dapat menetapkan daftar pola URL yang menentukan situs yang tidak dapat menjalankan plugin <ph name="FLASH_PLUGIN_NAME" />. Tidak menyetel kebijakan berarti <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> akan berlaku untuk semua situs, jika disetel. Jika tidak, setelan pribadi pengguna akan digunakan. @@ -1483,6 +1502,7 @@ <translation id="2436302465999055995">Jadikan <ph name="LACROS_NAME" /> sebagai satu-satunya browser yang tersedia (belum diimplementasikan)</translation> <translation id="2439187682308339104">Jangan izinkan situs apa pun meminta akses ke perangkat HID melalui WebHID API</translation> <translation id="2439733504887695659">Mengaktifkan penutupan notifikasi sandi yang telah dibobol untuk kredensial yang dimasukkan</translation> +<translation id="2446244536806499267">Jangan menganggap pengguna sebagai tidak ada aktivitas saat audio diputar</translation> <translation id="2448315169529769573">Jika kebijakan disetel ke Aktif, <ph name="PRODUCT_OS_NAME" /> akan melaporkan kembali metrik penggunaan dan data diagnostik, termasuk laporan kerusakan, ke Google. Jika kebijakan disetel ke Nonaktif, pelaporan metrik dan data diagnostik akan dinonaktifkan. Jika kebijakan tidak disetel, pelaporan metrik dan data diagnostik akan dinonaktifkan di perangkat yang tidak terkelola dan akan diaktifkan di perangkat terkelola.</translation> @@ -1681,6 +1701,7 @@ <translation id="2625398797484317969">Mengontrol setelan untuk Jawaban Instan.</translation> <translation id="262740370354162807">Aktifkan penyerahan dokumen ke <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2633084400146331575">Aktifkan respons lisan</translation> +<translation id="2633907568797306353">Izinkan pengaktifan notifikasi Phone Hub</translation> <translation id="2635872253077105112">Menyetel kebijakan ini akan mengontrol daftar situs untuk dibuka pada browser alternatif. Tiap item diperlakukan sebagai aturan untuk sesuatu yang akan dibuka di browser alternatif. <ph name="PRODUCT_NAME" /> menggunakan aturan tersebut saat memilih apakah URL harus dibuka di browser alternatif. Jika add-in <ph name="IE_PRODUCT_NAME" /> diaktifkan, <ph name="IE_PRODUCT_NAME" /> akan beralih kembali ke <ph name="PRODUCT_NAME" /> saat aturan tidak cocok. Jika aturan bentrok satu sama lain, <ph name="PRODUCT_NAME" /> akan menggunakan aturan yang paling spesifik. Jika kebijakan tidak disetel, tidak ada situs yang akan ditambahkan ke daftar. @@ -1762,6 +1783,7 @@ <translation id="2725855586003209701">Jika kebijakan disetel ke Aktif atau tidak disetel, perangkat yang terdaftar akan melaporkan daftar pengguna perangkat yang login baru-baru ini. Jika kebijakan disetel ke Nonaktif, perangkat yang terdaftar tidak akan melaporkan daftar pengguna.</translation> +<translation id="2730200383593984228">Izinkan pengguna yang tidak terafiliasi menggunakan aplikasi Android</translation> <translation id="2730419309754848345">Mencetak PDF sebagai Gambar secara Default</translation> <translation id="2731299561202635374">Kebijakan ini mengontrol pemeriksaan URL secara real time untuk mengidentifikasi URL yang tidak aman. @@ -1906,6 +1928,7 @@ <translation id="2841911109921764691">Tombol kanan menjadi tombol utama di layar login</translation> <translation id="284288632677954003">URL file XML yang berisi URL yang tidak akan memicu pengalihan browser.</translation> <translation id="2846689894646472396">Interval pemeriksaan aktivitas jaringan dalam milidetik.</translation> +<translation id="2847788524147474533">Kebijakan perangkat platform lebih diutamakan daripada kebijakan perangkat cloud</translation> <translation id="2849275596224278787">Sembunyikan opsi aksesibilitas di menu baki sistem layar login</translation> <translation id="2853649500575897584">Jangan blokir titik ekstensi lama dalam Proses browser</translation> <translation id="285480231336205327">Aktifkan mode kontras tinggi</translation> @@ -1913,6 +1936,8 @@ <translation id="2856674246949497058">Rollback dan tetap menggunakan versi target jika versi OS lebih baru dari target. Lakukan powerwash selama prosesnya.</translation> <translation id="2866619962692161453">Jenis Metapolicy</translation> <translation id="2866726566162790531">Daftar asal yang mengizinkan semua autentikasi HTTP</translation> +<translation id="2868756546751652023">Izinkan pengguna menggunakan Tethering Instan</translation> +<translation id="286898786908566256">Izinkan pengguna mengirim nomor telepon dari Chrome ke perangkat Android mereka</translation> <translation id="2872098849906555324">Nonaktifkan sinkronisasi Google Drive</translation> <translation id="2872961005593481000">Matikan</translation> <translation id="2874209944580848064">Catatan untuk perangkat <ph name="PRODUCT_OS_NAME" /> yang mendukung aplikasi Android:</translation> @@ -1973,6 +1998,7 @@ <translation id="2906874737073861391">Daftar ekstensi AppPack</translation> <translation id="2908277604670530363">Jumlah maksimal sambungan serentak ke server proxy</translation> <translation id="2912366658685903301">Mengonfigurasi warna tema browser</translation> +<translation id="2914283793640833265">Jangan izinkan pengaktifan kelanjutan tugas Phone Hub</translation> <translation id="291853569864365550">Jangan tampilkan saran konten di halaman Tab Baru</translation> <translation id="2920795918401557243">Setelan ini memungkinkan pengumpulan jejak performa di seluruh sistem menggunakan layanan pelacakan sistem. @@ -2073,6 +2099,7 @@ Jika kebijakan tercantum dalam daftar dan tidak dirilis secara resmi, nilainya akan diterapkan. Kebijakan ini tidak memengaruhi kebijakan yang sudah dirilis.</translation> +<translation id="3002067315837777719">Jangan izinkan pengaktifan notifikasi Phone Hub</translation> <translation id="3016255526521614822">Beri akses aplikasi pencatat yang diizinkan di layar kunci <ph name="PRODUCT_OS_NAME" /></translation> <translation id="3017578958356048910">Penampil PDF dapat menganotasi PDF</translation> <translation id="3020623128585817424">Nonaktifkan pemeriksaan browser default saat browser dimulai</translation> @@ -2261,6 +2288,7 @@ Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation> <translation id="3168968618972302728">Kebijakan yang terkait dengan autentikasi Kerberos.</translation> +<translation id="3169872426103732947">Tampilkan URL default dan izinkan pengguna beralih ke URL lengkap</translation> <translation id="3171369832001535378">Template hostname jaringan perangkat</translation> <translation id="3177802893484440532">Mewajibkan pemeriksaan OCSP/CRL online untuk trust anchor lokal</translation> <translation id="3180671894201217988">Jika kebijakan disetel ke Aktif atau tidak disetel, software pihak ketiga tidak dapat memasukkan kode yang dapat dieksekusi ke dalam proses <ph name="PRODUCT_NAME" />. @@ -2479,6 +2507,7 @@ Kebijakan ini bersifat sementara dan akan dihapus dalam versi <ph name="PRODUCT_NAME" /> yang akan datang.</translation> +<translation id="3351835664671920945">Setel default ke keyboard standar untuk input sandi</translation> <translation id="3359186795130278362">Aktifkan sesi tamu terkelola yang dibatasi.</translation> <translation id="33592541385181121">Jangan sertakan port di SPN Kerberos yang dibuat</translation> <translation id="3360093276083825336">Perhatikan bahwa kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 85. Sebagai gantinya, gunakan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />. @@ -2519,6 +2548,7 @@ <translation id="3398051852031115795">Perilaku sistem default (bergantung pada ukuran layar)</translation> <translation id="3399859571630358395">Paksa penonaktifan Sambungan Cepat (penyambungan Bluetooth cepat).</translation> <translation id="3404681701763345449">Aktifkan Integrasi <ph name="GOOGLE_CALENDAR_NAME" />.</translation> +<translation id="3406122462682235653">Jangan tanya pengguna (download langsung dimulai)</translation> <translation id="3408078762098350617">Mengontrol pengalaman pengguna fitur yang dinonaktifkan yang tercantum di <ph name="SYSTEM_FEATURES_DISABLE_LIST_POLICY_NAME" />. Jika kebijakan ini disetel ke "diblokir", fitur yang dinonaktifkan tidak akan dapat digunakan tetapi tetap terlihat oleh pengguna. @@ -2594,6 +2624,7 @@ Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya. Jika kebijakan ini tidak ditetapkan, fitur klik untuk diucapkan mula-mula akan dinonaktifkan di layar login, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation> +<translation id="3483585138745445814">Izinkan pengguna mengaktifkan Berbagi Langsung</translation> <translation id="348495353354674884">Aktifkan keyboard virtual</translation> <translation id="3485200437120267231">Nonaktifkan intersepsi login</translation> <translation id="3487651201232258606">Pesan native</translation> @@ -2636,6 +2667,7 @@ <translation id="3528000905991875314">Mengaktifkan halaman kesalahan alternatif</translation> <translation id="3531084733660068324">Setelan pengawasan orang tua</translation> <translation id="3536263244905016305">Nonaktifkan pengoptimalan Web Proxy Auto-Discovery (WPAD)</translation> +<translation id="3538869107794555625">Aktifkan keyboard virtual dalam mode tablet</translation> <translation id="3539103206548425861">Jika kebijakan disetel, video dapat diputar secara otomatis (tanpa persetujuan pengguna) dengan konten audio di <ph name="PRODUCT_NAME" />. Jika kebijakan <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> disetel ke Benar (True), kebijakan ini tidak akan berpengaruh. Jika kebijakan <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> disetel ke Salah (False), pola URL yang disetel di kebijakan ini tetap dapat diputar. Jika kebijakan ini berubah saat <ph name="PRODUCT_NAME" /> sedang berjalan, kebijakan hanya akan berlaku untuk tab yang baru dibuka. Untuk informasi mendetail tentang pola URL yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> @@ -2673,6 +2705,7 @@ <translation id="3568762199045490351">Fungsi setTimeout() JavaScript dengan waktu tunggu 0 md akan dibulatkan ke 1 md.</translation> <translation id="3574450691573438824">Nonaktifkan upload log sistem perangkat</translation> <translation id="3575011234198230041">Autentikasi HTTP</translation> +<translation id="3575159471980949522">Jangan izinkan pengguna mengirim nomor telepon dari Chrome ke perangkat Android mereka</translation> <translation id="3577251398714997599">Setelan iklan untuk situs yang menayangkan iklan mengganggu</translation> <translation id="3577628175311752799">Menggunakan kebijakan perujuk default untuk no-referrer-when-downgrade.</translation> <translation id="357917253161699596">Izinkan pengguna mengelola sertifikat pengguna</translation> @@ -3317,6 +3350,7 @@ <translation id="4187576366596772431">Memblokir WebHID API di situs ini</translation> <translation id="4190316993598857632">Aktifkan pengeditan bookmark</translation> <translation id="4192388905594723944">URL untuk memvalidasi token autentikasi klien akses jarak jauh</translation> +<translation id="4195698007674066525">Setel default ke keyboard numerik untuk input sandi</translation> <translation id="4203055629055264833">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna akan dapat menampilkan halaman hasil penelusuran mesin telusur default terbaru di panel samping dengan mengalihkan ikon di toolbar. Jika kebijakan disetel ke Nonaktif, ikon dari toolbar yang membuka panel samping yang berisi halaman hasil penelusuran mesin telusur default akan dihapus.</translation> @@ -3419,6 +3453,7 @@ <translation id="4314538398999793073">Nonaktifkan pencarian CNAME selama autentikasi Kerberos</translation> <translation id="4320592646346933548">WiFi</translation> <translation id="4322842393287974810">Izinkan peluncuran otomatis dengan aplikasi kios tanpa penundaan untuk mengontrol versi <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="4323412353642577604">Aktifkan pengesahan jarak jauh untuk perlindungan konten</translation> <translation id="4325690621216251241">Tambahkan tombol keluar di baki sistem</translation> <translation id="4329095223358818804">Mengizinkan Jawaban Cepat untuk mengakses konten yang dipilih</translation> <translation id="4330908525441222205">Gunakan perilaku AppCache default</translation> @@ -3453,6 +3488,7 @@ <translation id="4370937370030117032">Nonaktifkan pengiriman nama pengguna dan nama file ke printer native</translation> <translation id="4372704773119750918">Jangan izinkan pengguna perusahaan untuk menjadi bagian dari multiprofil (primer atau sekunder)</translation> <translation id="4373332965635821723">Aktifkan pintasan aksesibilitas</translation> +<translation id="4377377599658208627">Izinkan situs men-scroll ke fragmen teks tertentu melalui URL</translation> <translation id="4377599627073874279">Izinkan semua situs menampilkan semua gambar</translation> <translation id="437791893267799639">Kebijakan tidak disetel, jangan izinkan migrasi data dan ARC</translation> <translation id="4380159792986204036">Mengizinkan Kios Web membuka lebih dari satu jendela browser di layar mana pun</translation> @@ -3605,6 +3641,7 @@ <translation id="4558166110367609724">Otomatis melewati ToS dan memuat browser.</translation> <translation id="4559846397119102037">Mengizinkan penggunaan <ph name="LACROS_NAME" /></translation> <translation id="4561560385824323005">Mengizinkan pengguna memilih tata letak desktop yang dikonfigurasi sebelumnya untuk dimuat</translation> +<translation id="4561940244682063697">Jangan izinkan situs meminta pengguna untuk membagikan streaming video dari layar mereka</translation> <translation id="4562165737444703281">Mengizinkan pengguna untuk [mengaktifkan/mengonfigurasi] penerusan port Crostini</translation> <translation id="456686782928669977">Kebijakan ini akan mengontrol apakah untuk memuat aturan dari kebijakan SiteList <ph name="IE_PRODUCT_NAME" /> atau tidak. @@ -3621,6 +3658,28 @@ Jika kebijakan ini disetel ke nonaktif atau tidak disetel, situs tidak akan diizinkan untuk menavigasi dan membuka jendela/tab baru secara bersamaan.</translation> <translation id="4572577129745420844">Jangan izinkan pengguna menambahkan akun Kerberos</translation> <translation id="457430673056611745">Kebijakan konfigurasi untuk <ph name="PRODUCT_NAME" /> Enterprise Connector OnPrint</translation> +<translation id="4576760454200781316">Jika diaktifkan, fitur <ph name="PRODUCT_NAME" /> akan menyebabkan timer JavaScript di tab latar belakang di-throttle dan digabungkan secara agresif, berjalan tidak lebih dari satu kali per menit setelah halaman berada di latar belakang selama 5 menit atau lebih. + + Ini merupakan fitur kepatuhan standar web, tetapi mungkin merusak fungsi + di beberapa situs dengan menyebabkan tindakan tertentu tertunda hingga beberapa + saat. Namun, fitur ini membuat penggunaan CPU dan baterai menjadi lebih hemat secara signifikan jika + diaktifkan. Lihat https://bit.ly/30b1XR4 untuk detail selengkapnya. + + Jika kebijakan ini disetel ke aktif, fitur akan diaktifkan secara paksa dan + pengguna tidak akan dapat menggantinya. + + Jika kebijakan ini disetel ke nonaktif, fitur akan dinonaktifkan secara paksa dan + pengguna tidak akan dapat menggantinya. + + Jika kebijakan ini tidak disetel, fitur akan dikontrol oleh + logika internalnya sendiri, yang dapat dikonfigurasi pengguna secara manual. + + Perlu diperhatikan bahwa kebijakan diterapkan per proses perender, dengan nilai terbaru + setelan kebijakan yang digunakan saat proses perender dimulai. Mulai ulang + sepenuhnya diperlukan untuk memastikan bahwa semua tab yang dimuat akan menerima setelan kebijakan + yang konsisten. Proses yang berjalan dengan nilai kebijakan yang berbeda + tidak berbahaya. + </translation> <translation id="4578265298946081589">Jangan reboot saat pengguna logout.</translation> <translation id="4581507927311097234">Durasi waktu tanpa input pengguna sebelum layar dinonaktifkan, dalam milidetik.</translation> <translation id="4582338216073557489">Jika kebijakan disetel ke Tidak Ada (None), <ph name="PRODUCT_NAME" /> akan menggunakan ukuran cache default untuk menyimpan file dalam cache di disk. Pengguna tidak dapat mengubahnya. @@ -3671,6 +3730,7 @@ * Jika <ph name="FILTER_PLACEHOLDER" /> disetel ke <ph name="EMPTY_DICTIONARY" />, pemilihan sertifikat klien tidak akan dibatasi lebih lanjut. Perhatikan bahwa filter yang diberikan oleh server web masih berlaku. Jika kebijakan tidak disetel, tidak akan ada pemilihan otomatis untuk situs apa pun.</translation> +<translation id="4611983465824842867">Jangan menampilkan peringatan atau menonaktifkan isi otomatis pada formulir yang tidak aman</translation> <translation id="4615003180013429835">Mode penguraian sitelist</translation> <translation id="4617338332148204752">Lewati pemeriksaan tag meta pada <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4624417808625504735">Memblokir JavaScript agar tidak menggunakan JIT di situs ini</translation> @@ -3834,6 +3894,7 @@ Jika kebijakan ditetapkan ke false atau tidak ditetapkan, informasi update OS tidak akan dilaporkan. Jika ditetapkan ke true, informasi update OS akan dilaporkan.</translation> +<translation id="4857223512478723171">Jangan izinkan mode layar penuh</translation> <translation id="4858735034935305895">Izinkan mode layar penuh</translation> <translation id="486146220825734683">Jangan izinkan pengguna mengingat sandi Kerberos</translation> <translation id="4861767323695239729">Mengonfigurasi metode masukan yang diizinkan dalam sesi pengguna</translation> @@ -3933,7 +3994,9 @@ untuk memproses permintaan keepalive (https://fetch.spec.whatwg.org/#request-keepalive-flag). Nilai default (0) berarti fitur ini dinonaktifkan.</translation> +<translation id="4937423591320233496">Nonaktifkan konten yang disarankan</translation> <translation id="4940810901775798837">Izinkan situs yang tidak aman membuat permintaan ke endpoint jaringan mana pun</translation> +<translation id="4942096314850617489">Nonaktifkan pengesahan jarak jauh untuk pengguna</translation> <translation id="4942681160308347946">Jika kebijakan ditetapkan ke Benar (True), respons lisan akan diaktifkan di layar login. Jika kebijakan ditetapkan ke Salah (False), respons lisan akan dinonaktifkan di layar login. Jika kebijakan ditetapkan, pengguna dapat mengaktifkan atau menonaktifkan respons lisan untuk sementara. Saat dimuat ulang atau tidak ada aktivitas selama satu menit, layar login akan kembali ke keadaan semula. @@ -3950,6 +4013,7 @@ akan berlaku. Pengguna dapat mengubah visibilitas menggunakan operasi tertentu (misalnya, Alt-V).</translation> <translation id="494613465159630803">Penerima Cast</translation> <translation id="494924690085329212">Reboot saat pengguna logout jika Android telah dimulai.</translation> +<translation id="4950447493143157880">Jangan pernah gunakan klien DNS standar</translation> <translation id="4952347392677351397">Jika kebijakan disetel ke 1, situs akan dapat mengakses dan menggunakan sensor seperti sensor gerakan dan cahaya. Jika kebijakan disetel ke 2, akses ke sensor akan ditolak. Jika tidak disetel, <ph name="ALLOW_SENSORS_POLICY_NAME" /> akan berlaku tetapi pengguna dapat mengubah setelan ini.</translation> @@ -4026,6 +4090,7 @@ <translation id="5034504101537897433">Aktifkan pelaporan informasi laporan kerusakan perangkat</translation> <translation id="5039110755072335605">Dukungan header permintaan non-karakter pengganti CORS</translation> <translation id="504116558738617678">Hanya tampilkan peringatan ruang penyimpanan hampir penuh jika perangkat tidak dikelola atau hanya terdapat 1 pengguna</translation> +<translation id="5053779531788741830">Gunakan klien DNS standar di macOS, Android, dan Chrome OS</translation> <translation id="5055474681190962362">Hari dalam sebulan [1-31] saat mulai ulang harus dilakukan, disesuaikan dengan zona waktu lokal perangkat. Hanya digunakan saat 'frequency'-nya 'MONTHLY'. Jika lebih dari jumlah hari maksimum dalam bulan tertentu, hari terakhir bulan itu akan dipilih.</translation> <translation id="5056708224511062314">Lup dinonaktifkan</translation> <translation id="5058573563327660283">Pilih strategi yang digunakan untuk mengosongkan ruang disk selama pembersihan otomatis (tidak digunakan lagi)</translation> @@ -4184,6 +4249,8 @@ Jika kebijakan wallpaper perangkat tidak disetel, kebijakan wallpaper pengguna yang akan menentukan gambar yang ditampilkan saat kebijakan wallpaper pengguna disetel.</translation> <translation id="5219844027738217407">Untuk aplikasi Android, kebijakan ini hanya memengaruhi mikrofon. Jika kebijakan disetel ke true, mikrofon akan dibisukan untuk semua aplikasi Android, tanpa pengecualian.</translation> +<translation id="5222325605346216869">Paksa throttling timer JavaScript latar belakang</translation> +<translation id="5223606242837275233">Jangan izinkan situs men-scroll ke fragmen teks tertentu melalui URL</translation> <translation id="5227124062673546005">Mengontrol cara <ph name="PRODUCT_NAME" /> mencetak di <ph name="MS_WIN_NAME" />. Saat mencetak dengan printer PostScript di <ph name="MS_WIN_NAME" />, metode pembuatan PostScript yang berbeda dapat memengaruhi performa pencetakan. @@ -4222,6 +4289,7 @@ Jika kebijakan disetel ke Nonaktif, Pembersih Chrome tidak akan memindai sistem secara berkala dan pemicu manual akan dinonaktifkan. Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Browser Chrome.</translation> +<translation id="5245647012663146075">Jangan izinkan pengaktifan Phone Hub</translation> <translation id="5245671702326993331">Mengizinkan notifikasi native</translation> <translation id="524637053580639111">Kebijakan ini dihapus di M82. Sebagai gantinya, gunakan DeviceMinimumVersion. @@ -4622,6 +4690,7 @@ <translation id="5630352020869108293">Mengembalikan sesi terakhir</translation> <translation id="5633871703004128675">Mengaktifkan fitur aksesibilitas sorotan tanda sisipan</translation> <translation id="5634032995857968056">Aktifkan sandbox Penampung Aplikasi Perender</translation> +<translation id="5638334542697444045">Jangan izinkan pengguna menggunakan Tethering Instan</translation> <translation id="5639454129004500060">Jika disetel, kebijakan ini akan berisi informasi untuk mendownload file template desktop. File tersebut berisi template desktop yang akan disediakan untuk pengguna saat ini. Jika tidak disetel, template desktop yang dikonfigurasi sebelumnya tidak disertakan dalam daftar template desktop. Jika kebijakan <ph name="DESK_TEMPLATES_ENABLED_POLICY_NAME" /> tidak disetel ke benar (true), kebijakan ini tidak akan berpengaruh.</translation> @@ -4720,6 +4789,7 @@ Jika kebijakan disetel ke Nonaktif atau tidak disetel, penundaan pengelolaan daya dan batas durasi sesi akan segera dimulai saat sesi dimulai.</translation> <translation id="5733357908790472408">Gunakan Chrome Root Store.</translation> <translation id="5735915264686983150">Sembunyikan dan blokir fitur yang dinonaktifkan</translation> +<translation id="5736498355107027047">Tampilkan tombol logout di baki</translation> <translation id="5737394734996319911">Fitur aksesibilitas <ph name="PRODUCT_NAME" /> memungkinkan pengguna pembaca layar yang merupakan penyandang gangguan penglihatan untuk mendapatkan deskripsi gambar tanpa label di web. Pengguna yang memilih untuk mengaktifkannya @@ -4897,6 +4967,7 @@ <translation id="5915023683182228340">Jika kebijakan disetel ke Aktif atau tidak disetel, penggunaan protokol QUIC di <ph name="PRODUCT_NAME" /> akan diizinkan. Jika kebijakan disetel ke Nonaktif, penggunaan protokol QUIC tidak akan diizinkan.</translation> +<translation id="5916855682471300200">Kebijakan perangkat cloud lebih diutamakan daripada kebijakan perangkat platform</translation> <translation id="5921713479449475707">Izinkan download pembaruan otomatis melalui HTTP</translation> <translation id="5927903236543424081">Paksa pengguna untuk login sebelum menggunakan browser</translation> <translation id="5928633129285224981">Mengontrol apakah <ph name="PRODUCT_NAME" /> menjadikan opsi Cetak sebagai gambar sebagai setelan default saat mencetak PDF. @@ -5101,6 +5172,7 @@ Perlu diingat bahwa kebijakan ini akan melemahkan perlindungan IP lokal jika dibutuhkan oleh administrator.</translation> <translation id="614662973812186053">Kebijakan ini juga mengontrol pengumpulan data diagnostik dan penggunaan Android.</translation> <translation id="614665605501218241">Mengizinkan situs yang terdaftar untuk membuat permintaan ke endpoint jaringan yang lebih pribadi dengan cara yang tidak aman.</translation> +<translation id="6150320133676152520">Nonaktifkan pengiriman otomatis PIN di layar kunci dan layar login</translation> <translation id="6155350825868160236">Izinkan pengguna memilih apakah akan menggunakan layanan web Google untuk mengatasi kesalahan ejaan</translation> <translation id="6155936611791017817">Setel status default kursor besar di layar masuk</translation> <translation id="6157537876488211233">Peraturan mengabaikan proxy yang dipisahkan koma</translation> @@ -5185,6 +5257,7 @@ <translation id="6261643884958898336">Laporkan informasi Identifikasi Mesin</translation> <translation id="6265892395051519509">Mengizinkan akses ke sensor di situs ini</translation> <translation id="6266043141694454734">Menentukan apakah Chrome Root Store dan pemverifikasi sertifikat bawaan akan digunakan untuk memverifikasi sertifikat server</translation> +<translation id="6270615143812355589">Aktifkan input audio</translation> <translation id="6270791075656665237">Larang QUIC</translation> <translation id="6273015149273504999"> Menentukan daftar aplikasi dan ekstensi yang diinstal otomatis di layar login, tanpa interaksi pengguna, dan yang tidak dapat di-uninstal atau dinonaktifkan oleh pengguna. @@ -5342,6 +5415,7 @@ Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation> <translation id="6353890097388312479">Jika kebijakan disetel ke Semua (0) atau tidak disetel, pengguna akan dapat mengedit setelan kepercayaan untuk semua Sertifikat CA, menghapus sertifikat yang diimpor oleh pengguna, dan mengimpor sertifikat menggunakan Pengelola Sertifikat. Jika kebijakan disetel ke Khusus Pengguna (1), pengguna hanya dapat mengelola sertifikat yang diimpor pengguna, dan tidak dapat mengubah setelan kepercayaan dari sertifikat bawaan. Jika kebijakan disetel ke Tidak Ada (2), pengguna akan dapat melihat (tidak mengelola) Sertifikat CA.</translation> +<translation id="6358320368815225772">Nonaktifkan pengesahan jarak jauh untuk perangkat</translation> <translation id="6362856770865555544">Jika kebijakan disetel ke Aktif atau tidak disetel, pengoptimalan WPAD (Web Proxy Auto-Discovery) akan diaktifkan di <ph name="PRODUCT_NAME" />. Jika kebijakan disetel ke Nonaktif, pengoptimalan WPAD akan dinonaktifkan, yang menyebabkan <ph name="PRODUCT_NAME" /> menunggu lebih lama untuk server WPAD berbasis DNS. @@ -5438,12 +5512,14 @@ Mulai versi M106, metode input yang diizinkan akan diaktifkan secara otomatis di sesi kios. Catatan: Jika metode input saat ini tidak didukung, metode akan beralih ke tata letak keyboard hardware (jika diizinkan) atau entri pertama yang valid dalam daftar ini. Metode yang tidak valid atau tidak didukung akan diabaikan.</translation> +<translation id="6483115462650732746">Tampilkan menu aksesibilitas mengambang dalam mode kios</translation> <translation id="6489084406497912050">Mengontrol apakah pengguna dapat menambahkan akun Kerberos. Jika kebijakan ini diaktifkan atau tidak disetel, pengguna dapat menambahkan akun Kerberos melalui Setelan akun Kerberos di halaman setelan Kerberos. Pengguna dapat sepenuhnya mengontrol akun yang mereka tambahkan serta dapat memodifikasi atau menghapusnya. Jika kebijakan ini dinonaktifkan, pengguna tidak dapat menambahkan akun Kerberos. Akun hanya dapat ditambahkan melalui kebijakan 'Konfigurasikan akun Kerberos'. Ini adalah cara yang efektif untuk mengunci akun.</translation> <translation id="6491139795995924304">Izinkan bluetooth di perangkat</translation> +<translation id="6491305972928809525">Jangan tampilkan menu aksesibilitas mengambang dalam mode kios</translation> <translation id="6491872498385040936">Kebijakan ini tidak digunakan lagi. Pertimbangkan untuk menggunakan kebijakan <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, yang mengganti kebijakan ini dan memungkinkan penyelarasan yang lebih mendetail. Memaksa Mode Terbatas Menengah di YouTube dan mencegah pengguna mengubah setelan ini. @@ -5451,6 +5527,7 @@ Jika setelan ini diaktifkan, Mode Terbatas di YouTube akan selalu diberlakukan setidaknya ke Menengah. Jika setelan ini dinonaktifkan atau tidak ditetapkan ke nilai apa pun, Mode Terbatas di YouTube tidak akan diberlakukan oleh <ph name="PRODUCT_NAME" />. Namun, kebijakan eksternal seperti kebijakan YouTube tetap dapat memberlakukan Mode Terbatas.</translation> +<translation id="6492177700737407141">Pengguna yang terdaftar dalam Program Perlindungan Lanjutan hanya akan menerima perlindungan konsumen standar</translation> <translation id="6492737559291967859">Menetapkan kebijakan akan menentukan lokal yang digunakan oleh <ph name="PRODUCT_NAME" />. Jika kebijakan dinonaktifkan atau tidak disetel, lokal tersebut akan berupa lokal valid pertama yang dipilih dari: @@ -5492,6 +5569,7 @@ <translation id="6521971538031711337">Cegah pengguna terkelola mengonfigurasi nama host perangkat</translation> <translation id="6523079496775454310">Aktifkan izin sinyal perangkat untuk pengguna terkelola di perangkat yang tidak dikelola</translation> <translation id="652593254122955308">Waktu tunggu hingga profil tidak ada aktivitas ditutup</translation> +<translation id="6527674993612811419">Tampilkan peringatan dan nonaktifkan isi otomatis pada formulir yang tidak aman</translation> <translation id="6532026122543921610">Kecuali kebijakan <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> menonaktifkan deteksi zona waktu otomatis, menetapkan kebijakan akan menguraikan metode deteksi zona waktu otomatis, yang tidak dapat diubah pengguna. Jika kebijakan ditetapkan ke: @@ -5502,7 +5580,9 @@ Jika tidak ditetapkan, ditetapkan ke Biarkan pengguna menentukan (Let user decide), atau ditetapkan ke Tidak Ada (None), pengguna akan mengontrol deteksi zona waktu otomatis menggunakan kontrol normal di chrome://setelan.</translation> <translation id="6532769014584932288">Izinkan penguncian layar saat aktif</translation> +<translation id="6533881418188970751">Tanyakan pada pengguna tempat menyimpan file sebelum mendownload</translation> <translation id="6536600139108165863">Booting ulang otomatis saat mematikan perangkat</translation> +<translation id="6538653424603921690">Selalu nonaktifkan layar privasi pada layar login</translation> <translation id="6539246272469751178">Kebijakan ini tidak memengaruhi aplikasi Android. Aplikasi Android selalu menggunakan direktori download default dan tidak dapat mengakses file apa pun yang didownload oleh <ph name="PRODUCT_OS_NAME" /> ke direktori download non-default.</translation> <translation id="654303922206238013">Strategi migrasi untuk ecryptfs</translation> <translation id="6543277347547044538">Akhir interval, eksklusif.</translation> @@ -5514,6 +5594,7 @@ <translation id="654546276700640113">Jika kebijakan disetel, panjang PIN maksimum yang dikonfigurasi akan diterapkan. Nilai 0 atau lebih kecil berarti pengguna dapat menyetel panjang PIN sesuai keinginan. Jika nilainya lebih kecil dari <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> tetapi lebih besar dari 0, panjang maksimum akan disetel ke panjang minimum. Jika kebijakan tidak disetel, tidak akan ada panjang maksimum yang diterapkan.</translation> +<translation id="6546185795045702747">Izinkan situs memeriksa apakah pengguna menyimpan metode pembayaran</translation> <translation id="6553143066970470539">Persentase kecerahan layar</translation> <translation id="6555557921186817432">Menjadwalkan mulai ulang otomatis setelah update <ph name="PRODUCT_OS_NAME" /> diterapkan. @@ -5581,6 +5662,7 @@ Kebijakan ini tidak berpengaruh jika disetel ke aktif, dibiarkan kosong, atau tidak disetel.</translation> <translation id="6583249367505445969">Nonaktifkan kolom bookmark</translation> <translation id="6584541828182430328">Nonaktifkan tampilkan peringatan layar penuh</translation> +<translation id="6588634282328239769">Tampilkan URL lengkap</translation> <translation id="6593350713192882944">Aktifkan Jawaban Instan</translation> <translation id="6594372503585248865">Aktifkan UI terkait koneksi pada desktop host jarak jauh saat koneksi aktif</translation> <translation id="65947892191748867">Nonaktifkan izin sinyal perangkat untuk pengguna terkelola di perangkat yang tidak dikelola</translation> @@ -5617,6 +5699,7 @@ <translation id="6625136649067113817">Tanda boolean menunjukkan apakah keyboard virtual dapat memberikan pemeriksaan ejaan.</translation> <translation id="66265932317331474">Melaporkan info CPU</translation> <translation id="6628120204569232711">Laporkan status penyimpanan</translation> +<translation id="662991036483361836">Cegah pengguna mengaktifkan Berbagi Langsung</translation> <translation id="663685822663765995">Batasi mode warna pencetakan</translation> <translation id="6637946190026453735">Daftar setelan layanan <ph name="PRODUCT_NAME" /> Enterprise Connectors yang akan diterapkan ke <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat halaman atau file dicetak dari <ph name="PRODUCT_NAME" />. @@ -5850,6 +5933,7 @@ Jika ekstensi tidak ada dalam daftar, atau daftar tidak ditetapkan, dialog konfirmasi tugas pencetakan akan ditampilkan ke pengguna untuk setiap panggilan fungsi <ph name="SUBMIT_JOB_FUNCTION" />. Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> +<translation id="6847379587945465889">Aktifkan transfer Cookie SSO SAML ke sesi pengguna selama login</translation> <translation id="684856667300805181">Kebijakan ini dihapus dalam <ph name="PRODUCT_NAME" /> 68 dan digantikan oleh <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6848721032946289937">Jika kebijakan disetel ke Aktif atau tidak disetel, akselerasi hardware akan diaktifkan jika tersedia. @@ -5987,6 +6071,7 @@ Jika kebijakan tidak disetel, itu berarti saat sertifikat yang memerlukan pengungkapan melalui Transparansi Sertifikat tidak diungkapkan, <ph name="PRODUCT_NAME" /> tidak akan memercayai sertifikat tersebut. Pola URL akan mengikuti format ini ( https://www.chromium.org/administrators/url-blocklist-filter-format ). Namun, karena validitas sertifikat untuk nama host tertentu bukan bagian dari skema, port, atau jalur, <ph name="PRODUCT_NAME" /> hanya akan mempertimbangkan porsi nama host URL. Host karakter pengganti tidak didukung.</translation> +<translation id="6969332115615661188">Nonaktifkan input video</translation> <translation id="6972540544240464302">Pilih konfigurasi penjadwal tugas</translation> <translation id="6975533677426693807">Selalu buka file PDF menggunakan penampil PDF internal</translation> <translation id="6979158407327259162">Google Drive</translation> @@ -6013,6 +6098,7 @@ Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di instance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation> <translation id="6990736882800900101">Izinkan semua pop-up yang dibuka dengan target <ph name="BLANK_PAGE_NAME" /> untuk berinteraksi dengan halaman yang meminta pembukaan pop-up, kecuali jika halaman pembuka secara eksplisit memilih untuk melarang interaksi tersebut </translation> +<translation id="6992943675460798920">Izinkan pengguna mengambil screenshot dan rekaman video</translation> <translation id="6994082778848658360">Menentukan bagaimana hardware elemen pengaman on-board digunakan untuk memberikan autentikasi faktor kedua jika kompatibel dengan fitur ini. Tombol daya mesin digunakan untuk mendeteksi keberadaan pengguna. Jika 'Dinonaktifkan' dipilih, tidak ada faktor kedua yang diberikan. @@ -6032,8 +6118,10 @@ <translation id="7003746348783715221">Preferensi <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Tanda boolean menunjukkan apakah pengendali protokol harus disetel sebagai default.</translation> <translation id="7008308728445338159">Pemeriksaan intersepsi DNS diaktifkan</translation> +<translation id="7009043124653876961">Nonaktifkan saran emoji saat pengguna mengetik</translation> <translation id="7010006999849135962">Aktifkan autentikasi tanpa PIN untuk host akses jarak jauh</translation> <translation id="7013484314513229844">Aktifkan booting pada tegangan AC</translation> +<translation id="7014427417852575165">Pengguna yang terdaftar dalam Program Perlindungan Lanjutan akan menerima perlindungan ekstra</translation> <translation id="7016587686120059767">Nonaktifkan mode tamu</translation> <translation id="7016736684656067099">Jika kebijakan disetel ke 1, semua situs akan dapat menampilkan gambar. Jika kebijakan disetel ke 2, situs tidak akan dapat menampilkan gambar. @@ -6082,9 +6170,11 @@ <translation id="7039815268521168329">Tampilkan alur Voice Match Asisten Google selama penyiapan awal</translation> <translation id="7040229947030068419">Nilai contoh:</translation> <translation id="7044883996351280650">Mengontrol layanan pencadangan dan pemulihan Android</translation> +<translation id="7046113122884041950">Jangan izinkan Smart Lock</translation> <translation id="7046997898355294677">Tampilkan notifikasi privasi sampai ditutup oleh pengguna</translation> <translation id="7047495632846973438">Menentukan apakah kebijakan izin perekaman layar dicentang atau dilewati.</translation> <translation id="7055022222176591388">Larang <ph name="FLASH_PLUGIN_NAME" /> yang sudah tidak berlaku</translation> +<translation id="7062803946218028349">Izinkan pengaktifan Phone Hub</translation> <translation id="7066292150801784098">Cegah interaksi pengguna jarak jauh dengan jendela administrator di sesi bantuan jarak jauh</translation> <translation id="706669471845501145">Izinkan situs menampilkan pemberitahuan desktop</translation> <translation id="70681795425744184">Jangan izinkan CRD mengeksekusi permintaan WebAuthn API yang di-proxy dari host jarak jauh.</translation> @@ -6093,6 +6183,7 @@ <translation id="7072567600438630966">Izinkan pengaktifan Phone Hub.</translation> <translation id="7074437930865599190">Membekukan versi utama string Agen Pengguna ke 99</translation> <translation id="707988220162760379">Selalu buka file PDF menggunakan penampil PDF eksternal</translation> +<translation id="7081699207881888532">Aktifkan saran emoji saat pengguna mengetik</translation> <translation id="7081784525008938771">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna tidak akan dianggap tidak ada aktivitas saat video diputar. Hal ini mencegah tercapainya waktu tunggu penundaan tidak ada aktivitas, penundaan peredupan layar, penundaan penonaktifan layar, dan penundaan penguncian layar, serta mencegah diambilnya tindakan terkait. Jika kebijakan disetel ke Nonaktif, sistem akan dapat menganggap pengguna tidak ada aktivitas meski terdapat aktivitas video.</translation> @@ -6352,6 +6443,7 @@ Jika kebijakan ini tidak disetel, pembersihan otomatis menggunakan strategi yang tertanam secara default. Saat ini, itu adalah strategi 'RemoveLRUIfDormant'.</translation> <translation id="733381360015511815">Mengonfigurasi daftar Aplikasi Web Terisolasi yang diinstal otomatis</translation> <translation id="7334517274921831425">Mengizinkan pengguna untuk menggunakan <ph name="BOREALIS_NAME" /> di <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="7334639219471717734">Jangan izinkan pengguna login ke perangkat dengan Smart Lock</translation> <translation id="7336785017449297672">Mengontrol setelan jam dan zona waktu.</translation> <translation id="7336878834592315572">Menyimpan cookie selama durasi sesi</translation> <translation id="7338217396351647423">Menetapkan kebijakan akan menentukan kumpulan kebijakan untuk diteruskan ke waktu proses ARC. Admin dapat menggunakannya untuk memilih aplikasi Android yang diinstal secara otomatis. Masukkan nilai dalam format JSON yang valid. @@ -6361,6 +6453,7 @@ <translation id="7340034977315324840">Laporkan waktu aktivitas perangkat</translation> <translation id="7343004974628511824">Lakukan pemeriksaan intersepsi DNS</translation> <translation id="7343497214039883642">File konfigurasi printer perusahaan untuk perangkat</translation> +<translation id="7357148531287978404">Nonaktifkan input audio</translation> <translation id="7358012133037776875">Memungkinkan Anda menetapkan daftar pola URL situs yang menentukan situs yang akan otomatis memberikan izin penempatan jendela. Hal ini akan memperluas kemampuan situs untuk melihat informasi tentang layar perangkat dan menggunakan informasi tersebut untuk membuka dan menempatkan jendela atau meminta mode layar penuh pada layar tertentu. Untuk informasi selengkapnya tentang pola URL situs yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Karakter pengganti, <ph name="WILDCARD_VALUE" />, diizinkan. Kebijakan ini hanya mencocokkan berdasarkan asal, sehingga jalur apa pun di pola URL akan diabaikan. @@ -6614,6 +6707,7 @@ Kebijakan ini hanya berlaku untuk pengguna anak. Jika kebijakan ini disetel, Kode Akses Orang Tua dapat diverifikasi di perangkat pengguna anak. Jika kebijakan ini tidak disetel, Kode Akses Orang Tua tidak dapat diverifikasi di perangkat pengguna anak.</translation> +<translation id="7623431489198474050">Nonaktifkan pengesahan jarak jauh untuk perlindungan konten</translation> <translation id="7628747690141606652">Nonaktifkan Terjemahan Jawaban Instan</translation> <translation id="7629840767216985001">Jika kebijakan ditetapkan ke Benar (True), kursor besar akan diaktifkan di layar login. Jika kebijakan ditetapkan ke Salah (False), kursor besar akan dinonaktifkan di layar login. @@ -6781,6 +6875,7 @@ Tidak menyetel kebijakan berarti <ph name="DEFAULT_CLIPBOARD_SETTING" /> akan berlaku untuk semua situs, jika disetel. Jika tidak, setelan pribadi pengguna akan digunakan. Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> bukanlah nilai yang diterima untuk kebijakan ini.</translation> +<translation id="7791215522423893512">Jangan izinkan pengguna mengambil screenshot atau rekaman video</translation> <translation id="7792796937016596423">Pengguna tidak akan dapat melakukan rekaman paket jaringan</translation> <translation id="7798441698807517880">Kebijakan ini telah dihapus sejak <ph name="PRODUCT_NAME" /> versi 89 karena <ph name="FLASH_PLUGIN_NAME" /> tidak digunakan lagi. @@ -6854,6 +6949,7 @@ Rekomendasi: Kunci layar saat tidak ada aktivitas dengan mengaktifkan penguncian layar selama penangguhan dan menangguhkan <ph name="PRODUCT_OS_NAME" /> setelah penundaan waktu tidak ada aktivitas. Hanya gunakan kebijakan ini jika penguncian layar terjadi pada waktu yang jauh lebih awal daripada penangguhan, atau jika Anda tidak ingin penangguhan saat tidak ada aktivitas.</translation> <translation id="7895553628261067384">Akses jarak jauh</translation> +<translation id="789975630884141379">Aktifkan konten yang disarankan</translation> <translation id="7899952578398457262">Meminta izin dari pengguna terkelola untuk membagikan sinyal perangkat di perangkat yang tidak dikelola guna mendapatkan akses</translation> <translation id="7900469325540540107">Menyimpan data penjelajahan saat membuat profil perusahaan secara default</translation> <translation id="7902040092815978832">Menampilkan keyboard numerik untuk sandi</translation> @@ -6972,6 +7068,7 @@ Jika kebijakan ini disetel ke Aktif, pengguna dapat menggunakan browser <ph name="LACROS_NAME" />.</translation> <translation id="8020222525161221827">Aktifkan Desk API untuk kontrol ChromeOS pihak ketiga</translation> <translation id="802147957407376460">Putar layar sebesar 0 derajat</translation> +<translation id="8021777486638359878">Anggap pengguna sebagai tidak ada aktivitas saat audio diputar</translation> <translation id="80243978433618492">Jangan izinkan pemfilteran parameter URL apa pun.</translation> <translation id="8025620823136567878">Pintasan keyboard internasional dipetakan ke lokasi tombolnya di keyboard, bukan glyph tombol.</translation> <translation id="802776363472387903">Hash SHA-256 gambar <ph name="PLUGIN_VM_NAME" />.</translation> @@ -7349,6 +7446,7 @@ <translation id="8378266419596669629">Memblokir izin Font Lokal di situs ini</translation> <translation id="8379317372795444261">Autentikasi <ph name="BASIC_AUTH" /> diizinkan di koneksi HTTP</translation> <translation id="8381678031726288574">Terapkan setelan default untuk penghentian penggunaan U2F API.</translation> +<translation id="8381774264911275515">Nonaktifkan transfer Cookie SSO SAML ke sesi pengguna selama login</translation> <translation id="8382184662529825177">Mengaktifkan penggunaan pengesahan jarak jauh untuk perlindungan konten bagi perangkat</translation> <translation id="838870586332499308">Aktifkan roaming data</translation> <translation id="8393850527597048037">Khusus Platform</translation> @@ -7469,6 +7567,7 @@ Peringatan: Sebaiknya Anda tidak mengonfigurasi batasan versi karena dapat mencegah pengguna dari menerima update software dan perbaikan keamanan kritis. Membatasi update ke prefiks versi spesifik dapat menimbulkan risiko bagi pengguna.</translation> <translation id="8508489378025029342">Aktifkan pelaporan waktu aktivitas perangkat</translation> +<translation id="8511192250554640451">Izinkan throttling timer JavaScript latar belakang dikontrol oleh logika Chrome dan dikonfigurasi oleh pengguna</translation> <translation id="8519264904050090490">URL pengecualian manual pengguna yang dikelola</translation> <translation id="8519516251436131647">Mengaktifkan pintasan fitur aksesibilitas. @@ -7881,6 +7980,7 @@ <translation id="8921669704201370845">Mengaktifkan pelaporan cloud <ph name="PRODUCT_NAME" /> untuk profil terkelola</translation> <translation id="8922231993239705844">Nonaktifkan sorotan kursor</translation> <translation id="8922494933893518624">Paksa pengaktifan WebSQL di konteks tidak aman.</translation> +<translation id="8923028772162236077">Tampilkan URL default</translation> <translation id="8930064580550462145">Saat login melalui layar kunci, <ph name="PRODUCT_OS_NAME" /> dapat melakukan autentikasi terhadap server (online) atau menggunakan sandi yang tersimpan di cache (offline). Jika kebijakan ini disetel ke -2, kebijakan akan mencocokkan nilai batas waktu login offline layar login yang berasal dari <ph name="POLICY" />. @@ -8114,6 +8214,7 @@ Sesi pengguna dipulihkan setelah peluncuran ulang/mulai ulang.</translation> <translation id="9160028464653564229">Jangan izinkan situs apa pun meminta akses ke port serial lewat Serial API</translation> +<translation id="9162444960513782569">Jangan paksa throttling timer JavaScript latar belakang</translation> <translation id="916461878260574432">Menentukan apakah P2P akan digunakan untuk payload update OS. Jika disetel ke Benar (True), perangkat akan berbagi dan berusaha menggunakan payload update di LAN, serta berpotensi mengurangi penggunaan dan kemacetan bandwidth internet. Jika payload update tidak tersedia di LAN, perangkat tersebut akan kembali mendownload dari server update. Jika disetel ke Salah (False), P2P tidak akan digunakan. @@ -8129,6 +8230,7 @@ Kebijakan ini adalah tindakan sementara dan akan dihapus di <ph name="PRODUCT_NAME" /> versi mendatang. Setelah kebijakan dihapus, <ph name="PRODUCT_NAME" /> akan dapat mengkueri jenis DNS tambahan kapan saja.</translation> <translation id="9167719789236691545">Nonaktifkan Drive di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9180108183162961002">Izinkan login browser tamu</translation> <translation id="9185963199234034321">Aktifkan kontras tinggi di layar login dan izinkan pengguna menonaktifkannya untuk sementara</translation> <translation id="9187743794267626640">Menonaktifkan pemasangan penyimpanan eksternal</translation> <translation id="9190022798664427644">Aktifkan audio mono</translation> @@ -8143,6 +8245,7 @@ <translation id="9200828125069750521">Parameter untuk URL gambar yang menggunakan POST</translation> <translation id="9204863016826119209">Kunci perusahaan dapat digunakan oleh aplikasi Android yang diinstal dan dicantumkan dalam kebijakan ini.</translation> <translation id="9207596996305971030">Jangan laporkan peristiwa login/logout</translation> +<translation id="9210647066889383361">Izinkan pengguna login ke perangkat dengan Smart Lock</translation> <translation id="9213751049772256263">Nonaktifkan semua variasi</translation> <translation id="9217154963008402249">Frekuensi paket jaringan pemantauan</translation> <translation id="9220314833408124365">Gunakan kebijakan perujuk default untuk no-referrer-when-downgrade</translation> @@ -8191,6 +8294,7 @@ <translation id="966425658642788645">Terapkan perilaku default</translation> <translation id="971677226939413180">Opsi Cetak sebagai gambar tidak tersedia bagi pilihan pengguna.</translation> <translation id="974349541138387272">Menentukan template URI pada resolver DNS-over-HTTPS yang diinginkan</translation> +<translation id="978658824596356870">Format jam 24 jam</translation> <translation id="979467274961593903">Jangan izinkan penggunaan proses debug jarak jauh</translation> <translation id="980218166381006412">Jika kebijakan disetel ke Aktif, mode latar belakang akan aktif. Dalam mode latar belakang, proses <ph name="PRODUCT_NAME" /> dimulai saat login OS dan terus berjalan saat jendela browser terakhir ditutup sehingga aplikasi latar belakang dan sesi penjelajahan dapat tetap aktif. Proses latar belakang menampilkan ikon di baki sistem dan selalu dapat ditutup dari sana.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index 19e40b5..d655f1e 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -731,6 +731,7 @@ <translation id="1705215165572785706">Imposta i tasti della fila superiore come tasti multimediali, ma consenti la modifica da parte degli utenti</translation> <translation id="1708496595873025510">Imposta la limitazione sul recupero del numero di inizializzazione delle varianti</translation> <translation id="1709154322133526432">Attiva il controllo del browser predefinito all'avvio</translation> +<translation id="1710245398478550276">Attiva l'API Desk per un elenco di domini di terze parti</translation> <translation id="1713829924716792485">Se il criterio viene impostato su Attivato o se non viene configurato, gli utenti connessi a un host di accesso remoto possono trasferire file dal client all'host e viceversa. Questo criterio non si applica alle connessioni di assistenza remota, che non supportano il trasferimento di file. Se il criterio viene impostato su Disattivato, il trasferimento di file non è consentito.</translation> @@ -6879,6 +6880,7 @@ Il valore del criterio deve essere specificato in millisecondi. I valori devono essere inferiori o uguali al ritardo di inattività.</translation> <translation id="7992613144342460685">Concedere l'autorizzazione per il posizionamento delle finestre su questi siti</translation> +<translation id="7994034037344330969">Consente di specificare l'elenco di domini di applicazioni web di terze parti a cui è consentito utilizzare l'API Desk per controllare le scrivanie di ChromeOS. Questi pattern URL devono essere nel formato definito per la proprietà "matches" all'indirizzo https://developer.chrome.com/docs/extensions/mv3/manifest/externally_connectable/#reference</translation> <translation id="7995610550667275367">Scansione (supportata dalla versione 87)</translation> <translation id="7999023147219236247">Criterio per le richieste di concessione delle autorizzazioni delle app. PERMISSION_POLICY_UNSPECIFIED: criterio non specificato. Se per un'autorizzazione non viene specificato alcun criterio ad alcun livello, viene usato per impostazione predefinita il comportamento "PROMPT". PROMPT: viene chiesto all'utente di concedere un'autorizzazione. GRANT: viene concessa automaticamente un'autorizzazione. DENY: viene negata automaticamente un'autorizzazione.</translation> <translation id="7999336306414770162">Disattiva i report sulle informazioni VPD del dispositivo</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 9c8c1ecd..dfd4f12e 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -52,6 +52,7 @@ Politika ayarlanmadan bırakılırsa bu özellik, varsayılan olarak yönetilen kullanıcılar için devre dışı bırakılır, diğer kullanıcılar için etkinleştirilir.</translation> <translation id="1035860095382451169">Güvenli bağlantılar için çok amaçlı adres çubuğundaki kilit simgesini etkinleştirin</translation> +<translation id="1037470927044831850">Sitelerin kullanıcılardan ekranlarının video akışını paylaşmalarını istemesine izin ver</translation> <translation id="1040125341954178855">Bu özellik Chrome 100 sürümünde kaldırılmıştır. Bu politika, Etkin değerine ayarlanırsa kullanıcı tarafından daha önce diğer cihazlara yüklenen uygulamalar için öneriler verilir. Hiçbir arama metni girilmediyse bu öneriler yerel uygulama önerilerinden sonra başlatıcıda görünür. @@ -283,6 +284,7 @@ Politika ayarlanmadan bırakılırsa veya değişiklikten sonraki değer geçerli bir ana makine adı değilse DHCP isteğinde ana makine adı ayarlanmaz.</translation> <translation id="1257550411839719984">Varsayılan indirme dizinini ayarlama</translation> +<translation id="1262993197422487260">Giriş ve kilit ekranlarında şifreyi görüntüle düğmesini gösterme</translation> <translation id="1265053460044691532">SAML kullanarak kimlik doğrulaması yapmış kullanıcının çevrimdışı olarak giriş yapabileceği süreyi sınırla</translation> <translation id="1271811620059192171">Politika atom gruplarını etkinleştir</translation> <translation id="127264587838521316"><ph name="PRODUCT_NAME" /> uzantı yükleme isteklerini etkinleştirir</translation> @@ -335,6 +337,7 @@ Politika, "Zorunlu" (2) değerine ayarlanırsa profil seçici kullanıcı tarafından engellenemez. Kullanılabilir tek bir profil olsa bile profil seçici gösterilir.</translation> <translation id="1339174690935954950">Kullanıcıların geri bildirim göndermelerini engelle</translation> +<translation id="1340053691042184658">Tarayıcıya misafir girişlerini engelle</translation> <translation id="1342918903685430097">Cihaz için izin verilen minimum <ph name="PRODUCT_OS_NAME" /> sürümünü yapılandır.</translation> <translation id="1343128241903870688">Cihazın uygulama bilgileri raporlamasını devre dışı bırak</translation> <translation id="1347198119056266798">Bu politika kullanımda kaldırılmıştır. Lütfen bunun yerine <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> ve <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> politikalarını kullanın. <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> veya (kullanımdan kaldırılan) <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> politikası ayarlanırsa bu politika yoksayılır. @@ -512,6 +515,7 @@ <translation id="1503969899251962413">Politikanın ayarlanması, bu cihaz için <ph name="PLUGIN_VM_NAME" /> lisans anahtarını belirtir. Bu politika M94'te kaldırıldı.</translation> +<translation id="1507373253059695424">Oturum açma ekranında gizlilik ekranını her zaman etkinleştir</translation> <translation id="150857982247452081">Protokol listesi ayarlamanıza ve ayarladığınız her protokol için izin verilen kaynak kalıplarının ilişkilendirilmiş bir listesini oluşturmanıza izin verir. Bu kalıplar kullanıcıya sormadan harici bir uygulama başlatabilir. Protokol listelenirken sondaki ayırıcı dahil edilmemelidir, o yüzden listeye "skype:" ya da "skype://" yerine doğrudan "skype" olarak ekleyin. Bu politika ayarlanırsa protokol, listelendiği ve protokolü başlatmaya çalışan sitenin kaynağı protokolün izin_verilen_kaynaklar listesindeki kaynak kalıplarından biriyle eşleştiği takdirde politika tarafından sorulmadan yalnızca harici uygulamaları başlatma iznine sahip olur. İki koşul da yanlış ise harici protokol başlatma istemi politika tarafından atlanmaz. @@ -687,6 +691,7 @@ Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamazlar. Bu politika ayarlanmadan bırakılırsa giriş ekranında yüksek kontrast başlangıçta devre dışı bırakılır, ancak kullanıcılar istedikleri zaman etkinleştirebilirler.</translation> +<translation id="1673097259557436886">Web sitelerine her zaman hiçbir ödeme yönteminin kayıtlı olmadığını söyle</translation> <translation id="1674287836076801014">SAML</translation> <translation id="1675002386741412210">Desteklendiği yerler:</translation> <translation id="167514072300004091">Politikayı 3 değerine ayarlamak web sitelerinin bağlı USB cihazlarına erişim istemesini sağlar. Politikayı 2 değerine ayarlamak bağlı USB cihazlarına erişimi engeller. @@ -763,6 +768,7 @@ Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> <translation id="1736269219679256369">SSL uyarı sayfasından devam etmeye izin ver</translation> +<translation id="1744340218280697033">Anne veya babaların gözetilen hesap eklemesine izin verme</translation> <translation id="1751429117283165017">Bu politika ayarlanırsa kullanıcılardan ana makine işletim sisteminin dosya sisteminde bulunan dosya veya dizinlere yazma erişimi vermelerini isteyemeyecek sitelerin belirtildiği URL kalıpları listesini oluşturabilirsiniz. Politika ayarlanmadan bırakılırsa <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> (etkinse) bütün siteler için geçerli olur. Etkin değilse kullanıcının ayarları geçerlidir. @@ -780,6 +786,7 @@ Not: Daha ayrıntılı örnekler için Chromium Projeleri'ni ziyaret edin (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation> <translation id="1767673020408652620">Arama Kutusunun Sıfır Durumunda Uygulama Önerileri Politikasını Etkinleştir</translation> +<translation id="1770071413238151235">12 saatlik biçim</translation> <translation id="1780323582106687813">Bu politika kullanımdan kaldırıldı. Bunun yerine lütfen "<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />" politikasını kullanın. Politikanın ayarlanması, yasaklanan uzantılar listesinden muaf tutulacak uzantıları belirtir. Tüm uzantıları yasaklamak üzere <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> için <ph name="ALL_EXTENSIONS" /> değerini kullanın. Kullanıcılar yalnızca açıkça izin verilen uzantıları yükleyebilirler. Varsayılan olarak tüm uzantılara izin verilir. Ancak uzantıları politikaya göre yasakladıysanız bu politikayı değiştirmek için izin verilen uzantılar listesini kullanın.</translation> @@ -826,6 +833,7 @@ </translation> <translation id="1808715480127969042">Bu sitelerdeki çerezleri engelle</translation> <translation id="1810261428246410396">Hızlı Tethering'in kullanılmasına izin ver.</translation> +<translation id="1813638828646876133">Kilit ve giriş ekranlarında otomatik PIN gönderme özelliğini etkinleştir</translation> <translation id="1813672770917912317"><ph name="PRODUCT_NAME" /> tarayıcının, v8 JavaScript motorunu JIT (Just In Time) derleyicisi etkinken çalıştırıp çalıştırmayacağını ayarlamanıza olanak tanır. JavaScript JIT'in devre dışı bırakılması, <ph name="PRODUCT_NAME" /> tarayıcının, web içeriğini daha yavaş oluşturabileceği, ayrıca JavaScript'in WebAssembly gibi bazı bölümlerini devre dışı bırakabileceği anlamına gelir. JavaScript JIT'in devre dışı bırakılması, <ph name="PRODUCT_NAME" /> tarayıcının, web içeriğini daha güvenli bir konfigürasyonda oluşturmasına imkan sağlayabilir. @@ -929,6 +937,7 @@ Politika ayarlanmadan bırakılırsa Android'de <ph name="HTTP_NEGOTIATE" /> kimlik doğrulaması kapanır.</translation> <translation id="1923704782248889851">Dikteyi etkinleştir</translation> <translation id="1925529914257504750">P2P otomatik güncellemesi etkin</translation> +<translation id="1928355425032308464">Video girişini etkinleştir</translation> <translation id="1930094135927166199">USB güç paylaşımını devre dışı bırak</translation> <translation id="1930127294345368978">Tek bir yazdırma işi için kullanılmasına izin verilen maksimum sayfa sayısı</translation> <translation id="193259052151668190">Çıkarılabilir USB cihazları beyaz listesi</translation> @@ -1016,6 +1025,7 @@ Bu politika false (yanlış) değerine ayarlanırsa veya ayarlanmadan bırakılırsa bilgi raporlanmaz. True (doğru) değerine ayarlanırsa cihazın ayarlandığı geçerli saat dilimi raporlanır.</translation> <translation id="199764499252435679"><ph name="PRODUCT_NAME" /> ürününde bileşen güncellemelerini etkinleştir</translation> +<translation id="1997943707974344423">Smart Lock'a izin ver</translation> <translation id="1998504583649140526">Özel ağ istek ayarları</translation> <translation id="1999000620918508488">Oturum açma ekranını, sistem bilgilerini göstermeye veya gizlemeye zorlayın.</translation> <translation id="1999942889260716089">Politikayı True (Doğru) değerine ayarlamak, <ph name="PRODUCT_NAME" /> ürününün adres çubuğunda arama önerilerini açar. Politikayı False (Yanlış) değerine ayarlamak, arama önerilerini kapatır. @@ -1036,6 +1046,7 @@ <translation id="2006530844219044261">Güç yönetimi</translation> <translation id="2006954055163088863">Video oynatılırken kullanıcıyı işlem yapmıyor olarak değerlendir</translation> <translation id="2008514891623783266">WebRTC'nin IP işleme politikası</translation> +<translation id="2012296492055302633">Gizlilik ekranını her zaman etkinleştir</translation> <translation id="2013285471046373727">Bir uygulamanın nasıl yükleneceğini belirtir. OPTIONAL: Uygulama otomatik olarak yüklenmez, ancak kullanıcı tarafından yüklenebilir. Bu politika belirtilmezse varsayılan olarak bu ayar uygulanır. PRELOAD: Uygulama otomatik olarak yüklenir, ancak kullanıcı tarafından kaldırılabilir. FORCE_INSTALLED: Uygulama otomatik olarak yüklenir ve kullanıcı tarafından kaldırılamaz. BLOCKED: Uygulama engellenir ve yüklenemez. Uygulama önceki politikalardan biri kapsamında yüklenmişse kaldırılır.</translation> <translation id="2014757022750736514">Kullanıcıların hesaplarına giriş yaptıkları oturum açma ekranının davranışını kontrol eder. Ayarlar arasında kimin giriş yapabileceği, ne tür hesaplara izin verildiği, hangi kimlik doğrulama yöntemlerinin kullanılması gerektiği, genel erişilebilirlik, giriş yöntemi ve yerel ayarlar yer alır.</translation> <translation id="201557587962247231">Cihaz durumu raporlarının yüklenme sıklığı</translation> @@ -1080,6 +1091,7 @@ <translation id="2057317273526988987">URL listesine erişime izin ver</translation> <translation id="2058055310819710697">Erişime kapalı uygulamalar için geliştirici modunu etkinleştir</translation> <translation id="205807990145127714">Sinyal gücü etkinliği hakkında raporlanacak telemetri verileri.</translation> +<translation id="2060153898336610735">Geçerli dil ayarınıza göre otomatik</translation> <translation id="2061123930713023976">Ağ paketi yakalama işlemlerinde hata ayıklamaya izin ver</translation> <translation id="2061810934846663491">Uzaktan erişim ana makineleri için gereken alan adlarını yapılandır</translation> <translation id="2062632109797189011">Kullanımdan kaldırılan window.webkitStorageInfo API'sini yeniden etkinleştir</translation> @@ -1111,6 +1123,7 @@ <translation id="209586405398070749">Mevcut ürün kanalı</translation> <translation id="2096932573113293941">Yetkilendirme gerektiren eklentileri çalıştırmak için kullanıcıdan izin iste</translation> <translation id="2098658257603918882">Kullanım ve kilitlenme ile ilgili verilerin raporlanmasını etkinleştir</translation> +<translation id="2099380339157427935">Çıkış yap düğmesini tepside gösterme</translation> <translation id="2104418465060359056">Uzantı ve Eklenti bilgilerini bildirme</translation> <translation id="2106627642643925514">Varsayılan PIN ile yazdırma modunu geçersiz kılar. Mod kullanılamıyorsa bu politika yoksayılır.</translation> <translation id="2107563874993284076">Politika, Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliğini kullanabilirler. Politika, Devre Dışı değerine ayarlanırsa kullanıcılar bu özelliği kullanamazlar.</translation> @@ -1144,6 +1157,7 @@ <translation id="2135335181634291106"><ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> açıksa <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> protokolünün ayarlanması, varsayılan arama sağlayıcısının favori simgesi URL'sini belirtir. <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> protokolünün ayarlanmadan bırakılması, arama sağlayıcısının simgesi olmadığı anlamına gelir.</translation> +<translation id="2144236546337326489">Telefon Merkezi görev devamının etkinleştirilmesine izin ver</translation> <translation id="2145735238144543545">Gerekli İstemci Sertifikaları</translation> <translation id="2146103669166779785">Bir tema oluşturup tarayıcıya uygulamak için kullanılacak onaltılık renk.</translation> <translation id="2148769554831004951">WebSQL'yi etkinleştirilmeye zorla.</translation> @@ -1196,6 +1210,7 @@ <translation id="2171952274731262470">Cihaz boşta kalıp pil gücüyle çalışırken yapılacak işlemler ve gecikmeler</translation> <translation id="2175353308236295184">Bir anahtar/değer çifti grubuna sahip uygulamaya özel JSON yapılandırma nesnesi, ör. '"managedConfiguration": { "key1": value1, "key2": value2 }'. Anahtarlar, uygulama manifest dosyasında tanımlanır.</translation> <translation id="2176115444876446233">Kullanıcıların sistem genelinde performans izleme verilerini toplamasını engeller.</translation> +<translation id="2177696016354404697">Gizlilik ekranını her zaman devre dışı bırak</translation> <translation id="2178899310296064282">YouTube'da en azından Orta Düzey Kısıtlı Mod'u zorunlu kıl</translation> <translation id="2180958780733364832">Gözetimsiz Mod'un kullanımını kontrol et</translation> <translation id="2182291258410176649">Yedekleme ve geri yüklemenin etkinleştirilip etkinleştirilmeyeceğine kullanıcı karar verir</translation> @@ -1302,6 +1317,8 @@ Kullanıcılar bu ayarı değiştiremez veya geçersiz kılamazlar. Not: Bu politika, https://support.google.com/a/answer/1668854 sayfasında açıklandığı gibi, tüm google.com alan adlarına gönderilen tüm HTTP ve HTTPS isteklerine X-GoogApps-Allowed-Domains başlığının eklenmesine neden olur.</translation> +<translation id="2282174652047982960">Yerleşik DNS istemcisini mümkün olduğu her zaman kullan</translation> +<translation id="2288506601233091655">Yazdırma işleri geçmişinin silinmesine izin verme</translation> <translation id="2289265947759479962">Bu politika OS sürümü, OS platformu, OS mimarisi, <ph name="PRODUCT_NAME" /> sürümü ve <ph name="PRODUCT_NAME" /> kanalı gibi sürüm bilgilerinin bildirilip bildirilmeyeceğini kontrol eder. <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> politikası ayarlanmadan bırakıldığında veya devre dışı değerine ayarlandığında bu politika yok sayılır. @@ -1339,6 +1356,7 @@ <translation id="2309284543927494965">Güncellemeleri engelle</translation> <translation id="2309341709647905294">Cihaza takılı çevre birimleri hakkında bilgi rapor etme</translation> <translation id="2309390639296060546">Varsayılan coğrafi konum ayarı</translation> +<translation id="2318583605563438459">Anne veya babaların gözetilen hesap eklemesine izin ver</translation> <translation id="2331354174913096226">İstenen DNS-over-HTTPS çözümleyicisinin URI şablonu. Birden fazla DNS-over-HTTPS çözümleyicisi belirlemek için karşılık gelen URI şablonlarını boşlukla ayırın. DnsOverHttpsMode <ph name="SECURE_DNS_MODE_SECURE" /> olarak ayarlanırsa bu politika ayarlanmalı, boş bırakılmamalıdır. @@ -1447,6 +1465,7 @@ Bu politika ayarlanmadan bırakılırsa gizlilik ekranı başta devre dışı bırakılır, ancak kullanıcı tarafından kontrol edilebilir.</translation> <translation id="2413899611035194909">Giriş ekranı sistem tepsisi menüsünde erişilebilirlik seçeneklerini göster</translation> <translation id="2415715982424988916">Keşfet (91 sürümünden itibaren desteklenir)</translation> +<translation id="2421400544595297401">İlişkili olmayan kullanıcıların Android uygulamalarını kullanmasına izin verme</translation> <translation id="2421677964966613267">Bu politika, M88 sürümünde kullanımdan kaldırılmıştır. Flash artık Chrome tarafından desteklenmemektedir. Politikayı ayarlamak, <ph name="FLASH_PLUGIN_NAME" /> eklentisini çalıştıramayan siteleri belirten URL kalıpları için bir liste yapmanıza olanak tanır. Politikayı ayarlamadan bırakırsanız <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> (ayarlanmışsa) bütün siteler için geçerli olur. Aksi takdirde kullanıcının kişisel ayarları geçerlidir. @@ -1482,6 +1501,7 @@ <translation id="2436302465999055995"><ph name="LACROS_NAME" /> tarayıcısını kullanılabilen tek tarayıcı yap (henüz kullanıma geçmedi)</translation> <translation id="2439187682308339104">Hiçbir sitenin WebHID API üzerinden HID cihazlara erişim istemesine izin verme</translation> <translation id="2439733504887695659">Girilen kimlik bilgisi için güvenliği ihlal edilmiş şifre uyarılarını kapatmayı etkinleştir</translation> +<translation id="2446244536806499267">Ses çalarken kullanıcıyı işlem yapmıyor olarak değerlendirme</translation> <translation id="2448315169529769573">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" />, kilitlenme raporları da dahil olmak üzere kullanım metriklerini ve teşhis verilerini Google'a bildirir. Politika Devre Dışı değerine ayarlanırsa metrikler ve teşhis verisi raporlama devre dışı bırakılır. Politika ayarlanmadan bırakılırsa metrikler ve teşhis verisi raporlama, yönetilmeyen cihazlarda devre dışı, yönetilen cihazlarda ise etkin kalır.</translation> @@ -1680,6 +1700,7 @@ <translation id="2625398797484317969">Bil bakalım ayarlarını kontrol eder.</translation> <translation id="262740370354162807">Dokümanların <ph name="CLOUD_PRINT_NAME" /> için gönderilmesini etkinleştir</translation> <translation id="2633084400146331575">Sözlü geribildirimi etkinleştir</translation> +<translation id="2633907568797306353">Telefon Merkezi bildirimlerinin etkinleştirilmesine izin ver</translation> <translation id="2635872253077105112">Bu politika, alternatif tarayıcıda açılacak web sitelerinin listesini kontrol eder. Her öğe, bir şeyin alternatif tarayıcıda açılması için bir kural olarak değerlendirilir. <ph name="PRODUCT_NAME" />, bir URL'nin alternatif tarayıcıda açılıp açılmayacağını belirlerken bu kuralları kullanır. <ph name="IE_PRODUCT_NAME" /> eklentisi etkinken, kurallar eşleşmediğinde <ph name="IE_PRODUCT_NAME" /> tekrar <ph name="PRODUCT_NAME" /> tarayıcısına geçiş yapar. Kurallar birbiriyle çelişirse <ph name="PRODUCT_NAME" /> en ayrıntılı kuralı kullanır. Politika ayarlanmadan bırakılırsa web siteleri listeye eklenmez. @@ -1761,6 +1782,7 @@ <translation id="2725855586003209701">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı cihazlar kısa süre önce oturum açan cihaz kullanıcılarının listesini bildirir. Politika Devre Dışı değerine ayarlanırsa kayıtlı cihazlar kullanıcı listesini bildirmez.</translation> +<translation id="2730200383593984228">İlişkili olmayan kullanıcıların Android uygulamalarını kullanmasına izin ver</translation> <translation id="2730419309754848345">PDF'yi Resim Olarak Yazdır Varsayılan Ayar</translation> <translation id="2731299561202635374">Bu politika, güvenli olmayan URL'leri belirlemek için URL'lerin gerçek zamanlı olarak kontrol edilmesini denetler. @@ -1891,6 +1913,7 @@ <translation id="2841911109921764691">Giriş ekranında sağ düğme birincil</translation> <translation id="284288632677954003">Hiçbir zaman bir tarayıcı anahtarını tetiklememesi gereken URL'ler içeren bir XML dosyasının URL'si.</translation> <translation id="2846689894646472396">Milisaniye olarak ağ etkinlikleri kontrol oranı.</translation> +<translation id="2847788524147474533">Platform makinesi politikaları, bulut makinesi politikaları karşısında öncelikli olur</translation> <translation id="2849275596224278787">Giriş ekranı sistem tepsisi menüsünde erişilebilirlik seçeneklerini gizle</translation> <translation id="2853649500575897584">Tarayıcı işlemindeki eski uzantı noktalarını engelleme</translation> <translation id="285480231336205327">Yüksek kontrast modunu etkinleştir</translation> @@ -1898,6 +1921,8 @@ <translation id="2856674246949497058">OS sürümü hedeften daha yeniyse sürümü geri alıp hedef sürümde kal. Bu süreçte powerwash işlemi gerçekleştir.</translation> <translation id="2866619962692161453">Metapolitika Türü</translation> <translation id="2866726566162790531">Tüm HTTP kimlik doğrulamalarına izin veren kaynakların listesi</translation> +<translation id="2868756546751652023">Kullanıcıların Hızlı Tethering özelliğini kullanmasına izin ver</translation> +<translation id="286898786908566256">Kullanıcıların Chrome'dan Android cihazlarına telefon numarası göndermesine izin ver</translation> <translation id="2872098849906555324">Google Drive senkronizasyonunu devre dışı bırak</translation> <translation id="2872961005593481000">Kapat</translation> <translation id="2874209944580848064">Android uygulamalarını destekleyen <ph name="PRODUCT_OS_NAME" /> cihazlarına ilişkin not:</translation> @@ -1958,6 +1983,7 @@ <translation id="2906874737073861391">AppPack uzantılarının listesi</translation> <translation id="2908277604670530363">Proxy sunucusuyla yapılabilecek maksimum eşzamanlı bağlantı sayısı</translation> <translation id="2912366658685903301">Tarayıcı temasının rengini yapılandır</translation> +<translation id="2914283793640833265">Telefon Merkezi görev sürdürmenin etkinleştirilmesine izin verme</translation> <translation id="291853569864365550">Yeni Sekme sayfasında içerik önerileri gösterme</translation> <translation id="2920795918401557243">Bu ayar, sistem izleme hizmeti kullanılarak sistem genelinde performans izleme verileri toplanmasına olanak tanır. @@ -2058,6 +2084,7 @@ Listede yer alan bir politika resmi olarak yayınlanmadıysa politikanın değeri geçerli olur. Bu politikanın önceden yayınlanmış politikalar üzerinde bir etkisi yoktur.</translation> +<translation id="3002067315837777719">Telefon Merkezi bildirimlerinin etkinleştirilmesine izin verme</translation> <translation id="3016255526521614822">Beyaz listedeki not alma uygulamalarına <ph name="PRODUCT_OS_NAME" /> kilit ekranında izin verilir</translation> <translation id="3017578958356048910">PDF görüntüleyici, PDF'lere not ekleyebilir.</translation> <translation id="3020623128585817424">Başlangıçta varsayılan tarayıcı kontrolünü devre dışı bırak</translation> @@ -2247,6 +2274,7 @@ Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> <translation id="3168968618972302728">Kerberos kimlik doğrulamasıyla ilgili politikalar.</translation> +<translation id="3169872426103732947">Varsayılan URL'yi göster, kullanıcıların tam URL'ye geçmesine izin ver</translation> <translation id="3171369832001535378">Cihaz ağı ana makine adı şablonu</translation> <translation id="3177802893484440532">Yerel güven bağlantıları için online OCSP/CRL denetimlerini gerekli kıl</translation> <translation id="3180671894201217988">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa üçüncü taraf yazılımlarının <ph name="PRODUCT_NAME" /> işlemlerine çalıştırılabilir kod yerleştirmesi önlenir. @@ -2460,6 +2488,7 @@ Bu politika devre dışı bırakılır veya ayarlanmazsa bu TLS/DTLS sürümleri devre dışı bırakılır. Bu politika geçici olup yeni <ph name="PRODUCT_NAME" /> sürümlerinden birinde kaldırılacaktır.</translation> +<translation id="3351835664671920945">Şifre girişi için varsayılan ayar standart klavye olsun</translation> <translation id="3359186795130278362">Kısıtlanmış yönetilen misafir oturumunu etkinleştir.</translation> <translation id="33592541385181121">Oluşturulan Kerberos SPN'ine bağlantı noktası dahil etme</translation> <translation id="3360093276083825336">Bu politikanın artık kullanılmadığını ve <ph name="PRODUCT_OS_NAME" /> sürüm 85'te kaldırılacağını unutmayın. Lütfen bunun yerine <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> politikasını kullanın. @@ -2500,6 +2529,7 @@ <translation id="3398051852031115795">Varsayılan sistem davranışı (ekran boyutuna bağlıdır)</translation> <translation id="3399859571630358395">Hızlı Eşleme'yi (hızlı Bluetooth eşleme) devre dışı bırakmaya zorla.</translation> <translation id="3404681701763345449"><ph name="GOOGLE_CALENDAR_NAME" /> entegrasyonunu etkinleştir</translation> +<translation id="3406122462682235653">Kullanıcıya sorma (indirme işlemleri hemen başlar)</translation> <translation id="3408078762098350617"><ph name="SYSTEM_FEATURES_DISABLE_LIST_POLICY_NAME" /> içindeki devre dışı bırakılan özelliklerle ilgili kullanıcı deneyimini kontrol eder. Bu politika "engellendi" olarak ayarlanırsa, devre dışı bırakılan özellikler kullanılamaz hale gelir ama yine de kullanıcılar tarafından görülebilir. @@ -2574,6 +2604,7 @@ Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamazlar. Bu politika ayarlanmadan bırakılırsa giriş ekranında seç ve dinle özelliği başlangıçta devre dışı bırakılır, ancak kullanıcılar istedikleri zaman bunu etkinleştirebilir.</translation> +<translation id="3483585138745445814">Kullanıcıların Yakındakilerle Paylaş ayarını etkinleştirmesine izin ver</translation> <translation id="348495353354674884">Sanal klavyeyi etkinleştir</translation> <translation id="3485200437120267231">Oturum açma müdahalesini devre dışı bırak</translation> <translation id="3487651201232258606">Yerel mesajlaşma</translation> @@ -2617,6 +2648,7 @@ <translation id="3528000905991875314">Alternatif hata sayfalarını etkinleştir</translation> <translation id="3531084733660068324">Ebeveyn gözetimi ayarları</translation> <translation id="3536263244905016305">Otomatik Web Proxy Keşfi (WPAD) optimizasyonunu devre dışı bırak</translation> +<translation id="3538869107794555625">Tablet modunda dokunmatik klavyeyi etkinleştir</translation> <translation id="3539103206548425861">Politikayı ayarladığınızda <ph name="PRODUCT_NAME" /> ürününde sesli videolar otomatik (kullanıcı onayı olmadan) oynatılır. <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> True (Doğru) değerine ayarlandığında bu politika geçerliliğini yitirir. <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> False (Yanlış) değerine ayarlandığında bu politikadaki URL kalıpları oynatılabilir. <ph name="PRODUCT_NAME" /> çalışırken bu politika değiştirilirse sadece yeni açılan sekmelere uygulanır. Geçerli URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz.</translation> @@ -2655,6 +2687,7 @@ <translation id="3568762199045490351">0 ms'lik bir zaman aşımına sahip JavaScript setTimeout(), 1 ms'ye sabitlenir.</translation> <translation id="3574450691573438824">Cihaz sistem günlüğünü yüklemeyi devre dışı bırak</translation> <translation id="3575011234198230041">HTTP kimlik doğrulaması</translation> +<translation id="3575159471980949522">Kullanıcıların Chrome'dan Android cihazlarına telefon numarası göndermesine izin verme</translation> <translation id="3577251398714997599">Araya giren reklamların yer aldığı siteler için reklam ayarı</translation> <translation id="3577628175311752799">Varsayılan yönlendirme politikası olarak "no-referrer-when-downgrade" kullan.</translation> <translation id="357917253161699596">Kullanıcıların, kullanıcı sertifikalarını yönetmelerine izin ver</translation> @@ -3291,6 +3324,7 @@ <translation id="4187576366596772431">Bu sitelerde WebHID API'yi engelle</translation> <translation id="4190316993598857632">Yer işareti düzenlemeyi etkinleştir</translation> <translation id="4192388905594723944">Uzaktan erişim istemci kimlik doğrulama jetonunu doğrulama URL'si</translation> +<translation id="4195698007674066525">Şifre girişi için varsayılan ayar sayısal klavye olsun</translation> <translation id="4203055629055264833">Politika, etkin değerine ayarlanırsa veya ayarlanmadan bırakılırsa kullanıcılar, araç çubuğundaki bir simgeyi açıp kapatarak en son varsayılan arama motoru sonuç sayfasını yan panelde açabilir. Politika, devre dışı değerine ayarlanırsa varsayılan arama motoru sonuç sayfasının olduğu yan paneli açan bu simge araç çubuğundan kaldırılır.</translation> @@ -3393,6 +3427,7 @@ <translation id="4314538398999793073">Kerberos kimlik doğrulaması sırasında CNAME aramasını devre dışı bırak</translation> <translation id="4320592646346933548">Kablosuz</translation> <translation id="4322842393287974810">Sıfır gecikmeyle otomatik başlatılan kiosk uygulamasının <ph name="PRODUCT_OS_NAME" /> sürümünü kontrol etmesine izin ver</translation> +<translation id="4323412353642577604">İçerik koruması için uzaktan onayı etkinleştir</translation> <translation id="4325690621216251241">Sistem tepsisine çıkış düğmesi ekle</translation> <translation id="4329095223358818804">Hızlı Yanıtlar'ın seçilen içeriğe erişmesine izin verir</translation> <translation id="4330908525441222205">Varsayılan AppCache davranışını kullan</translation> @@ -3427,6 +3462,7 @@ <translation id="4370937370030117032">Kullanıcı adını ve dosya adını yerel yazıcılara göndermeyi devre dışı bırak</translation> <translation id="4372704773119750918">Kurumsal kullanıcının çok profilli oturumun parçası olmasına izin verme (birincil veya ikincil)</translation> <translation id="4373332965635821723">Erişilebilirlik kısayollarını etkinleştir</translation> +<translation id="4377377599658208627">Sitelerin URL yoluyla belirli metin parçalarına ilerlemesine izin ver</translation> <translation id="4377599627073874279">Tüm sitelerin tüm resimleri görüntülemesine izin ver</translation> <translation id="437791893267799639">Politika ayarlanmadı, veri taşıma ve ARC'ye izin verme</translation> <translation id="4380159792986204036">Web kiosk'un, herhangi bir ekranda birden fazla tarayıcı penceresi açmasına izin ver</translation> @@ -3578,6 +3614,7 @@ <translation id="4558166110367609724">Otomatik olarak Hizmet Şartları'nı atlayıp tarayıcıyı yükler.</translation> <translation id="4559846397119102037"><ph name="LACROS_NAME" /> tarayıcısının kullanımına izin ver</translation> <translation id="4561560385824323005">Kullanıcıların yükleyecekleri önceden yapılandırılmış bir masaüstü düzeni seçmesine izin ver</translation> +<translation id="4561940244682063697">Sitelerin kullanıcılardan ekranlarının video akışını paylaşmalarını istemesine izin verme</translation> <translation id="4562165737444703281">Kullanıcıların Crostini bağlantı noktası yönlendirmesini [etkinleştirmesine/yapılandırmasına] izin verir</translation> <translation id="456686782928669977">Bu politika, <ph name="IE_PRODUCT_NAME" /> tarayıcısının SiteList politikasından kuralların yüklenip yüklenmeyeceğini kontrol eder. @@ -3594,6 +3631,18 @@ Bu politika devre dışı bırakılır veya ayarlanmazsa sitelerin eşzamanlı olarak gezinmesine ve yeni pencere/sekme açmasına izin verilmez.</translation> <translation id="4572577129745420844">Kullanıcıların Kerberos hesapları eklemesine izin verme</translation> <translation id="457430673056611745">OnPrint <ph name="PRODUCT_NAME" /> Enterprise Bağlayıcı için yapılandırma politikası</translation> +<translation id="4576760454200781316"><ph name="PRODUCT_NAME" /> özelliği, etkinleştirildiği zaman arka plan sekmelerindeki JavaScript zamanlayıcılarının yoğun şekilde kısıtlanmasına ve birleştirilmesine, bir sayfa 5 dakika veya daha uzun süre arka planda kaldıktan sonra dakikada bir defadan fazla çalışmamasına neden olur. + + Bu, web standartlarına uyumlu bir özelliktir ancak belirli işlemlerin bir dakikaya kadar gecikmesine neden olarak bazı web sitelerinde işlevselliği bozabilir. Ancak etkin olduğunda önemli ölçüde CPU ve pil tasarrufu sağlar. Daha fazla ayrıntı için https://bit.ly/30b1XR4 sayfasına bakabilirsiniz. + + Bu politika, etkin değerine ayarlanırsa özellik etkin olmaya zorlanır ve kullanıcılar bunu geçersiz kılamaz. + + Bu politika, devre dışı değerine ayarlanırsa özellik devre dışı olmaya zorlanır ve kullanıcılar bunu geçersiz kılamaz. + + Bu politika ayarlanmadan bırakılırsa özellik kullanıcılar tarafından manuel olarak yapılandırılabilen kendi dahili mantığı tarafından kontrol edilir. + + Politikanın oluşturucu işlemi başına uygulandığını ve bir oluşturucu işlemi başladığında geçerli olan politika ayarının en son değerinin kullanıldığını unutmayın. Tüm yüklenen sekmelerin tutarlı bir politika ayarı almasını sağlamak için tam bir yeniden başlatma gereklidir. İşlemlerin bu politikanın farklı değerleriyle çalışması zararlı değildir. + </translation> <translation id="4578265298946081589">Kullanıcı oturumu kapatıldığında cihazı yeniden başlatma.</translation> <translation id="4581507927311097234">Ekran kapatılmadan önce kullanıcı girişi olmadan geçecek süre (milisaniye olarak)</translation> <translation id="4582338216073557489">Politika "Yok" seçeneğine ayarlandığında, <ph name="PRODUCT_NAME" /> önbelleğe alınan dosyaları diskte depolamak için varsayılan önbellek boyutunu kullanır. Kullanıcılar bunu değiştiremezler. @@ -3644,6 +3693,7 @@ * <ph name="FILTER_PLACEHOLDER" /> değeri <ph name="EMPTY_DICTIONARY" /> olarak ayarlandığında istemci sertifikalarının seçimi ayrıca kısıtlanmaz. Web sunucusu tarafından sağlanan filtrelerin geçerli olmaya devam ettiğini unutmayın. Politikayı ayarlamadan bırakırsanız hiçbir site için otomatik seçim gerçekleşmez.</translation> +<translation id="4611983465824842867">Uyarı gösterme veya güvenli olmayan formlarda otomatik doldurma özelliğini devre dışı bırak</translation> <translation id="4615003180013429835">Site listesi ayrıştırma modu</translation> <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" /> cihazında meta etiket kontrolünü atla</translation> <translation id="4624417808625504735">Bu sitelerde JavaScript'in JIT kullanmasını engelle</translation> @@ -3805,6 +3855,7 @@ <translation id="4856471929724652373">Güncelleme durumu, platform sürümü, son güncelleme kontrolü ve son yeniden başlatma gibi OS güncelleme bilgilerini bildirir. Bu politika false (yanlış) değerine ayarlanırsa veya ayarlanmadan bırakılırsa OS güncelleme bilgileri bildirilmez. Politika true (doğru) değerine ayarlanırsa OS güncelleme bilgileri bildirilir.</translation> +<translation id="4857223512478723171">Tam ekran moduna izin verme</translation> <translation id="4858735034935305895">Tam ekran moduna izin ver</translation> <translation id="486146220825734683">Kullanıcıların Kerberos şifrelerini hatırlamasına izin verme</translation> <translation id="4861767323695239729">Kullanıcı oturumunda izin verilen giriş yöntemlerini yapılandır</translation> @@ -3904,7 +3955,9 @@ belirtilen süre boyunca tarayıcının kapanması engellenebilir. Varsayılan değer (0) bu özelliğin devre dışı olduğu anlamına gelir.</translation> +<translation id="4937423591320233496">Önerilen içeriği devre dışı bırak</translation> <translation id="4940810901775798837">Güvenli olmayan web sitelerinin, herhangi bir ağ uç noktasına istekte bulunmasına izin ver</translation> +<translation id="4942096314850617489">Kullanıcı için uzaktan onayı devre dışı bırak</translation> <translation id="4942681160308347946">Politikayı True (Doğru) değerine ayarlamak, oturum açma ekranında sözlü geri bildirimi açar. Politikayı False (Yanlış) değerine ayarlamak, oturum açma ekranında sözlü geri bildirimi kapatır. Politikayı ayarlarsanız kullanıcılar sözlü geri bildirimi geçici olarak açabilir veya kapatabilir. Oturum açma ekranı yeniden yüklendiğinde veya bir dakika boşta kaldığında orijinal durumuna geri döner. @@ -3919,6 +3972,7 @@ Bu politika ayarlanmazsa varsayılan davranış (Canary/Yeni geliştirilenler kanalı için göster) geçerli olur. Kullanıcılar belirli işlemlerin görünürlüğünü (ör. Alt-V) değiştirebilir.</translation> <translation id="494613465159630803">Cast Receiver</translation> <translation id="494924690085329212">Android başlatılmışsa kullanıcı oturumu kapatıldığında cihazı yeniden başlat.</translation> +<translation id="4950447493143157880">Yerleşik DNS istemcisini hiçbir zaman kullanma</translation> <translation id="4952347392677351397">Politikayı 1 değerine ayarlarsanız web siteleri, hareket ve ışık gibi sensörlere erişip bunları kullanabilir. Politikayı 2 değerine ayarlarsanız sensörlere erişim izni verilmez. Politikayı ayarlamadan bırakırsanız <ph name="ALLOW_SENSORS_POLICY_NAME" /> politikası geçerli olur. Kullanıcılar bu ayarı değiştirebilir.</translation> @@ -3995,6 +4049,7 @@ <translation id="5034504101537897433">Cihaz kilitlenme raporu bilgi raporlamasını etkinleştir</translation> <translation id="5039110755072335605">CORS joker karakter olmayan istek başlıkları desteği</translation> <translation id="504116558738617678">Düşük disk alanı uyarılarını, yalnızca cihaz yönetilmiyorsa veya yalnızca 1 kullanıcı varsa göster</translation> +<translation id="5053779531788741830">macOS, Android ve Chrome OS'te yerleşik DNS istemcisini kullan</translation> <translation id="5055474681190962362">Cihazın ayın hangi gününde [1-31] yeniden başlatılması gerektiği (cihazın yerel saat dilimine göre). Yalnızca "sıklık", "AYLIK" olarak ayarlandığında kullanılır. Bu sayı, belirli bir aydaki maksimum gün sayısından fazlaysa ayın son günü seçilir.</translation> <translation id="5056708224511062314">Ekran büyüteci devre dışı</translation> <translation id="5058573563327660283">Otomatik temizlik sırasında disk alanı boşaltmak için kullanılan stratejiyi seç (kullanımdan kaldırıldı)</translation> @@ -4153,6 +4208,8 @@ Cihaz duvar kağıdı politikası ayarlanmamış ve kullanıcının duvar kağıdı politikası ayarlanmışsa neyin gösterileceğini kullanıcının duvar kağıdı politikası belirler.</translation> <translation id="5219844027738217407">Bu politika Android uygulamalarında sadece mikrofonu etkiler. Bu politika doğru olarak ayarlandığında, istisnasız tüm Android uygulamaları için mikrofon kapatılır.</translation> +<translation id="5222325605346216869">Arka planda JavaScript zamanlayıcılarının kısıtlanmasını zorunlu kıl</translation> +<translation id="5223606242837275233">Sitelerin URL yoluyla belirli metin parçalarına ilerlemesine izin verme</translation> <translation id="5227124062673546005"><ph name="MS_WIN_NAME" /> üzerinde <ph name="PRODUCT_NAME" /> ürününün yazdırma yöntemini kontrol eder. <ph name="MS_WIN_NAME" /> üzerinde PostScript yazıcıya yazdırırken, farklı PostScript oluşturma yöntemleri yazdırma performansını etkileyebilir. @@ -4191,6 +4248,7 @@ Politika Devre dışı değerine ayarlanırsa Chrome Temizleme Aracı düzenli tarama yapmaz ve manuel tetikleme devre dışı bırakılır. <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir.</translation> +<translation id="5245647012663146075">Telefon Merkezi'nin etkinleştirilmesine izin verme</translation> <translation id="5245671702326993331">Yerel bildirimlere izin verir</translation> <translation id="524637053580639111">Bu politika M82'de kullanımdan kaldırılmıştır. Bunun yerine lütfen MinimumChromeVersionEnforced politikasını kullanın. @@ -4591,6 +4649,7 @@ <translation id="5630352020869108293">Son oturumu geri yükle</translation> <translation id="5633871703004128675">Metin imlecini vurgulama erişilebilirlik özelliğini etkinleştir</translation> <translation id="5634032995857968056">Oluşturucu uygulama kapsayıcısı korumalı alanını etkinleştir</translation> +<translation id="5638334542697444045">Kullanıcıların Hızlı Tethering özelliğini kullanmasına izin verme</translation> <translation id="5639454129004500060">Bu politika ayarlandığında, masa şablonu dosyası indirmek için gereken bilgileri içerir. Dosyada mevcut kullanıcı için sağlanacak bir masa şablonu bulunur. Politika ayarlanmadığında, masa şablonları listesine önceden yapılandırılmış masa şablonu eklenmez. <ph name="DESK_TEMPLATES_ENABLED_POLICY_NAME" /> politikası doğru değerine ayarlanmazsa bu politika geçerliliğini yitirir.</translation> @@ -4689,6 +4748,7 @@ Politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa güç yönetimi gecikmeleri ve süre sınırı oturumun başında hemen çalışmaya başlar.</translation> <translation id="5733357908790472408">Chrome Root Store'u kullan.</translation> <translation id="5735915264686983150">Devre dışı bırakılan özellikleri gizle ve engelle</translation> +<translation id="5736498355107027047">Çıkış yap düğmesini tepside göster</translation> <translation id="5737394734996319911"><ph name="PRODUCT_NAME" /> erişilebilirlik özelliği, görme engelli ekran okuyucu kullanıcılarının web'deki etiketsiz resimlerin açıklamalarını almalarını sağlar. Bu özelliği etkinleştirmeyi seçen kullanıcıların, web'de karşılaştıkları etiketlenmemiş resimlerin otomatik olarak açıklamalarını sağlayacak anonim bir Google hizmetini kullanma seçenekleri olur. Bu özellik etkinleştirilirse resimlerin içeriği, açıklama oluşturmak için Google sunucularına gönderilir. Çerez veya başka kullanıcı verileri gönderilmez. Google, hiçbir resim içeriğini saklamaz veya günlüğe kaydetmez. @@ -4855,6 +4915,7 @@ <translation id="5915023683182228340">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" /> ürününde QUIC protokolünün kullanımına izin verilir. Politika, Devre Dışı değerine ayarlanırsa QUIC protokolünün kullanımına izin verilmez.</translation> +<translation id="5916855682471300200">Bulut makinesi politikaları, platform makinesi politikaları karşısında öncelikli olur</translation> <translation id="5921713479449475707">HTTP aracılığıyla otomatik güncelleme indirmeye izin ver</translation> <translation id="5927903236543424081">Tarayıcıyı kullanmadan önce kullanıcının oturum açmasını zorunlu kıl</translation> <translation id="5928633129285224981"><ph name="PRODUCT_NAME" /> üzerinde PDF yazdırılırken Resim olarak yazdır'ın varsayılan olarak seçilip seçilmeyeceğini kontrol eder. @@ -5060,6 +5121,7 @@ Bu politikanın, yöneticilerin ihtiyaç duyması halinde yerel IP'lerin korunmasını zayıflattığını lütfen unutmayın.</translation> <translation id="614662973812186053">Bu politika, Android kullanımını ve teşhis verilerini toplama çalışmalarını da kontrol eder.</translation> <translation id="614665605501218241">Listelenen sitelerin, daha özel ağ uç noktalarına güvenli olmayan bir şekilde istekte bulunmasına izin ver.</translation> +<translation id="6150320133676152520">Kilit ve giriş ekranlarında otomatik PIN gönderme özelliğini devre dışı bırak</translation> <translation id="6155350825868160236">Kullanıcının, Google web hizmetlerinin yazım hatalarını çözmek için kullanılıp kullanılmayacağını seçmesine izin ver</translation> <translation id="6155936611791017817">Giriş ekranında büyük imleç modunun varsayılan durumunu ayarla</translation> <translation id="6157537876488211233">Proxy atlama kurallarının noktalı virgül ile ayrılmış listesi</translation> @@ -5141,6 +5203,7 @@ <translation id="6261643884958898336">Makine Kimlik bilgilerini bildir</translation> <translation id="6265892395051519509">Bu sitelerde sensörlere erişime izin ver</translation> <translation id="6266043141694454734">Sunucu sertifikalarını doğrulamak için Chrome Root Store ve yerleşik sertifika doğrulayıcının kullanılıp kullanılmayacağını belirler</translation> +<translation id="6270615143812355589">Ses girişini etkinleştir</translation> <translation id="6270791075656665237">QUIC'ye izin verme</translation> <translation id="6273015149273504999"> Kullanıcı etkileşimi olmadan giriş ekranında sessizce yüklenen ve kullanıcı tarafından yüklemesi kaldırılamayan veya devre dışı bırakılamayan uygulama ve uzantıların bir listesini belirtir. @@ -5298,6 +5361,7 @@ Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> <translation id="6353890097388312479">Politika, Tümü (0) değerine ayarlanırsa veya ayarlanmadan bırakılırsa kullanıcılar, tüm CA sertifikaları için güven ayarlarını düzenleyebilir, kullanıcının içe aktardığı sertifikaları kaldırabilir ve başka sertifikaları içe aktarabilirler. Politika, Yalnızca Kullanıcı (1) değerine ayarlanırsa kullanıcılar, yalnızca kullanıcının içe aktardığı sertifikaları yönetebilir, ancak yerleşik sertifikaların güven ayarlarını değiştiremezler. Politika, Yok (2) değerine ayarlanırsa kullanıcılar, CA sertifikalarını görüntüleyebilirler (yönetemezler).</translation> +<translation id="6358320368815225772">Cihaz için uzaktan onayı devre dışı bırak</translation> <translation id="6362856770865555544">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" /> ürününde WPAD (Otomatik Web Proxy Keşfi) optimizasyonu etkinleştirilir. Politika, Devre Dışı değerine ayarlanırsa WPAD optimizasyonu devre dışı bırakılarak <ph name="PRODUCT_NAME" /> ürününün DNS tabanlı WPAD sunucularını daha fazla beklemesine neden olur. @@ -5394,12 +5458,14 @@ M106 sürümünden itibaren, izin verilen giriş yöntemleri kiosk oturumunda otomatik olarak etkinleştirilir. Not: Geçerli giriş yöntemi desteklenmiyorsa donanım klavye düzenine (izin veriliyorsa) veya bu listedeki ilk geçerli girişe geçiş yapar. Geçersiz veya desteklenmeyen giriş yöntemleri göz ardı edilir.</translation> +<translation id="6483115462650732746">Kiosk modunda kayan erişilebilirlik menüsünü göster</translation> <translation id="6489084406497912050">Kullanıcının Kerberos hesapları ekleyip ekleyemeyeceğini kontrol eder. Bu politika etkinleştirilir veya ayarlanmazsa kullanıcılar, Kerberos ayarlar sayfasındaki Kerberos Hesapları ayarlarıyla Kerberos hesapları ekleyebilirler. Ekledikleri hesaplar üzerindeki tüm kontrol kullanıcılarda olup hesapları değiştirebilir veya silebilirler. Politika devre dışı bırakılırsa kullanıcılar Kerberos hesabı ekleyemez. Hesaplar ancak "Kerberos hesaplarını yapılandırma" politikası aracılığıyla eklenebilir. Bu, hesapları kilitlemek için etkili bir yoldur.</translation> <translation id="6491139795995924304">Cihazda Bluetooth'a izin ver</translation> +<translation id="6491305972928809525">Kiosk modunda kayan erişilebilirlik menüsünü gizle</translation> <translation id="6491872498385040936">Bu politika kullanımdan kaldırılmıştır. Bu politikayı geçersiz kılan ve daha ayrıntılı ayarlamaya olanak tanıyan <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> politikasını kullanma seçeneğini değerlendirin. YouTube Orta Düzey Kısıtlı Modu'nu zorlar ve kullanıcıların bu ayarı değiştirmesini engeller. @@ -5407,6 +5473,7 @@ Bu ayar etkinleştirilirse YouTube'da Kısıtlı Mod her zaman en azından Orta Düzey olacak şekilde zorunlu kılınır. Bu ayar devre dışı bırakılır veya herhangi bir değer belirlenmezse <ph name="PRODUCT_NAME" /> tarafından YouTube'da Kısıtlı Mod zorunlu kılınmaz. Bununla birlikte, YouTube politikaları gibi harici politikalar Kısıtlı Mod'u zorunlu kılmaya devam edebilir.</translation> +<translation id="6492177700737407141">Gelişmiş Koruma programına kaydolan kullanıcılara yalnızca standart tüketici korumaları sunulur</translation> <translation id="6492737559291967859">Politikayı ayarlamak, <ph name="PRODUCT_NAME" /> ürününün kullandığı yerel ayarı belirtir. Kapatılması veya ayarlanmadan bırakılması yerel ayarın aşağıda belirtilenlerden ilk geçerli yerel ayar olacağı anlamına gelir: @@ -5448,6 +5515,7 @@ <translation id="6521971538031711337">Yönetilen kullanıcının, cihazın ana makine adını yapılandırmasını engelle</translation> <translation id="6523079496775454310">Yönetilmeyen cihazlarda, yönetilen kullanıcılar için cihaz sinyali izni verilmesini etkinleştir</translation> <translation id="652593254122955308">Boşta kalan profil kapatılıncaya kadar zaman aşımı</translation> +<translation id="6527674993612811419">Güvenli olmayan formlarda uyarı göster ve otomatik doldurma özelliğini devre dışı bırak</translation> <translation id="6532026122543921610"><ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> politikası otomatik saat dilimi algılama ayarını kapatmadıkça, politikayı ayarlamak kullanıcıların değiştiremeyeceği otomatik saat dilimi algılama yöntemini belirtir. Politika ayarları: @@ -5458,7 +5526,9 @@ Ayarlanmazsa Kullanıcıların karar vermesine izin ver veya Yok olarak ayarlandığında kullanıcılar otomatik saat dilimi algılama seçeneğini chrome://settings sayfasındaki normal kontrolleri kullanarak ayarlar.</translation> <translation id="6532769014584932288">Uyanık kalma kilitlerine izin ver</translation> +<translation id="6533881418188970751">İndirmeden önce dosyanın nereye kaydedileceğini kullanıcıya sor</translation> <translation id="6536600139108165863">Cihaz kapandığında otomatik olarak yenide başlat</translation> +<translation id="6538653424603921690">Oturum açma ekranında gizlilik ekranını her zaman devre dışı bırak</translation> <translation id="6539246272469751178">Bu politikanın Android uygulamaları üzerinde hiçbir etkisi yoktur. Android uygulamaları daima varsayılan indirme dizinini kullanır ve <ph name="PRODUCT_OS_NAME" /> tarafından, varsayılan olmayan indirme dizinine indirilen dosyalara erişemez.</translation> <translation id="654303922206238013">ecryptfs için taşıma stratejisi</translation> <translation id="6543277347547044538">Aranın bitiş zamanı (girilen tarihler dahil değil).</translation> @@ -5470,6 +5540,7 @@ <translation id="654546276700640113">Politika ayarlanırsa yapılandırılmış maksimum PIN uzunluğu uygulanır. Politika, 0 veya daha küçük bir değere ayarlanırsa kullanıcı herhangi bir uzunlukta PIN belirleyebilir. Bu değer, <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> değerinden küçük ancak 0'dan büyükse maksimum uzunluk ile minimum uzunluk aynı olur. Politika ayarlanmadan bırakılırsa maksimum uzunluk uygulanmaz.</translation> +<translation id="6546185795045702747">Web sitelerinin, kullanıcıya ait kayıtlı bir ödeme yöntemi olup olmadığını kontrol etmesine izin ver</translation> <translation id="6553143066970470539">Ekran parlaklığı yüzdesi</translation> <translation id="6555557921186817432"><ph name="PRODUCT_OS_NAME" /> güncellemesi uygulandıktan sonra otomatik yeniden başlatma planlayın. @@ -5537,6 +5608,7 @@ Etkinleştirilir, boş bırakılır veya ayarlanmazsa bu politikanın hiçbir etkisi olmaz.</translation> <translation id="6583249367505445969">Yer işareti çubuğunu devre dışı bırak</translation> <translation id="6584541828182430328">Tam ekran uyarısının gösterilmesini devre dışı bırak</translation> +<translation id="6588634282328239769">Tam URL'yi görüntüle</translation> <translation id="6593350713192882944">Bil bakalım'ı etkinleştir</translation> <translation id="6594372503585248865">Bağlantı etkin olduğunda uzak ana makine masaüstünde bağlantıyla ilgili kullanıcı arayüzünü etkinleştir</translation> <translation id="65947892191748867">Yönetilmeyen cihazlarda, yönetilen kullanıcılar için cihaz sinyali izni verilmesini devre dışı bırak</translation> @@ -5573,6 +5645,7 @@ <translation id="6625136649067113817">Dokunmatik klavyede yazım denetimi özelliği sunulup sunulamayacağını gösteren bir boole flag'i.</translation> <translation id="66265932317331474">CPU bilgisi raporlama</translation> <translation id="6628120204569232711">Depolama durumunu bildir</translation> +<translation id="662991036483361836">Kullanıcıların Yakındakilerle Paylaş ayarını etkinleştirmesini engelle</translation> <translation id="663685822663765995">Renkli yazdırma modunu kısıtla</translation> <translation id="6637946190026453735"><ph name="PRODUCT_NAME" /> hizmetinden bir sayfa veya dosya yazdırıldığında tetiklenen <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak <ph name="PRODUCT_NAME" /> Enterprise Connectors hizmetleri ayarlarının listesidir. @@ -5806,6 +5879,7 @@ Bir uzantı listede yoksa veya liste ayarlanmamışsa her <ph name="SUBMIT_JOB_FUNCTION" /> işlev çağrısı için kullanıcıya yazdırma işi onay iletişim kutusu gösterilir. Bu politika kullanımdan kaldırıldı, lütfen bunun yerine <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> kullanın.</translation> +<translation id="6847379587945465889">Oturum açma sırasında, SAML TOA Çerezlerinin kullanıcı oturumuna aktarılmasını etkinleştir</translation> <translation id="684856667300805181">Bu politika <ph name="PRODUCT_NAME" /> 68 sürümünde kaldırılmış ve yerine <ph name="ARC_GLS_POLICY_NAME" /> kullanılmaya başlanmıştır.</translation> <translation id="6848721032946289937">Politikanın Etkin değerine ayarlanması veya ayarlamadan bırakılması, mevcutsa donanım hızlandırmayı açar. @@ -5943,6 +6017,7 @@ Politikanın ayarlanmadan bırakılması, Sertifika Şeffaflığı aracılığıyla açıklama gerektiren sertifikaların açıklanmaması durumunda <ph name="PRODUCT_NAME" /> ürününün bu sertifikalara güvenmeyeceği anlamına gelir. Bir URL kalıbı bu biçimi uygular (https://www.chromium.org/administrators/url-blocklist-filter-format). Bununla birlikte, belirli bir ana makine adı için sertifikaların geçerliliği şema, bağlantı noktası veya yoldan bağımsız olduğundan, <ph name="PRODUCT_NAME" /> yalnızca URL'nin ana makine adı bölümünü dikkate alır. Joker karakter içeren ana makine adları desteklenmez.</translation> +<translation id="6969332115615661188">Video girişini devre dışı bırak</translation> <translation id="6972540544240464302">Görev planlayıcı yapılandırması seç</translation> <translation id="6975533677426693807">PDF dosyalarını her zaman dahili PDF görüntüleyiciyi kullanarak aç</translation> <translation id="6979158407327259162">Google Drive</translation> @@ -5969,6 +6044,7 @@ <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> öğesine kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation> <translation id="6990736882800900101"><ph name="BLANK_PAGE_NAME" /> sayfasını hedefleyerek açılan tüm pop-up'lara, pop-up'ı açmak isteyen sayfayla etkileşimde bulunma izni ver. Bu izin, pop-up'ı açan sayfa böyle bir etkileşimi açıkça devre dışı bırakmadığı sürece verilir. </translation> +<translation id="6992943675460798920">Kullanıcıların ekran görüntüsü almasına veya video kaydı yapmasına izin ver</translation> <translation id="6994082778848658360">Yerleşik güvenli öğe donanımının bu özellikle uyumlu olması halinde iki etmenli kimlik doğrulama sunmak için nasıl kullanılabileceğini belirtir. Kullanıcının fiziksel varlığını algılamak için makinenin güç düğmesi kullanılır. "Devre dışı" seçilirse ikinci etmen sunulmaz. @@ -5988,8 +6064,10 @@ <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> tercihleri</translation> <translation id="7007283257527015835">Protokol işleyicinin varsayılan olarak ayarlanıp ayarlanmayacağını gösteren bir boole flag'i.</translation> <translation id="7008308728445338159">DNS müdahale kontrolü etkin</translation> +<translation id="7009043124653876961">Kullanıcılar yazarken emoji önerileri gösterilmesini devre dışı bırak</translation> <translation id="7010006999849135962">Uzaktan erişim ana makinesi için PIN'siz kimlik doğrulamayı etkinleştir</translation> <translation id="7013484314513229844">Prize takılıyken otomatik başla özelliğini etkinleştir</translation> +<translation id="7014427417852575165">Gelişmiş Koruma Programı'na kaydolan kullanıcılara ekstra korumalar sunulur</translation> <translation id="7016587686120059767">Misafir modunu devre dışı bırak</translation> <translation id="7016736684656067099">Politikayı 1 değerine ayarlamak tüm web sitelerde görsellere izin verir. Politikayı 2 değerine ayarlamak görselleri engeller. @@ -6038,9 +6116,11 @@ <translation id="7039815268521168329">İlk kurulum sırasında Google Asistan Voice Match akışını göster</translation> <translation id="7040229947030068419">Örnek değer:</translation> <translation id="7044883996351280650">Android yedekleme ve geri yükleme hizmetini kontrol etme</translation> +<translation id="7046113122884041950">Smart Lock'a izin verme</translation> <translation id="7046997898355294677">Kullanıcı kapatana dek gizlilik uyarılarını göster</translation> <translation id="7047495632846973438">Görüntü yakalama izinleri politikasının kontrol edilip edilmediğini veya atlanıp atlanmadığını belirtir.</translation> <translation id="7055022222176591388">Eski <ph name="FLASH_PLUGIN_NAME" /> eklentisine izin verme</translation> +<translation id="7062803946218028349">Telefon Merkezi'nin etkinleştirilmesine izin ver</translation> <translation id="7066292150801784098">Uzaktan destek oturumlarında yükseltilmiş pencerelerle uzaktan kullanıcı etkileşimini devre dışı bırak</translation> <translation id="706669471845501145">Sitelerin masaüstü bildirimi göstermesine izin ver</translation> <translation id="70681795425744184">CRD'nin uzak bir ana makineden proxy kullanılarak gelen WebAuthn API isteklerini yürütmesine izin verme.</translation> @@ -6049,6 +6129,7 @@ <translation id="7072567600438630966">Telefon Merkezi'nin etkinleştirilmesine izin ver.</translation> <translation id="7074437930865599190">User-Agent dizesi ana sürümünü 99'da dondur</translation> <translation id="707988220162760379">PDF dosyalarını her zaman harici bir PDF görüntüleyici kullanarak aç</translation> +<translation id="7081699207881888532">Kullanıcılar yazarken emoji önerileri gösterilmesini etkinleştir</translation> <translation id="7081784525008938771">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa video oynatılırken kullanıcı boşta olarak algılanmaz. Böylece hiçbir zaman boşta kalma gecikmesi, ekran karartma gecikmesi, ekran kapatma gecikmesi ve ekran kilitleme gecikmesi süreleri dolmaz ve ilgili işlemler uygulanmaz. Politika, Devre Dışı değerine ayarlanırsa video etkinliğine rağmen sistem, kullanıcıları boşta olarak algılayabilir.</translation> @@ -6311,6 +6392,7 @@ Bu politika ayarlanmazsa, otomatik temizleme varsayılan yerleşik stratejiyi kullanır. Şu an bu "RemoveLRUIfDormant" stratejisidir.</translation> <translation id="733381360015511815">Zorunlu yüklenmiş Erişime Kapalı Web Uygulamaları listesini yapılandır</translation> <translation id="7334517274921831425">Kullanıcıların <ph name="PRODUCT_OS_NAME" /> üzerinde <ph name="BOREALIS_NAME" /> kullanmasına izin verilsin</translation> +<translation id="7334639219471717734">Kullanıcıların cihazlarında Smart Lock ile oturum açmasına izin verme</translation> <translation id="7336785017449297672">Saat ve saat dilimi ayarlarını kontrol eder.</translation> <translation id="7336878834592315572">Oturum süresince çerezleri tutma</translation> <translation id="7338217396351647423">Politikanın ayarlanması, ARC çalışma zamanına devredilecek politika grubunu belirtir. Yöneticiler bunu, otomatik olarak yüklenecek Android uygulamalarını seçmek için kullanabilir. Değeri, geçerli JSON biçiminde girin. @@ -6320,6 +6402,7 @@ <translation id="7340034977315324840">Cihaz etkinlik zamanlarını rapor et</translation> <translation id="7343004974628511824">DNS müdahale kontrolleri gerçekleştir</translation> <translation id="7343497214039883642">Cihazlar için kurumsal yazıcı yapılandırma dosyası</translation> +<translation id="7357148531287978404">Ses girişini devre dışı bırak</translation> <translation id="7358012133037776875">Pencere yerleşimi izninin otomatik olarak verileceği siteleri belirten site URL kalıplarından oluşan bir liste oluşturmanıza imkan verir. Bu durumda sitelerin, cihazların ekranlarıyla ilgili bilgileri görme ve pencere açıp yerleştirmek ya da belirli ekranlarda tam ekran isteği iletmek için bu bilgileri kullanma imkanı artmış olur. Geçerli site URL kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. Joker karakterlere (<ph name="WILDCARD_VALUE" />) izin verilir. Bu politika, yalnızca kaynağa göre eşleşir. Dolayısıyla, URL kalıbındaki yollar yok sayılır. @@ -6574,6 +6657,7 @@ Bu politika yalnızca çocuk kullanıcılar için geçerlidir. Bu politika ayarlandığında, Ebeveyn Erişim Kodu çocuk kullanıcının cihazında doğrulanabilir. Bu politika ayarlanmadığında, Ebeveyn Erişim Kodu çocuk kullanıcının cihazında doğrulanamaz.</translation> +<translation id="7623431489198474050">İçerik koruması için uzaktan onayı devre dışı bırak</translation> <translation id="7628747690141606652">Bil Bakalım Çevirisini Devre Dışı Bırak</translation> <translation id="7629840767216985001">Politikayı True (Doğru) değerine ayarlamak, oturum açma ekranında büyük imleci açar. Politikayı False (Yanlış) değerine ayarlamak, oturum açma ekranında büyük imleci kapatır. @@ -6741,6 +6825,7 @@ Politikayı ayarlamadan bırakırsanız <ph name="DEFAULT_CLIPBOARD_SETTING" /> (etkinse) bütün siteler için geçerli olur. Aksi takdirde kullanıcının kişisel ayarları geçerlidir. Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns adresine bakabilirsiniz. <ph name="WILDCARD_VALUE" />, bu politikada kabul edilen bir değer değildir.</translation> +<translation id="7791215522423893512">Kullanıcıların ekran görüntüsü almasına veya video kaydı yapmasına izin verme</translation> <translation id="7792796937016596423">Kullanıcı, ağ paketi yakalama işlemleri gerçekleştiremez</translation> <translation id="7798441698807517880"><ph name="FLASH_PLUGIN_NAME" /> kullanımdan kaldırıldığı için bu politika, <ph name="PRODUCT_NAME" /> sürüm 89 itibariyle kaldırılmıştır. @@ -6814,6 +6899,7 @@ Öneri: Boşta kaldığında ekranı kilitlemek için askıya alındığında ekran kilidini etkinleştirin ve boşta kalma gecikmesi ile ilgili süre dolduğunda <ph name="PRODUCT_OS_NAME" /> tarafından askıya alma işlemi yapılacak şekilde ayarlayın. Bu politikayı yalnızca ekran kilitleme işleminin askıya alma işleminden epey önce olması istendiğinde veya boşta kalma durumunda askıya alma işleminin yapılmasını istemediğinizde kullanın.</translation> <translation id="7895553628261067384">Uzaktan erişim</translation> +<translation id="789975630884141379">Önerilen içeriği etkinleştir</translation> <translation id="7899952578398457262">Yönetilmeyen cihazlarda cihaz sinyallerini paylaşmak için yönetilen kullanıcılardan izin isteyerek erişim elde et</translation> <translation id="7900469325540540107">Kurumsal profil oluştururken tarama verilerini varsayılan olarak sakla</translation> <translation id="7902040092815978832">Şifre için sayısal klavyeyi gösterir</translation> @@ -6937,6 +7023,7 @@ Bu politika Etkin değerine ayarlanırsa kullanıcı <ph name="LACROS_NAME" /> tarayıcıyı kullanabilir.</translation> <translation id="8020222525161221827">Üçüncü taraf Chrome OS kontrolü için Desk API'yi etkinleştirme</translation> <translation id="802147957407376460">Ekranı 0 derece döndür</translation> +<translation id="8021777486638359878">Ses çalarken kullanıcıyı işlem yapmıyor olarak değerlendir</translation> <translation id="80243978433618492">URL parametreleriyle ilgili hiçbir filtrelemeye izin verme.</translation> <translation id="8025620823136567878">Uluslararası klavye kısayolları, tuşların glifiyle değil klavyedeki yeriyle eşleştirilir.</translation> <translation id="802776363472387903"><ph name="PLUGIN_VM_NAME" /> resminin SHA-256 karması.</translation> @@ -7311,6 +7398,7 @@ <translation id="8378266419596669629">Bu sitelerde yerel yazı tipleri iznini engelle</translation> <translation id="8379317372795444261">HTTP bağlantılarında <ph name="BASIC_AUTH" /> kimlik doğrulamasına izin ver</translation> <translation id="8381678031726288574">U2F API'nin kullanımdan kaldırılmasıyla ilgili varsayılan ayarları uygula.</translation> +<translation id="8381774264911275515">Oturum açma sırasında, SAML Tek Oturum Açma Çerezlerinin kullanıcı oturumuna aktarılmasını devre dışı bırak</translation> <translation id="8382184662529825177">Cihazda içerik koruma için uzak onay kullanımını etkinleştir</translation> <translation id="838870586332499308">Veri dolaşımını etkinleştir</translation> <translation id="8393850527597048037">Sadece Platform</translation> @@ -7425,6 +7513,7 @@ Uyarı: Kullanıcıların yazılım güncellemelerini ve kritik güvenlik düzeltmelerini almasını engelleyebileceği için sürüm kısıtlamalarının yapılandırılması önerilmez. Güncellemeleri belirli bir sürüm ön ekiyle sınırlamak, kullanıcıları risk altında bırakabilir.</translation> <translation id="8508489378025029342">Cihaz etkinlik zamanı raporlamasını etkinleştir</translation> +<translation id="8511192250554640451">Arka plandaki JavaScript zamanlayıcılarının kısıtlanmasının, Chrome mantığı tarafından kontrol edilmesine ve kullanıcılar tarafından yapılandırılmasına izin ver</translation> <translation id="8519264904050090490">Yönetilen kullanıcı manuel istisna URL'leri</translation> <translation id="8519516251436131647">Erişilebilirlik özellikleri kısayollarını etkinleştirin. @@ -7833,6 +7922,7 @@ <translation id="8921669704201370845">Yönetilen profil için <ph name="PRODUCT_NAME" /> bulut raporlamasını etkinleştir</translation> <translation id="8922231993239705844">Fare imlecini vurgulamayı devre dışı bırak</translation> <translation id="8922494933893518624">Güvenli olmayan bağlamlarda WebSQL kullanımının etkinleştirilmesini zorunlu tut.</translation> +<translation id="8923028772162236077">Varsayılan URL'yi görüntüle</translation> <translation id="8930064580550462145">Kilit ekranı üzerinden giriş yapılırken <ph name="PRODUCT_OS_NAME" />, bir sunucu (çevrimiçi) veya önbelleğe alınmış bir şifre (çevrimdışı) ile kimlik doğrulaması yapabilir. Bu politika, -2 değerine ayarlandığında <ph name="POLICY" /> politikasının giriş ekranı çevrimdışı oturum açma süre sınırının değeriyle eşleşir. @@ -8073,6 +8163,7 @@ Yeniden başlatmanın ardından kullanıcı oturumu yeniden açılır.</translation> <translation id="9160028464653564229">Hiçbir sitenin Serial API'si üzerinden seri bağlantı noktalarına erişim izni istemesine izin verme</translation> +<translation id="9162444960513782569">Arka plandaki JavaScript zamanlayıcılarını kısıtlamaya zorlama</translation> <translation id="916461878260574432">İşletim sistemi güncelleme yükleri için P2P kullanılıp kullanılmayacağını belirler. Doğru değerine ayarlanırsa cihazlar, LAN üzerindeki güncelleme yüklerini paylaşıp tüketmeye çalışarak internet bant genişliği kullanımını ve sıkışıklığı potansiyel olarak azaltır. Güncelleme yükü LAN'da mevcut değilse cihaz, bir güncelleme sunucusundan indirme işlemine geçer. Yanlış değerine ayarlanırsa P2P kullanılmaz. @@ -8088,6 +8179,7 @@ Bu politika geçici bir çözüm olup gelecekteki <ph name="PRODUCT_NAME" /> sürümlerinden kaldırılacaktır. Politikanın kaldırılmasından sonra <ph name="PRODUCT_NAME" />, her zaman ilave DNS türlerini sorgulayabilecektir.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" />, Dosyalar uygulamasında Drive'ı devre dışı bırak</translation> +<translation id="9180108183162961002">Tarayıcıya misafir girişlerine izin ver</translation> <translation id="9185963199234034321">Giriş ekranında yüksek kontrastı etkinleştir ve kullanıcının bunu geçici olarak devre dışı bırakmasına izin ver</translation> <translation id="9187743794267626640">Harici depolama birimi eklemeyi devre dışı bırak</translation> <translation id="9190022798664427644">Mono sesi etkinleştir</translation> @@ -8102,6 +8194,7 @@ <translation id="9200828125069750521">POST kullanan resim URL'si için parametreler</translation> <translation id="9204863016826119209">Şirket anahtarları, yüklenmiş ve bu politikada listelenmiş olan Android uygulamaları tarafından kullanılabilir.</translation> <translation id="9207596996305971030">Giriş/çıkış etkinliklerini raporlama</translation> +<translation id="9210647066889383361">Kullanıcıların cihazlarında Smart Lock ile oturum açmasına izin ver</translation> <translation id="9213751049772256263">Tüm varyasyonları devre dışı bırakma</translation> <translation id="9217154963008402249">İzleme amaçlı ağ paketlerinin sıklığı</translation> <translation id="9220314833408124365">Varsayılan yönlendirme politikası olarak "no-referrer-when-downgrade" kullan</translation> @@ -8150,6 +8243,7 @@ <translation id="966425658642788645">Varsayılan davranışı uygula</translation> <translation id="971677226939413180">Resim olarak yazdır seçeneği kullanıcı tarafından seçilemez.</translation> <translation id="974349541138387272">İstenen DNS-over-HTTPS çözümleyicisinin URI şablonunu belirler</translation> +<translation id="978658824596356870">24 saatlik biçim</translation> <translation id="979467274961593903">Uzaktan hata ayıklama kullanımına izin verme</translation> <translation id="980218166381006412">Politika, Etkin değerine ayarlanırsa arka plan modu açılır. Arka plan modunda, OS oturum açma işlemi sırasında bir <ph name="PRODUCT_NAME" /> işlemi başlatılır ve bu işlem son tarayıcı penceresi kapatıldığında çalışmaya devam ederek arka plan uygulamaları ile tarama oturumunun etkin kalmasına izin verir. Arka plan işlemi, sistem tepsisinde bir simge görüntüler ve istendiğinde oradan kapatılabilir.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index 808d278..82b9754 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -52,6 +52,7 @@ Nếu bạn không đặt chính sách này, người dùng được quản lý sẽ không thể sử dụng tính năng này theo mặc định, nhưng những người dùng khác có thể sử dụng tính năng này.</translation> <translation id="1035860095382451169">Bật biểu tượng khóa trên thanh địa chỉ cho các kết nối an toàn</translation> +<translation id="1037470927044831850">Cho phép các trang web nhắc người dùng chia sẻ luồng video màn hình</translation> <translation id="1040125341954178855">Tính năng này đã bị loại bỏ trong Chrome 100. Nếu bạn đặt chính sách này thành Bật, nội dung đề xuất sẽ xuất hiện cho các ứng dụng mà trước đó người dùng đã cài đặt trên các thiết bị khác. Các nội dung đề xuất này sẽ xuất hiện trong trình chạy sau nội dung đề xuất về ứng dụng trên thiết bị nếu người dùng chưa nhập nội dung tìm kiếm nào. @@ -284,6 +285,7 @@ Nếu bạn không đặt chính sách này hoặc giá trị sau khi thay thế không phải là tên máy chủ hợp lệ, thì tên máy chủ sẽ không được đặt trong yêu cầu DHCP.</translation> <translation id="1257550411839719984">Đặt thư mục tải xuống mặc định</translation> +<translation id="1262993197422487260">Không hiện nút hiển thị mật khẩu trên màn hình đăng nhập và màn hình khoá</translation> <translation id="1265053460044691532">Hạn chế thời gian người dùng được xác thực qua SAML có thể đăng nhập ngoại tuyến</translation> <translation id="1271811620059192171">Bật nhóm chính sách không thể phân chia</translation> <translation id="127264587838521316">Bật yêu cầu cài đặt tiện ích của <ph name="PRODUCT_NAME" /></translation> @@ -337,6 +339,7 @@ Nếu bạn chọn "Bắt buộc" (2), người dùng sẽ không thể ngăn bộ chọn hồ sơ mở ra. Bộ chọn hồ sơ sẽ hiển thị ngay cả khi chỉ có một hồ sơ.</translation> <translation id="1339174690935954950">Ngăn người dùng gửi ý kiến phản hồi</translation> +<translation id="1340053691042184658">Không cho phép đăng nhập vào trình duyệt với tư cách khách</translation> <translation id="1342918903685430097">Có thể định cấu hình phiên bản <ph name="PRODUCT_OS_NAME" /> tối thiểu cho thiết bị này.</translation> <translation id="1343128241903870688">Tắt tính năng báo cáo thông tin về ứng dụng trên thiết bị</translation> <translation id="1347198119056266798">Chính sách này không còn dùng nữa, thay vào đó hãy sử dụng <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> và <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Chính sách này sẽ bị bỏ qua nếu bạn đặt chính sách <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> hoặc <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (không dùng nữa). @@ -514,6 +517,7 @@ <translation id="1503969899251962413">Việc đặt chính sách này sẽ chỉ định khóa cấp phép <ph name="PLUGIN_VM_NAME" /> cho thiết bị này. Chúng tôi đã xóa chính sách này trong phiên bản M94.</translation> +<translation id="1507373253059695424">Luôn bật tính năng màn hình bảo vệ quyền riêng tư trên màn hình đăng nhập</translation> <translation id="150857982247452081">Cho phép bạn thiết lập danh sách các giao thức (và danh sách liên kết gồm các mẫu nguồn được phép cho mỗi giao thức) có thể chạy một ứng dụng bên ngoài mà không cần nhắc người dùng. Bạn không được thêm dấu phân cách ở phần cuối khi liệt kê giao thức, vì vậy, hãy liệt kê là "skype" thay cho "skype:" hoặc "skype://". Nếu bạn đặt chính sách này, thì một giao thức sẽ chỉ được phép chạy một ứng dụng bên ngoài mà không cần nhắc theo chính sách khi giao thức đó được liệt kê, và nguồn của trang web đang cố chạy giao thức khớp với một trong các mẫu nguồn thuộc danh sách allowed_origins của giao thức đó. Nếu bạn đặt một trong hai điều kiện thành tắt, thì chính sách sẽ không bỏ qua lời nhắc chạy giao thức bên ngoài. @@ -689,6 +693,7 @@ Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi hay ghi đè chính sách này. Nếu bạn không đặt chính sách này, thì ban đầu, tính năng đọc chính tả sẽ tắt trên màn hình đăng nhập nhưng người dùng có thể bật bất cứ lúc nào.</translation> +<translation id="1673097259557436886">Luôn cho các trang web biết rằng không có phương thức thanh toán nào được lưu</translation> <translation id="1674287836076801014">SAML</translation> <translation id="1675002386741412210">Hỗ trợ trên:</translation> <translation id="167514072300004091">Nếu bạn đặt chính sách này thành 3, thì các trang web có thể yêu cầu quyền truy cập vào thiết bị USB được kết nối. Nếu bạn đặt chính sách này thành 2, thì các trang web không thể truy cập vào thiết bị USB được kết nối. @@ -765,6 +770,7 @@ Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này.</translation> <translation id="1736269219679256369">Cho phép tiến hành từ trang cảnh báo SSL</translation> +<translation id="1744340218280697033">Không cho phép cha mẹ thêm tài khoản được giám sát</translation> <translation id="1751429117283165017">Khi đặt chính sách này, bạn có thể tạo danh sách các mẫu URL để chỉ định những trang web không được phép yêu cầu người dùng cấp quyền ghi các tệp hoặc thư mục trong hệ thống tệp của hệ điều hành máy chủ. Khi bạn không đặt chính sách này, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> (nếu được đặt) sẽ áp dụng cho tất cả trang web. Nếu không, các tùy chọn cài đặt cá nhân của người dùng sẽ được áp dụng. @@ -782,6 +788,7 @@ Lưu ý: Để xem thêm ví dụ cụ thể, hãy truy cập vào trang The Chromium Projects (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation> <translation id="1767673020408652620">Bật Ứng dụng đề xuất khi hộp tìm kiếm ở trạng thái 0</translation> +<translation id="1770071413238151235">Định dạng đồng hồ 12 giờ</translation> <translation id="1780323582106687813">Chính sách này không còn dùng nữa, vui lòng sử dụng chính sách "<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />". Nếu bạn đặt chính sách này, thì hệ thống sẽ chỉ định những tiện ích không nằm trong danh sách tiện ích bị cấm. Nếu bạn muốn cấm tất cả tiện ích, hãy sử dụng giá trị <ph name="ALL_EXTENSIONS" /> cho <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" />. Khi đó, người dùng chỉ có thể cài đặt các tiện ích được cho phép rõ ràng. Theo mặc định, tất cả tiện ích đều được phép. Tuy nhiên, nếu bạn đã cấm các tiện ích theo chính sách, hãy sử dụng danh sách các tiện ích được phép để thay đổi chính sách đó.</translation> @@ -828,6 +835,7 @@ </translation> <translation id="1808715480127969042">Chặn cookie trên các trang web này</translation> <translation id="1810261428246410396">Cho phép sử dụng tính năng Chia sẻ Internet tức thì.</translation> +<translation id="1813638828646876133">Bật chế độ tự động gửi mã PIN trên màn hình đăng nhập và màn hình khoá</translation> <translation id="1813672770917912317">Cho phép bạn thiết lập liệu <ph name="PRODUCT_NAME" /> sẽ chạy công cụ JavaScript v8 bật trình biên dịch JIT (Just In Time) hay không. Việc tắt JavaScript JIT có nghĩa là <ph name="PRODUCT_NAME" /> có thể hiển thị nội dung web chậm hơn và cũng có thể vô hiệu hóa các phần của JavaScript (bao gồm cả WebAssembly). Việc tắt JavaScript JIT có thể cho phép <ph name="PRODUCT_NAME" /> hiển thị nội dung web ở một cấu hình an toàn hơn. @@ -931,6 +939,7 @@ Nếu bạn không đặt chính sách này, hệ thống sẽ tắt tính năng xác thực <ph name="HTTP_NEGOTIATE" /> trên Android.</translation> <translation id="1923704782248889851">Bật tính năng nhập bằng giọng nói</translation> <translation id="1925529914257504750">Bật P2P cho tính năng tự động cập nhật</translation> +<translation id="1928355425032308464">Bật đầu vào video</translation> <translation id="1930094135927166199">Tắt tính năng chia sẻ nguồn điện qua USB</translation> <translation id="1930127294345368978">Số trang tính tối đa được phép sử dụng cho một lệnh in</translation> <translation id="193259052151668190">Danh sách cho phép các thiết bị USB có thể tách</translation> @@ -1018,6 +1027,7 @@ Nếu bạn không đặt chính sách này hoặc đặt chính sách thành false, thì thông tin này sẽ không được báo cáo. Nếu bạn đặt thành true, thì thông tin về múi giờ hiện đã đặt của thiết bị sẽ được báo cáo.</translation> <translation id="199764499252435679">Cho phép cập nhật thành phần trong <ph name="PRODUCT_NAME" /></translation> +<translation id="1997943707974344423">Cho phép sử dụng Smart Lock</translation> <translation id="1998504583649140526">Cài đặt yêu cầu mạng riêng</translation> <translation id="1999000620918508488">Buộc màn hình đăng nhập hiển thị hoặc ẩn thông tin hệ thống.</translation> <translation id="1999942889260716089">Nếu bạn thiết lập chính sách này thành Đúng (True), thì tính năng đề xuất cụm từ tìm kiếm sẽ bật trong thanh địa chỉ của <ph name="PRODUCT_NAME" />. Nếu bạn thiết lập chính sách này thành Sai (False), thì tính năng đề xuất cụm từ tìm kiếm sẽ tắt. @@ -1038,6 +1048,7 @@ <translation id="2006530844219044261">Quản lý nguồn</translation> <translation id="2006954055163088863">Coi người dùng là không hoạt động khi video đang phát</translation> <translation id="2008514891623783266">Chính sách xử lý IP của WebRTC</translation> +<translation id="2012296492055302633">Luôn bật màn hình bảo vệ quyền riêng tư</translation> <translation id="2013285471046373727">Chỉ định cách một ứng dụng được đặt. OPTIONAL: Ứng dụng không được cài đặt tự động, nhưng người dùng có thể cài đặt. Đây là giá trị mặc định nếu bạn không chỉ định chính sách này. PRELOAD: Ứng dụng được cài đặt tự động nhưng người dùng có thể gỡ cài đặt. FORCE_INSTALLED: Ứng dụng được cài đặt tự động và người dùng không thể gỡ cài đặt. BLOCKED: Ứng dụng bị chặn và không cài đặt được. Nếu ứng dụng đã được cài đặt theo chính sách trước đó, thì ứng dụng sẽ bị gỡ cài đặt.</translation> <translation id="2014757022750736514">Kiểm soát hoạt động của màn hình đăng nhập, nơi người dùng đăng nhập vào tài khoản của họ. Các mục cài đặt bao gồm người có thể đăng nhập, loại tài khoản được cho phép, loại phương thức xác thực nên sử dụng, cũng như khả năng truy cập chung, phương thức nhập và cài đặt ngôn ngữ.</translation> <translation id="201557587962247231">Tần suất tải lên báo cáo trạng thái thiết bị</translation> @@ -1082,6 +1093,7 @@ <translation id="2057317273526988987">Cho phép truy cập vào một danh sách các URL</translation> <translation id="2058055310819710697">Kích hoạt Chế độ nhà phát triển ứng dụng tách biệt</translation> <translation id="205807990145127714">Dữ liệu đo từ xa để báo cáo khi xảy ra sự kiện tác động đến cường độ tín hiệu.</translation> +<translation id="2060153898336610735">Tự động dựa trên ngôn ngữ hiện tại</translation> <translation id="2061123930713023976">Cho phép dùng kỹ thuật chặn bắt gói tin qua mạng để gỡ lỗi</translation> <translation id="2061810934846663491">Định cấu hình tên miền bắt buộc cho máy chủ truy cập từ xa</translation> <translation id="2062632109797189011">Bật lại API window.webkitStorageInfo không được dùng nữa</translation> @@ -1113,6 +1125,7 @@ <translation id="209586405398070749">Kênh ổn định</translation> <translation id="2096932573113293941">Yêu cầu người dùng cấp quyền để chạy các trình bổ trợ đòi hỏi uỷ quyền</translation> <translation id="2098658257603918882">Bật tính năng báo cáo sử dụng và dữ liệu liên quan đến sự cố</translation> +<translation id="2099380339157427935">Không hiện nút đăng xuất trong khay</translation> <translation id="2104418465060359056">Báo cáo thông tin về Tiện ích và Plugin</translation> <translation id="2106627642643925514">Ghi đè chế độ in mã PIN mặc định. Nếu không có chế độ này, thì chính sách này sẽ bị bỏ qua.</translation> <translation id="2107563874993284076">Nếu bạn đặt chính sách này thành Bật, người dùng sẽ có thể sử dụng tính năng Chia sẻ tệp trong mạng của <ph name="PRODUCT_NAME" />. Nếu bạn đặt chính sách này thành Tắt, người dùng sẽ không sử dụng được tính năng này.</translation> @@ -1146,6 +1159,7 @@ <translation id="2135335181634291106">Nếu bạn bật <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" />, thì thao tác đặt <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> sẽ chỉ định URL cho biểu tượng yêu thích của nhà cung cấp dịch vụ tìm kiếm mặc định. Nếu bạn không đặt <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" />, thì sẽ không có biểu tượng cho nhà cung cấp dịch vụ tìm kiếm.</translation> +<translation id="2144236546337326489">Cho phép bật chính sách tiếp tục tác vụ trong Trung tâm điều khiển điện thoại</translation> <translation id="2145735238144543545">Chứng chỉ ứng dụng bắt buộc</translation> <translation id="2146103669166779785">Màu theo hệ thập lục phân sẽ được dùng để tạo và áp dụng một giao diện cho trình duyệt.</translation> <translation id="2148769554831004951">Buộc WebSQL bật.</translation> @@ -1198,6 +1212,7 @@ <translation id="2171952274731262470">Số lần trì hoãn và các hành động cần thực hiện khi thiết bị ở trạng thái rảnh và chạy bằng pin</translation> <translation id="2175353308236295184">Đối tượng cấu hình JSON dành riêng cho ứng dụng có một tập hợp gồm các cặp khóa-giá trị, chẳng hạn như '"managedConfiguration": { "key1": value1, "key2": value2 }'. Các khóa được định nghĩa trong tệp kê khai ứng dụng.</translation> <translation id="2176115444876446233">Ngăn người dùng thu thập dữ liệu theo dõi hoạt động trên toàn hệ thống.</translation> +<translation id="2177696016354404697">Luôn tắt màn hình bảo vệ quyền riêng tư</translation> <translation id="2178899310296064282">Buộc sử dụng ít nhất Chế độ hạn chế trung bình trên YouTube</translation> <translation id="2180958780733364832">Kiểm soát việc sử dụng Chế độ không có giao diện người dùng</translation> <translation id="2182291258410176649">Người dùng sẽ quyết định có bật tính năng sao lưu và khôi phục hay không</translation> @@ -1304,6 +1319,8 @@ Người dùng không thể thay đổi hay ghi đè chế độ cài đặt này. Lưu ý: Với chính sách này, tiêu đề X-GoogApps-Allowed-Domains sẽ được thêm vào mọi yêu cầu HTTP và HTTPS gửi đến tất cả các miền google.com, như mô tả trong https://support.google.com/a/answer/1668854.</translation> +<translation id="2282174652047982960">Luôn dùng ứng dụng DNS tích hợp sẵn nếu có</translation> +<translation id="2288506601233091655">Không cho phép xoá nhật ký lệnh in</translation> <translation id="2289265947759479962">Chính sách này kiểm soát xem có báo cáo thông tin phiên bản, chẳng hạn như phiên bản hệ điều hành, nền tảng hệ điều hành, cấu trúc hệ điều hành, phiên bản <ph name="PRODUCT_NAME" /> và kênh <ph name="PRODUCT_NAME" /> hay không. Khi bạn không đặt chính sách <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> hoặc đặt thành tắt, thì chính sách này sẽ bị bỏ qua. @@ -1341,6 +1358,7 @@ <translation id="2309284543927494965">Chặn bản cập nhật</translation> <translation id="2309341709647905294">Không báo cáo thông tin về những thiết bị ngoại vi được cắm vào thiết bị này</translation> <translation id="2309390639296060546">Cài đặt vị trí địa lý mặc định</translation> +<translation id="2318583605563438459">Cho phép cha mẹ thêm tài khoản được giám sát</translation> <translation id="2331354174913096226">Mẫu URI của trình phân giải DNS qua HTTPS mà bạn muốn. Để chỉ định nhiều trình phân giải DNS qua HTTPS, hãy phân tách các mẫu URI tương ứng bằng dấu cách. Nếu đặt DnsOverHttpsMode thành <ph name="SECURE_DNS_MODE_SECURE" />, thì bạn phải đặt chính sách này và không được để trống. @@ -1449,6 +1467,7 @@ Nếu bạn không đặt chính sách này, thì màn hình bảo vệ quyền riêng tư sẽ tắt lúc ban đầu nhưng người dùng vẫn có thể kiểm soát.</translation> <translation id="2413899611035194909">Hiển thị các tuỳ chọn hỗ trợ tiếp cận trong trình đơn ở khay hệ thống của màn hình đăng nhập</translation> <translation id="2415715982424988916">Khám phá (được hỗ trợ kể từ phiên bản 91)</translation> +<translation id="2421400544595297401">Không cho phép người dùng chưa liên kết sử dụng ứng dụng Android</translation> <translation id="2421677964966613267">Chính sách này không còn dùng trong M88 và Chrome không hỗ trợ Flash nữa. Nếu đặt chính sách này, bạn có thể thiết lập danh sách các mẫu URL chỉ định những trang web không thể chạy trình bổ trợ <ph name="FLASH_PLUGIN_NAME" />. Nếu bạn không đặt chính sách này, <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> (nếu được đặt) sẽ áp dụng cho tất cả trang web. Nếu không, tùy chọn cài đặt cá nhân của người dùng sẽ được áp dụng. @@ -1483,6 +1502,7 @@ <translation id="2436302465999055995">Đặt <ph name="LACROS_NAME" /> làm trình duyệt duy nhất sử dụng được (chưa triển khai)</translation> <translation id="2439187682308339104">Không cho phép trang web nào yêu cầu quyền truy cập vào thiết bị HID thông qua API WebHID</translation> <translation id="2439733504887695659">Bật chế độ đóng cảnh báo mật khẩu bị lộ cho thông tin xác thực đã nhập</translation> +<translation id="2446244536806499267">Không coi người dùng là không hoạt động khi âm thanh đang phát</translation> <translation id="2448315169529769573">Nếu bạn đặt chính sách này thành Bật, <ph name="PRODUCT_OS_NAME" /> sẽ báo cáo lại cho Google số liệu sử dụng và dữ liệu chẩn đoán, bao gồm cả báo cáo sự cố. Nếu bạn đặt chính sách này thành Tắt, báo cáo số liệu sử dụng và dữ liệu chẩn đoán sẽ tắt. Nếu bạn không đặt chính sách này, báo cáo số liệu sử dụng và dữ liệu chẩn đoán sẽ tắt trên các thiết bị không được quản lý và sẽ bật trên các thiết bị được quản lý.</translation> @@ -1681,6 +1701,7 @@ <translation id="2625398797484317969">Kiểm soát các chế độ cài đặt của tính năng Thông tin nhanh.</translation> <translation id="262740370354162807">Cho phép gửi tài liệu tới <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2633084400146331575">Bật tính năng phản hồi bằng giọng nói</translation> +<translation id="2633907568797306353">Cho phép bật thông báo của Trung tâm điều khiển điện thoại</translation> <translation id="2635872253077105112">Nếu bạn đặt chính sách này, hệ thống sẽ kiểm soát danh sách các trang web sẽ mở trong trình duyệt thay thế. Mỗi mục được coi là một quy tắc để mở nội dung nào đó trên trình duyệt thay thế. <ph name="PRODUCT_NAME" /> sử dụng các quy tắc đó khi chọn có mở một URL trên trình duyệt thay thế hay không. Khi phần bổ trợ <ph name="IE_PRODUCT_NAME" /> đang bật, <ph name="IE_PRODUCT_NAME" /> sẽ chuyển lại về <ph name="PRODUCT_NAME" /> khi các quy tắc không trùng khớp. Nếu các quy tắc xung đột với nhau thì <ph name="PRODUCT_NAME" /> sẽ sử dụng quy tắc cụ thể nhất. Nếu bạn không đặt chính sách này, thì hệ thống sẽ không thêm trang web nào vào danh sách này. @@ -1762,6 +1783,7 @@ <translation id="2725855586003209701">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì thiết bị đã đăng ký sẽ báo cáo danh sách người dùng thiết bị đã đăng nhập gần đây. Nếu bạn đặt chính sách này thành Tắt, thiết bị đã đăng ký sẽ không báo cáo danh sách người dùng.</translation> +<translation id="2730200383593984228">Cho phép người dùng chưa liên kết sử dụng ứng dụng Android</translation> <translation id="2730419309754848345">Lựa chọn In tệp PDF dưới dạng hình ảnh mặc định</translation> <translation id="2731299561202635374">Chính sách này sẽ kiểm soát quy trình kiểm tra URL theo thời gian thực để xác định các URL không an toàn. @@ -1906,6 +1928,7 @@ <translation id="2841911109921764691">Nút bên phải là nút chính trên màn hình đăng nhập</translation> <translation id="284288632677954003">URL của một tệp XML chứa các URL sẽ không bao giờ kích hoạt quá trình chuyển trình duyệt.</translation> <translation id="2846689894646472396">Chu kỳ kiểm tra các sự kiện mạng tính bằng mili giây.</translation> +<translation id="2847788524147474533">Chính sách thiết bị trên nền tảng được ưu tiên hơn chính sách thiết bị trên đám mây</translation> <translation id="2849275596224278787">Ẩn các tuỳ chọn hỗ trợ tiếp cận trong trình đơn ở khay hệ thống của màn hình đăng nhập</translation> <translation id="2853649500575897584">Không chặn các điểm tiện ích cũ trong Quá trình chạy trình duyệt</translation> <translation id="285480231336205327">Bật chế độ tương phản cao</translation> @@ -1913,6 +1936,8 @@ <translation id="2856674246949497058">Hạ cấp và tiếp tục sử dụng phiên bản đích nếu phiên bản hệ điều hành mới hơn phiên bản đích. Thực hiện powerwash trong quá trình này.</translation> <translation id="2866619962692161453">Loại siêu chính sách</translation> <translation id="2866726566162790531">Danh sách nguồn gốc cho phép mọi giao thức xác thực HTTP</translation> +<translation id="2868756546751652023">Cho phép người dùng sử dụng tính năng Chia sẻ Internet tức thì</translation> +<translation id="286898786908566256">Cho phép người dùng gửi số điện thoại từ Chrome đến thiết bị Android của họ</translation> <translation id="2872098849906555324">Tắt tính năng đồng bộ hoá Google Drive</translation> <translation id="2872961005593481000">Tắt</translation> <translation id="2874209944580848064">Lưu ý dành cho thiết bị <ph name="PRODUCT_OS_NAME" /> hỗ trợ ứng dụng Android:</translation> @@ -1973,6 +1998,7 @@ <translation id="2906874737073861391">Danh sách tiện ích trong AppPack</translation> <translation id="2908277604670530363">Số lượng tối đa kết nối đồng thời tới máy chủ proxy</translation> <translation id="2912366658685903301">Định cấu hình màu cho giao diện của trình duyệt</translation> +<translation id="2914283793640833265">Không cho phép bật chính sách tiếp tục tác vụ trong Trung tâm điều khiển điện thoại</translation> <translation id="291853569864365550">Không hiển thị nội dung đề xuất trên trang Thẻ mới</translation> <translation id="2920795918401557243">Chế độ cài đặt này cho phép thu thập dữ liệu theo dõi hoạt động trên toàn hệ thống bằng dịch vụ theo dõi hệ thống. @@ -2073,6 +2099,7 @@ Nếu một chính sách có trong danh sách và chưa phát hành chính thức, thì giá trị của chính sách đó sẽ được áp dụng. Chính sách này không ảnh hưởng đến các chính sách đã phát hành.</translation> +<translation id="3002067315837777719">Không cho phép bật thông báo của Trung tâm điều khiển điện thoại</translation> <translation id="3016255526521614822">Đưa các ứng dụng ghi chú được phép trên màn hình khóa của <ph name="PRODUCT_OS_NAME" /> vào danh sách cho phép</translation> <translation id="3017578958356048910">Trình xem PDF có thể chú thích trong tệp PDF</translation> <translation id="3020623128585817424">Tắt tính năng kiểm tra trình duyệt mặc định khi khởi động</translation> @@ -2261,6 +2288,7 @@ Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này.</translation> <translation id="3168968618972302728">Các chính sách liên quan đến việc xác thực Kerberos.</translation> +<translation id="3169872426103732947">Hiển thị URL mặc định, cho phép người dùng chuyển sang URL đầy đủ</translation> <translation id="3171369832001535378">Mẫu tên máy chủ của mạng thiết bị</translation> <translation id="3177802893484440532">Cần phải kiểm tra OCSP/CRL trực tuyến đối với neo tin cậy cục bộ</translation> <translation id="3180671894201217988">Nếu bạn bật hoặc không đặt chính sách này, thì hệ thống sẽ ngăn chặn phần mềm bên thứ ba đưa mã thực thi vào các quy trình của <ph name="PRODUCT_NAME" />. @@ -2479,6 +2507,7 @@ Chính sách này là tạm thời và sẽ bị xóa trong phiên bản <ph name="PRODUCT_NAME" /> trong tương lai.</translation> +<translation id="3351835664671920945">Mặc định sử dụng bàn phím tiêu chuẩn để nhập mật khẩu</translation> <translation id="3359186795130278362">Bật phiên khách được quản lý và bị hạn chế.</translation> <translation id="33592541385181121">Không bao gồm cổng trong SPN Kerberos đã tạo</translation> <translation id="3360093276083825336">Lưu ý rằng chúng tôi không dùng chính sách này nữa và sẽ xóa khỏi <ph name="PRODUCT_OS_NAME" /> phiên bản 85. Thay vào đó, vui lòng sử dụng <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />. @@ -2519,6 +2548,7 @@ <translation id="3398051852031115795">Hoạt động mặc định của hệ thống (phụ thuộc vào kích thước màn hình)</translation> <translation id="3399859571630358395">Buộc tắt tính năng Ghép nối nhanh (ghép nối Bluetooth nhanh).</translation> <translation id="3404681701763345449">Bật tính năng tích hợp <ph name="GOOGLE_CALENDAR_NAME" />.</translation> +<translation id="3406122462682235653">Không hỏi người dùng (bắt đầu tải xuống ngay)</translation> <translation id="3408078762098350617">Kiểm soát trải nghiệm người dùng đối với các tính năng bị tắt có trong danh sách <ph name="SYSTEM_FEATURES_DISABLE_LIST_POLICY_NAME" />. Nếu bạn đặt chính sách này thành "bị chặn", các tính năng bị tắt sẽ không dùng được nhưng vẫn hiển thị với người dùng. @@ -2594,6 +2624,7 @@ Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi hay ghi đè chính sách. Nếu bạn không đặt chính sách này, thì ban đầu, tính năng chọn để nói sẽ tắt trên màn hình đăng nhập nhưng người dùng có thể bật bất cứ lúc nào.</translation> +<translation id="3483585138745445814">Cho phép người dùng bật tính năng Chia sẻ lân cận</translation> <translation id="348495353354674884">Bật bàn phím ảo</translation> <translation id="3485200437120267231">Tắt tùy chọn chặn đăng nhập</translation> <translation id="3487651201232258606">Máy chủ nhắn tin gốc</translation> @@ -2637,6 +2668,7 @@ <translation id="3528000905991875314">Bật các trang lỗi thay thế</translation> <translation id="3531084733660068324">Cài đặt tính năng giám sát của cha mẹ</translation> <translation id="3536263244905016305">Tắt tính năng tối ưu hóa Web Proxy Auto-Discovery (WPAD) (Tự động phát hiện proxy web)</translation> +<translation id="3538869107794555625">Bật bàn phím ảo ở chế độ máy tính bảng</translation> <translation id="3539103206548425861">Nếu bạn đặt chính sách này, thì video sẽ tự động phát (mà không cần người dùng cho phép) nội dung âm thanh trong <ph name="PRODUCT_NAME" />. Nếu bạn đặt chính sách <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> thành True, thì chính sách này sẽ không có hiệu lực. Nếu bạn đặt chính sách <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> thành False, thì các mẫu URL bạn thiết lập trong chính sách này vẫn có thể phát. Nếu chính sách này thay đổi trong khi <ph name="PRODUCT_NAME" /> đang chạy, chính sách chỉ áp dụng cho các thẻ mới mở. Để biết thông tin chi tiết về mẫu URL hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> @@ -2675,6 +2707,7 @@ <translation id="3568762199045490351">Hàm JavaScript setTimeout() có thời gian chờ 0 ms sẽ được làm tròn thành 1 ms.</translation> <translation id="3574450691573438824">Tắt tính năng tải nhật ký hệ thống của thiết bị lên</translation> <translation id="3575011234198230041">Xác thực HTTP</translation> +<translation id="3575159471980949522">Không cho phép người dùng gửi số điện thoại từ Chrome đến thiết bị Android của họ</translation> <translation id="3577251398714997599">Cài đặt quảng cáo cho các trang web chứa quảng cáo xâm nhập</translation> <translation id="3577628175311752799">Sử dụng chính sách liên kết giới thiệu mặc định no-referrer-when-downgrade.</translation> <translation id="357917253161699596">Cho phép người dùng quản lý chứng chỉ người dùng</translation> @@ -3298,6 +3331,7 @@ <translation id="4187576366596772431">Chặn API WebHID trên các trang web này</translation> <translation id="4190316993598857632">Bật chính sách chỉnh sửa dấu trang</translation> <translation id="4192388905594723944">URL để xác thực mã thông báo xác thực ứng dụng truy cập từ xa</translation> +<translation id="4195698007674066525">Mặc định sử dụng bàn phím số để nhập mật khẩu</translation> <translation id="4203055629055264833">Nếu bạn đặt chính sách này thành Bật hoặc không đặt, thì người dùng có thể đưa trang kết quả mới đây nhất của công cụ tìm kiếm mặc định vào một bảng điều khiển bên bằng cách bật/tắt một biểu tượng trong thanh công cụ. Nếu bạn đặt chính sách này thành Tắt, biểu tượng bật/tắt sẽ bị xoá khỏi thanh công cụ và người dùng sẽ không thể mở bảng điều khiển bên để xem trang kết quả tìm kiếm của công cụ tìm kiếm mặc định.</translation> @@ -3398,6 +3432,7 @@ <translation id="4314538398999793073">Tắt tính năng tra cứu CNAME trong quá trình xác thực Kerberos</translation> <translation id="4320592646346933548">Wi-Fi</translation> <translation id="4322842393287974810">Cho phép ứng dụng kiosk tự động khởi chạy với độ trễ bằng không kiểm soát phiên bản <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="4323412353642577604">Bật chính sách chứng thực từ xa để bảo vệ nội dung</translation> <translation id="4325690621216251241">Thêm một nút đăng xuất vào khay hệ thống</translation> <translation id="4329095223358818804">Cho phép tính năng Trả lời nhanh truy cập vào nội dung đã chọn</translation> <translation id="4330908525441222205">Sử dụng hành vi mặc định đối với Bộ nhớ đệm của ứng dụng</translation> @@ -3432,6 +3467,7 @@ <translation id="4370937370030117032">Không cho phép gửi tên người dùng và tên tệp đến máy in gốc</translation> <translation id="4372704773119750918">Không cho phép người dùng doanh nghiệp là một phần của đa cấu hình (chính hoặc phụ)</translation> <translation id="4373332965635821723">Bật phím tắt hỗ trợ tiếp cận</translation> +<translation id="4377377599658208627">Cho phép các trang web cuộn đến đoạn văn bản cụ thể qua URL</translation> <translation id="4377599627073874279">Cho phép tất cả các trang web hiển thị tất cả hình ảnh</translation> <translation id="437791893267799639">Chưa đặt chính sách, không cho phép di chuyển dữ liệu và ARC</translation> <translation id="4380159792986204036">Cho phép ứng dụng web kiosk mở nhiều cửa sổ trình duyệt trên mọi màn hình</translation> @@ -3584,6 +3620,7 @@ <translation id="4558166110367609724">Tự động bỏ qua Điều khoản dịch vụ (ToS) và tải trình duyệt.</translation> <translation id="4559846397119102037">Cho phép sử dụng <ph name="LACROS_NAME" /></translation> <translation id="4561560385824323005">Cho phép người dùng chọn một bố cục màn hình được thiết lập sẵn để tải</translation> +<translation id="4561940244682063697">Không cho phép các trang web nhắc người dùng chia sẻ luồng video màn hình</translation> <translation id="4562165737444703281">Cho phép người dùng [bật/định cấu hình] dịch vụ chuyển tiếp cổng vào Crostini</translation> <translation id="456686782928669977">Chính sách này kiểm soát việc có tải các quy tắc từ chính sách SiteList của <ph name="IE_PRODUCT_NAME" /> hay không. @@ -3600,6 +3637,28 @@ Nếu bạn tắt hoặc không đặt chính sách này, thì các trang web sẽ không được phép chuyển tới và mở cửa sổ/thẻ mới cùng một lúc.</translation> <translation id="4572577129745420844">Không cho phép người dùng thêm tài khoản Kerberos</translation> <translation id="457430673056611745">Chính sách cấu hình cho OnPrint <ph name="PRODUCT_NAME" /> Enterprise Connector</translation> +<translation id="4576760454200781316">Khi bạn bật tính năng <ph name="PRODUCT_NAME" />, các đồng hồ tính giờ JavaScript ở các thẻ trong nền sẽ được điều tiết và liên kết chặt chẽ sao cho chạy không quá một lần mỗi phút sau khi một trang chạy ở chế độ nền trong 5 phút trở lên. + + Tính năng này tuân thủ tiêu chuẩn web nhưng có thể phá vỡ chức năng + trên một số trang web do khiến một số hành động bị trì hoãn lên đến + một phút. Tuy nhiên, nếu tính năng này bật, mức tiêu thụ CPU và pin sẽ + giảm đáng kể. Hãy xem trang https://bit.ly/30b1XR4 để biết thêm thông tin chi tiết. + + Nếu bạn đặt chính sách này thành bật, thì tính năng này sẽ buộc phải bật và + người dùng sẽ không thể ghi đè tuỳ chọn này. + + Nếu bạn đặt chính sách này thành tắt, thì tính năng này sẽ buộc phải tắt và + người dùng sẽ không thể ghi đè tuỳ chọn này. + + Nếu bạn không đặt chính sách này, thì tính năng này sẽ được kiểm soát theo + logic nội bộ riêng (người dùng có thể định cấu hình thủ công). + + Xin lưu ý rằng chính sách này được áp dụng cho mỗi quy trình kết xuất, trong đó sử dụng giá trị gần đây nhất + của chế độ cài đặt chính sách khi quy trình kết xuất bắt đầu. Cần khởi động lại hoàn toàn + để đảm bảo áp dụng chế độ cài đặt chính sách nhất quán + cho tất cả thẻ đã tải. Việc các quy trình sử dụng những giá trị + khác nhau của chính sách này trong khi chạy sẽ không gây ra vấn đề gì. + </translation> <translation id="4578265298946081589">Không khởi động lại khi đăng xuất người dùng.</translation> <translation id="4581507927311097234">Khoảng thời gian (tính bằng mili giây) kể từ khi không có hoạt động đầu vào của người dùng cho đến thời điểm màn hình bị tắt</translation> <translation id="4582338216073557489">Nếu bạn đặt chính sách này thành Không có, thì <ph name="PRODUCT_NAME" /> sẽ dùng kích thước bộ nhớ đệm mặc định để lưu trữ các tệp đã lưu vào bộ nhớ đệm trên ổ đĩa. Người dùng không thể thay đổi được điều này. @@ -3650,6 +3709,7 @@ * Khi bạn đặt <ph name="FILTER_PLACEHOLDER" /> thành <ph name="EMPTY_DICTIONARY" />, việc chọn chứng chỉ máy khách sẽ không có các hạn chế bổ sung. Xin lưu ý rằng các bộ lọc mà máy chủ web cung cấp sẽ vẫn áp dụng. Nếu bạn không đặt chính sách này, thì sẽ không có trang web nào được thực hiện thao tác tự động chọn.</translation> +<translation id="4611983465824842867">Không hiện cảnh báo hay tắt tính năng tự động điền trên các biểu mẫu không an toàn</translation> <translation id="4615003180013429835">Chế độ phân tích cú pháp danh sách trang web</translation> <translation id="4617338332148204752">Bỏ qua kiểm tra thẻ meta trong <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4624417808625504735">Chặn JavaScript sử dụng JIT trên những trang web này</translation> @@ -3813,6 +3873,7 @@ Nếu bạn không đặt chính sách này hoặc đặt thành false, thì thông tin cập nhật hệ điều hành sẽ không được báo cáo. Nếu bạn đặt chính sách này thành true, thì thông tin cập nhật hệ điều hành sẽ được báo cáo.</translation> +<translation id="4857223512478723171">Không cho phép sử dụng chế độ toàn màn hình</translation> <translation id="4858735034935305895">Cho phép chế độ toàn màn hình</translation> <translation id="486146220825734683">Không cho phép người dùng ghi nhớ mật khẩu Kerberos</translation> <translation id="4861767323695239729">Định cấu hình các phương thức nhập được phép trong phiên người dùng</translation> @@ -3912,7 +3973,9 @@ để xử lý các yêu cầu giữ kết nối (https://fetch.spec.whatwg.org/#request-keepalive-flag). Giá trị mặc định (0) có nghĩa là tính năng này bị tắt.</translation> +<translation id="4937423591320233496">Tắt nội dung đề xuất</translation> <translation id="4940810901775798837">Cho phép các trang web không an toàn gửi yêu cầu đến mọi thiết bị đầu cuối trên mạng</translation> +<translation id="4942096314850617489">Tắt chính sách chứng thực từ xa đối với người dùng này</translation> <translation id="4942681160308347946">Khi bạn đặt chính sách này thành True, tính năng phản hồi bằng giọng nói sẽ bật trên màn hình đăng nhập. Khi bạn đặt chính sách này thành False, tính năng phản hồi bằng giọng nói sẽ tắt trên màn hình. Nếu bạn đặt chính sách này, thì người dùng có thể tạm thời bật hoặc tắt tính năng phản hồi bằng giọng nói. Khi màn hình đăng nhập tải lại hoặc không hoạt động trong vài phút, tính năng phản hồi bằng giọng nói sẽ trở về trạng thái ban đầu. @@ -3929,6 +3992,7 @@ sẽ có hiệu lực. Người dùng có thể bật/tắt chế độ hiển thị bằng các thao tác cụ thể (ví dụ: Alt-V).</translation> <translation id="494613465159630803">Bộ thu Google Cast</translation> <translation id="494924690085329212">Khởi động lại khi đăng xuất người dùng nếu Android đã khởi động.</translation> +<translation id="4950447493143157880">Không bao giờ dùng ứng dụng DNS tích hợp sẵn</translation> <translation id="4952347392677351397">Nếu bạn đặt chính sách này thành 1, thì các trang web có thể truy cập và sử dụng cảm biến, chẳng hạn như cảm biến chuyển động và cảm biến ánh sáng. Nếu bạn đặt chính sách này thành 2, quyền sử dụng cảm biến sẽ bị từ chối. Nếu bạn không đặt chính sách này, <ph name="ALLOW_SENSORS_POLICY_NAME" /> sẽ được áp dụng nhưng người dùng có thể thay đổi tùy chọn cài đặt này.</translation> @@ -4005,6 +4069,7 @@ <translation id="5034504101537897433">Bật tính năng báo cáo thông tin trong báo cáo sự cố của thiết bị</translation> <translation id="5039110755072335605">hỗ trợ các tiêu đề của yêu cầu không phải ký tự đại diện CORS</translation> <translation id="504116558738617678">Chỉ hiển thị các cảnh báo dung lượng ổ đĩa thấp nếu thiết bị không được quản lý hoặc chỉ có 1 người dùng</translation> +<translation id="5053779531788741830">Dùng ứng dụng DNS tích hợp sẵn trên macOS, Android và ChromeOS</translation> <translation id="5055474681190962362">Ngày trong tháng [1-31] nên khởi động lại thiết bị (diễn giải theo múi giờ địa phương trên thiết bị). Chỉ được dùng khi "tần suất" là "MONTHLY". Nếu con số này lớn hơn số ngày tối đa trong một tháng cụ thể, thì ngày cuối cùng trong tháng đó sẽ được chọn.</translation> <translation id="5056708224511062314">Đã tắt kính lúp màn hình</translation> <translation id="5058573563327660283">Lựa chọn chiến lược dùng để giải phóng dung lượng đĩa trong khi dọn sạch tự động (không dùng nữa)</translation> @@ -4163,6 +4228,8 @@ Nếu bạn không thiết lập chính sách hình nền thiết bị, thì chính sách hình nền của người dùng sẽ quyết định hình nền nào sẽ xuất hiện nếu chính sách hình nền của người dùng được thiết lập.</translation> <translation id="5219844027738217407">Đối với các ứng dụng Android, chính sách này chỉ ảnh hưởng đến micrô. Khi chính sách này được đặt thành true, micrô sẽ bị tắt tiếng cho tất cả ứng dụng Android mà không có ngoại lệ nào.</translation> +<translation id="5222325605346216869">Buộc điều tiết đồng hồ tính giờ JavaScript trong nền</translation> +<translation id="5223606242837275233">Không cho phép các trang web cuộn đến đoạn văn bản cụ thể qua URL</translation> <translation id="5227124062673546005">Kiểm soát cách <ph name="PRODUCT_NAME" /> in trên <ph name="MS_WIN_NAME" />. Khi in bằng máy in PostScript trên <ph name="MS_WIN_NAME" />, các phương thức tạo tệp PostScript khác nhau có thể ảnh hưởng đến hiệu suất in. @@ -4201,6 +4268,7 @@ Khi bạn đặt chính sách này thành Tắt, tính năng Làm sạch Chrome sẽ không quét định kỳ và tùy chọn kích hoạt thủ công sẽ bị tắt. Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây.</translation> +<translation id="5245647012663146075">Không cho phép bật Trung tâm điều khiển điện thoại</translation> <translation id="5245671702326993331">Cho phép thông báo gốc</translation> <translation id="524637053580639111">Chúng tôi đã gỡ bỏ chính sách này trong phiên bản M82, vui lòng sử dụng chính sách DeviceMinimumVersion. @@ -4602,6 +4670,7 @@ <translation id="5630352020869108293">Khôi phục phiên trước đó</translation> <translation id="5633871703004128675">Bật tính năng hỗ trợ tiếp cận về làm nổi bật dấu chèn</translation> <translation id="5634032995857968056">Bật hộp cát Hộp chứa ứng dụng kết xuất</translation> +<translation id="5638334542697444045">Không cho phép người dùng sử dụng tính năng Chia sẻ Internet tức thì</translation> <translation id="5639454129004500060">Nếu được đặt, chính sách này sẽ chứa thông tin để tải một tệp mẫu không gian làm việc xuống. Tệp chứa một mẫu không gian làm việc sẽ được cung cấp cho người dùng hiện tại. Nếu bạn không đặt chính sách này, thì sẽ không có mẫu không gian làm việc được thiết lập sẵn nào được đưa vào danh sách các mẫu không gian làm việc. Nếu bạn không bật chính sách <ph name="DESK_TEMPLATES_ENABLED_POLICY_NAME" />, thì chính sách này không có hiệu lực.</translation> @@ -4700,6 +4769,7 @@ Nếu bạn không đặt hoặc đặt chính sách này thành Tắt, thì thời gian trì hoãn và giới hạn thời gian của chính sách quản lý điện sẽ bắt đầu ngay lập tức lúc bắt đầu phiên hoạt động.</translation> <translation id="5733357908790472408">Sử dụng Chrome Root Store.</translation> <translation id="5735915264686983150">Ẩn và chặn các tính năng bị tắt</translation> +<translation id="5736498355107027047">Hiện nút đăng xuất trong khay</translation> <translation id="5737394734996319911">Tính năng hỗ trợ tiếp cận <ph name="PRODUCT_NAME" /> cho phép người khiếm thị sử dụng trình đọc màn hình để nghe nội dung mô tả về các hình ảnh chưa gắn nhãn trên web. Người dùng chọn bật tính năng này @@ -4876,6 +4946,7 @@ <translation id="5915023683182228340">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì người dùng có thể sử dụng giao thức QUIC trong <ph name="PRODUCT_NAME" />. Nếu bạn đặt chính sách này thành Tắt, người dùng sẽ không sử dụng được giao thức QUIC (giao thức kết nối Internet nhanh UDP).</translation> +<translation id="5916855682471300200">Chính sách thiết bị trên đám mây được ưu tiên hơn chính sách thiết bị trên nền tảng</translation> <translation id="5921713479449475707">Cho phép tài nguyên đã tải xuống tự động cập nhật qua HTTP</translation> <translation id="5927903236543424081">Buộc người dùng đăng nhập trước khi sử dụng trình duyệt</translation> <translation id="5928633129285224981">Kiểm soát liệu <ph name="PRODUCT_NAME" /> có đặt lựa chọn In dưới dạng hình ảnh thành chế độ mặc định khi in tệp PDF hay không. @@ -5079,6 +5150,7 @@ Xin lưu ý rằng chính sách này sẽ làm yếu đi chức năng bảo vệ của IP cục bộ nếu quản trị viên cần.</translation> <translation id="614662973812186053">Chính sách này cũng kiểm soát việc thu thập dữ liệu chẩn đoán và sử dụng Android.</translation> <translation id="614665605501218241">Cho phép các trang web trong danh sách gửi yêu cầu theo cách không an toàn tới các điểm cuối trên mạng có mức độ riêng tư cao hơn hay không.</translation> +<translation id="6150320133676152520">Tắt chế độ tự động gửi mã PIN trên màn hình đăng nhập và màn hình khoá</translation> <translation id="6155350825868160236">Cho phép người dùng chọn xem có sử dụng các dịch vụ web của Google để sửa lỗi chính tả hay không</translation> <translation id="6155936611791017817">Đặt trạng thái của con trỏ lớn mặc định trên màn hình đăng nhập</translation> <translation id="6157537876488211233">Danh sách quy tắc bỏ qua proxy được phân cách bằng dấu phẩy</translation> @@ -5163,6 +5235,7 @@ <translation id="6261643884958898336">Báo cáo thông tin nhận dạng máy</translation> <translation id="6265892395051519509">Cho phép sử dụng cảm biến trên các trang web này</translation> <translation id="6266043141694454734">Xác định xem Chrome Root Store và trình xác minh chứng chỉ tích hợp có dùng để xác minh chứng chỉ máy chủ hay không</translation> +<translation id="6270615143812355589">Bật đầu vào âm thanh</translation> <translation id="6270791075656665237">Không cho phép QUIC</translation> <translation id="6273015149273504999"> Chỉ định danh sách các ứng dụng và tiện ích được cài đặt tự động trên màn hình đăng nhập mà không có sự tương tác của người dùng và người dùng không thể gỡ cài đặt hay tắt. @@ -5308,6 +5381,7 @@ Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này.</translation> <translation id="6353890097388312479">Nếu bạn không đặt hoặc đặt chính sách này thành Tất cả (0), thì người dùng có thể chỉnh sửa các tùy chọn cài đặt về độ tin cậy cho tất cả chứng chỉ CA, xóa chứng chỉ do người dùng nhập và nhập chứng chỉ bằng Trình quản lý chứng chỉ. Nếu bạn đặt chính sách này thành UserOnly (1), người dùng có thể chỉ quản lý các chứng chỉ do người dùng nhập nhưng không thể thay đổi các tùy chọn cài đặt về độ tin cậy của chứng chỉ tích hợp. Nếu bạn đặt chính sách này thành Không (2), người dùng có thể xem (nhưng không thể quản lý) các chứng chỉ CA.</translation> +<translation id="6358320368815225772">Tắt chính sách chứng thực từ xa đối với thiết bị này</translation> <translation id="6362856770865555544">Nếu bạn đặt chính sách này thành Bật hoặc không đặt chính sách này, tính năng tối ưu hóa WPAD (Tự động phát hiện proxy web) sẽ bật trong <ph name="PRODUCT_NAME" />. Nếu bạn đặt chính sách này thành Tắt, tính năng tối ưu hóa WPAD sẽ tắt. Điều này khiến <ph name="PRODUCT_NAME" /> phải đợi máy chủ WPAD dựa trên DNS trong khoảng thời gian lâu hơn. @@ -5403,12 +5477,14 @@ Kể từ phiên bản M106, các phương thức nhập được cho phép sẽ tự động bật trong phiên kiosk. Lưu ý: Nếu phương thức nhập hiện tại không được hỗ trợ, thì hệ thống sẽ sử dụng bố cục bàn phím phần cứng (nếu được phép) hoặc mục hợp lệ đầu tiên trong danh sách này. Hệ thống sẽ bỏ qua phương thức không hợp lệ hoặc không được hỗ trợ.</translation> +<translation id="6483115462650732746">Hiện trình đơn hỗ trợ tiếp cận nổi trong chế độ kiosk</translation> <translation id="6489084406497912050">Kiểm soát việc người dùng có thể thêm tài khoản Kerberos hay không. Nếu bạn bật hoặc không đặt chính sách này, thì người dùng có thể thêm tài khoản Kerberos thông qua phần Cài đặt tài khoản Kerberos trên trang Cài đặt tài khoản Kerberos. Người dùng có toàn quyền kiểm soát các tài khoản mà họ thêm, cũng như có thể sửa đổi hoặc xóa các tài khoản này. Nếu bạn tắt chính sách này, người dùng có thể không thêm được tài khoản Kerberos. Người dùng chỉ có thể thêm tài khoản thông qua chính sách "Định cấu hình tài khoản Kerberos". Đây là một cách hiệu quả để khóa các tài khoản.</translation> <translation id="6491139795995924304">Cho phép bluetooth trên thiết bị</translation> +<translation id="6491305972928809525">Không hiện trình đơn hỗ trợ tiếp cận nổi trong chế độ kiosk</translation> <translation id="6491872498385040936">Chính sách này không còn dùng nữa. Hãy cân nhắc sử dụng <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> để ghi đè chính sách này và cho phép điều chỉnh chi tiết hơn. Buộc sử dụng Chế độ hạn chế trung bình trên YouTube và ngăn người dùng thay đổi tùy chọn cài đặt này. @@ -5416,6 +5492,7 @@ Nếu bạn bật tùy chọn cài đặt này, Chế độ hạn chế tối thiểu trên YouTube sẽ luôn bắt buộc phải là Trung bình. Nếu bạn tắt tùy chọn cài đặt này hoặc không đặt giá trị nào, <ph name="PRODUCT_NAME" /> sẽ không buộc sử dụng Chế độ hạn chế trên YouTube. Mặc dù vậy, các chính sách bên ngoài, chẳng hạn như chính sách của YouTube, vẫn có thể buộc áp dụng Chế độ hạn chế.</translation> +<translation id="6492177700737407141">Người dùng đã đăng ký tham gia chương trình Bảo vệ nâng cao sẽ chỉ nhận được các biện pháp bảo vệ người tiêu dùng thông thường</translation> <translation id="6492737559291967859">Việc đặt chính sách này sẽ chỉ định ngôn ngữ mà <ph name="PRODUCT_NAME" /> sử dụng. Nếu bạn tắt hoặc không đặt chính sách này, thì ngôn ngữ sẽ là ngôn ngữ hợp lệ đầu tiên từ: @@ -5457,6 +5534,7 @@ <translation id="6521971538031711337">Ngăn người dùng được quản lý định cấu hình tên máy chủ của thiết bị</translation> <translation id="6523079496775454310">Bật chính sách đề nghị người dùng được quản lý cho phép chia sẻ tín hiệu của thiết bị trên các thiết bị không được quản lý</translation> <translation id="652593254122955308">Thời gian chờ cho đến khi đóng hồ sơ đang ở trạng thái rảnh</translation> +<translation id="6527674993612811419">Hiện cảnh báo và tắt tính năng tự động điền trên các biểu mẫu không an toàn</translation> <translation id="6532026122543921610">Nếu chính sách <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> tắt tính năng tự động phát hiện múi giờ, thì việc đặt chính sách sẽ chỉ định phương thức tự động phát hiện múi giờ và người dùng không thể thay đổi phương thức này. Nếu bạn đặt chính sách này thành: @@ -5467,7 +5545,9 @@ Nếu bạn không đặt chính sách, đặt thành Để người dùng quyết định hoặc thành Không, thì người dùng có thể kiểm soát tính năng tự động phát hiện múi giờ bằng các tùy chọn kiểm soát thông thường trong chrome://settings.</translation> <translation id="6532769014584932288">Cho phép khóa chế độ thức</translation> +<translation id="6533881418188970751">Hỏi người dùng vị trí lưu tệp trước khi tải xuống</translation> <translation id="6536600139108165863">Tự động khởi động lại khi tắt thiết bị</translation> +<translation id="6538653424603921690">Luôn tắt tính năng màn hình bảo vệ quyền riêng tư trên màn hình đăng nhập</translation> <translation id="6539246272469751178">Chính sách này không ảnh hưởng đến ứng dụng Android. Ứng dụng Android luôn sử dụng thư mục nội dung tải xuống mặc định và không thể truy cập bất kỳ tệp nào do <ph name="PRODUCT_OS_NAME" /> tải xuống thư mục nội dung tải xuống không phải mặc định.</translation> <translation id="654303922206238013">Chiến lược di chuyển cho ecryptfs</translation> <translation id="6543277347547044538">Kết thúc khoảng thời gian, không bao gồm giá trị đầu và giá trị cuối.</translation> @@ -5479,6 +5559,7 @@ <translation id="654546276700640113">Nếu bạn đặt chính sách này, người dùng sẽ phải tuân thủ độ dài tối đa đã định cấu hình của mã PIN. Giá trị bằng 0 trở xuống nghĩa là người dùng có thể đặt mã PIN với độ dài tùy ý. Nếu giá trị nhỏ hơn <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> nhưng lớn hơn 0, thì độ dài tối đa sẽ được đặt thành độ dài tối thiểu. Nếu bạn không đặt chính sách này, người dùng sẽ không phải tuân thủ độ dài tối đa.</translation> +<translation id="6546185795045702747">Cho phép các trang web kiểm tra xem người dùng có lưu phương thức thanh toán nào không</translation> <translation id="6553143066970470539">Phần trăm độ sáng màn hình</translation> <translation id="6555557921186817432">Lên lịch tự động khởi động lại sau khi áp dụng bản cập nhật của <ph name="PRODUCT_OS_NAME" />. @@ -5546,6 +5627,7 @@ Chính sách này không có hiệu lực nếu bạn bật, để trống hoặc không thiết lập.</translation> <translation id="6583249367505445969">Tắt thanh dấu trang</translation> <translation id="6584541828182430328">Tắt hiển thị cảnh báo toàn màn hình</translation> +<translation id="6588634282328239769">Hiển thị URL đầy đủ</translation> <translation id="6593350713192882944">Bật tính năng Thông tin nhanh</translation> <translation id="6594372503585248865">Bật giao diện người dùng liên quan đến kết nối trên màn hình máy chủ từ xa khi đang có kết nối</translation> <translation id="65947892191748867">Tắt chính sách đề nghị người dùng được quản lý cho phép chia sẻ tín hiệu của thiết bị trên các thiết bị không được quản lý</translation> @@ -5582,6 +5664,7 @@ <translation id="6625136649067113817">Một cờ boolean cho biết liệu bàn phím ảo có thể cung cấp tính năng kiểm tra lỗi chính tả hay không.</translation> <translation id="66265932317331474">Báo cáo thông tin CPU</translation> <translation id="6628120204569232711">Báo cáo trạng thái bộ nhớ</translation> +<translation id="662991036483361836">Không cho phép người dùng bật tính năng Chia sẻ lân cận</translation> <translation id="663685822663765995">Hạn chế chế độ in màu</translation> <translation id="6637946190026453735">Danh sách các chế độ cài đặt dịch vụ <ph name="PRODUCT_NAME" /> Enterprise Connectors sẽ áp dụng cho <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise Connector (kích hoạt khi <ph name="PRODUCT_NAME" /> in một trang hoặc tệp). @@ -5815,6 +5898,7 @@ Nếu một tiện ích không có trong danh sách này hoặc danh sách này chưa được đặt, thì hộp thoại xác nhận lệnh in sẽ hiển thị với người dùng đối với mọi lệnh gọi hàm <ph name="SUBMIT_JOB_FUNCTION" />. Chính sách này không còn dùng nữa, vui lòng sử dụng <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> +<translation id="6847379587945465889">Bật chính sách chuyển Cookie SAML SSO sang phiên người dùng trong khi đăng nhập</translation> <translation id="684856667300805181">Chính sách này đã bị xóa trong <ph name="PRODUCT_NAME" /> 68 và thay thế bằng <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6848721032946289937">Việc đặt thành Bật hoặc không đặt chính sách này sẽ bật tính năng tăng tốc phần cứng, nếu có. @@ -5952,6 +6036,7 @@ Không đặt chính sách này đồng nghĩa với việc nếu bạn không tiết lộ những chứng chỉ buộc phải tiết lộ thông qua Tính minh bạch của chứng chỉ, thì <ph name="PRODUCT_NAME" /> sẽ không tin cậy những chứng chỉ đó. Mẫu URL tuân theo định dạng này (https://www.chromium.org/administrators/url-blocklist-filter-format). Tuy nhiên, vì tính hợp lệ của các chứng chỉ của một tên máy chủ cụ thể không phụ thuộc vào tên giao thức, cổng hoặc đường dẫn, nên <ph name="PRODUCT_NAME" /> chỉ xem xét phần tên máy chủ của URL. Không hỗ trợ máy chủ có ký tự đại diện.</translation> +<translation id="6969332115615661188">Tắt đầu vào video</translation> <translation id="6972540544240464302">Chọn cấu hình trình lập lịch biểu việc cần làm</translation> <translation id="6975533677426693807">Luôn mở tệp PDF bằng trình xem PDF nội bộ</translation> <translation id="6979158407327259162">Google Drive</translation> @@ -5978,6 +6063,7 @@ Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro hoặc đã đăng ký <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM hoặc liên kết với một miền qua MCX.</translation> <translation id="6990736882800900101">Cho phép tất cả cửa sổ bật lên ở trạng thái mở với mục tiêu <ph name="BLANK_PAGE_NAME" /> để tương tác với chính trang đã yêu cầu mở cửa sổ bật lên trừ phi trang mở thể hiện rõ việc không chọn không sử dụng hoạt động tương tác đó </translation> +<translation id="6992943675460798920">Cho phép người dùng chụp ảnh màn hình và quay video</translation> <translation id="6994082778848658360">Chỉ định cách bạn có thể sử dụng phần cứng tích hợp phần tử bảo mật để cung cấp xác thực hai yếu tố nếu tương thích với tính năng này. Nút nguồn của máy dùng để phát hiện sự hiện diện của người dùng. Nếu bạn chọn 'Đã tắt' thì sẽ không nhận được hai yếu tố. @@ -5997,8 +6083,10 @@ <translation id="7003746348783715221">Tùy chọn <ph name="PRODUCT_NAME" /></translation> <translation id="7007283257527015835">Một cờ boolean cho biết liệu bạn có phải đặt trình xử lý giao thức làm tùy chọn mặc định hay không.</translation> <translation id="7008308728445338159">Đã bật chế độ kiểm tra việc chặn DNS</translation> +<translation id="7009043124653876961">Tắt biểu tượng cảm xúc đề xuất khi người dùng nhập</translation> <translation id="7010006999849135962">Bật chế độ xác thực không cần mã PIN đối với máy chủ truy cập từ xa</translation> <translation id="7013484314513229844">Bật tính năng khởi động khi cắm nguồn AC</translation> +<translation id="7014427417852575165">Người dùng đã đăng ký tham gia chương trình Bảo vệ nâng cao sẽ có thêm các biện pháp bảo vệ</translation> <translation id="7016587686120059767">Tắt chế độ khách</translation> <translation id="7016736684656067099">Nếu bạn đặt chính sách này thành 1, thì tất cả trang web có thể hiển thị hình ảnh. Nếu bạn đặt chính sách này thành 2, thì không trang web nào có thể hiển thị hình ảnh. @@ -6047,9 +6135,11 @@ <translation id="7039815268521168329">Hiển thị quy trình so khớp giọng nói của Trợ lý Google trong quá trình thiết lập ban đầu</translation> <translation id="7040229947030068419">Giá trị mẫu:</translation> <translation id="7044883996351280650">Kiểm soát dịch vụ sao lưu và khôi phục trên thiết bị Android</translation> +<translation id="7046113122884041950">Không cho phép sử dụng Smart Lock</translation> <translation id="7046997898355294677">Hiện thông báo về quyền riêng tư cho đến khi người dùng đóng</translation> <translation id="7047495632846973438">Chỉ định xem chính sách về quyền thu thập dữ liệu màn hình được chọn hay bị bỏ qua.</translation> <translation id="7055022222176591388">Không cho phép <ph name="FLASH_PLUGIN_NAME" /> lỗi thời</translation> +<translation id="7062803946218028349">Cho phép bật Trung tâm điều khiển điện thoại</translation> <translation id="7066292150801784098">Tắt tính năng tương tác người dùng từ xa với cửa sổ bật lên trong các phiên hỗ trợ từ xa</translation> <translation id="706669471845501145">Cho phép các trang web hiển thị thông báo trên màn hình</translation> <translation id="70681795425744184">Không cho phép CRD thực thi các yêu cầu API WebAuthn được gửi qua proxy trên một máy chủ từ xa.</translation> @@ -6058,6 +6148,7 @@ <translation id="7072567600438630966">Chính sách Cho phép Trung tâm điều khiển điện thoại sẽ được bật.</translation> <translation id="7074437930865599190">Làm phiên bản lớn chuỗi User-Agent dừng lại ở 99</translation> <translation id="707988220162760379">Luôn mở tệp PDF bằng trình xem PDF bên ngoài</translation> +<translation id="7081699207881888532">Bật biểu tượng cảm xúc đề xuất khi người dùng nhập</translation> <translation id="7081784525008938771">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì người dùng sẽ được coi là không hoạt động trong khi video phát. Điều này ngăn hệ thống đạt tới thời gian trì hoãn khi ở chế độ rảnh, thời gian trì hoãn giảm độ sáng màn hình, thời gian trì hoãn tắt màn hình cũng như thời gian trì hoãn khóa màn hình và ngăn việc thực hiện các hành động tương ứng. Nếu bạn đặt chính sách này thành Tắt, hệ thống có thể coi người dùng là không hoạt động bất kể hoạt động video là gì.</translation> @@ -6320,6 +6411,7 @@ Nếu chính sách này không được đặt, tính năng dọn sạch tự động sẽ sử dụng chiến lược tích hợp sẵn mặc định. Hiện tại đó là chiến lược 'RemoveLRUIfDormant'.</translation> <translation id="733381360015511815">Định cấu hình danh sách Ứng dụng web tách biệt buộc cài đặt</translation> <translation id="7334517274921831425">Cho phép người dùng sử dụng <ph name="BOREALIS_NAME" /> trên <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="7334639219471717734">Không cho phép người dùng đăng nhập vào thiết bị của họ bằng Smart Lock</translation> <translation id="7336785017449297672">Kiểm soát các tùy chọn cài đặt đồng hồ và múi giờ.</translation> <translation id="7336878834592315572">Lưu giữ cookie trong thời hạn phiên</translation> <translation id="7338217396351647423">Nếu bạn đặt chính sách này, thì bộ chính sách cần chuyển giao cho thời gian chạy ARC sẽ được chỉ rõ. Quản trị viên có thể sử dụng bộ chính sách này để chọn các ứng dụng Android tự động cài đặt. Nhập giá trị ở định dạng JSON hợp lệ. @@ -6329,6 +6421,7 @@ <translation id="7340034977315324840">Báo cáo thời gian hoạt động của thiết bị</translation> <translation id="7343004974628511824">Áp dụng các tùy chọn kiểm tra chặn hệ thống tên miền (DNS)</translation> <translation id="7343497214039883642">Tệp cấu hình máy dành cho in doanh nghiệp cho các thiết bị</translation> +<translation id="7357148531287978404">Tắt đầu vào âm thanh</translation> <translation id="7358012133037776875">Cho phép bạn thiết lập danh sách các mẫu URL trang web để chỉ định những trang web sẽ tự động cấp quyền kiểm soát vị trí cửa sổ. Việc này sẽ mở rộng khả năng các trang web xem được thông tin về màn hình của thiết bị và dùng thông tin đó để mở/đặt cửa sổ hoặc yêu cầu chế độ toàn màn hình trên một số màn hình cụ thể. Để biết thông tin chi tiết về các mẫu URL trang web hợp lệ, vui lòng tham khảo https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Cho phép sử dụng ký tự đại diện <ph name="WILDCARD_VALUE" />. Chính sách này chỉ đối chiếu dựa trên nguồn gốc, nên mọi đường dẫn trong mẫu URL sẽ bị bỏ qua. @@ -6583,6 +6676,7 @@ Chính sách này chỉ áp dụng cho người dùng là trẻ em. Khi bạn đặt chính sách này, Mã truy cập dành cho cha mẹ có thể được xác minh trên thiết bị của người dùng là trẻ em. Khi bạn không đặt chính sách này, Mã truy cập dành cho cha mẹ không xác minh được trên thiết bị của người dùng là trẻ em.</translation> +<translation id="7623431489198474050">Tắt chính sách chứng thực từ xa để bảo vệ nội dung</translation> <translation id="7628747690141606652">Tắt tính năng dịch của Thông tin nhanh</translation> <translation id="7629840767216985001">Khi bạn đặt chính sách này thành True, con trỏ lớn sẽ bật trên màn hình đăng nhập. Khi bạn đặt chính sách này thành False, con trỏ lớn sẽ tắt trên màn hình đăng nhập. @@ -6750,6 +6844,7 @@ Khi bạn không đặt giá trị cho chính sách này, <ph name="DEFAULT_CLIPBOARD_SETTING" /> (nếu được đặt) sẽ áp dụng cho mọi trang web. Nếu không, chế độ cài đặt do người dùng chọn sẽ được áp dụng. Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Chúng tôi không chấp nhận giá trị <ph name="WILDCARD_VALUE" /> đối với chính sách này.</translation> +<translation id="7791215522423893512">Không cho phép người dùng chụp ảnh màn hình hoặc quay video</translation> <translation id="7792796937016596423">Người dùng sẽ không thể chặn bắt gói tin qua mạng</translation> <translation id="7798441698807517880">Chúng tôi đã xóa chính sách này khỏi <ph name="PRODUCT_NAME" /> phiên bản 89 trở đi <ph name="FLASH_PLUGIN_NAME" /> không còn được dùng nữa. @@ -6823,6 +6918,7 @@ Gợi ý: Khóa màn hình khi ở chế độ rảnh bằng cách bật tính năng khóa màn hình khi hệ thống tạm ngưng hoạt động và đặt <ph name="PRODUCT_OS_NAME" /> ở chế độ tạm ngưng hoạt động sau thời gian trì hoãn khi ở chế độ rảnh. Chỉ sử dụng chính sách này khi bạn muốn khóa màn hình sớm hơn đáng kể so với thời gian tạm ngưng hoạt động hoặc khi bạn không muốn tạm ngưng hoạt động ở chế độ rảnh.</translation> <translation id="7895553628261067384">Truy cập từ xa</translation> +<translation id="789975630884141379">Bật nội dung đề xuất</translation> <translation id="7899952578398457262">Đề nghị người dùng được quản lý cho phép chia sẻ tín hiệu của thiết bị trên các thiết bị không được quản lý để có quyền truy cập</translation> <translation id="7900469325540540107">Lưu giữ dữ liệu duyệt web khi tạo hồ sơ doanh nghiệp theo mặc định</translation> <translation id="7902040092815978832">Hiện bàn phím số để nhập mật khẩu</translation> @@ -6946,6 +7042,7 @@ Nếu bạn bật chính sách này, thì người dùng có thể sử dụng trình duyệt <ph name="LACROS_NAME" />.</translation> <translation id="8020222525161221827">Bật Desk API để bên thứ ba kiểm soát ChromeOS</translation> <translation id="802147957407376460">Xoay màn hình 0 độ</translation> +<translation id="8021777486638359878">Coi người dùng là không hoạt động khi âm thanh đang phát</translation> <translation id="80243978433618492">Không cho phép lọc tham số URL.</translation> <translation id="8025620823136567878">Các phím tắt quốc tế được liên kết với vị trí của các phím trên bàn phím thay cho ký tự của phím.</translation> <translation id="802776363472387903">Hàm băm SHA-256 của hình ảnh <ph name="PLUGIN_VM_NAME" />.</translation> @@ -7323,6 +7420,7 @@ <translation id="8378266419596669629">Chặn quyền Phông chữ trên máy đối với những trang web này</translation> <translation id="8379317372795444261">Được phép xác thực <ph name="BASIC_AUTH" /> trên các đường kết nối HTTP</translation> <translation id="8381678031726288574">Áp dụng chế độ cài đặt mặc định cho việc chấm dứt API U2F.</translation> +<translation id="8381774264911275515">Tắt chính sách chuyển Cookie SAML SSO sang phiên người dùng trong khi đăng nhập</translation> <translation id="8382184662529825177">Cho phép sử dụng chứng thực từ xa để bảo vệ nội dung cho thiết bị</translation> <translation id="838870586332499308">Bật chuyển vùng dữ liệu</translation> <translation id="8393850527597048037">Chỉ trên nền tảng</translation> @@ -7451,6 +7549,7 @@ Cảnh báo: Không nên định cấu hình các giới hạn phiên bản vì những giới hạn này có thể khiến người dùng không thể nhận được các bản cập nhật phần mềm và các bản vá bảo mật quan trọng. Giới hạn cập nhật ở một tiền tố phiên bản cụ thể có thể khiến người dùng gặp rủi ro.</translation> <translation id="8508489378025029342">Bật tính năng báo cáo thời gian hoạt động của thiết bị</translation> +<translation id="8511192250554640451">Cho phép việc điều tiết các đồng hồ tính giờ JavaScript trong nền được kiểm soát theo logic của Chrome và do người dùng định cấu hình</translation> <translation id="8519264904050090490">URL ngoại lệ hướng dẫn người dùng được quản lý</translation> <translation id="8519516251436131647">Bật phím tắt của tính năng hỗ trợ tiếp cận. @@ -7863,6 +7962,7 @@ <translation id="8921669704201370845">Bật tính năng báo cáo của <ph name="PRODUCT_NAME" /> trên đám mây qua hồ sơ được quản lý</translation> <translation id="8922231993239705844">Tắt tính năng làm nổi bật con trỏ</translation> <translation id="8922494933893518624">Buộc bật WebSQL trong bối cảnh không an toàn.</translation> +<translation id="8923028772162236077">Hiển thị URL mặc định</translation> <translation id="8930064580550462145">Trong khi đăng nhập qua màn hình khóa, <ph name="PRODUCT_OS_NAME" /> có thể xác thực với một máy chủ (trực tuyến) hoặc dùng mật khẩu lưu trong bộ nhớ đệm (ngoại tuyến). Khi bạn đặt chính sách này thành -2, chính sách này sẽ khớp với giá trị của giới hạn thời gian đăng nhập ngoại tuyến trên màn hình đăng nhập trong chính sách <ph name="POLICY" />. @@ -8103,6 +8203,7 @@ Phiên của người dùng sẽ được khôi phục sau khi chạy lại/khởi động.</translation> <translation id="9160028464653564229">Không cho phép trang web nào yêu cầu quyền truy cập vào cổng nối tiếp qua API nối tiếp</translation> +<translation id="9162444960513782569">Buộc không điều tiết đồng hồ tính giờ JavaScript trong nền</translation> <translation id="916461878260574432">Chỉ định xem có sử dụng phương pháp ngang hàng (P2P) cho các phần tải dữ liệu cập nhật hệ điều hành hay không. Nếu bạn đặt chính sách này thành Bật, các thiết bị sẽ chia sẻ và cố gắng sử dụng các phần tải dữ liệu cập nhật trên mạng cục bộ (LAN). Nhờ đó, tình trạng nghẽn và mức sử dụng băng thông Internet có thể giảm đi. Nếu phần tải dữ liệu cập nhật này không dùng được trên mạng LAN, thì thiết bị sẽ quay lại dùng cách tải xuống từ một máy chủ cập nhật. Nếu bạn đặt chính sách này thành Tắt, P2P sẽ không được dùng. @@ -8118,6 +8219,7 @@ Chính sách này chỉ là biện pháp tạm thời và sẽ bị xóa trong các phiên bản <ph name="PRODUCT_NAME" /> sau này. Sau khi chính sách này bị xóa, <ph name="PRODUCT_NAME" /> luôn có thể truy vấn các loại DNS khác.</translation> <translation id="9167719789236691545">Tắt Drive trong ứng dụng Tệp dành cho <ph name="PRODUCT_OS_NAME" /></translation> +<translation id="9180108183162961002">Cho phép đăng nhập vào trình duyệt với tư cách khách</translation> <translation id="9185963199234034321">Bật chế độ tương phản cao trên màn hình đăng nhập và cho phép người dùng tạm thời tắt tính năng này</translation> <translation id="9187743794267626640">Vô hiệu hóa việc lắp bộ nhớ ngoài</translation> <translation id="9190022798664427644">Bật chế độ đơn âm</translation> @@ -8132,6 +8234,7 @@ <translation id="9200828125069750521">Tham số cho URL hình ảnh sử dụng POST</translation> <translation id="9204863016826119209">Những ứng dụng Android được cài đặt và liệt kê trong chính sách này có thể sử dụng khóa công ty.</translation> <translation id="9207596996305971030">Không báo cáo các lần đăng nhập/đăng xuất</translation> +<translation id="9210647066889383361">Cho phép người dùng đăng nhập vào thiết bị của họ bằng Smart Lock</translation> <translation id="9213751049772256263">Không cho phép tất cả các biến</translation> <translation id="9217154963008402249">Tần suất theo dõi gói mạng</translation> <translation id="9220314833408124365">Sử dụng chính sách liên kết giới thiệu mặc định no-referrer-when-downgrade</translation> @@ -8181,6 +8284,7 @@ <translation id="966425658642788645">Áp dụng hành vi mặc định</translation> <translation id="971677226939413180">Lựa chọn In dưới dạng hình ảnh không có sẵn đối với người dùng.</translation> <translation id="974349541138387272">Chỉ định mẫu URI của trình phân giải DNS qua HTTPS mà bạn muốn</translation> +<translation id="978658824596356870">Định dạng đồng hồ 24 giờ</translation> <translation id="979467274961593903">Không cho phép sử dụng tính năng gỡ lỗi từ xa</translation> <translation id="980218166381006412">Việc đặt chính sách này thành Bật sẽ bật chế độ nền. Ở chế độ nền, quá trình <ph name="PRODUCT_NAME" /> sẽ bắt đầu khi đăng nhập vào hệ điều hành và tiếp tục chạy khi cửa sổ trình duyệt cuối cùng được đóng, cho phép các ứng dụng trong nền và phiên duyệt web luôn hoạt động. Quá trình trong nền hiển thị một biểu tượng trong khay hệ thống và bạn có thể đóng quá trình này từ khay hệ thống bất cứ lúc nào.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index a5095c9..7091c009 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -52,6 +52,7 @@ 如果未設定這項政策,系統預設會為受管理的使用者停用這項功能,但其他使用者仍可使用。</translation> <translation id="1035860095382451169">在網址列中啟用鎖頭圖示代表安全連線</translation> +<translation id="1037470927044831850">允許網站提示使用者分享螢幕畫面上的影片串流</translation> <translation id="1040125341954178855">這項功能已在 Chrome 100 中移除。 如果將這項政策設為啟用,系統會根據使用者先前在其他裝置上安裝的應用程式,提供應用程式建議。如果未輸入任何搜尋文字,這類建議會顯示在啟動器中的本機應用程式建議之後。 @@ -276,6 +277,7 @@ 如果不設定這項政策,或是替換後的值不是有效的主機名稱,則系統不會在 DHCP 要求中設定主機名稱。</translation> <translation id="1257550411839719984">設定預設的下載目錄</translation> +<translation id="1262993197422487260">在登入畫面和鎖定畫面上停用密碼顯示按鈕</translation> <translation id="1265053460044691532">限制透過 SAML 驗證的使用者可離線登入的時間</translation> <translation id="1271811620059192171">啟用政策不可部分完成的群組</translation> <translation id="127264587838521316">啟用 <ph name="PRODUCT_NAME" /> 擴充功能安裝要求</translation> @@ -328,6 +330,7 @@ 如果選取了「Forced」(2),使用者將無法隱藏設定檔選擇畫面。即使只有一個設定檔,瀏覽器也會顯示設定檔選擇畫面。</translation> <translation id="1339174690935954950">禁止使用者提出意見回饋</translation> +<translation id="1340053691042184658">禁止透過瀏覽器訪客模式登入</translation> <translation id="1342918903685430097">設定裝置的最低 <ph name="PRODUCT_OS_NAME" /> 版本限制。</translation> <translation id="1343128241903870688">停用裝置應用程式資訊回報功能</translation> <translation id="1347198119056266798">這項政策已遭淘汰,請改用 <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> 和 <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />。如果設定 <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />、<ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> 或 <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> 政策 (已淘汰),系統會忽略這項政策。 @@ -502,6 +505,7 @@ <translation id="1503969899251962413">你可以透過這項政策,指定這部裝置的 <ph name="PLUGIN_VM_NAME" /> 授權金鑰。 這項政策已在 M94 版中遭到移除。</translation> +<translation id="1507373253059695424">在登入畫面上一律啟用隱私保護功能</translation> <translation id="150857982247452081">你可以透過這項政策設定一組通訊協定清單,並且為每個通訊協定設定相關聯的允許來源格式清單,清單中的通訊協定無須提示使用者即可啟動外部應用程式。列出通訊協定時,請勿加入結尾分隔符;換句話說,請列出「skype」,而非「skype:」或「skype://」。 如果設定這項政策,只有當通訊協定已列於清單中,且嘗試啟動通訊協定的網站來源符合該通訊協定 allowed_origins 清單中的其中一個來源格式時,系統才會依照政策規定,允許通訊協定在不提示使用者的情況下啟動外部應用程式。只要有任一條件不符,系統就不會依照政策規定省略外部通訊協定啟動提示。 @@ -677,6 +681,7 @@ 設好這項政策後,使用者即無法變更或覆寫設定。 如果不設定這項政策,系統會在顯示登入畫面時先停用語音輸入功能,但使用者隨時可以將其啟用。</translation> +<translation id="1673097259557436886">一律告知網站不會儲存任何付款方式</translation> <translation id="1674287836076801014">SAML</translation> <translation id="1675002386741412210">支援環境:</translation> <translation id="167514072300004091">如果將這項政策設為 3,網站即可要求存取已連結的 USB 裝置。如果將這項政策設為 2,網站將無法存取已連結的 USB 裝置。 @@ -754,6 +759,7 @@ 想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation> <translation id="1736269219679256369">允許忽略 SSL 警告網頁,繼續前往原本指定的頁面</translation> +<translation id="1744340218280697033">不允許家長新增受監督的帳戶</translation> <translation id="1751429117283165017">你可以透過這項政策建立網址模式清單,指定哪些網站無法要求使用者授予寫入權限,以寫入主機作業系統中檔案系統的檔案或目錄。 如果未設定這項政策,系統會針對所有網站套用 <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> 政策 (如果已設定)。否則系統會套用使用者的個人設定。 @@ -770,6 +776,7 @@ 注意:如需詳細範例,請前往 Chromium 計畫 (網址為 https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)。</translation> <translation id="1767673020408652620">在零狀態搜尋框中啟用應用程式推薦</translation> +<translation id="1770071413238151235">12 小時制</translation> <translation id="1780323582106687813">這項政策已遭淘汰,請改用「<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />」政策。 你可以透過這項政策,指定要將哪些擴充功能從封鎖的擴充功能清單中排除。針對 <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> 使用「<ph name="ALL_EXTENSIONS" />」的設定值即可封鎖所有擴充功能,且使用者只能安裝明確允許的擴充功能。根據預設,系統會允許所有擴充功能。不過,如果你透過政策封鎖了擴充功能,請使用允許的擴充功能清單來變更該政策。</translation> @@ -814,6 +821,7 @@ </translation> <translation id="1808715480127969042">封鎖這些網站的 Cookie</translation> <translation id="1810261428246410396">允許使用即時網路共用功能。</translation> +<translation id="1813638828646876133">在鎖定畫面和登入畫面上啟用 PIN 碼自動提交功能</translation> <translation id="1813672770917912317">你可以設定 <ph name="PRODUCT_NAME" /> 是否會在啟用 JIT (Just In Time) 編譯器的情況下執行 v8 JavaScript 引擎。 停用 JavaScript JIT 可能會減慢 <ph name="PRODUCT_NAME" /> 顯示網站內容的速度,也可能一併停用 JavaScript 中的 WebAssembly 等程式語言,但可讓 <ph name="PRODUCT_NAME" /> 以更安全的設定顯示網站內容。 @@ -915,6 +923,7 @@ 如果未設定這項政策,系統會關閉 Android 上的 <ph name="HTTP_NEGOTIATE" /> 驗證。</translation> <translation id="1923704782248889851">啟用語音輸入功能</translation> <translation id="1925529914257504750">已啟用自動更新 P2P</translation> +<translation id="1928355425032308464">啟用影片輸入</translation> <translation id="1930094135927166199">停用 USB 電力共享功能</translation> <translation id="1930127294345368978">單一列印工作可使用的紙張數量上限</translation> <translation id="193259052151668190">卸離式 USB 裝置許可清單</translation> @@ -1002,6 +1011,7 @@ 如果將這項政策設為 False 或不予設定,系統將不會回報這項資訊。 如果設為 True,系統會回報裝置目前設定的時區。</translation> <translation id="199764499252435679">允許更新 <ph name="PRODUCT_NAME" /> 的元件</translation> +<translation id="1997943707974344423">允許使用 Smart Lock</translation> <translation id="1998504583649140526">私人網路要求設定</translation> <translation id="1999000620918508488">強制登入畫面顯示或隱藏系統資訊。</translation> <translation id="1999942889260716089">如果將這項政策設為 True,系統會在 <ph name="PRODUCT_NAME" /> 的網址列中啟用搜尋建議功能。如果將這項政策設為 False,系統會停用這類搜尋建議功能。 @@ -1022,6 +1032,7 @@ <translation id="2006530844219044261">電源管理</translation> <translation id="2006954055163088863">在影片播放時將使用者狀態視為閒置</translation> <translation id="2008514891623783266">WebRTC 的 IP 處理政策</translation> +<translation id="2012296492055302633">一律啟用隱私保護功能</translation> <translation id="2013285471046373727">指定應用程式的安裝方式。OPTIONAL:應用程式不會自動安裝,但使用者可自行安裝。如未指定這項政策,系統會預設採用這個值。PRELOAD:應用程式會自動安裝,但使用者可以解除安裝。FORCE_INSTALLED:應用程式會自動安裝,且使用者無法解除安裝。BLOCKED:應用程式遭到封鎖且無法安裝。如果應用程式是依據先前的政策而安裝,則會解除安裝。</translation> <translation id="2014757022750736514">控管登入畫面的行為,使用者會從該畫面登入帳戶。可調整的設定包含可登入的人員、系統允許的帳戶類型、應使用何種驗證方法,以及一般無障礙、輸入法和語言代碼設定。</translation> <translation id="201557587962247231">裝置狀態報告上傳頻率</translation> @@ -1064,6 +1075,7 @@ <translation id="2057317273526988987">允許存取網址清單</translation> <translation id="2058055310819710697">啟用已隔離應用程式的開發人員模式</translation> <translation id="205807990145127714">要用於回報信號強度事件的遙測資料。</translation> +<translation id="2060153898336610735">自動 (根據目前的語言)</translation> <translation id="2061123930713023976">允許針對網路封包擷取作業進行偵錯</translation> <translation id="2061810934846663491">為遠端存取主機設定必要的網域名稱</translation> <translation id="2062632109797189011">重新啟用已淘汰的 window.webkitStorageInfo API</translation> @@ -1094,6 +1106,7 @@ <translation id="209586405398070749">穩定版</translation> <translation id="2096932573113293941">要求使用授予權限以執行需要授權的外掛程式</translation> <translation id="2098658257603918882">啟用使用量和當機相關資料的報告功能</translation> +<translation id="2099380339157427935">不要在系統匣中顯示登出按鈕</translation> <translation id="2104418465060359056">回報擴充功能和外掛程式資訊</translation> <translation id="2106627642643925514">覆寫預設的 PIN 碼列印模式。如果設定的模式不適用,系統會忽略這項政策。</translation> <translation id="2107563874993284076">如果將這項政策設為啟用,使用者將可在 <ph name="PRODUCT_NAME" />使用網路檔案共用功能。如果設為停用,使用者就無法使用這項功能</translation> @@ -1127,6 +1140,7 @@ <translation id="2135335181634291106">如果已啟用 <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> 政策,你可以設定 <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> 政策來指定預設搜尋引擎的網站小圖示網址。 如果未設定 <ph name="DEFAULT_SEARCH_PROVIDER_ICON_URL_POLICY_NAME" /> 政策,搜尋引擎不會有任何圖示。</translation> +<translation id="2144236546337326489">允許啟用 Phone Hub 工作接續</translation> <translation id="2145735238144543545">必須提供用戶端憑證</translation> <translation id="2146103669166779785">系統會根據這個十六進位顏色產生主題,並套用至瀏覽器。</translation> <translation id="2148769554831004951">強制將 WebSQL 啟用。</translation> @@ -1177,6 +1191,7 @@ <translation id="2171952274731262470">使用電池供電的裝置閒置時,系統採取的動作和延遲管理電源行動</translation> <translation id="2175353308236295184">應用程式專屬的 JSON 設定物件及一個鍵/值組合,例如「"managedConfiguration": { "key1": value1, "key2": value2 }」。應用程式資訊清單會定義這些鍵。</translation> <translation id="2176115444876446233">禁止使用者收集整個系統的效能追蹤記錄。</translation> +<translation id="2177696016354404697">一律停用隱私保護功能</translation> <translation id="2178899310296064282">強制執行中度以上的 YouTube 嚴格篩選模式</translation> <translation id="2180958780733364832">控管無頭模式的使用權限</translation> <translation id="2182291258410176649">使用者可決定是否要啟用備份與還原功能</translation> @@ -1282,6 +1297,8 @@ 使用者無法變更或覆寫這項設定。 注意:套用這項政策後,傳送給所有 google.com 網域的任何 HTTP 和 HTTPS 要求都會加上 X-GoogApps-Allowed-Domains 標頭。詳情請參閱以下說明文章:https://support.google.com/a/answer/1668854。</translation> +<translation id="2282174652047982960">一律使用內建 DNS 用戶端 (如果有的話)</translation> +<translation id="2288506601233091655">不允許刪除列印工作記錄</translation> <translation id="2289265947759479962">這項政策可控管系統是否要回報版本資訊,例如 OS 版本、OS 平台、OS 架構、<ph name="PRODUCT_NAME" /> 版本和 <ph name="PRODUCT_NAME" /> 發布版本。 如果不設定 <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> 政策或設為停用,系統會忽略這項政策。 @@ -1319,6 +1336,7 @@ <translation id="2309284543927494965">禁止更新</translation> <translation id="2309341709647905294">不要回報裝置所連結周邊裝置的相關資訊</translation> <translation id="2309390639296060546">預設地理位置設定</translation> +<translation id="2318583605563438459">允許家長新增受監督的帳戶</translation> <translation id="2331354174913096226">所需 DNS-over-HTTPS 解析器的 URI 範本。如要指定多個 DNS-over-HTTPS 解析器,請以半形空格分隔相應的 URI 範本。 如果你將 DnsOverHttpsMode 設為 <ph name="SECURE_DNS_MODE_SECURE" />,就必須設定這項政策,不可將其保持空白。 @@ -1428,6 +1446,7 @@ 如果未設定這項政策,系統預設會停用隱私保護畫面,但使用者可以自行變更。</translation> <translation id="2413899611035194909">顯示登入畫面系統匣選單的無障礙選項</translation> <translation id="2415715982424988916">探索 (自 91 版起開始支援)</translation> +<translation id="2421400544595297401">不允許無關聯使用者使用 Android 應用程式</translation> <translation id="2421677964966613267">這項政策已在 M88 版遭到淘汰,Chrome 已不再支援 Flash。你可以透過這項政策設定網址模式清單,用於指定無法執行 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式的網站。 如果未設定這項政策,系統會針對所有網站套用 <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> 政策 (如果已設定)。否則系統會套用使用者的個人設定。 @@ -1463,6 +1482,7 @@ <translation id="2436302465999055995">將 <ph name="LACROS_NAME" /> 設為唯一可用的瀏覽器 (尚未實作)</translation> <translation id="2439187682308339104">不允許任何網站透過 WebHID API 要求 HID 裝置的存取權</translation> <translation id="2439733504887695659">針對已輸入的憑證啟用關閉密碼遭到外洩的防護警示</translation> +<translation id="2446244536806499267">音訊播放時不要將使用者狀態視為閒置</translation> <translation id="2448315169529769573">如果將這項政策設為啟用,<ph name="PRODUCT_OS_NAME" />會將使用指標和診斷資料 (包括當機報告) 回報給 Google。如果將這項政策設為停用,系統會停用指標和診斷資料的報告功能。 如果未設定這項政策,系統會在未受管理的裝置上,將指標和診斷資料的報告功能保持停用,而在受管理的裝置上則保持啟用。</translation> @@ -1661,6 +1681,7 @@ <translation id="2625398797484317969">控管快速解答功能的設定。</translation> <translation id="262740370354162807">啟用「<ph name="CLOUD_PRINT_NAME" />」文件提交功能</translation> <translation id="2633084400146331575">啟用互動朗讀</translation> +<translation id="2633907568797306353">允許啟用 Phone Hub 通知</translation> <translation id="2635872253077105112">你可以透過這項政策控管要在替代瀏覽器中開啟的網站清單。系統會將每個項目視為在替代瀏覽器中開啟網站的規則。<ph name="PRODUCT_NAME" /> 會運用這些規則,決定是否該在替代瀏覽器中開啟某個網址。如果 <ph name="IE_PRODUCT_NAME" /> 增益集已啟用,當規則不相符時,<ph name="IE_PRODUCT_NAME" /> 會切換回 <ph name="PRODUCT_NAME" />。如果規則互相衝突,<ph name="PRODUCT_NAME" /> 會使用最詳盡的規則。 如果未設定這項政策,系統不會將任何網站加入清單。 @@ -1741,6 +1762,7 @@ <translation id="2725855586003209701">如果將這項政策設為啟用或不設定,已註冊的裝置會回報近期登入的裝置使用者清單。 如果將這項政策設為停用,已註冊的裝置不會回報使用者清單。</translation> +<translation id="2730200383593984228">允許無關聯使用者使用 Android 應用程式</translation> <translation id="2730419309754848345">預設以圖片形式列印 PDF</translation> <translation id="2731299561202635374">這項政策可控管即時檢查網址以識別不安全網址的功能。 @@ -1864,6 +1886,7 @@ <translation id="2841911109921764691">在登入畫面上使用右鍵做為主要按鈕</translation> <translation id="284288632677954003">XML 檔案的網址,其中包含一律不觸發瀏覽器切換的網址。</translation> <translation id="2846689894646472396">以毫秒為單位的網路事件檢查率。</translation> +<translation id="2847788524147474533">平台機器政策的優先順序高於雲端機器政策</translation> <translation id="2849275596224278787">隱藏登入畫面系統匣選單中的無障礙選項</translation> <translation id="2853649500575897584">不要封鎖瀏覽器程序中的舊版擴充點</translation> <translation id="285480231336205327">啟用高反差模式</translation> @@ -1871,6 +1894,8 @@ <translation id="2856674246949497058">如果作業系統比目標版本還新,則復原並維持在目標版本,並在作業過程中執行 Powerwash。</translation> <translation id="2866619962692161453">中繼政策類型</translation> <translation id="2866726566162790531">允許所有 HTTP 驗證機制的來源清單</translation> +<translation id="2868756546751652023">允許使用者使用即時網路共用功能</translation> +<translation id="286898786908566256">允許使用者將電話號碼從 Chrome 傳送到自己的 Android 裝置</translation> <translation id="2872098849906555324">停用 Google 雲端硬碟同步功能</translation> <translation id="2872961005593481000">關閉</translation> <translation id="2874209944580848064">支援 Android 裝置的 <ph name="PRODUCT_OS_NAME" />裝置注意事項:</translation> @@ -1931,6 +1956,7 @@ <translation id="2906874737073861391">AppPack 擴充功能清單</translation> <translation id="2908277604670530363">Proxy 伺服器的並行連線數量上限</translation> <translation id="2912366658685903301">設定瀏覽器主題的顏色</translation> +<translation id="2914283793640833265">不允許啟用 Phone Hub 工作接續</translation> <translation id="291853569864365550">不在新分頁中顯示內容建議</translation> <translation id="2920795918401557243">此設定可讓使用者透過系統追蹤服務收集整個系統的效能追蹤記錄。 @@ -2031,6 +2057,7 @@ 如果某項政策列於清單中,但並未正式發布,系統會套用該政策的值。 這項政策不會影響已發布的政策。</translation> +<translation id="3002067315837777719">不允許啟用 Phone Hub 通知</translation> <translation id="3016255526521614822">將「<ph name="PRODUCT_OS_NAME" />」螢幕鎖定畫面允許的筆記應用程式加入許可清單</translation> <translation id="3017578958356048910">PDF 檢視器可以為 PDF 加註</translation> <translation id="3020623128585817424">停用啟動預設瀏覽器時的檢查功能</translation> @@ -2218,6 +2245,7 @@ 想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation> <translation id="3168968618972302728">與 Kerberos 驗證相關的政策。</translation> +<translation id="3169872426103732947">顯示預設網址,允許使用者切換到完整網址</translation> <translation id="3171369832001535378">裝置網路主機名稱範本</translation> <translation id="3177802893484440532">需要為本機信任錨點執行線上 OCSP/CRL 檢查</translation> <translation id="3180671894201217988">如果將這項政策設為 Enabled 或不設定,第三方軟體將無法在 <ph name="PRODUCT_NAME" /> 的處理程序中置入可執行的程式碼。 @@ -2425,6 +2453,7 @@ 如果停用或不設定這項政策,系統會停用這些傳輸層安全標準 (TLS)/DTLS 版本。 這項政策僅是暫時性措施,我們會在日後的 <ph name="PRODUCT_NAME" /> 版本中予以移除。</translation> +<translation id="3351835664671920945">輸入密碼時預設顯示標準鍵盤</translation> <translation id="3359186795130278362">啟用有限制的受管理訪客工作階段。</translation> <translation id="33592541385181121">不在產生的 Kerberos SPN 中納入通訊埠</translation> <translation id="3360093276083825336">請注意,這項政策已遭淘汰,並將在 <ph name="PRODUCT_OS_NAME" />第 85 版中移除。請改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。 @@ -2465,6 +2494,7 @@ <translation id="3398051852031115795">系統預設行為 (視螢幕大小而定)</translation> <translation id="3399859571630358395">強制停用快速配對功能 (快速藍牙配對)。</translation> <translation id="3404681701763345449">啟用 <ph name="GOOGLE_CALENDAR_NAME" />整合。</translation> +<translation id="3406122462682235653">不詢問使用者 (立即開始下載)</translation> <translation id="3408078762098350617">這項政策會控管 <ph name="SYSTEM_FEATURES_DISABLE_LIST_POLICY_NAME" /> 中已停用功能的使用者體驗。 如果將這項政策設為「已封鎖」,已停用的功能將無法使用,但仍會顯示在畫面上。 @@ -2537,6 +2567,7 @@ 設好這項政策後,使用者即無法變更或覆寫設定。 如果不設定這項政策,系統會在初次顯示登入畫面時停用隨選朗讀功能,但使用者隨時可以啟用。</translation> +<translation id="3483585138745445814">允許使用者啟用鄰近分享功能</translation> <translation id="348495353354674884">啟用虛擬鍵盤</translation> <translation id="3485200437120267231">停用登入攔截功能</translation> <translation id="3487651201232258606">原生訊息傳遞</translation> @@ -2574,6 +2605,7 @@ <translation id="3528000905991875314">啟用替代的錯誤網頁</translation> <translation id="3531084733660068324">家長監督設定</translation> <translation id="3536263244905016305">停用「網路 Proxy 自動探索」(WPAD) 最佳化功能</translation> +<translation id="3538869107794555625">在平板電腦模式下啟用螢幕小鍵盤</translation> <translation id="3539103206548425861">你可以透過這項政策,讓 <ph name="PRODUCT_NAME" /> 中的影片和音訊內容自動播放 (無須經過使用者同意)。如果將 <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> 政策設為 True,則這項政策不會有任何作用。如果將 <ph name="AUTOPLAY_ALLOWED_POLICY_NAME" /> 設為 False,這項政策中設定的任何網址模式仍可自動播放內容。如果這項政策在 <ph name="PRODUCT_NAME" /> 執行時有所變動,變更只會套用到新開啟的分頁。 如果想進一步瞭解有效的網址模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。</translation> @@ -2611,6 +2643,7 @@ <translation id="3568762199045490351">逾時 0 毫秒的 JavaScript setTimeout() 將會延遲到 1 毫秒。</translation> <translation id="3574450691573438824">停用裝置系統記錄上傳功能</translation> <translation id="3575011234198230041">HTTP 驗證</translation> +<translation id="3575159471980949522">不允許使用者將電話號碼從 Chrome 傳送到自己的 Android 裝置</translation> <translation id="3577251398714997599">含侵入式廣告的網站的廣告設定</translation> <translation id="3577628175311752799">使用預設的參照政策 no-referrer-when-downgrade。</translation> <translation id="357917253161699596">允許使用者管理使用者憑證</translation> @@ -3229,6 +3262,7 @@ <translation id="4187576366596772431">封鎖這些網站上的 WebHID API</translation> <translation id="4190316993598857632">允許編輯書籤</translation> <translation id="4192388905594723944">用於驗證遠端存取用戶端驗證憑證的網址</translation> +<translation id="4195698007674066525">輸入密碼時預設顯示數字鍵盤</translation> <translation id="4203055629055264833">如果將這項政策設為啟用或不設定,代表使用者可透過工具列上的切換圖示開啟側邊面板,查看預設搜尋引擎的最新搜尋結果。 如果將這項政策設為停用,則會從工具列中移除切換圖示,使用者無法開啟側邊面板查看預設搜尋引擎的搜尋結果。</translation> @@ -3330,6 +3364,7 @@ <translation id="4314538398999793073">在 Kerberos 驗證期間停用 CNAME 查詢</translation> <translation id="4320592646346933548">Wi-Fi</translation> <translation id="4322842393287974810">允許使用無延遲資訊站應用程式的自動啟動功能來控制 <ph name="PRODUCT_OS_NAME" /> 版本</translation> +<translation id="4323412353642577604">啟用內容保護的遠端認證機制</translation> <translation id="4325690621216251241">在系統列顯示登出按鈕</translation> <translation id="4329095223358818804">允許快速解答功能存取所選內容</translation> <translation id="4330908525441222205">使用預設的 AppCache 行為</translation> @@ -3364,6 +3399,7 @@ <translation id="4370937370030117032">禁止將使用者名稱和檔案名稱傳送給原生印表機</translation> <translation id="4372704773119750918">不允許企業使用者使用多重設定檔 (主要或次要)</translation> <translation id="4373332965635821723">啟用無障礙捷徑</translation> +<translation id="4377377599658208627">允許網站透過網址捲動至特定文字片段</translation> <translation id="4377599627073874279">允許所有網站顯示所有圖片</translation> <translation id="437791893267799639">未設定政策,不允許資料遷移和 ARC</translation> <translation id="4380159792986204036">允許網頁 Kiosk 在任何畫面上開啟多個瀏覽器視窗</translation> @@ -3515,6 +3551,7 @@ <translation id="4558166110367609724">自動略過《服務條款》並載入瀏覽器。</translation> <translation id="4559846397119102037">允許使用 <ph name="LACROS_NAME" /></translation> <translation id="4561560385824323005">允許使用者選取預先設定的桌面版面配置以便載入</translation> +<translation id="4561940244682063697">不允許網站提示使用者分享螢幕畫面的影片串流</translation> <translation id="4562165737444703281">允許使用者啟用/設定 Crostini 連接埠轉送</translation> <translation id="456686782928669977">這項政策可控管是否要從 <ph name="IE_PRODUCT_NAME" /> 的 SiteList 政策載入規則。 @@ -3531,6 +3568,18 @@ 如果停用這項政策或不予設定,則無法同時在多個網站中進行瀏覽及開啟新視窗/分頁。</translation> <translation id="4572577129745420844">不允許使用者新增 Kerberos 帳戶</translation> <translation id="457430673056611745">OnPrint <ph name="PRODUCT_NAME" /> Enterprise 連接器的設定政策</translation> +<translation id="4576760454200781316"><ph name="PRODUCT_NAME" /> 功能啟用時,背景分頁中的 JavaScript 計時器將密集節流與合併。如果頁面處於背景狀態 5 分鐘以上,每分鐘不會執行超過一次。 + + 這項功能符合網路標準,但可能會導致特定動作延遲長達一分鐘,造成某些網站的功能無法正常運作。不過,啟用這項功能可大幅降低 CPU 用量和耗電量。詳情請參閱 https://bit.ly/30b1XR4。 + + 如果將這項政策設為啟用,系統會強制啟用這項功能,而且使用者無法覆寫這項設定。 + + 如果將這項政策設為停用,系統會強制停用這項功能,而且使用者無法覆寫這項設定。 + + 如果不設定這項政策,這項功能會由 Chrome 的內部邏輯控管,而且使用者可手動設定這個邏輯。 + + 請注意,這項政策會分別套用至各個轉譯器程序,轉譯器程序啟動時會使用這項政策最新的設定值。系統必須徹底重新啟動,確保所有載入的分頁都可收到一致的政策設定。即使不同程序採用不同的政策設定值,也不會影響正常運作。 + </translation> <translation id="4578265298946081589">不要在使用者登出時重新啟動。</translation> <translation id="4581507927311097234">關閉螢幕前的閒置時間長度 (以毫秒為單位)。如果使用者在這段時間內沒有任何動作,系統就會關閉螢幕</translation> <translation id="4582338216073557489">將這項政策設為 None 時,<ph name="PRODUCT_NAME" /> 會使用預設的快取大小將快取檔案儲存在磁碟上,使用者無法變更這項設定。 @@ -3580,6 +3629,7 @@ * 如果將 <ph name="FILTER_PLACEHOLDER" /> 設為 <ph name="EMPTY_DICTIONARY" />,則瀏覽器在選取用戶端憑證時不會受到額外限制。請注意,由網路伺服器所提供的篩選器仍然適用。 如果未設定這項政策,Chrome 不會自動選取任何網站的用戶端憑證。</translation> +<translation id="4611983465824842867">不在不安全表單上顯示警告或停用自動填入功能</translation> <translation id="4615003180013429835">網站清單剖析模式</translation> <translation id="4617338332148204752">在 <ph name="PRODUCT_FRAME_NAME" /> 內略過中繼標記檢查</translation> <translation id="4624417808625504735">禁止 JavaScript 在這些網站上使用 JIT</translation> @@ -3743,6 +3793,7 @@ <translation id="4856471929724652373">回報作業系統的更新資訊,例如更新狀態、平台版本、上次更新檢查時間以及上次重新啟動時間。 如果將這項政策設為 False 或不予設定,系統將不會回報作業系統的更新資訊。如果設為 True,則系統會回報作業系統的更新資訊。</translation> +<translation id="4857223512478723171">不允許使用全螢幕模式</translation> <translation id="4858735034935305895">允許全螢幕模式</translation> <translation id="486146220825734683">不允許使用者記住 Kerberos 密碼</translation> <translation id="4861767323695239729">設定可在使用者工作階段中使用的輸入法</translation> @@ -3840,7 +3891,9 @@ 指定這項政策後,可以阻止瀏覽器在指定的秒數內關閉,藉此處理保持運作 (https://fetch.spec.whatwg.org/#request-keepalive-flag) 要求。 預設值 (0) 代表這項功能已停用。</translation> +<translation id="4937423591320233496">停用推薦內容</translation> <translation id="4940810901775798837">允許不安全網站向任何網站端點傳送要求</translation> +<translation id="4942096314850617489">停用使用者遠端認證機制</translation> <translation id="4942681160308347946">將這項政策設為 True 時,系統會在登入畫面啟用互動朗讀功能。將這項政策設為 False 時,系統會在登入畫面停用互動朗讀功能。 如果設定這項政策,使用者可暫時啟用或停用互動朗讀功能。當登入畫面重新載入或閒置達一分鐘時,互動朗讀功能會還原成原始狀態。 @@ -3855,6 +3908,7 @@ 如果不設定這項政策,系統預設會在 Canary/開發人員版中顯示系統資訊。使用者可以透過特定操作 (例如 Alt-V) 來切換顯示設定。</translation> <translation id="494613465159630803">Cast 接收器</translation> <translation id="494924690085329212">在 Android 已啟動的前提下,於使用者登出時重新啟動。</translation> +<translation id="4950447493143157880">永不使用內建 DNS 用戶端</translation> <translation id="4952347392677351397">如果將這項政策設為 1,網站可以存取並使用感應器 (例如:動作感應器和光源感應器)。如果將這項政策設為 2,網站將無法存取感應器。 如果不設定,系統會套用 <ph name="ALLOW_SENSORS_POLICY_NAME" />,但使用者可以變更這項設定。</translation> @@ -3933,6 +3987,7 @@ <translation id="5034504101537897433">啟用裝置當機報告資訊回報功能</translation> <translation id="5039110755072335605">CORS 非萬用字元要求標頭支援</translation> <translation id="504116558738617678">只有在裝置未受管理或只有一位使用者時,才顯示磁碟空間不足的警告</translation> +<translation id="5053779531788741830">在 macOS、Android 和 ChromeOS 中使用內建 DNS 用戶端</translation> <translation id="5055474681190962362">每月應重新啟動的日期 [1-31] (根據裝置當地時區),僅適用於「frequency」設為「MONTHLY」的情況。如果這個值大於指定月份的天數上限,系統會選擇當月的最後一天。</translation> <translation id="5056708224511062314">已停用螢幕放大鏡</translation> <translation id="5058573563327660283">選取自動清理時用來釋出磁碟空間的策略 (已不適用)</translation> @@ -4090,6 +4145,8 @@ 如果未設定這項裝置桌布政策,使用者本身若設有桌布政策,則會由使用者桌布政策決定要顯示的圖片。</translation> <translation id="5219844027738217407">這項政策對 Android 應用程式的影響僅限於麥克風。將這項政策設為 true 時,所有 Android 應用程式皆無法使用麥克風 (設為靜音),沒有任何例外。</translation> +<translation id="5222325605346216869">強制啟用背景 JavaScript 計時器的節流功能</translation> +<translation id="5223606242837275233">禁止網站透過網址捲動至特定文字片段</translation> <translation id="5227124062673546005">控管 <ph name="PRODUCT_NAME" /> 在 <ph name="MS_WIN_NAME" /> 上的列印方式。 在 <ph name="MS_WIN_NAME" /> 上透過 PostScript 印表機進行列印時,不同的 PostScript 產生方法可能會影響列印效果。 @@ -4128,6 +4185,7 @@ 如果將這項政策設為停用,Chrome 清理功能將不會定期執行掃描,並且無法手動觸發。 在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 Chrome 瀏覽器雲端管理服務的執行個體。</translation> +<translation id="5245647012663146075">不允許啟用 Phone Hub</translation> <translation id="5245671702326993331">允許原生通知</translation> <translation id="524637053580639111">這項政策已在 M82 版中移除,請改用 DeviceMinimumVersion。 @@ -4526,6 +4584,7 @@ <translation id="5630352020869108293">還原上次工作階段</translation> <translation id="5633871703004128675">啟用插入點醒目顯示無障礙功能</translation> <translation id="5634032995857968056">啟用轉譯器應用程式容器沙箱</translation> +<translation id="5638334542697444045">不允許使用者使用即時網路共用功能</translation> <translation id="5639454129004500060">如果設定這項政策,該政策會納入用來下載桌面範本檔案的資訊。檔案中有要為當前使用者佈建的桌面範本。 如果未設定這項政策,桌面範本清單中就不會加入任何預先設定的桌面範本。如果 <ph name="DESK_TEMPLATES_ENABLED_POLICY_NAME" /> 政策不是設為 true,則這項政策不會有任何作用。</translation> <translation id="5641279111657132737">這項政策已遭淘汰,請改用「<ph name="AUTH_SERVER_ALLOWLIST_POLICY_NAME" />」政策。 @@ -4621,6 +4680,7 @@ 如果將這項政策設為停用或不設定,系統會在電源管理工作階段一開始便套用延遲時間設定和時間限制。</translation> <translation id="5733357908790472408">使用 Chrome Root Store。</translation> <translation id="5735915264686983150">隱藏並封鎖已停用的功能</translation> +<translation id="5736498355107027047">在系統匣中顯示登出按鈕</translation> <translation id="5737394734996319911">「<ph name="PRODUCT_NAME" />」無障礙功能可讓螢幕閱讀器的視障使用者取得無標籤網路圖片的說明。啟用這項功能的使用者可利用去識別化的 Google 服務,取得系統針對無標籤網路圖片自動產生的說明。啟用這項功能後,系統會將圖片內容傳送給 Google 伺服器以產生說明內容。系統不會傳送 Cookie 或其他使用者資料,且 Google 不會儲存或記錄任何圖片內容。如果將這項政策設為「啟用」,「<ph name="PRODUCT_NAME" />」功能便會開啟,不過這項設定只會影響螢幕閱讀器或其他類似輔助技術的使用者。如果將這項政策設為「停用」,使用者將無法啟用這項功能。如未設定這項政策,則使用者可自行選擇是否要使用此功能 </translation> <translation id="5738766588683307797">如果 <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> 設定為停用,當系統在螢幕調暗期間或螢幕關閉後不久偵測到使用者活動時,將根據 <ph name="USER_ACTIVITY_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> 所設百分比延長螢幕調暗延遲時間。一旦延長螢幕調暗延遲時間,螢幕關閉、螢幕鎖定和閒置狀態的延遲時間也會隨之調整,以維持與原先設定相同的間隔時間。 @@ -4777,6 +4837,7 @@ <translation id="5915023683182228340">如果將這項政策設為啟用或不設定,系統會允許 <ph name="PRODUCT_NAME" /> 使用 QUIC 通訊協定。 如果將這項政策設為停用,系統會禁止使用 QUIC 通訊協定。</translation> +<translation id="5916855682471300200">雲端機器政策的優先順序高於平台機器政策</translation> <translation id="5921713479449475707">允許透過 HTTP 自動更新下載</translation> <translation id="5927903236543424081">強制使用者在使用瀏覽器前登入</translation> <translation id="5928633129285224981">控制在列印 PDF 時,<ph name="PRODUCT_NAME" /> 是否會預設使用「以圖片形式列印」選項。 @@ -4981,6 +5042,7 @@ 請注意,如果系統管理員必須使用此政策,此政策將降低系統對本機 IP 的保護程度。</translation> <translation id="614662973812186053">這項政策也可以控制 Android 使用資料和診斷資料的收集設定。</translation> <translation id="614665605501218241">允許列出的網站譯不安全的方式,向更私密的網路端點傳送要求。</translation> +<translation id="6150320133676152520">在鎖定畫面和登入畫面上停用 PIN 碼自動提交功能</translation> <translation id="6155350825868160236">允許使用者選擇是否要使用 Google 網路服務來解決拼字錯誤</translation> <translation id="6155936611791017817">設定大型游標在登入畫面的預設狀態</translation> <translation id="6157537876488211233">以逗號間隔的 Proxy 略過規則清單</translation> @@ -5062,6 +5124,7 @@ <translation id="6261643884958898336">回報裝置識別資訊</translation> <translation id="6265892395051519509">允許在這些網站上存取感應器</translation> <translation id="6266043141694454734">決定是否要使用 Chrome Root Store 和內建的憑證驗證器來驗證伺服器憑證</translation> +<translation id="6270615143812355589">啟用音訊輸入</translation> <translation id="6270791075656665237">不允許 QUIC</translation> <translation id="6273015149273504999"> 指定要在登入畫面上以無訊息方式 (使用者無需操作) 安裝的應用程式和擴充功能清單;使用者無法解除安裝或停用這些網站。 @@ -5205,6 +5268,7 @@ 想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation> <translation id="6353890097388312479">如果將這項政策設為 All (值為 0) 或不設定,使用者將可透過「憑證管理員」編輯所有 CA 憑證的信任設定、移除使用者匯入的憑證以及匯入憑證。如果將這項政策設為 UserOnly (值為 1),使用者只能管理使用者匯入的憑證,無法變更內建憑證的信任設定。如果設為 None (值為 2),使用者只能查看 CA 憑證,而無法進行管理。</translation> +<translation id="6358320368815225772">停用裝置允端認證機制</translation> <translation id="6362856770865555544">如果將這項政策設為啟用或不設定,系統會開啟 <ph name="PRODUCT_NAME" /> 中的 WPAD (網路 Proxy 自動探索) 最佳化功能。 如果將這項政策設為停用,系統會關閉 WPAD 最佳化功能,導致 <ph name="PRODUCT_NAME" /> 等待 DNS WPAD 伺服器的時間增加。 @@ -5299,12 +5363,14 @@ 自版本 M106 開始,系統會自動在資訊站工作階段中啟用已允許的輸入法。 注意:如果系統不支援目前的輸入法,就會將輸入法切換至硬體鍵盤配置 (如果情況允許),或是這份清單中的第一個有效項目,並且忽略無效或不支援的輸入法。</translation> +<translation id="6483115462650732746">在 Kiosk 模式下顯示浮動式無障礙選單</translation> <translation id="6489084406497912050">控管使用者是否可以新增 Kerberos 帳戶。 如果將這項政策設為啟用或不設定,使用者可能可以透過 Kerberos 設定頁面中的「Kerberos 帳戶」設定來新增 Kerberos 帳戶。使用者可以完全控管自己新增的帳戶,也可以修改或移除帳戶。 如果停用這項政策,使用者就無法新增 Kerberos 帳戶,只能透過「設定 Kerberos 帳戶」政策新增帳戶。這個方法可以有效地鎖定帳戶。</translation> <translation id="6491139795995924304">允許在裝置上使用藍牙功能</translation> +<translation id="6491305972928809525">不要在 Kiosk 模式下顯示浮動式無障礙選單</translation> <translation id="6491872498385040936">這項政策已遭到淘汰。建議你使用 <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> 來覆寫這項政策,即可進一步微調各項設定。 強制執行中度的 YouTube 嚴格篩選模式,並禁止使用者變更這項設定。 @@ -5312,6 +5378,7 @@ 如果啟用這項設定,系統將一律強制執行 YouTube 嚴格篩選模式,並將等級設為中度以上。 如果停用這項設定或不設定值,<ph name="PRODUCT_NAME" /> 就不會強制執行 YouTube 嚴格篩選模式。不過,外部政策 (例如 YouTube 政策) 可能仍會強制執行嚴格篩選模式。</translation> +<translation id="6492177700737407141">註冊進階保護計畫的使用者只能使用標準消費者保護機制</translation> <translation id="6492737559291967859">你可以透過這項政策,指定 <ph name="PRODUCT_NAME" /> 使用的語言代碼。 如果停用或不設定這項政策,系統會採用下列選項中第一個有效的語言代碼: @@ -5353,6 +5420,7 @@ <translation id="6521971538031711337">禁止受管理的使用者設定裝置主機名稱</translation> <translation id="6523079496775454310">在非受管裝置上詢問受管理使用者是否同意分享裝置信號</translation> <translation id="652593254122955308">逾時直到閒置的設定檔關閉為止</translation> +<translation id="6527674993612811419">在不安全的表單上顯示警告並停用自動填入功能</translation> <translation id="6532026122543921610">除非 <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> 政策停用了自動偵測時區的功能,否則你可以透過這項政策概括設定自動偵測時區的方法,且使用者無法變更這項設定。 這項政策可設定的值: @@ -5363,7 +5431,9 @@ 如果未設定、設為讓使用者決定或設為 None,使用者將可透過 chrome://settings 中的一般控制項來控制自動偵測時區的功能。</translation> <translation id="6532769014584932288">允許使用 Wake Lock</translation> +<translation id="6533881418188970751">下載檔案前先向使用者詢問儲存位置</translation> <translation id="6536600139108165863">裝置關機時自動重新啟動</translation> +<translation id="6538653424603921690">在登入畫面上一律停用隱私保護功能</translation> <translation id="6539246272469751178">這項政策對 Android 應用程式沒有影響。Android 應用程式會一律使用預設的下載目錄,無法存取任何由 <ph name="PRODUCT_OS_NAME" />下載到非預設下載目錄的檔案。</translation> <translation id="654303922206238013">eCryptfs 遷移策略</translation> <translation id="6543277347547044538">限制時段的結束時間 (不包含在內)。</translation> @@ -5375,6 +5445,7 @@ <translation id="654546276700640113">如果設定這項政策,系統會強制執行所設定的 PIN 碼長度上限。如果將值設為 0 以下的數字,表示使用者可設定任意長度的 PIN 碼。如果所設定的值小於 <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> 但大於 0,系統會將長度上限設為長度下限的值。 如果不設定這項政策,系統將不會強制執行 PIN 碼長度上限。</translation> +<translation id="6546185795045702747">允許網站檢查使用者是否有已儲存的付款方式</translation> <translation id="6553143066970470539">螢幕亮度百分比</translation> <translation id="6555557921186817432">在套用 <ph name="PRODUCT_OS_NAME" /> 更新後排定自動重新啟動。 @@ -5441,6 +5512,7 @@ 在啟用、留空或未設定的情況下,這項政策不會有任何作用。</translation> <translation id="6583249367505445969">停用書籤列</translation> <translation id="6584541828182430328">停用顯示全螢幕警示的功能</translation> +<translation id="6588634282328239769">顯示完整網址</translation> <translation id="6593350713192882944">啟用快速解答功能</translation> <translation id="6594372503585248865">連線時,在遠端主機桌面啟用連線相關 UI</translation> <translation id="65947892191748867">不在非受管裝置上詢問受管理使用者是否同意分享裝置信號</translation> @@ -5477,6 +5549,7 @@ <translation id="6625136649067113817">布林值標記,表示螢幕小鍵盤是否能提供拼字檢查功能。</translation> <translation id="66265932317331474">回報 CPU 資訊</translation> <translation id="6628120204569232711">回報儲存空間狀態</translation> +<translation id="662991036483361836">禁止使用者啟用鄰近分享功能</translation> <translation id="663685822663765995">限制列印色彩模式</translation> <translation id="6637946190026453735">指定要套用至 <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise 連接器的 <ph name="PRODUCT_NAME" /> Enterprise 連接器服務設定清單,這份清單會在透過 <ph name="PRODUCT_NAME" /> 列印網頁或檔案時觸發。 @@ -5709,6 +5782,7 @@ 如果清單中未包含任何擴充功能,或是未設定清單,則使用者每次使用 <ph name="SUBMIT_JOB_FUNCTION" /> 函式呼叫時,系統都會顯示列印工作確認對話方塊。 這項政策已遭淘汰,請改用 <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />。</translation> +<translation id="6847379587945465889">允許在登入過程中將 SAML 單一登入 (SSO) Cookie 傳輸至使用者工作階段</translation> <translation id="684856667300805181">這項政策已在 <ph name="PRODUCT_NAME" /> 68 中遭到移除,並已由 <ph name="ARC_GLS_POLICY_NAME" /> 取代。</translation> <translation id="6848721032946289937">如果將這項政策設為啟用或不設定,系統會開啟硬體加速功能 (如果有的話)。 @@ -5847,6 +5921,7 @@ 如果未設定這項政策,凡是應依憑證透明化規定公開而未公開的憑證,<ph name="PRODUCT_NAME" /> 都會將其視為不受信任的憑證。 網址格式必須符合 https://www.chromium.org/administrators/url-blocklist-filter-format 的格式規定。不過,判別特定主機名稱的憑證是否有效,與網址配置、連接埠或路徑皆無關,<ph name="PRODUCT_NAME" /> 只會檢視網址的主機名稱部分 (不支援含萬用字元的主機名稱)。</translation> +<translation id="6969332115615661188">停用影片輸入</translation> <translation id="6972540544240464302">選取工作排程器設定</translation> <translation id="6975533677426693807">一律使用內部 PDF 檢視器開啟 PDF 檔案</translation> <translation id="6979158407327259162">Google 雲端硬碟</translation> @@ -5873,6 +5948,7 @@ 在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />服務的執行個體。在 <ph name="MAC_OS_NAME" /> 上,這項功能僅適用於透過行動裝置管理 (MDM) 軟體進行管理或透過 MCX 加入網域的執行個體。</translation> <translation id="6990736882800900101">除非要求開啟彈出式視窗的網頁明確拒絕與該彈出式視窗互動,否則一律允許透過 <ph name="BLANK_PAGE_NAME" /> 連結目標開啟的彈出式視窗進行這類互動 </translation> +<translation id="6992943675460798920">允許使用者錄影及拍攝螢幕截圖</translation> <translation id="6994082778848658360">如果你安裝的安全元素硬體和雙重驗證功能相容,就可以使用這項政策來指定如何使用該硬體提供雙重驗證功能。裝置的電源鍵會用來偵測使用者是否真實存在。 如果選取 [已停用],系統就不會提供雙重驗證功能。 @@ -5892,8 +5968,10 @@ <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> 偏好設定</translation> <translation id="7007283257527015835">布林值標記,表示是否應將通訊協定處理常式設為預設值。</translation> <translation id="7008308728445338159">已啟用 DNS 攔截檢查功能</translation> +<translation id="7009043124653876961">在使用者輸入內容時不顯示表情符號建議</translation> <translation id="7010006999849135962">針對遠端存取主機啟用無 PIN 碼驗證機制</translation> <translation id="7013484314513229844">啟用「連接 AC 電源時啟動」功能</translation> +<translation id="7014427417852575165">註冊進階保護計畫的使用者將享有額外防護機制</translation> <translation id="7016587686120059767">停用訪客模式</translation> <translation id="7016736684656067099">如果將這項政策設為 1,所有網站皆可顯示圖片。如果將這項政策設為 2,所有網站都無法顯示圖片。 @@ -5942,9 +6020,11 @@ <translation id="7039815268521168329">在初始設定期間顯示 Google 助理 Voice Match 流程</translation> <translation id="7040229947030068419">範例值:</translation> <translation id="7044883996351280650">控制 Android 備份與還原服務</translation> +<translation id="7046113122884041950">不允許使用 Smart Lock</translation> <translation id="7046997898355294677">顯示隱私權聲明直到使用者關閉為止</translation> <translation id="7047495632846973438">指定要檢查或略過螢幕擷取權限政策。</translation> <translation id="7055022222176591388">禁止執行過期的 <ph name="FLASH_PLUGIN_NAME" /></translation> +<translation id="7062803946218028349">允許啟用 Phone Hub</translation> <translation id="7066292150801784098">禁止遠端使用者在遠端協助工作階段中操控權限較高的視窗</translation> <translation id="706669471845501145">允許網站顯示桌面通知</translation> <translation id="70681795425744184">不允許 CRD 執行遠端主機透過 Proxy 傳送的 WebAuthn API 要求。</translation> @@ -5953,6 +6033,7 @@ <translation id="7072567600438630966">允許啟用 Phone Hub 功能。</translation> <translation id="7074437930865599190">將 User-Agent 字串的主要版本凍結為 99</translation> <translation id="707988220162760379">一律使用外部 PDF 檢視器開啟 PDF 檔案</translation> +<translation id="7081699207881888532">在使用者輸入內容時顯示表情符號建議</translation> <translation id="7081784525008938771">如果將這項政策設為啟用或不設定,系統在視訊播放期間不會將使用者狀態視為閒置。這麼做可防止系統因達到閒置延遲時間、螢幕調暗延遲時間、螢幕關閉延遲時間和螢幕鎖定延遲時間限制,而採取相應動作。 如果將這項政策設為停用,即使有視訊活動,系統仍會將使用者狀態視為閒置。</translation> @@ -6212,6 +6293,7 @@ 如果未設定這項政策,自動清理作業將會採用目前的預設內建策略:「RemoveLRUIfDormant」。</translation> <translation id="733381360015511815">設定強制安裝的隔離網頁應用程式清單</translation> <translation id="7334517274921831425">允許使用者在 <ph name="PRODUCT_OS_NAME" />中使用 <ph name="BOREALIS_NAME" /></translation> +<translation id="7334639219471717734">不允許使用者透過 Smart Lock 登入裝置</translation> <translation id="7336785017449297672">控管時鐘和時區設定。</translation> <translation id="7336878834592315572">在工作階段期間保留 Cookie</translation> <translation id="7338217396351647423">設定這項政策會指定要傳送給 ARC 執行階段的一組政策。管理員可以使用這組政策來選取要自動安裝的 Android 應用程式。輸入的值必須採用有效的 JSON 格式。 @@ -6221,6 +6303,7 @@ <translation id="7340034977315324840">回報裝置活動時間</translation> <translation id="7343004974628511824">執行 DNS 攔截檢查功能</translation> <translation id="7343497214039883642">裝置專用企業印表機設定檔</translation> +<translation id="7357148531287978404">停用音訊輸入</translation> <translation id="7358012133037776875">你可以設定網站網址模式清單,指定要自動授予哪些網站視窗放置權限。這會允許網站執行以下操作:查看裝置畫面相關資訊、使用該資訊開啟及放置視窗,或在特定畫面上要求進入全螢幕模式。 如要進一步瞭解有效的網站網址模式,請前往 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。你也可以使用萬用字元 (<ph name="WILDCARD_VALUE" />)。這項政策只會根據來源進行比對,因此會忽略網址模式中的路徑。 @@ -6469,6 +6552,7 @@ 這項政策應用於逐步輪換存取碼設定。新設定一律會加到 |future_config| 中,同時 現有值會移到 |current_config| 中。|current_config| 先前的值則會移到 |old_configs|,並在輪換結束後移除。這項政策只適用於兒童使用者。如果設定這項政策,系統將可在兒童使用者裝置上驗證家長存取碼。如果不設定這項政策,系統將無法在兒童使用者裝置上驗證家長存取碼。</translation> +<translation id="7623431489198474050">停用內容保護遠端認證</translation> <translation id="7628747690141606652">停用快速解答的翻譯功能</translation> <translation id="7629840767216985001">將這項政策設為 True 時,系統會在登入畫面啟用大型游標。將這項政策設為 False 時,系統會在登入畫面停用大型游標。 @@ -6634,6 +6718,7 @@ 如果未設定這項政策,系統會針對所有網站套用 <ph name="DEFAULT_CLIPBOARD_SETTING" /> 政策 (如果已設定)。否則系統會套用使用者的個人設定。 想進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。<ph name="WILDCARD_VALUE" /> 不是這項政策許可的值。</translation> +<translation id="7791215522423893512">不允許使用者錄影或拍攝螢幕截圖</translation> <translation id="7792796937016596423">使用者將無法執行網路封包擷取作業</translation> <translation id="7798441698807517880">由於 <ph name="FLASH_PLUGIN_NAME" /> 已淘汰,因此這項政策自 <ph name="PRODUCT_NAME" /> 89 版起已移除。 @@ -6707,6 +6792,7 @@ 建議做法:如要針對閒置狀態鎖定螢幕,可以啟用在暫停狀態下鎖定螢幕的功能,然後讓 <ph name="PRODUCT_OS_NAME" />在閒置延遲時間過後進入暫停狀態。這項政策僅限用於兩種情況:螢幕鎖定觸發時間比暫停觸發時間早很多,或是你完全不想針對閒置狀態啟用暫停功能。</translation> <translation id="7895553628261067384">遠端存取</translation> +<translation id="789975630884141379">啟用推薦內容</translation> <translation id="7899952578398457262">在非受管裝置上徵求受管理使用者的同意,才分享裝置信號,以取得存取權</translation> <translation id="7900469325540540107">預設在建立企業設定檔時保留瀏覽資料</translation> <translation id="7902040092815978832">在輸入密碼時顯示數字鍵盤</translation> @@ -6823,6 +6909,7 @@ 如果將這項政策設為 Enabled,使用者可以使用 <ph name="LACROS_NAME" /> 瀏覽器。</translation> <translation id="8020222525161221827">為第三方 ChromeOS 控制選項啟用 Desk API</translation> <translation id="802147957407376460">將畫面旋轉 0 度</translation> +<translation id="8021777486638359878">在音訊播放時將使用者狀態視為閒置</translation> <translation id="80243978433618492">不允許篩選任何網址參數。</translation> <translation id="8025620823136567878">國際鍵盤快速鍵會對應至鍵盤的按鍵位置,而非按鍵的字符。</translation> <translation id="802776363472387903"><ph name="PLUGIN_VM_NAME" /> 圖片的 SHA-256 雜湊值。</translation> @@ -7190,6 +7277,7 @@ <translation id="8378266419596669629">封鎖這些網站上的本機字型權限</translation> <translation id="8379317372795444261">允許透過 HTTP 連線使用<ph name="BASIC_AUTH" />驗證</translation> <translation id="8381678031726288574">對 U2F API 汰除作業套用預設設定。</translation> +<translation id="8381774264911275515">禁止在登入時將 SAML 單一登入 (SSO) Cookie 傳輸到使用者工作階段</translation> <translation id="8382184662529825177">啟用可用於保護裝置內容的遠端認證機制</translation> <translation id="838870586332499308">啟用數據漫遊</translation> <translation id="8393850527597048037">僅限平台</translation> @@ -7309,6 +7397,7 @@ 警告:我們不建議設定版本限制,因為這可能導致使用者無法接收軟體更新,且無法修正重大的安全性問題。限制僅能更新至指定前置碼版本,可能讓使用者面臨風險。</translation> <translation id="8508489378025029342">啟用裝置活動時間回報功能</translation> +<translation id="8511192250554640451">允許 Chrome 的邏輯控管背景 JavaScript 計時器截流功能,而且使用者可調整設定</translation> <translation id="8519264904050090490">管理化環境下使用者手動建立的例外網址</translation> <translation id="8519516251436131647">啟用無障礙功能快速鍵。 @@ -7713,6 +7802,7 @@ <translation id="8921669704201370845">為受管理的設定檔啟用 <ph name="PRODUCT_NAME" /> 雲端報告功能</translation> <translation id="8922231993239705844">停用游標醒目顯示功能</translation> <translation id="8922494933893518624">強制在不安全內容中啟用 WebSQL。</translation> +<translation id="8923028772162236077">顯示預設網址</translation> <translation id="8930064580550462145">透過螢幕鎖定畫面登入時,<ph name="PRODUCT_OS_NAME" />可以透過伺服器進行線上驗證,或使用快取密碼進行離線驗證。 如果為這項政策設定 -2 的值,系統會根據 <ph name="POLICY" /> 政策決定登入畫面的離線登入時限值。 @@ -7944,6 +8034,7 @@ 使用者的工作階段會在重新啟動後恢復。</translation> <translation id="9160028464653564229">不允許任何網站透過 Serial API 要求存取序列埠</translation> +<translation id="9162444960513782569">強制不啟用背景 JavaScript 計時器的節流功能</translation> <translation id="916461878260574432">指定是否使用 P2P 處理 OS 更新酬載。 如果設為 True,裝置將共用並試圖消耗 LAN 上的更新酬載,這可能降低網際網路頻寬用量並減輕壅塞。如果 LAN 上沒有更新酬載,裝置將回到更新伺服器進行下載。 如果設為 False,系統就不會使用 P2P。 @@ -7959,6 +8050,7 @@ 這項政策僅是暫時性措施,我們會在日後的 <ph name="PRODUCT_NAME" /> 版本中予以移除。待這項政策移除後,<ph name="PRODUCT_NAME" /> 便一律可以查詢其他 DNS 類型。</translation> <translation id="9167719789236691545">禁止在 <ph name="PRODUCT_OS_NAME" />的「檔案」應用程式中使用 Google 雲端硬碟</translation> +<translation id="9180108183162961002">允許透過瀏覽器訪客模式登入</translation> <translation id="9185963199234034321">在登入畫面上啟用高對比模式,並允許使用者暫時停用</translation> <translation id="9187743794267626640">停用外部儲存裝置掛載功能</translation> <translation id="9190022798664427644">啟用單聲道音訊模式</translation> @@ -7973,6 +8065,7 @@ <translation id="9200828125069750521">使用 POST 的圖片網址參數</translation> <translation id="9204863016826119209">這項政策中列出的已安裝 Android 應用程式可以使用企業金鑰。</translation> <translation id="9207596996305971030">不回報登入/登出事件</translation> +<translation id="9210647066889383361">允許使用者透過 Smart Lock 登入裝置</translation> <translation id="9213751049772256263">停用所有變化版本</translation> <translation id="9217154963008402249">監控網路封包的傳送頻率</translation> <translation id="9220314833408124365">使用預設的 no-referrer-when-downgrade 參照網址政策</translation> @@ -8022,6 +8115,7 @@ <translation id="966425658642788645">套用預設行為</translation> <translation id="971677226939413180">使用者無法選擇「以圖片形式列印」選項。</translation> <translation id="974349541138387272">指定所需 DNS-over-HTTPS 解析器的 URI 範本</translation> +<translation id="978658824596356870">24 小時制</translation> <translation id="979467274961593903">禁止使用遠端偵錯功能</translation> <translation id="980218166381006412">如果將這項政策設為啟用,系統會開啟背景模式。在背景模式中,<ph name="PRODUCT_NAME" /> 處理程序會在使用者登入作業系統時啟動,並在最後一個瀏覽器視窗關閉後持續執行,讓背景應用程式和瀏覽工作階段維持運作。背景處理程序會在系統匣中顯示相應圖示,使用者隨時可從該處關閉處理程序。
diff --git a/components/query_tiles/internal/logger_impl.cc b/components/query_tiles/internal/logger_impl.cc index d70525d..44f74aec 100644 --- a/components/query_tiles/internal/logger_impl.cc +++ b/components/query_tiles/internal/logger_impl.cc
@@ -62,27 +62,26 @@ } base::Value LoggerImpl::GetServiceStatus() { - base::DictionaryValue result; + base::Value::Dict result; if (!log_source_) - return std::move(result); + return base::Value(std::move(result)); - result.SetString("fetcherStatus", - FetcherStatusToString(log_source_->GetFetcherStatus())); - result.SetString("groupStatus", - GroupStatusToString(log_source_->GetGroupStatus())); - return std::move(result); + result.Set("fetcherStatus", + FetcherStatusToString(log_source_->GetFetcherStatus())); + result.Set("groupStatus", GroupStatusToString(log_source_->GetGroupStatus())); + return base::Value(std::move(result)); } base::Value LoggerImpl::GetTileData() { - base::DictionaryValue result; + base::Value::Dict result; if (!log_source_) - return std::move(result); + return base::Value(std::move(result)); auto* tile_group = log_source_->GetTileGroup(); // (crbug.com/1101557): Make the format pretty with every field in TileGroup // explicitly appears in the DictValue. if (tile_group) - result.SetString("groupInfo", tile_group->DebugString()); - return std::move(result); + result.Set("groupInfo", tile_group->DebugString()); + return base::Value(std::move(result)); } void LoggerImpl::OnServiceStatusChanged() {
diff --git a/components/services/storage/BUILD.gn b/components/services/storage/BUILD.gn index 280ed879..03e2bf22 100644 --- a/components/services/storage/BUILD.gn +++ b/components/services/storage/BUILD.gn
@@ -114,14 +114,14 @@ component("lock_manager") { sources = [ - "indexed_db/locks/disjoint_range_lock_manager.cc", - "indexed_db/locks/disjoint_range_lock_manager.h", - "indexed_db/locks/leveled_lock.cc", - "indexed_db/locks/leveled_lock.h", - "indexed_db/locks/leveled_lock_manager.cc", - "indexed_db/locks/leveled_lock_manager.h", - "indexed_db/locks/leveled_lock_range.cc", - "indexed_db/locks/leveled_lock_range.h", + "indexed_db/locks/partitioned_lock.cc", + "indexed_db/locks/partitioned_lock.h", + "indexed_db/locks/partitioned_lock_manager.cc", + "indexed_db/locks/partitioned_lock_manager.h", + "indexed_db/locks/partitioned_lock_manager_impl.cc", + "indexed_db/locks/partitioned_lock_manager_impl.h", + "indexed_db/locks/partitioned_lock_range.cc", + "indexed_db/locks/partitioned_lock_range.h", ] deps = [ "//base" ] defines = [ "IS_LOCK_MANAGER_IMPL" ] @@ -189,8 +189,8 @@ "dom_storage/session_storage_metadata_unittest.cc", "dom_storage/session_storage_namespace_impl_unittest.cc", "dom_storage/storage_area_impl_unittest.cc", - "indexed_db/locks/disjoint_range_lock_manager_unittest.cc", - "indexed_db/locks/leveled_lock_manager_unittest.cc", + "indexed_db/locks/partitioned_lock_manager_impl_unittest.cc", + "indexed_db/locks/partitioned_lock_manager_unittest.cc", "indexed_db/scopes/leveldb_scope_unittest.cc", "indexed_db/scopes/leveldb_scopes_coding_unittest.cc", "indexed_db/scopes/leveldb_scopes_tasks_unittest.cc",
diff --git a/components/services/storage/indexed_db/locks/leveled_lock.h b/components/services/storage/indexed_db/locks/leveled_lock.h deleted file mode 100644 index 223768d..0000000 --- a/components/services/storage/indexed_db/locks/leveled_lock.h +++ /dev/null
@@ -1,80 +0,0 @@ -// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_H_ -#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_H_ - -#include <iosfwd> - -#include "base/callback.h" -#include "base/callback_helpers.h" -#include "base/component_export.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" - -namespace content { - -// Represents a granted lock in the LeveledLockManager. When this object is -// destroyed, the lock is released. Since default construction is supported, -// |is_locked()| can be used to inquire locked status. Also, |Release()| can -// be called to manually release the lock, which appropriately updates the -// |is_locked()| result. -class COMPONENT_EXPORT(LOCK_MANAGER) LeveledLock { - public: - using LockReleasedCallback = - base::OnceCallback<void(int level, LeveledLockRange range)>; - - LeveledLock(); - - LeveledLock(const LeveledLock&) = delete; - LeveledLock& operator=(const LeveledLock&) = delete; - - ~LeveledLock(); - LeveledLock(LeveledLock&&) noexcept; - // |lock_released_callback| is called when the lock is released, either by - // destruction of this object or by the |Released()| call. It will be called - // synchronously on the sequence runner this lock is released on. - LeveledLock(LeveledLockRange range, - int level, - LockReleasedCallback lock_released_callback); - // The lock in |other| is not released, and |this| must not be holding a lock. - LeveledLock& operator=(LeveledLock&& other) noexcept; - - // Returns true if this object is holding a lock. - bool is_locked() const { return !lock_released_callback_.is_null(); } - - // Explicitly releases the granted lock. - // - // The lock is also released implicitly when this instance is destroyed. - // This method is idempotent, i.e. it's valid to call Release() on an - // instance that does not hold a granted lock. - void Release(); - - int level() const { return level_; } - const LeveledLockRange& range() const { return range_; } - - private: - LeveledLockRange range_; - int level_ = 0; - // Closure to run when the lock is released. The lock is held when this is - // non-null. - LockReleasedCallback lock_released_callback_; -}; - -// Logging support. -COMPONENT_EXPORT(LOCK_MANAGER) -std::ostream& operator<<(std::ostream& out, const LeveledLock& range); - -// Equality doesn't take into account whether the lock 'is_locked()' or not, -// only the level and the range. -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator==(const LeveledLock& x, const LeveledLock& y); -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator!=(const LeveledLock& x, const LeveledLock& y); -// Comparison operator to allow sorting for locking / unlocking order. -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator<(const LeveledLock& x, const LeveledLock& y); - -} // namespace content - -#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_H_
diff --git a/components/services/storage/indexed_db/locks/leveled_lock_manager.cc b/components/services/storage/indexed_db/locks/leveled_lock_manager.cc deleted file mode 100644 index fa0ab02c..0000000 --- a/components/services/storage/indexed_db/locks/leveled_lock_manager.cc +++ /dev/null
@@ -1,44 +0,0 @@ -// Copyright 2018 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/services/storage/indexed_db/locks/leveled_lock_manager.h" - -#include <memory> -#include <utility> - -#include "base/barrier_closure.h" -#include "base/bind.h" - -namespace content { - -LeveledLockHolder::LeveledLockHolder() = default; -LeveledLockHolder::~LeveledLockHolder() = default; - -LeveledLockManager::LeveledLockManager() {} -LeveledLockManager::~LeveledLockManager() = default; - -LeveledLockManager::LeveledLockRequest::LeveledLockRequest( - int level, - LeveledLockRange range, - LockType type) - : level(level), range(std::move(range)), type(type) {} - -bool operator<(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y) { - if (x.level != y.level) - return x.level < y.level; - return x.range < y.range; -} - -bool operator==(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y) { - return x.level == y.level && x.range == y.range && x.type == y.type; -} - -bool operator!=(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y) { - return !(x == y); -} - -} // namespace content
diff --git a/components/services/storage/indexed_db/locks/leveled_lock_manager.h b/components/services/storage/indexed_db/locks/leveled_lock_manager.h deleted file mode 100644 index 6e6dd2b7..0000000 --- a/components/services/storage/indexed_db/locks/leveled_lock_manager.h +++ /dev/null
@@ -1,90 +0,0 @@ -// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_MANAGER_H_ -#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_MANAGER_H_ - -#include <iosfwd> -#include <vector> - -#include "base/callback.h" -#include "base/component_export.h" -#include "base/containers/flat_set.h" -#include "base/memory/weak_ptr.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" - -namespace content { - -// Used to receive and hold locks from a LeveledLockManager. This struct enables -// the LeveledLock objects to always live in the destination of the caller's -// choosing (as opposed to having the locks be an argument in the callback, -// where they could be owned by the task scheduler). -// This class must be used and destructed on the same sequence as the -// LeveledLockManager. -struct COMPONENT_EXPORT(LOCK_MANAGER) LeveledLockHolder { - LeveledLockHolder(); - LeveledLockHolder(const LeveledLockHolder&) = delete; - LeveledLockHolder& operator=(const LeveledLockHolder&) = delete; - ~LeveledLockHolder(); - - base::WeakPtr<LeveledLockHolder> AsWeakPtr() { - return weak_factory.GetWeakPtr(); - } - - void AbortLockRequest() { weak_factory.InvalidateWeakPtrs(); } - - std::vector<LeveledLock> locks; - base::WeakPtrFactory<LeveledLockHolder> weak_factory{this}; -}; - -// Generic two-level lock management system based on ranges. Granted locks are -// represented by the |LeveledLock| class. -class COMPONENT_EXPORT(LOCK_MANAGER) LeveledLockManager { - public: - using LocksAcquiredCallback = base::OnceClosure; - - // Shared locks can share access to a lock range, while exclusive locks - // require that they are the only lock for their range. - enum class LockType { kShared, kExclusive }; - - LeveledLockManager(); - LeveledLockManager(const LeveledLockManager&) = delete; - LeveledLockManager& operator=(const LeveledLockManager&) = delete; - virtual ~LeveledLockManager(); - - virtual int64_t LocksHeldForTesting() const = 0; - virtual int64_t RequestsWaitingForTesting() const = 0; - - // Acquires locks for the given requests. Lock levels are treated as - // completely independent domains. The lock levels start at zero. - // Returns false if any of the lock ranges were invalid or an invariant was - // broken. - struct COMPONENT_EXPORT(LOCK_MANAGER) LeveledLockRequest { - LeveledLockRequest(int level, LeveledLockRange range, LockType type); - int level; - LeveledLockRange range; - LockType type; - }; - virtual bool AcquireLocks(base::flat_set<LeveledLockRequest> lock_requests, - base::WeakPtr<LeveledLockHolder> locks_receiever, - LocksAcquiredCallback callback) = 0; - - private: - base::WeakPtrFactory<LeveledLockManager> weak_factory_{this}; -}; - -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator<(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y); -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator==(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y); -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator!=(const LeveledLockManager::LeveledLockRequest& x, - const LeveledLockManager::LeveledLockRequest& y); - -} // namespace content - -#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_MANAGER_H_
diff --git a/components/services/storage/indexed_db/locks/leveled_lock_range.h b/components/services/storage/indexed_db/locks/leveled_lock_range.h deleted file mode 100644 index 4cf15bfb..0000000 --- a/components/services/storage/indexed_db/locks/leveled_lock_range.h +++ /dev/null
@@ -1,37 +0,0 @@ -// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_RANGE_H_ -#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_RANGE_H_ - -#include <stdint.h> -#include <iosfwd> -#include <string> - -#include "base/component_export.h" - -namespace content { - -// The range is [begin, end). Bytewise comparison is used to determine -// overlapping ranges. -struct COMPONENT_EXPORT(LOCK_MANAGER) LeveledLockRange { - std::string begin; - std::string end; - - bool IsValid() const { return begin < end; } -}; - -// Logging support. -COMPONENT_EXPORT(LOCK_MANAGER) -std::ostream& operator<<(std::ostream& out, const LeveledLockRange& range); - -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator<(const LeveledLockRange& x, const LeveledLockRange& y); -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator==(const LeveledLockRange& x, const LeveledLockRange& y); -COMPONENT_EXPORT(LOCK_MANAGER) -bool operator!=(const LeveledLockRange& x, const LeveledLockRange& y); - -} // namespace content - -#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_LEVELED_LOCK_RANGE_H_
diff --git a/components/services/storage/indexed_db/locks/leveled_lock.cc b/components/services/storage/indexed_db/locks/partitioned_lock.cc similarity index 62% rename from components/services/storage/indexed_db/locks/leveled_lock.cc rename to components/services/storage/indexed_db/locks/partitioned_lock.cc index 20546b99..9052b2c 100644 --- a/components/services/storage/indexed_db/locks/leveled_lock.cc +++ b/components/services/storage/indexed_db/locks/partitioned_lock.cc
@@ -2,19 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/services/storage/indexed_db/locks/leveled_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" #include <ostream> namespace content { -LeveledLock::LeveledLock() = default; +PartitionedLock::PartitionedLock() = default; -LeveledLock::~LeveledLock() { +PartitionedLock::~PartitionedLock() { Release(); } -LeveledLock::LeveledLock(LeveledLock&& other) noexcept { +PartitionedLock::PartitionedLock(PartitionedLock&& other) noexcept { DCHECK(!this->is_locked()) << "Cannot move a lock onto an active lock: " << *this; this->range_ = std::move(other.range_); @@ -22,14 +22,14 @@ this->lock_released_callback_ = std::move(other.lock_released_callback_); DCHECK(!other.is_locked()); } -LeveledLock::LeveledLock(LeveledLockRange range, - int level, - LockReleasedCallback lock_released_callback) +PartitionedLock::PartitionedLock(PartitionedLockRange range, + int level, + LockReleasedCallback lock_released_callback) : range_(std::move(range)), level_(level), lock_released_callback_(std::move(lock_released_callback)) {} -LeveledLock& LeveledLock::operator=(LeveledLock&& other) noexcept { +PartitionedLock& PartitionedLock::operator=(PartitionedLock&& other) noexcept { DCHECK(!this->is_locked()) << "Cannot move a lock onto an active lock: " << *this; this->range_ = std::move(other.range_); @@ -39,29 +39,29 @@ return *this; } -void LeveledLock::Release() { +void PartitionedLock::Release() { if (is_locked()) std::move(lock_released_callback_).Run(level_, range_); } -std::ostream& operator<<(std::ostream& out, const LeveledLock& lock) { - return out << "<LeveledLock>{is_locked_: " << lock.is_locked() +std::ostream& operator<<(std::ostream& out, const PartitionedLock& lock) { + return out << "<PartitionedLock>{is_locked_: " << lock.is_locked() << ", level_: " << lock.level() << ", range_: " << lock.range() << "}"; } -bool operator<(const LeveledLock& x, const LeveledLock& y) { +bool operator<(const PartitionedLock& x, const PartitionedLock& y) { if (x.level() != y.level()) return x.level() < y.level(); if (x.range().begin != y.range().begin) return x.range().begin < y.range().begin; return x.range().end < y.range().end; } -bool operator==(const LeveledLock& x, const LeveledLock& y) { +bool operator==(const PartitionedLock& x, const PartitionedLock& y) { return x.level() == y.level() && x.range().begin == y.range().begin && x.range().end == y.range().end; } -bool operator!=(const LeveledLock& x, const LeveledLock& y) { +bool operator!=(const PartitionedLock& x, const PartitionedLock& y) { return !(x == y); }
diff --git a/components/services/storage/indexed_db/locks/partitioned_lock.h b/components/services/storage/indexed_db/locks/partitioned_lock.h new file mode 100644 index 0000000..cb62118c --- /dev/null +++ b/components/services/storage/indexed_db/locks/partitioned_lock.h
@@ -0,0 +1,80 @@ +// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_H_ +#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_H_ + +#include <iosfwd> + +#include "base/callback.h" +#include "base/callback_helpers.h" +#include "base/component_export.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" + +namespace content { + +// Represents a granted lock in the PartitionedLockManager. When this object is +// destroyed, the lock is released. Since default construction is supported, +// |is_locked()| can be used to inquire locked status. Also, |Release()| can +// be called to manually release the lock, which appropriately updates the +// |is_locked()| result. +class COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLock { + public: + using LockReleasedCallback = + base::OnceCallback<void(int level, PartitionedLockRange range)>; + + PartitionedLock(); + + PartitionedLock(const PartitionedLock&) = delete; + PartitionedLock& operator=(const PartitionedLock&) = delete; + + ~PartitionedLock(); + PartitionedLock(PartitionedLock&&) noexcept; + // |lock_released_callback| is called when the lock is released, either by + // destruction of this object or by the |Released()| call. It will be called + // synchronously on the sequence runner this lock is released on. + PartitionedLock(PartitionedLockRange range, + int level, + LockReleasedCallback lock_released_callback); + // The lock in |other| is not released, and |this| must not be holding a lock. + PartitionedLock& operator=(PartitionedLock&& other) noexcept; + + // Returns true if this object is holding a lock. + bool is_locked() const { return !lock_released_callback_.is_null(); } + + // Explicitly releases the granted lock. + // + // The lock is also released implicitly when this instance is destroyed. + // This method is idempotent, i.e. it's valid to call Release() on an + // instance that does not hold a granted lock. + void Release(); + + int level() const { return level_; } + const PartitionedLockRange& range() const { return range_; } + + private: + PartitionedLockRange range_; + int level_ = 0; + // Closure to run when the lock is released. The lock is held when this is + // non-null. + LockReleasedCallback lock_released_callback_; +}; + +// Logging support. +COMPONENT_EXPORT(LOCK_MANAGER) +std::ostream& operator<<(std::ostream& out, const PartitionedLock& range); + +// Equality doesn't take into account whether the lock 'is_locked()' or not, +// only the level and the range. +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator==(const PartitionedLock& x, const PartitionedLock& y); +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator!=(const PartitionedLock& x, const PartitionedLock& y); +// Comparison operator to allow sorting for locking / unlocking order. +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator<(const PartitionedLock& x, const PartitionedLock& y); + +} // namespace content + +#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_H_
diff --git a/components/services/storage/indexed_db/locks/partitioned_lock_manager.cc b/components/services/storage/indexed_db/locks/partitioned_lock_manager.cc new file mode 100644 index 0000000..04d3a97 --- /dev/null +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager.cc
@@ -0,0 +1,44 @@ +// Copyright 2018 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/services/storage/indexed_db/locks/partitioned_lock_manager.h" + +#include <memory> +#include <utility> + +#include "base/barrier_closure.h" +#include "base/bind.h" + +namespace content { + +PartitionedLockHolder::PartitionedLockHolder() = default; +PartitionedLockHolder::~PartitionedLockHolder() = default; + +PartitionedLockManager::PartitionedLockManager() = default; +PartitionedLockManager::~PartitionedLockManager() = default; + +PartitionedLockManager::PartitionedLockRequest::PartitionedLockRequest( + int level, + PartitionedLockRange range, + LockType type) + : level(level), range(std::move(range)), type(type) {} + +bool operator<(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y) { + if (x.level != y.level) + return x.level < y.level; + return x.range < y.range; +} + +bool operator==(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y) { + return x.level == y.level && x.range == y.range && x.type == y.type; +} + +bool operator!=(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y) { + return !(x == y); +} + +} // namespace content
diff --git a/components/services/storage/indexed_db/locks/partitioned_lock_manager.h b/components/services/storage/indexed_db/locks/partitioned_lock_manager.h new file mode 100644 index 0000000..1bfbe59 --- /dev/null +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager.h
@@ -0,0 +1,94 @@ +// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_H_ +#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_H_ + +#include <iosfwd> +#include <vector> + +#include "base/callback.h" +#include "base/component_export.h" +#include "base/containers/flat_set.h" +#include "base/memory/weak_ptr.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" + +namespace content { + +// Used to receive and hold locks from a PartitionedLockManager. This struct +// enables the PartitionedLock objects to always live in the destination of the +// caller's choosing (as opposed to having the locks be an argument in the +// callback, where they could be owned by the task scheduler). +// +// This class must be used and destructed on the same sequence as the +// PartitionedLockManager. +struct COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLockHolder { + PartitionedLockHolder(); + PartitionedLockHolder(const PartitionedLockHolder&) = delete; + PartitionedLockHolder& operator=(const PartitionedLockHolder&) = delete; + ~PartitionedLockHolder(); + + base::WeakPtr<PartitionedLockHolder> AsWeakPtr() { + return weak_factory.GetWeakPtr(); + } + + void AbortLockRequest() { weak_factory.InvalidateWeakPtrs(); } + + std::vector<PartitionedLock> locks; + base::WeakPtrFactory<PartitionedLockHolder> weak_factory{this}; +}; + +// Generic two-level lock management system based on ranges. Granted locks are +// represented by the |PartitionedLock| class. +class COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLockManager { + public: + using LocksAcquiredCallback = base::OnceClosure; + + // Shared locks can share access to a lock range, while exclusive locks + // require that they are the only lock for their range. + enum class LockType { kShared, kExclusive }; + + PartitionedLockManager(); + PartitionedLockManager(const PartitionedLockManager&) = delete; + PartitionedLockManager& operator=(const PartitionedLockManager&) = delete; + virtual ~PartitionedLockManager(); + + virtual int64_t LocksHeldForTesting() const = 0; + virtual int64_t RequestsWaitingForTesting() const = 0; + + // Acquires locks for the given requests. Lock levels are treated as + // completely independent domains. The lock levels start at zero. + // Returns false if any of the lock ranges were invalid or an invariant was + // broken. + struct COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLockRequest { + PartitionedLockRequest(int level, + PartitionedLockRange range, + LockType type); + int level; + PartitionedLockRange range; + LockType type; + }; + virtual bool AcquireLocks( + base::flat_set<PartitionedLockRequest> lock_requests, + base::WeakPtr<PartitionedLockHolder> locks_receiever, + LocksAcquiredCallback callback) = 0; + + private: + base::WeakPtrFactory<PartitionedLockManager> weak_factory_{this}; +}; + +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator<(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y); +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator==(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y); +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator!=(const PartitionedLockManager::PartitionedLockRequest& x, + const PartitionedLockManager::PartitionedLockRequest& y); + +} // namespace content + +#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_H_
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.cc similarity index 77% rename from components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc rename to components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.cc index 9a15aee6..56d5efea 100644 --- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.cc +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include <utility> @@ -13,31 +13,31 @@ namespace content { -DisjointRangeLockManager::LockRequest::LockRequest() = default; -DisjointRangeLockManager::LockRequest::LockRequest( +PartitionedLockManagerImpl::LockRequest::LockRequest() = default; +PartitionedLockManagerImpl::LockRequest::LockRequest( LockType type, - base::WeakPtr<LeveledLockHolder> locks_holder, + base::WeakPtr<PartitionedLockHolder> locks_holder, base::OnceClosure acquired_callback) : requested_type(type), locks_holder(std::move(locks_holder)), acquired_callback(std::move(acquired_callback)) {} -DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) noexcept = +PartitionedLockManagerImpl::LockRequest::LockRequest(LockRequest&&) noexcept = default; -DisjointRangeLockManager::LockRequest::~LockRequest() = default; -DisjointRangeLockManager::Lock::Lock() = default; -DisjointRangeLockManager::Lock::Lock(Lock&&) noexcept = default; -DisjointRangeLockManager::Lock::~Lock() = default; -DisjointRangeLockManager::Lock& DisjointRangeLockManager::Lock::operator=( - DisjointRangeLockManager::Lock&&) noexcept = default; +PartitionedLockManagerImpl::LockRequest::~LockRequest() = default; +PartitionedLockManagerImpl::Lock::Lock() = default; +PartitionedLockManagerImpl::Lock::Lock(Lock&&) noexcept = default; +PartitionedLockManagerImpl::Lock::~Lock() = default; +PartitionedLockManagerImpl::Lock& PartitionedLockManagerImpl::Lock::operator=( + PartitionedLockManagerImpl::Lock&&) noexcept = default; -DisjointRangeLockManager::DisjointRangeLockManager(int level_count) +PartitionedLockManagerImpl::PartitionedLockManagerImpl(int level_count) : task_runner_(base::SequencedTaskRunnerHandle::Get()) { locks_.resize(level_count); } -DisjointRangeLockManager::~DisjointRangeLockManager() = default; +PartitionedLockManagerImpl::~PartitionedLockManagerImpl() = default; -int64_t DisjointRangeLockManager::LocksHeldForTesting() const { +int64_t PartitionedLockManagerImpl::LocksHeldForTesting() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); int64_t locks = 0; for (const LockLevelMap& map : locks_) { @@ -47,7 +47,7 @@ } return locks; } -int64_t DisjointRangeLockManager::RequestsWaitingForTesting() const { +int64_t PartitionedLockManagerImpl::RequestsWaitingForTesting() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); int64_t requests = 0; for (const LockLevelMap& map : locks_) { @@ -58,9 +58,9 @@ return requests; } -bool DisjointRangeLockManager::AcquireLocks( - base::flat_set<LeveledLockRequest> lock_requests, - base::WeakPtr<LeveledLockHolder> locks_holder, +bool PartitionedLockManagerImpl::AcquireLocks( + base::flat_set<PartitionedLockRequest> lock_requests, + base::WeakPtr<PartitionedLockHolder> locks_holder, LocksAcquiredCallback callback) { if (!locks_holder) return false; @@ -80,7 +80,7 @@ base::BindOnce( [](scoped_refptr<base::SequencedTaskRunner> runner, scoped_refptr<base::RefCountedData<bool>> run_synchronously, - base::WeakPtr<LeveledLockHolder> holder, + base::WeakPtr<PartitionedLockHolder> holder, LocksAcquiredCallback callback) { // All locks have been acquired. if (!holder || callback.IsCancelled() || callback.is_null()) @@ -92,7 +92,7 @@ }, task_runner_, run_callback_synchonously, locks_holder, std::move(callback))); - for (LeveledLockRequest& request : lock_requests) { + for (PartitionedLockRequest& request : lock_requests) { bool success = AcquireLock(std::move(request), locks_holder, all_locks_acquired_barrier); if (!success) { @@ -105,8 +105,8 @@ return true; } -DisjointRangeLockManager::TestLockResult DisjointRangeLockManager::TestLock( - LeveledLockRequest request) { +PartitionedLockManagerImpl::TestLockResult PartitionedLockManagerImpl::TestLock( + PartitionedLockRequest request) { if (request.level < 0 || static_cast<size_t>(request.level) >= locks_.size()) return TestLockResult::kInvalid; if (request.range.begin >= request.range.end) @@ -135,8 +135,9 @@ : TestLockResult::kLocked; } -void DisjointRangeLockManager::RemoveLockRange(int level, - const LeveledLockRange& range) { +void PartitionedLockManagerImpl::RemoveLockRange( + int level, + const PartitionedLockRange& range) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_LT(level, static_cast<int>(locks_.size())); auto& level_locks = locks_[level]; @@ -147,9 +148,9 @@ } } -bool DisjointRangeLockManager::AcquireLock( - LeveledLockRequest request, - base::WeakPtr<LeveledLockHolder> locks_holder, +bool PartitionedLockManagerImpl::AcquireLock( + PartitionedLockRequest request, + base::WeakPtr<PartitionedLockHolder> locks_holder, base::OnceClosure acquired_callback) { DCHECK(locks_holder); if (request.level < 0 || static_cast<size_t>(request.level) >= locks_.size()) @@ -180,7 +181,7 @@ ++lock.acquired_count; lock.lock_mode = request.type; auto released_callback = base::BindOnce( - &DisjointRangeLockManager::LockReleased, weak_factory_.GetWeakPtr()); + &PartitionedLockManagerImpl::LockReleased, weak_factory_.GetWeakPtr()); locks_holder->locks.emplace_back(std::move(request.range), request.level, std::move(released_callback)); std::move(acquired_callback).Run(); @@ -194,7 +195,8 @@ return true; } -void DisjointRangeLockManager::LockReleased(int level, LeveledLockRange range) { +void PartitionedLockManagerImpl::LockReleased(int level, + PartitionedLockRange range) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_LT(level, static_cast<int>(locks_.size())); auto& level_locks = locks_[level]; @@ -222,8 +224,9 @@ ++lock.acquired_count; lock.lock_mode = requester.requested_type; - auto released_callback = base::BindOnce( - &DisjointRangeLockManager::LockReleased, weak_factory_.GetWeakPtr()); + auto released_callback = + base::BindOnce(&PartitionedLockManagerImpl::LockReleased, + weak_factory_.GetWeakPtr()); // Grant the lock. requester.locks_holder->locks.emplace_back(range, level, std::move(released_callback)); @@ -236,9 +239,9 @@ } // static -bool DisjointRangeLockManager::IsRangeDisjointFromNeighbors( +bool PartitionedLockManagerImpl::IsRangeDisjointFromNeighbors( const LockLevelMap& map, - const LeveledLockRange& range) { + const PartitionedLockRange& range) { DCHECK_EQ(map.count(range), 1ull); auto it = map.find(range); auto next_it = it;
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h similarity index 70% rename from components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h rename to components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h index e93c5fc..ce121e5 100644 --- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_DISJOINT_RANGE_LOCK_MANAGER_H_ -#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_DISJOINT_RANGE_LOCK_MANAGER_H_ +#ifndef COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_IMPL_H_ +#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_IMPL_H_ #include <list> #include <vector> @@ -15,7 +15,7 @@ #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" namespace content { @@ -33,18 +33,19 @@ // needed (where old locks will continue to be held), then all locks must be // released first, and then all necessary locks acquired in one acquisition // call. -class COMPONENT_EXPORT(LOCK_MANAGER) DisjointRangeLockManager - : public LeveledLockManager { +class COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLockManagerImpl + : public PartitionedLockManager { public: // Creates a lock manager with the given number of levels, the comparator for // leveldb keys, and the current task runner that we are running on. The task // runner will be used for the lock acquisition callbacks. - explicit DisjointRangeLockManager(int level_count); + explicit PartitionedLockManagerImpl(int level_count); - DisjointRangeLockManager(const DisjointRangeLockManager&) = delete; - DisjointRangeLockManager& operator=(const DisjointRangeLockManager&) = delete; + PartitionedLockManagerImpl(const PartitionedLockManagerImpl&) = delete; + PartitionedLockManagerImpl& operator=(const PartitionedLockManagerImpl&) = + delete; - ~DisjointRangeLockManager() override; + ~PartitionedLockManagerImpl() override; int64_t LocksHeldForTesting() const override; int64_t RequestsWaitingForTesting() const override; @@ -54,17 +55,17 @@ // * |range.begin| < |range.end| using the |comparator| above, // * range disjoint from other lock ranges (which is an implementation // invariant). - bool AcquireLocks(base::flat_set<LeveledLockRequest> lock_requests, - base::WeakPtr<LeveledLockHolder> locks_holder, + bool AcquireLocks(base::flat_set<PartitionedLockRequest> lock_requests, + base::WeakPtr<PartitionedLockHolder> locks_holder, LocksAcquiredCallback callback) override; enum class TestLockResult { kInvalid, kLocked, kFree }; // Tests to see if the given lock request can be acquired. - TestLockResult TestLock(LeveledLockRequest lock_requests); + TestLockResult TestLock(PartitionedLockRequest lock_requests); // Remove the given lock range at the given level. The lock range must not be // in use. Use this if the lock will never be used again. - void RemoveLockRange(int level, const LeveledLockRange& range); + void RemoveLockRange(int level, const PartitionedLockRange& range); private: struct LockRequest { @@ -72,12 +73,12 @@ LockRequest(); LockRequest(LockRequest&&) noexcept; LockRequest(LockType type, - base::WeakPtr<LeveledLockHolder> locks_holder, + base::WeakPtr<PartitionedLockHolder> locks_holder, base::OnceClosure callback); ~LockRequest(); LockType requested_type = LockType::kShared; - base::WeakPtr<LeveledLockHolder> locks_holder; + base::WeakPtr<PartitionedLockHolder> locks_holder; base::OnceClosure acquired_callback; }; @@ -103,25 +104,25 @@ std::list<LockRequest> queue; }; - using LockLevelMap = base::flat_map<LeveledLockRange, Lock>; + using LockLevelMap = base::flat_map<PartitionedLockRange, Lock>; - bool AcquireLock(LeveledLockRequest request, - base::WeakPtr<LeveledLockHolder> locks_holder, + bool AcquireLock(PartitionedLockRequest request, + base::WeakPtr<PartitionedLockHolder> locks_holder, base::OnceClosure acquired_callback); - void LockReleased(int level, LeveledLockRange range); + void LockReleased(int level, PartitionedLockRange range); static bool IsRangeDisjointFromNeighbors(const LockLevelMap& map, - const LeveledLockRange& range); + const PartitionedLockRange& range); const scoped_refptr<base::SequencedTaskRunner> task_runner_; // This vector should never be modified after construction. std::vector<LockLevelMap> locks_; SEQUENCE_CHECKER(sequence_checker_); - base::WeakPtrFactory<DisjointRangeLockManager> weak_factory_{this}; + base::WeakPtrFactory<PartitionedLockManagerImpl> weak_factory_{this}; }; } // namespace content -#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_DISJOINT_RANGE_LOCK_MANAGER_H_ +#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_MANAGER_IMPL_H_
diff --git a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl_unittest.cc similarity index 63% rename from components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc rename to components/services/storage/indexed_db/locks/partitioned_lock_manager_impl_unittest.cc index b7ad08c..45f25fe 100644 --- a/components/services/storage/indexed_db/locks/disjoint_range_lock_manager_unittest.cc +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager_impl_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "base/barrier_closure.h" #include "base/bind.h" @@ -12,8 +12,8 @@ #include "base/test/bind.h" #include "base/test/task_environment.h" #include "base/threading/sequenced_task_runner_handle.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" #include "testing/gtest/include/gtest/gtest.h" namespace content { @@ -57,44 +57,44 @@ return base::StringPrintf("%010zd", num); } -class DisjointRangeLockManagerTest : public testing::Test { +class PartitionedLockManagerImplTest : public testing::Test { public: - DisjointRangeLockManagerTest() = default; - ~DisjointRangeLockManagerTest() override = default; + PartitionedLockManagerImplTest() = default; + ~PartitionedLockManagerImplTest() override = default; private: base::test::TaskEnvironment task_env_; }; -TEST_F(DisjointRangeLockManagerTest, BasicAcquisition) { +TEST_F(PartitionedLockManagerImplTest, BasicAcquisition) { const size_t kTotalLocks = 10; - DisjointRangeLockManager lock_manager(1); + PartitionedLockManagerImpl lock_manager(1); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); base::RunLoop loop; - LeveledLockHolder holder1; - LeveledLockHolder holder2; + PartitionedLockHolder holder1; + PartitionedLockHolder holder2; { BarrierBuilder barrier(loop.QuitClosure()); - std::vector<LeveledLockManager::LeveledLockRequest> locks1_requests; + std::vector<PartitionedLockManager::PartitionedLockRequest> locks1_requests; for (size_t i = 0; i < kTotalLocks / 2; ++i) { - LeveledLockRange range = {IntegerKey(i), IntegerKey(i + 1)}; - locks1_requests.emplace_back(0, std::move(range), - LeveledLockManager::LockType::kExclusive); + PartitionedLockRange range = {IntegerKey(i), IntegerKey(i + 1)}; + locks1_requests.emplace_back( + 0, std::move(range), PartitionedLockManager::LockType::kExclusive); } EXPECT_TRUE(lock_manager.AcquireLocks(locks1_requests, holder1.AsWeakPtr(), barrier.AddClosure())); // Now acquire kTotalLocks/2 locks starting at (kTotalLocks-1) to verify // they acquire in the correct order. - std::vector<LeveledLockManager::LeveledLockRequest> locks2_requests; + std::vector<PartitionedLockManager::PartitionedLockRequest> locks2_requests; for (size_t i = kTotalLocks - 1; i >= kTotalLocks / 2; --i) { - LeveledLockRange range = {IntegerKey(i), IntegerKey(i + 1)}; - locks2_requests.emplace_back(0, std::move(range), - LeveledLockManager::LockType::kExclusive); + PartitionedLockRange range = {IntegerKey(i), IntegerKey(i + 1)}; + locks2_requests.emplace_back( + 0, std::move(range), PartitionedLockManager::LockType::kExclusive); } EXPECT_TRUE(lock_manager.AcquireLocks(locks2_requests, holder2.AsWeakPtr(), barrier.AddClosure())); @@ -126,29 +126,29 @@ holder2.locks.clear(); } -TEST_F(DisjointRangeLockManagerTest, Shared) { - DisjointRangeLockManager lock_manager(1); +TEST_F(PartitionedLockManagerImplTest, Shared) { + PartitionedLockManagerImpl lock_manager(1); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); - LeveledLockRange range = {IntegerKey(0), IntegerKey(1)}; + PartitionedLockRange range = {IntegerKey(0), IntegerKey(1)}; - LeveledLockHolder locks_holder1; - LeveledLockHolder locks_holder2; + PartitionedLockHolder locks_holder1; + PartitionedLockHolder locks_holder2; base::RunLoop loop; { BarrierBuilder barrier(loop.QuitClosure()); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kFree, lock_manager.TestLock( - {0, range, LeveledLockManager::LockType::kShared})); + {0, range, PartitionedLockManager::LockType::kShared})); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kShared}}, + {{0, range, PartitionedLockManager::LockType::kShared}}, locks_holder1.AsWeakPtr(), barrier.AddClosure())); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kFree, lock_manager.TestLock( - {0, range, LeveledLockManager::LockType::kShared})); + {0, range, PartitionedLockManager::LockType::kShared})); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kShared}}, + {{0, range, PartitionedLockManager::LockType::kShared}}, locks_holder2.AsWeakPtr(), barrier.AddClosure())); } loop.Run(); @@ -158,27 +158,27 @@ EXPECT_TRUE(locks_holder2.locks.begin()->is_locked()); } -TEST_F(DisjointRangeLockManagerTest, SharedAndExclusiveQueuing) { - DisjointRangeLockManager lock_manager(1); +TEST_F(PartitionedLockManagerImplTest, SharedAndExclusiveQueuing) { + PartitionedLockManagerImpl lock_manager(1); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); - LeveledLockRange range = {IntegerKey(0), IntegerKey(1)}; + PartitionedLockRange range = {IntegerKey(0), IntegerKey(1)}; - LeveledLockHolder shared_lock1_holder; - LeveledLockHolder shared_lock2_holder; - LeveledLockHolder exclusive_lock3_holder; - LeveledLockHolder shared_lock3_holder; + PartitionedLockHolder shared_lock1_holder; + PartitionedLockHolder shared_lock2_holder; + PartitionedLockHolder exclusive_lock3_holder; + PartitionedLockHolder shared_lock3_holder; { base::RunLoop loop; { BarrierBuilder barrier(loop.QuitClosure()); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kShared}}, + {{0, range, PartitionedLockManager::LockType::kShared}}, shared_lock1_holder.AsWeakPtr(), barrier.AddClosure())); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kShared}}, + {{0, range, PartitionedLockManager::LockType::kShared}}, shared_lock2_holder.AsWeakPtr(), barrier.AddClosure())); } loop.Run(); @@ -187,20 +187,20 @@ EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); // Exclusive request is blocked, shared is free. - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kLocked, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kLocked, lock_manager.TestLock( - {0, range, LeveledLockManager::LockType::kExclusive})); - EXPECT_EQ( - DisjointRangeLockManager::TestLockResult::kFree, - lock_manager.TestLock({0, range, LeveledLockManager::LockType::kShared})); + {0, range, PartitionedLockManager::LockType::kExclusive})); + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kFree, + lock_manager.TestLock( + {0, range, PartitionedLockManager::LockType::kShared})); // Both of the following locks should be queued - the exclusive is next in // line, then the shared lock will come after it. EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kExclusive}}, + {{0, range, PartitionedLockManager::LockType::kExclusive}}, exclusive_lock3_holder.AsWeakPtr(), base::DoNothing())); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kShared}}, + {{0, range, PartitionedLockManager::LockType::kShared}}, shared_lock3_holder.AsWeakPtr(), base::DoNothing())); // Flush the task queue. { @@ -232,12 +232,12 @@ EXPECT_EQ(1ll, lock_manager.RequestsWaitingForTesting()); // Both exclusive and shared requests are blocked. - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kLocked, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kLocked, lock_manager.TestLock( - {0, range, LeveledLockManager::LockType::kExclusive})); - EXPECT_EQ( - DisjointRangeLockManager::TestLockResult::kLocked, - lock_manager.TestLock({0, range, LeveledLockManager::LockType::kShared})); + {0, range, PartitionedLockManager::LockType::kExclusive})); + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kLocked, + lock_manager.TestLock( + {0, range, PartitionedLockManager::LockType::kShared})); exclusive_lock3_holder.locks.clear(); @@ -254,25 +254,25 @@ EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); } -TEST_F(DisjointRangeLockManagerTest, LevelsOperateSeparately) { - DisjointRangeLockManager lock_manager(2); +TEST_F(PartitionedLockManagerImplTest, LevelsOperateSeparately) { + PartitionedLockManagerImpl lock_manager(2); base::RunLoop loop; - LeveledLockHolder l0_lock_holder; - LeveledLockHolder l1_lock_holder; + PartitionedLockHolder l0_lock_holder; + PartitionedLockHolder l1_lock_holder; { BarrierBuilder barrier(loop.QuitClosure()); - LeveledLockRange range = {IntegerKey(0), IntegerKey(1)}; - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree, + PartitionedLockRange range = {IntegerKey(0), IntegerKey(1)}; + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kFree, lock_manager.TestLock( - {0, range, LeveledLockManager::LockType::kExclusive})); + {0, range, PartitionedLockManager::LockType::kExclusive})); EXPECT_TRUE(lock_manager.AcquireLocks( - {{0, range, LeveledLockManager::LockType::kExclusive}}, + {{0, range, PartitionedLockManager::LockType::kExclusive}}, l0_lock_holder.AsWeakPtr(), barrier.AddClosure())); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kFree, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kFree, lock_manager.TestLock( - {1, range, LeveledLockManager::LockType::kExclusive})); + {1, range, PartitionedLockManager::LockType::kExclusive})); EXPECT_TRUE(lock_manager.AcquireLocks( - {{1, range, LeveledLockManager::LockType::kExclusive}}, + {{1, range, PartitionedLockManager::LockType::kExclusive}}, l1_lock_holder.AsWeakPtr(), barrier.AddClosure())); } loop.Run(); @@ -285,16 +285,16 @@ EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); } -TEST_F(DisjointRangeLockManagerTest, InvalidRequests) { - DisjointRangeLockManager lock_manager(2); - LeveledLockHolder locks_holder; - LeveledLockRange range1 = {IntegerKey(0), IntegerKey(2)}; - LeveledLockRange range2 = {IntegerKey(1), IntegerKey(3)}; +TEST_F(PartitionedLockManagerImplTest, InvalidRequests) { + PartitionedLockManagerImpl lock_manager(2); + PartitionedLockHolder locks_holder; + PartitionedLockRange range1 = {IntegerKey(0), IntegerKey(2)}; + PartitionedLockRange range2 = {IntegerKey(1), IntegerKey(3)}; // Invalid because the ranges intersect. EXPECT_FALSE(lock_manager.AcquireLocks( - {{0, range1, LeveledLockManager::LockType::kShared}, - {0, range2, LeveledLockManager::LockType::kShared}}, + {{0, range1, PartitionedLockManager::LockType::kShared}, + {0, range2, PartitionedLockManager::LockType::kShared}}, locks_holder.AsWeakPtr(), base::DoNothing())); EXPECT_TRUE(locks_holder.locks.empty()); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); @@ -302,34 +302,34 @@ // Invalid level. EXPECT_FALSE(lock_manager.AcquireLocks( - {{-1, range1, LeveledLockManager::LockType::kShared}}, + {{-1, range1, PartitionedLockManager::LockType::kShared}}, locks_holder.AsWeakPtr(), base::DoNothing())); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kInvalid, lock_manager.TestLock( - {-1, range1, LeveledLockManager::LockType::kShared})); + {-1, range1, PartitionedLockManager::LockType::kShared})); EXPECT_TRUE(locks_holder.locks.empty()); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); // Invalid level. EXPECT_FALSE(lock_manager.AcquireLocks( - {{4, range1, LeveledLockManager::LockType::kShared}}, + {{4, range1, PartitionedLockManager::LockType::kShared}}, locks_holder.AsWeakPtr(), base::DoNothing())); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kInvalid, lock_manager.TestLock( - {4, range1, LeveledLockManager::LockType::kShared})); + {4, range1, PartitionedLockManager::LockType::kShared})); EXPECT_TRUE(locks_holder.locks.empty()); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting()); // Invalid range. - LeveledLockRange range3 = {IntegerKey(2), IntegerKey(1)}; + PartitionedLockRange range3 = {IntegerKey(2), IntegerKey(1)}; EXPECT_FALSE(lock_manager.AcquireLocks( - {{0, range3, LeveledLockManager::LockType::kShared}}, + {{0, range3, PartitionedLockManager::LockType::kShared}}, locks_holder.AsWeakPtr(), base::DoNothing())); - EXPECT_EQ(DisjointRangeLockManager::TestLockResult::kInvalid, + EXPECT_EQ(PartitionedLockManagerImpl::TestLockResult::kInvalid, lock_manager.TestLock( - {0, range3, LeveledLockManager::LockType::kShared})); + {0, range3, PartitionedLockManager::LockType::kShared})); EXPECT_TRUE(locks_holder.locks.empty()); EXPECT_EQ(0ll, lock_manager.LocksHeldForTesting()); EXPECT_EQ(0ll, lock_manager.RequestsWaitingForTesting());
diff --git a/components/services/storage/indexed_db/locks/leveled_lock_manager_unittest.cc b/components/services/storage/indexed_db/locks/partitioned_lock_manager_unittest.cc similarity index 65% rename from components/services/storage/indexed_db/locks/leveled_lock_manager_unittest.cc rename to components/services/storage/indexed_db/locks/partitioned_lock_manager_unittest.cc index 454f2372..f741f64 100644 --- a/components/services/storage/indexed_db/locks/leveled_lock_manager_unittest.cc +++ b/components/services/storage/indexed_db/locks/partitioned_lock_manager_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "base/bind.h" #include "base/test/bind.h" @@ -11,15 +11,15 @@ namespace content { namespace { -TEST(LeveledLockManager, TestRangePopulation) { - LeveledLockRange range = {"1", "2"}; +TEST(PartitionedLockManager, TestRangePopulation) { + PartitionedLockRange range = {"1", "2"}; EXPECT_EQ("1", range.begin); EXPECT_EQ("2", range.end); EXPECT_TRUE(range.IsValid()); } -TEST(LeveledLockManager, TestInvalidRange) { - LeveledLockRange range = {"2", "1"}; +TEST(PartitionedLockManager, TestInvalidRange) { + PartitionedLockRange range = {"2", "1"}; EXPECT_FALSE(range.IsValid()); range = {"2", "2"}; EXPECT_FALSE(range.IsValid());
diff --git a/components/services/storage/indexed_db/locks/leveled_lock_range.cc b/components/services/storage/indexed_db/locks/partitioned_lock_range.cc similarity index 60% rename from components/services/storage/indexed_db/locks/leveled_lock_range.cc rename to components/services/storage/indexed_db/locks/partitioned_lock_range.cc index ae0bc7ff..b2006476 100644 --- a/components/services/storage/indexed_db/locks/leveled_lock_range.cc +++ b/components/services/storage/indexed_db/locks/partitioned_lock_range.cc
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" #include <iomanip> #include <ostream> namespace content { -std::ostream& operator<<(std::ostream& out, const LeveledLockRange& range) { - out << "<LeveledLockRange>{begin: 0x"; +std::ostream& operator<<(std::ostream& out, const PartitionedLockRange& range) { + out << "<PartitionedLockRange>{begin: 0x"; out << std::setfill('0'); for (const char c : range.begin) { out << std::hex << std::setw(2) << static_cast<int>(c); @@ -23,16 +23,16 @@ return out; } -bool operator<(const LeveledLockRange& x, const LeveledLockRange& y) { +bool operator<(const PartitionedLockRange& x, const PartitionedLockRange& y) { if (x.begin != y.begin) return x.begin < y.begin; return x.end < y.end; } -bool operator==(const LeveledLockRange& x, const LeveledLockRange& y) { +bool operator==(const PartitionedLockRange& x, const PartitionedLockRange& y) { return x.begin == y.begin && x.end == y.end; } -bool operator!=(const LeveledLockRange& x, const LeveledLockRange& y) { +bool operator!=(const PartitionedLockRange& x, const PartitionedLockRange& y) { return !(x == y); }
diff --git a/components/services/storage/indexed_db/locks/partitioned_lock_range.h b/components/services/storage/indexed_db/locks/partitioned_lock_range.h new file mode 100644 index 0000000..ee5ac03 --- /dev/null +++ b/components/services/storage/indexed_db/locks/partitioned_lock_range.h
@@ -0,0 +1,37 @@ +// Copyright 2018 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_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_RANGE_H_ +#define COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_RANGE_H_ + +#include <stdint.h> +#include <iosfwd> +#include <string> + +#include "base/component_export.h" + +namespace content { + +// The range is [begin, end). Bytewise comparison is used to determine +// overlapping ranges. +struct COMPONENT_EXPORT(LOCK_MANAGER) PartitionedLockRange { + std::string begin; + std::string end; + + bool IsValid() const { return begin < end; } +}; + +// Logging support. +COMPONENT_EXPORT(LOCK_MANAGER) +std::ostream& operator<<(std::ostream& out, const PartitionedLockRange& range); + +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator<(const PartitionedLockRange& x, const PartitionedLockRange& y); +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator==(const PartitionedLockRange& x, const PartitionedLockRange& y); +COMPONENT_EXPORT(LOCK_MANAGER) +bool operator!=(const PartitionedLockRange& x, const PartitionedLockRange& y); + +} // namespace content + +#endif // COMPONENTS_SERVICES_STORAGE_INDEXED_DB_LOCKS_PARTITIONED_LOCK_RANGE_H_
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scope.cc b/components/services/storage/indexed_db/scopes/leveldb_scope.cc index fa88a6e..26873e7 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scope.cc +++ b/components/services/storage/indexed_db/scopes/leveldb_scope.cc
@@ -126,7 +126,7 @@ std::vector<uint8_t> prefix, size_t write_batch_size, scoped_refptr<LevelDBState> level_db, - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, std::vector<std::pair<std::string, std::string>> empty_ranges, RollbackCallback rollback_callback, TearDownCallback tear_down_callback) @@ -420,7 +420,7 @@ mode_ = Mode::kUndoLogOnDisk; LevelDBScopesScopeMetadata metadata; - for (LeveledLock& lock : locks_) { + for (PartitionedLock& lock : locks_) { auto* lock_proto = metadata.add_locks(); lock_proto->set_level(lock.level()); auto* range = lock_proto->mutable_range();
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scope.h b/components/services/storage/indexed_db/scopes/leveldb_scope.h index 042ad690..297884b 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scope.h +++ b/components/services/storage/indexed_db/scopes/leveldb_scope.h
@@ -19,7 +19,7 @@ #include "base/numerics/checked_math.h" #include "base/sequence_checker.h" #include "components/services/storage/indexed_db/leveldb/leveldb_state.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope_deletion_mode.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_coding.h" #include "components/services/storage/indexed_db/scopes/scopes_metadata.pb.h" @@ -66,7 +66,7 @@ public: using RollbackCallback = base::OnceCallback<leveldb::Status(int64_t scope_id, - std::vector<LeveledLock> locks)>; + std::vector<PartitionedLock> locks)>; using TearDownCallback = base::RepeatingCallback<void(leveldb::Status)>; using CleanupCallback = base::OnceCallback<void(int64_t scope_id)>; @@ -138,7 +138,7 @@ std::vector<uint8_t> prefix, size_t write_batch_size, scoped_refptr<LevelDBState> level_db, - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, std::vector<EmptyRange> empty_ranges, RollbackCallback rollback_callback, TearDownCallback tear_down_callback); @@ -200,7 +200,7 @@ const std::vector<uint8_t> prefix_; const size_t write_batch_size_; const scoped_refptr<LevelDBState> level_db_; - std::vector<LeveledLock> locks_; + std::vector<PartitionedLock> locks_; base::flat_map<EmptyRange, bool, EmptyRangeLessThan> empty_ranges_; RollbackCallback rollback_callback_; // Warning: Calling this callback can destroy this scope.
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scope_unittest.cc b/components/services/storage/indexed_db/scopes/leveldb_scope_unittest.cc index 1b81990..98b71b43 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scope_unittest.cc +++ b/components/services/storage/indexed_db/scopes/leveldb_scope_unittest.cc
@@ -15,7 +15,7 @@ #include "base/test/bind.h" #include "base/threading/sequenced_task_runner_handle.h" #include "components/services/storage/indexed_db/leveldb/fake_leveldb_factory.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h" #include "testing/gtest/include/gtest/gtest.h" @@ -29,11 +29,12 @@ LevelDBScopeTest() = default; ~LevelDBScopeTest() override = default; - std::vector<LeveledLock> AcquireLocksSync( - LeveledLockManager* lock_manager, - base::flat_set<LeveledLockManager::LeveledLockRequest> lock_requests) { + std::vector<PartitionedLock> AcquireLocksSync( + PartitionedLockManager* lock_manager, + base::flat_set<PartitionedLockManager::PartitionedLockRequest> + lock_requests) { base::RunLoop loop; - LeveledLockHolder locks_receiver; + PartitionedLockHolder locks_receiver; bool success = lock_manager->AcquireLocks( lock_requests, locks_receiver.AsWeakPtr(), base::BindLambdaForTesting([&loop]() { loop.Quit(); })); @@ -56,7 +57,7 @@ TEST_F(LevelDBScopeTest, BasicUsage) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -88,7 +89,7 @@ TEST_F(LevelDBScopeTest, InMemoryAbort) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -131,7 +132,7 @@ TEST_F(LevelDBScopeTest, AbortWithRevertTask) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -174,7 +175,7 @@ TEST_F(LevelDBScopeTest, ManyScopes) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -216,7 +217,7 @@ TEST_F(LevelDBScopeTest, DeleteRangeExclusive) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -271,7 +272,7 @@ TEST_F(LevelDBScopeTest, DeleteRangeInclusive) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -320,7 +321,7 @@ TEST_F(LevelDBScopeTest, DeleteRangeDeferred) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -371,7 +372,7 @@ TEST_F(LevelDBScopeTest, DeleteRangeCompact) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -422,7 +423,7 @@ TEST_F(LevelDBScopeTest, RevertWithDeferredDelete) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status; LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -492,7 +493,7 @@ TEST_F(LevelDBScopeTest, EmptyRangeRevert) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( metadata_prefix_, kWriteBatchSizeForTesting, leveldb_, &lock_manager, @@ -532,7 +533,7 @@ TEST_F(LevelDBScopeTest, BrokenDBForInitialize) { leveldb::Status error = leveldb::Status::IOError("test"); leveldb_ = FakeLevelDBFactory::GetBrokenLevelDB(error, base::FilePath()); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -548,7 +549,7 @@ TEST_F(LevelDBScopeTest, BrokenDBForCommit) { base::OnceCallback<void(leveldb::Status)> break_db; SetUpBreakableDB(&break_db); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -577,7 +578,7 @@ TEST_F(LevelDBScopeTest, BrokenDBForCleanup) { base::OnceCallback<void(leveldb::Status)> break_db; SetUpBreakableDB(&break_db); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -614,7 +615,7 @@ TEST_F(LevelDBScopeTest, BrokenDBForRevert) { base::OnceCallback<void(leveldb::Status)> break_db; SetUpBreakableDB(&break_db); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes( @@ -648,7 +649,7 @@ TEST_F(LevelDBScopeTest, DeleteNonExistentRangeDoesNotWrite) { SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); leveldb::Status failure_status = leveldb::Status::OK(); LevelDBScopes scopes(
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes.cc b/components/services/storage/indexed_db/scopes/leveldb_scopes.cc index b1b88931..0809871 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes.cc +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes.cc
@@ -20,7 +20,7 @@ #include "base/task/thread_pool.h" #include "base/threading/sequenced_task_runner_handle.h" #include "components/services/storage/indexed_db/leveldb/leveldb_state.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_coding.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_tasks.h" @@ -35,7 +35,7 @@ LevelDBScopes::LevelDBScopes(std::vector<uint8_t> metadata_key_prefix, size_t max_write_batch_size, scoped_refptr<LevelDBState> level_db, - LeveledLockManager* lock_manager, + PartitionedLockManager* lock_manager, TearDownCallback tear_down_callback) : metadata_key_prefix_(std::move(metadata_key_prefix)), max_write_batch_size_bytes_(max_write_batch_size), @@ -136,16 +136,17 @@ // The commit point isn't there, so that scope needs to be reverted. // Acquire all locks necessary to undo the scope to prevent user-created // scopes for reading or writing changes that will be undone. - LeveledLockRange range; - base::flat_set<LeveledLockManager::LeveledLockRequest> lock_requests; + PartitionedLockRange range; + base::flat_set<PartitionedLockManager::PartitionedLockRequest> + lock_requests; lock_requests.reserve(scope_metadata.locks().size()); for (const auto& lock : scope_metadata.locks()) { range.begin = lock.range().begin(); range.end = lock.range().end(); lock_requests.emplace(lock.level(), range, - LeveledLockManager::LockType::kExclusive); + PartitionedLockManager::LockType::kExclusive); } - LeveledLockHolder receiver; + PartitionedLockHolder receiver; bool locks_acquired = lock_manager_->AcquireLocks( std::move(lock_requests), receiver.weak_factory.GetWeakPtr(), base::DoNothing()); @@ -240,7 +241,7 @@ } std::unique_ptr<LevelDBScope> LevelDBScopes::CreateScope( - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, std::vector<std::pair<std::string, std::string>> empty_ranges) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(recovery_finished_); @@ -248,7 +249,7 @@ ++next_scope_id_; auto rollback_callback = base::BindOnce( [](base::WeakPtr<LevelDBScopes> scopes, int64_t scope_id, - std::vector<LeveledLock> locks) { + std::vector<PartitionedLock> locks) { if (!scopes) return leveldb::Status::OK(); return scopes->Rollback(scope_id, std::move(locks)); @@ -287,7 +288,7 @@ } leveldb::Status LevelDBScopes::Rollback(int64_t scope_id, - std::vector<LeveledLock> locks) { + std::vector<PartitionedLock> locks) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); auto task = std::make_unique<RevertScopeTask>( level_db_, metadata_key_prefix_, scope_id, max_write_batch_size_bytes_); @@ -316,7 +317,7 @@ } void LevelDBScopes::OnRevertTaskResult(int64_t scope_id, - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, leveldb::Status result) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (UNLIKELY(!result.ok())) {
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes.h b/components/services/storage/indexed_db/scopes/leveldb_scopes.h index bdc2ef22..6565fe7 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes.h +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes.h
@@ -21,8 +21,8 @@ #include "base/numerics/checked_math.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_coding.h" #include "third_party/leveldatabase/src/include/leveldb/options.h" #include "third_party/leveldatabase/src/include/leveldb/status.h" @@ -30,7 +30,7 @@ namespace content { class LevelDBScope; class LevelDBState; -class LeveledLockManager; +class PartitionedLockManager; class LevelDBScopes { public: @@ -52,7 +52,7 @@ LevelDBScopes(std::vector<uint8_t> metadata_key_prefix, size_t max_write_batch_size_bytes_bytes, scoped_refptr<LevelDBState> level_db, - LeveledLockManager* lock_manager, + PartitionedLockManager* lock_manager, TearDownCallback tear_down_callback); LevelDBScopes(const LevelDBScopes&) = delete; @@ -76,7 +76,7 @@ // |pair.end| is the exclusive range end. The ranges must be disjoint (they // cannot overlap). std::unique_ptr<LevelDBScope> CreateScope( - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, std::vector<EmptyRange> empty_ranges); leveldb::Status Commit(std::unique_ptr<LevelDBScope> scope, @@ -106,9 +106,9 @@ private: enum class StartupCleanupType { kExecuteCleanupTasks, kIgnoreCleanupTasks }; - using StartupScopeToRevert = std::pair<int64_t, std::vector<LeveledLock>>; + using StartupScopeToRevert = std::pair<int64_t, std::vector<PartitionedLock>>; using StartupScopeToCleanup = std::pair<int64_t, StartupCleanupType>; - using RecoveryLocksList = std::list<std::vector<LeveledLock>>; + using RecoveryLocksList = std::list<std::vector<PartitionedLock>>; leveldb::Status InitializeGlobalMetadata( const leveldb::ReadOptions& read_options, @@ -119,15 +119,16 @@ // If the mode is TaskRunnerMode::kUseCurrentSequence, then the result of the // revert task is returned. - leveldb::Status Rollback(int64_t scope_id, std::vector<LeveledLock> locks); + leveldb::Status Rollback(int64_t scope_id, + std::vector<PartitionedLock> locks); void OnCleanupTaskResult(base::OnceClosure on_complete, leveldb::Status result); - void StartRevertTask(int64_t scope_id, std::vector<LeveledLock> locks); + void StartRevertTask(int64_t scope_id, std::vector<PartitionedLock> locks); void OnRevertTaskResult(int64_t scope_id, - std::vector<LeveledLock> locks, + std::vector<PartitionedLock> locks, leveldb::Status result); SEQUENCE_CHECKER(sequence_checker_); @@ -143,7 +144,7 @@ int next_scope_id_ = 0; scoped_refptr<LevelDBState> level_db_; // The |lock_manager_| is expected to outlive this class. - raw_ptr<LeveledLockManager> lock_manager_; + raw_ptr<PartitionedLockManager> lock_manager_; TearDownCallback tear_down_callback_; #if DCHECK_IS_ON()
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes_factory.h b/components/services/storage/indexed_db/scopes/leveldb_scopes_factory.h index 8745a4a..a9be5f7a 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes_factory.h +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes_factory.h
@@ -18,7 +18,7 @@ namespace content { class LevelDBScopes; class LevelDBState; -class LeveledLockManager; +class PartitionedLockManager; struct LevelDBScopesOptions { LevelDBScopesOptions(); @@ -33,7 +33,7 @@ std::vector<uint8_t> metadata_key_prefix; size_t max_write_batch_size = 1 * 1024 * 1024; - raw_ptr<LeveledLockManager> lock_manager = nullptr; + raw_ptr<PartitionedLockManager> lock_manager = nullptr; base::RepeatingCallback<void(leveldb::Status)> failure_callback; };
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.cc b/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.cc index f55c7ec..486e3b0e5 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.cc +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.cc
@@ -226,34 +226,34 @@ scopes_encoder_.TasksKeyPrefix(metadata_prefix_)); } -LeveledLockManager::LeveledLockRequest +PartitionedLockManager::PartitionedLockRequest LevelDBScopesTestBase::CreateSimpleSharedLock() { return {0, {simple_lock_begin_, simple_lock_end_}, - LeveledLockManager::LockType::kShared}; + PartitionedLockManager::LockType::kShared}; } -LeveledLockManager::LeveledLockRequest +PartitionedLockManager::PartitionedLockRequest LevelDBScopesTestBase::CreateSimpleExclusiveLock() { return {0, {simple_lock_begin_, simple_lock_end_}, - LeveledLockManager::LockType::kExclusive}; + PartitionedLockManager::LockType::kExclusive}; } -LeveledLockManager::LeveledLockRequest LevelDBScopesTestBase::CreateSharedLock( - int i) { +PartitionedLockManager::PartitionedLockRequest +LevelDBScopesTestBase::CreateSharedLock(int i) { return {0, {base::StringPrintf("%010d", i * 2), base::StringPrintf("%010d", i * 2 + 1)}, - LeveledLockManager::LockType::kShared}; + PartitionedLockManager::LockType::kShared}; } -LeveledLockManager::LeveledLockRequest +PartitionedLockManager::PartitionedLockRequest LevelDBScopesTestBase::CreateExclusiveLock(int i) { return {0, {base::StringPrintf("%010d", i * 2), base::StringPrintf("%010d", i * 2 + 1)}, - LeveledLockManager::LockType::kExclusive}; + PartitionedLockManager::LockType::kExclusive}; } const base::FilePath& LevelDBScopesTestBase::DatabaseDirFilePath() {
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h b/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h index 0c4ad82..ecae76c 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h
@@ -11,7 +11,7 @@ #include "base/threading/thread_restrictions.h" #include "components/services/storage/indexed_db/leveldb/fake_leveldb_factory.h" #include "components/services/storage/indexed_db/leveldb/leveldb_state.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_coding.h" #include "components/services/storage/indexed_db/scopes/scopes_metadata.pb.h" #include "testing/gtest/include/gtest/gtest.h" @@ -84,13 +84,13 @@ // Creates a shared lock request from |simple_lock_begin_| to // |simple_lock_end_|. - LeveledLockManager::LeveledLockRequest CreateSimpleSharedLock(); + PartitionedLockManager::PartitionedLockRequest CreateSimpleSharedLock(); // Creates a exclusive lock request from |simple_lock_begin_| to // |simple_lock_end_|. - LeveledLockManager::LeveledLockRequest CreateSimpleExclusiveLock(); + PartitionedLockManager::PartitionedLockRequest CreateSimpleExclusiveLock(); - LeveledLockManager::LeveledLockRequest CreateSharedLock(int i); - LeveledLockManager::LeveledLockRequest CreateExclusiveLock(int i); + PartitionedLockManager::PartitionedLockRequest CreateSharedLock(int i); + PartitionedLockManager::PartitionedLockRequest CreateExclusiveLock(int i); const base::FilePath& DatabaseDirFilePath();
diff --git a/components/services/storage/indexed_db/scopes/leveldb_scopes_unittest.cc b/components/services/storage/indexed_db/scopes/leveldb_scopes_unittest.cc index a99e4e2..f4c8bc0 100644 --- a/components/services/storage/indexed_db/scopes/leveldb_scopes_unittest.cc +++ b/components/services/storage/indexed_db/scopes/leveldb_scopes_unittest.cc
@@ -10,7 +10,7 @@ #include "base/run_loop.h" #include "base/test/bind.h" #include "base/threading/sequenced_task_runner_handle.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/leveldatabase/src/include/leveldb/slice.h" @@ -27,7 +27,7 @@ TEST_F(LevelDBScopesStartupTest, CleanupOnRecovery) { const int64_t kScopeToCleanUp = 19; SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); WriteScopesMetadata(kScopeToCleanUp, true); leveldb::Status failure_callback = leveldb::Status::OK(); @@ -60,7 +60,7 @@ const std::string kKeyWithinCleanupDeleteRange = "b2"; const std::string kCleanupDeleteRangeEnd = "b3"; SetUpRealDatabase(); - DisjointRangeLockManager lock_manager(3); + PartitionedLockManagerImpl lock_manager(3); // Tests that the revert execution on startup is performed correctly. This // includes: @@ -102,7 +102,7 @@ // Verify that the lock was grabbed. bool lock_grabbed = false; - LeveledLockHolder locks_receiver; + PartitionedLockHolder locks_receiver; lock_manager.AcquireLocks( {CreateSimpleExclusiveLock()}, locks_receiver.AsWeakPtr(), base::BindLambdaForTesting([&]() { lock_grabbed = true; }));
diff --git a/components/services/storage/indexed_db/scopes/scopes_metadata.proto b/components/services/storage/indexed_db/scopes/scopes_metadata.proto index aee248a..1f15ccc31 100644 --- a/components/services/storage/indexed_db/scopes/scopes_metadata.proto +++ b/components/services/storage/indexed_db/scopes/scopes_metadata.proto
@@ -17,11 +17,11 @@ } message LevelDBScopesScopeMetadata { - message LevelDBLeveledLock { + message LevelDBPartitionedLock { int64 level = 1; LevelDBScopesKeyRange range = 2; } - repeated LevelDBLeveledLock locks = 1; + repeated LevelDBPartitionedLock locks = 1; // If this is true, don't execute cleanup tasks when cleaning up this scope. bool ignore_cleanup_tasks = 2; @@ -45,4 +45,4 @@ LevelDBScopesKeyRange delete_range = 1; LevelDBScopesKeyRange delete_range_and_compact = 2; } -} \ No newline at end of file +}
diff --git a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_transaction_unittest.cc b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_transaction_unittest.cc index 5c0110ae..2e80272 100644 --- a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_transaction_unittest.cc +++ b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_transaction_unittest.cc
@@ -18,7 +18,7 @@ #include "base/strings/string_piece.h" #include "base/test/bind.h" #include "base/threading/sequenced_task_runner_handle.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h" @@ -68,11 +68,12 @@ base::SequencedTaskRunnerHandle::Get(), kTestingMaxOpenCursors); } - std::vector<LeveledLock> AcquireLocksSync( - LeveledLockManager* lock_manager, - base::flat_set<LeveledLockManager::LeveledLockRequest> lock_requests) { + std::vector<PartitionedLock> AcquireLocksSync( + PartitionedLockManager* lock_manager, + base::flat_set<PartitionedLockManager::PartitionedLockRequest> + lock_requests) { base::RunLoop loop; - LeveledLockHolder locks_receiver; + PartitionedLockHolder locks_receiver; bool success = lock_manager->AcquireLocks( lock_requests, locks_receiver.AsWeakPtr(), base::BindLambdaForTesting([&loop]() { loop.Quit(); })); @@ -151,7 +152,7 @@ private: DefaultTransactionalLevelDBFactory transactional_leveldb_factory_; std::unique_ptr<TransactionalLevelDBDatabase> leveldb_database_; - DisjointRangeLockManager lock_manager_{3}; + PartitionedLockManagerImpl lock_manager_{3}; }; TEST_F(TransactionalLevelDBTransactionTest, GetPutDelete) {
diff --git a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc index 1f91713..c43dfb9 100644 --- a/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc +++ b/components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc
@@ -20,7 +20,7 @@ #include "base/test/task_environment.h" #include "components/services/storage/indexed_db/leveldb/leveldb_factory.h" #include "components/services/storage/indexed_db/leveldb/leveldb_state.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes_test_utils.h" #include "components/services/storage/indexed_db/transactional_leveldb/leveldb_write_batch.h" @@ -66,7 +66,7 @@ leveldb::Status OpenLevelDBDatabase() { CHECK(leveldb_); - lock_manager_ = std::make_unique<DisjointRangeLockManager>(1); + lock_manager_ = std::make_unique<PartitionedLockManagerImpl>(1); std::unique_ptr<LevelDBScopes> scopes = std::make_unique<LevelDBScopes>( std::vector<uint8_t>{'a'}, 1024ul, leveldb_, lock_manager_.get(), base::DoNothing()); @@ -87,7 +87,7 @@ protected: DefaultTransactionalLevelDBFactory transactional_leveldb_factory_; std::unique_ptr<TransactionalLevelDBDatabase> transactional_leveldb_database_; - std::unique_ptr<DisjointRangeLockManager> lock_manager_; + std::unique_ptr<PartitionedLockManagerImpl> lock_manager_; }; TEST_F(TransactionalLevelDBDatabaseTest, CorruptionTest) {
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index 6c90486..15d6fc4 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -2440,6 +2440,7 @@ om uit te vind hoe om die sagteware permanent van jou rekenaar te verwyder</ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Lieflik</translation> +<translation id="741204030948306876">Ja, ek's in</translation> <translation id="7416351320495623771">Bestuur wagwoorde …</translation> <translation id="7418620734632363981">Programmering</translation> <translation id="7419106976560586862">Profielpad</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index 804749d..7827604 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -2434,6 +2434,7 @@ </ol></translation> <translation id="741007362987735528">ሰፊ-ቅርጸት</translation> <translation id="7410471291937727359">ተወዳጅ</translation> +<translation id="741204030948306876">አዎ፣ ገብቼያለሁ</translation> <translation id="7416351320495623771">የይለፍ ቃላትን ያስተዳድሩ...</translation> <translation id="7418620734632363981">ፕሮግራም ማድረግ</translation> <translation id="7419106976560586862">የመገለጫ ዱካ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index d9a050e..5b0cfe26c15 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -2431,6 +2431,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">رائع</translation> +<translation id="741204030948306876">نعم، موافق</translation> <translation id="7416351320495623771">إدارة كلمات المرور…</translation> <translation id="7418620734632363981">برمجة</translation> <translation id="7419106976560586862">مسار الملف الشخصي</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index 708f1036..7cb0425 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -310,7 +310,7 @@ <translation id="1702815194757674443">ROC 16K</translation> <translation id="1703835215927279855">লেটাৰ</translation> <translation id="1706625117072057435">জুমৰ স্তৰ</translation> -<translation id="1706954506755087368">{1,plural, =1{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ কাইলৈৰপৰা মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}one{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ # দিনৰ পিছত মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}other{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ # দিনৰ পিছত মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}}</translation> +<translation id="1706954506755087368">{1,plural, =1{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ কাইলৈৰপৰা মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}one{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ # দিনৰ পাছত মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}other{এই ছাৰ্ভাৰটোৱে এইটোক <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে, ইয়াৰ সুৰক্ষা প্ৰমাণপত্ৰ # দিনৰ পাছত মান্য হ’লহেঁতেন। কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে এয়া হ’ব পাৰে।}}</translation> <translation id="1710259589646384581">OS</translation> <translation id="1711234383449478798"><ph name="POLICY_NAME" />টো <ph name="VALUE" /> হিচাপে ছেট কৰা নাই বাবে অৱজ্ঞা কৰা হৈছে।</translation> <translation id="1711528724596764268">মেচিন লাৰ্নিং আৰু কৃত্ৰিম বুদ্ধিমত্তা</translation> @@ -712,6 +712,7 @@ <translation id="2799223571221894425">পুনৰ লঞ্চ কৰক</translation> <translation id="2803306138276472711">Googleৰ সুৰক্ষিত ব্ৰাউজিঙে শেহতীয়াকৈ<ph name="SITE" />ত <ph name="BEGIN_LINK" />মালৱেৰ চিনাক্ত কৰিছে<ph name="END_LINK" />। সাধাৰণতে সুৰক্ষিত ৱেবছাইটসমূহ কেতিয়াবা মালৱেৰৰ দ্বাৰা প্ৰভাৱিত হয়।</translation> <translation id="2807052079800581569">প্ৰতিচ্ছবিৰ Y স্থান</translation> +<translation id="2808278141522721006">আপুনি <ph name="SETTINGS" />ত Windows Hello অন অথবা অফ কৰিব পাৰে</translation> <translation id="2820957248982571256">স্কেন কৰি থকা হৈছে...</translation> <translation id="2824775600643448204">ঠিকনা আৰু সন্ধানৰ বাৰ</translation> <translation id="2826760142808435982">এই সংযোগটো এনক্ৰিপ্ট কৰিবলৈ তথা সেইটোৰ বিশ্বাসযোগ্যতাৰ সত্যাপন কৰিবলৈ <ph name="CIPHER" /> ব্যৱহাৰ কৰা হৈছে আৰু সেইটোৱে <ph name="KX" />ক সলনা সলনিৰ মুখ্য উপায় হিচাপে ব্যৱহাৰ কৰে।</translation> @@ -778,7 +779,7 @@ <translation id="299990983510665749">হেচ্চবেক</translation> <translation id="3002501248619246229">ইনপুট ট্ৰে’ মিডিয়া পৰীক্ষা কৰক</translation> <translation id="3005723025932146533">ছে’ভ কৰা প্ৰতিলিপি দেখুৱাওক</translation> -<translation id="3008447029300691911"><ph name="CREDIT_CARD" />ৰ CVC দিয়ক। এবাৰ আপুনি নিশ্চিত কৰাৰ পিছত আপোনাৰ কাৰ্ডৰ সবিশেষ এই ছাইটবোৰৰ সৈতে শ্বেয়াৰ কৰা হ’ব।</translation> +<translation id="3008447029300691911"><ph name="CREDIT_CARD" />ৰ CVC দিয়ক। এবাৰ আপুনি নিশ্চিত কৰাৰ পাছত আপোনাৰ কাৰ্ডৰ সবিশেষ এই ছাইটবোৰৰ সৈতে শ্বেয়াৰ কৰা হ’ব।</translation> <translation id="3013291976881901233">MIDI ডিভাইচবোৰ</translation> <translation id="301521992641321250">স্বয়ংক্ৰিয়ভাৱে অৱৰোধ কৰা হৈছে</translation> <translation id="3016780570757425217">আপোনাৰ অৱস্থান জানক</translation> @@ -880,6 +881,7 @@ <translation id="3288238092761586174"><ph name="URL" />এ আপোনাৰ পৰিশোধ সত্যাপন কৰিবলৈ অতিৰিক্ত পদক্ষেপ ল’বলগীয়া হ’ব পাৰে</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> নীতিৰ বিষয়ে অধিক জানক</translation> <translation id="3295444047715739395">Chromeৰ ছেটিংসমূহত আপোনাৰ পাছৱৰ্ডসমূহ চাওক আৰু পৰিচালনা কৰক</translation> +<translation id="3299098170013242198">পাছৱৰ্ড পূৰ কৰিবলৈ Windows Hello অন হৈ আছে</translation> <translation id="3303855915957856445">সন্ধানৰ কোনো ফলাফল পোৱা নগ'ল</translation> <translation id="3304073249511302126">ব্লুটুথ স্কেনিং</translation> <translation id="33073482541490531">আপুনি এইমাত্ৰ ব্যৱহাৰ কৰা পাছৱৰ্ডটো এক ডেটা উলংঘনত বিচাৰি পোৱা গৈছে। Password Managerএ এই পাছৱৰ্ডটো এতিয়াই সলনি কৰাটো চুপাৰিছ কৰে।</translation> @@ -948,7 +950,7 @@ <translation id="3462200631372590220">এডভাঞ্চখিনি লুকুৱাওক</translation> <translation id="346601286295919445">ৰসায়ন বিজ্ঞান</translation> <translation id="3467763166455606212">কার্ডৰ গৰাকীৰ নাম দিয়াটো প্ৰয়োজন</translation> -<translation id="3468054117417088249"><ph name="TAB_SWITCH_SUFFIX" />, বৰ্তমান খোলা আছে, খোলা থকা টেবটোলৈ যাবলৈ টেব আৰু তাৰ পিছত এণ্টাৰ দবাওক</translation> +<translation id="3468054117417088249"><ph name="TAB_SWITCH_SUFFIX" />, বৰ্তমান খোলা আছে, খোলা থকা টেবটোলৈ যাবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ দবাওক</translation> <translation id="3470563864795286535"><ph name="CLOSE_INCOGNITO_WINDOWS_FOCUSED_FRIENDLY_MATCH_TEXT" />, বৰ্তমান খোল খাই থকা আটাইবোৰ ইনক’গনিট’ ৱিণ্ড’ বন্ধ কৰিবলৈ টেব টিপক আৰু তাৰ পাছত এণ্টাৰ টিপক</translation> <translation id="3477679029130949506">চলচ্চিত্ৰৰ সূচী আৰু থিয়েটাৰৰ শ্ব’ৰ সময়সূচী</translation> <translation id="3479552764303398839">এতিয়া নহয়</translation> @@ -1027,6 +1029,7 @@ <translation id="3678342917559046352">অমান্য এক্সটেনশ্বন: মানটো তলত দিয়া যিকোনো এটা ধৰণৰ হ’ব বুলি আশা কৰা হৈছে: <extension_id> অথবা <extension_id>;<update_url>।</translation> <translation id="3678529606614285348">এটা নতুন ৱিণ্ড’ত পৃষ্ঠা খোলক (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">প্ৰমাণপত্ৰৰ তথ্য</translation> +<translation id="3699374065820972102">পাছৱৰ্ড পূৰ কৰিবলৈ TouchID অন হৈ আছে</translation> <translation id="3701427423622901115">ৰিছেট কাৰ্যটো স্বীকাৰ কৰা হ’ল৷</translation> <translation id="3704162925118123524">আপুনি ব্যৱহাৰ কৰি থকা নেটৱর্কটোৰ বাবে আপুনি লগ ইনৰ পৃষ্ঠালৈ যাব লগা হ'ব পাৰে।</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1486,6 +1489,7 @@ <translation id="4900217275619098670">নৱম ৰোল</translation> <translation id="4901778704868714008">ছেভ কৰক...</translation> <translation id="4905659621780993806">আপোনাৰ প্ৰশাসকে আপোনাৰ ডিভাইচটো <ph name="DATE" />ৰ <ph name="TIME" />ত স্বয়ংক্ৰিয়ভাৱে ৰিষ্টার্ট কৰিব। আপোনাৰ ডিভাইচটো ৰিষ্টার্ট হোৱাৰ পূর্বে যিকোনো খোলা বস্তু ছেভ কৰক।</translation> +<translation id="4911007278801291296">আপুনি <ph name="SETTINGS" />ত TouchID অন অথবা অফ কৰিব পাৰে</translation> <translation id="4913987521957242411">বাওঁফালে ওপৰৰ অংশত পাঞ্চ কৰক</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> ইনষ্টল কৰক (ডাউনল’ড কৰাৰ প্ৰয়োজন নাই)</translation> <translation id="4923459931733593730">পৰিশোধ</translation> @@ -1594,7 +1598,7 @@ <translation id="5161334686036120870">বিষয়:</translation> <translation id="5161506081086828129">ষ্টেকাৰ ৯</translation> <translation id="5164798890604758545">পাঠ দিলে</translation> -<translation id="516920405563544094"><ph name="CREDIT_CARD" />ৰ CVCটো দিয়ক। আপুনি নিশ্চিতি প্ৰদান কৰাৰ পিছত আপোনাৰ Google Accountৰ পৰা কাৰ্ডৰ সবিশেষ এই ছাইটটোৰ সৈতে শ্বেয়াৰ কৰা হ’ব।</translation> +<translation id="516920405563544094"><ph name="CREDIT_CARD" />ৰ CVCটো দিয়ক। আপুনি নিশ্চিতি প্ৰদান কৰাৰ পাছত আপোনাৰ Google Accountৰ পৰা কাৰ্ডৰ সবিশেষ এই ছাইটটোৰ সৈতে শ্বেয়াৰ কৰা হ’ব।</translation> <translation id="5169827969064885044">আপুনি আপোনাৰ প্ৰতিষ্ঠানৰ একাউণ্টটো এক্সেছ কৰিব নোৱাৰা হ‘ব পাৰে বা আপোনাৰ পৰিচয় চুৰি হোৱাৰ নিচিনা ঘটনাৰ মুখামুখী হ‘ব পাৰে। Chromeএ আপোনাৰ পাছৱৰ্ডটো এতিয়াই সলনি কৰাটো চুপাৰিছ কৰে।</translation> <translation id="5171045022955879922">সন্ধান কৰক বা URL টাইপ কৰক</translation> <translation id="5171689220826475070">ফেনফ’ল্ড-ইউৰোপীয়</translation> @@ -1678,6 +1682,7 @@ <translation id="5357848622083956825">ভিজুৱেল আৰ্ট আৰু ডিজাইন</translation> <translation id="536296301121032821">নীতিৰ ছেটিংসমূহ ষ্ট’ৰ কৰিবলৈ সক্ষম নহ’ল</translation> <translation id="5363309033720083897">আপোনাৰ প্ৰশাসকে অনুমতি দিয়া ক্ৰমিক পৰ্ট</translation> +<translation id="5363713372507812442">ভ্ৰমণ সন্ধান কৰক</translation> <translation id="5371425731340848620">কাৰ্ড আপডে’ট কৰক</translation> <translation id="5377026284221673050">"আপোনাৰ ঘড়ী লেহেমীয়াকৈ চলি আছে" বা "আপোনাৰ ঘড়ী খৰকৈ চলি আছে " বা "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">উপস্থাপন সৃষ্টি কৰাৰ বুটাম, এটা নতুন Google উপস্থাপন Slidesত ক্ষিপ্ৰভাৱে সৃষ্টি কৰিবলৈ এণ্টাৰ টিপক</translation> @@ -2423,6 +2428,7 @@ </ol></translation> <translation id="741007362987735528">বহল-ফৰ্মেট</translation> <translation id="7410471291937727359">মৰম-লগা</translation> +<translation id="741204030948306876">হয়, মই সন্মত</translation> <translation id="7416351320495623771">পাছৱৰ্ড পৰিচালনা কৰক…</translation> <translation id="7418620734632363981">প্ৰ’গ্ৰামিং</translation> <translation id="7419106976560586862">প্ৰ’ফাইলৰ পথ</translation> @@ -2982,7 +2988,7 @@ <translation id="8957210676456822347">কেপটিভ পর্টেল বিশ্বাসযোগ্যতাৰ প্ৰমাণীকৰণ</translation> <translation id="8962950042226115166">সন্দেহজনক ছাইট</translation> <translation id="8963117664422609631">ছাইটৰ ছেটিঙলৈ যাওক</translation> -<translation id="8963213021028234748"><ph name="MARKUP_1" />পৰামৰ্শ:<ph name="MARKUP_2" />আপোনাৰ এটা ডেটা সংযোগ থকাটো নিশ্চিত কৰক<ph name="MARKUP_3" />এই ৱেবপে‘জটো পিছত ৰিল‘ড কৰক<ph name="MARKUP_4" />আপুনি দিয়া ঠিকনাটো পৰীক্ষা কৰক<ph name="MARKUP_5" /></translation> +<translation id="8963213021028234748"><ph name="MARKUP_1" />পৰামৰ্শ:<ph name="MARKUP_2" />আপোনাৰ এটা ডেটা সংযোগ থকাটো নিশ্চিত কৰক<ph name="MARKUP_3" />এই ৱেবপে‘জটো পাছত ৰিল‘ড কৰক<ph name="MARKUP_4" />আপুনি দিয়া ঠিকনাটো পৰীক্ষা কৰক<ph name="MARKUP_5" /></translation> <translation id="8968766641738584599">কার্ড ছেভ কৰক</translation> <translation id="8971063699422889582">ছাৰ্ভাৰৰ প্ৰমাণপত্ৰৰ ম্যাদ উকলিছে।</translation> <translation id="8975012916872825179">ফ'ন নম্বৰ, ইমেইল ঠিকনা আৰু শ্বিপিঙৰ ঠিকনাৰ দৰে তথ্য অন্তৰ্ভুক্ত কৰে</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index f40f3533..73bf5796 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">Geniş Formatlı</translation> <translation id="7410471291937727359">Sevimli</translation> +<translation id="741204030948306876">Bəli, razıyam</translation> <translation id="7416351320495623771">Parolları İdarə edin...</translation> <translation id="7418620734632363981">Proqramlaşdırma</translation> <translation id="7419106976560586862">Profil yolu</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index 61cb9b08..e7baa1a8 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Шырокі фармат</translation> <translation id="7410471291937727359">Мілы</translation> +<translation id="741204030948306876">Так, я згаджаюся</translation> <translation id="7416351320495623771">Кіраваць паролямі…</translation> <translation id="7418620734632363981">Праграмаванне</translation> <translation id="7419106976560586862">Шлях да профілю</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 0f54653f..32b0094 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Очарователно</translation> +<translation id="741204030948306876">Да, ще участвам</translation> <translation id="7416351320495623771">Управление на паролите…</translation> <translation id="7418620734632363981">Програмиране</translation> <translation id="7419106976560586862">Път на потребителския профил</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 3e2a73fa..bb38e66 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -397,6 +397,7 @@ <translation id="192020519938775529">{COUNT,plural, =0{কিছুই নয়}=1{১টি সাইট}one{#টি সাইট}other{#টি সাইট}}</translation> <translation id="1924727005275031552">নতুন</translation> <translation id="1927439593081478069">'Chrome নিরাপত্তা সংক্রান্ত পরীক্ষা চালান' বোতাম, Chrome সেটিংসে নিরাপত্তা সংক্রান্ত পরীক্ষা চালাতে Enter কী প্রেস করুন</translation> +<translation id="1935995810530254458">যেকোনওভাবে কপি করুন</translation> <translation id="1939175642807587452">বিজ্ঞপ্তি পাঠাতে অনুমতি চাইতে পারে</translation> <translation id="1943994668912612445">ডিজাইন</translation> <translation id="1945968466830820669">আপনি নিজের প্রতিষ্ঠানের অ্যাকাউন্টের অ্যাক্সেস হারাতে পারেন অথবা আপনার পরিচয় চুরি হয়ে যেতে পারে। Chromium এখনই আপনার পাসওয়ার্ড পরিবর্তন করার আর্জি জানাচ্ছে।</translation> @@ -450,6 +451,7 @@ <translation id="2085876078937250610">সেভ করুন…</translation> <translation id="2088086323192747268">সিঙ্ক করার বোতাম ম্যানেজ করুন, Chrome সেটিংসে আপনি কী ধরনের তথ্য সিঙ্ক করবেন, তা ম্যানেজ করতে Enter প্রেস করুন</translation> <translation id="2091887806945687916">আওয়াজ</translation> +<translation id="2093982008204312032">Google Chrome পাসওয়ার্ড পূরণ করার জন্য Windows Hello বন্ধ করার চেষ্টা করছে।</translation> <translation id="2094505752054353250">ডোমেন মেলেনি</translation> <translation id="2099652385553570808">বাঁদিকে ট্রিপল স্টেপল</translation> <translation id="2101225219012730419">ভার্সন:</translation> @@ -1144,6 +1146,7 @@ <translation id="4014128326099193693">{COUNT,plural, =1{পিডিএফ ডকুমেন্টে {COUNT}টি পৃষ্ঠা আছে}one{পিডিএফ ডকুমেন্টে {COUNT}টি পৃষ্ঠা আছে}other{পিডিএফ ডকুমেন্টে {COUNT}টি পৃষ্ঠা আছে}}</translation> <translation id="4022639246993848966">৩.৫x৫</translation> <translation id="4023431997072828269">এই ফর্মটি এমন কানেকশন ব্যবহার করে জমা দেওয়া হয়েছে যা নিরাপদ নয়, তাই আপনার তথ্য অন্যান্য ব্যবহারকারীরা দেখতে পাবেন।</translation> +<translation id="4024923292610332139">পাসওয়ার্ড পূরণের জন্য TouchID বন্ধ করুন</translation> <translation id="4025913568718019429">'Google-এর গোপনীয়তা সেটিংস ম্যানেজ করুন' বোতাম , আপনার Google অ্যাকাউন্টের গোপনীয়তা সেটিংসে যেতে Enter প্রেস করুন</translation> <translation id="4030383055268325496">&যোগ করাকে পূর্বাবস্থায় ফেরান</translation> <translation id="4031179711345676612">মাইক্রোফোন ব্যবহারের অনুমতি দেওয়া হয়েছে</translation> @@ -1261,6 +1264,7 @@ <translation id="42981349822642051">প্রসারিত করুন</translation> <translation id="4300675098767811073">ডানদিকে মাল্টিপল পাঞ্চ</translation> <translation id="4302514097724775343">ডাইনোসর গেম খেলতে, ট্যাপ করুন</translation> +<translation id="4304049446746819918">{0,plural, =1{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল সরানো যাবে না}one{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল সরানো যাবে না}other{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল সরানো যাবে না}}</translation> <translation id="4305666528087210886">আপনার ফাইল অ্যাক্সেস করা যায়নি</translation> <translation id="4306529830550717874">ঠিকানা সেভ করবেন?</translation> <translation id="4306812610847412719">ক্লিপবোর্ড</translation> @@ -1636,6 +1640,7 @@ <translation id="5254043433801397071">প্রিন্ট কন্টেন্ট অপ্টিমাইজ করুন</translation> <translation id="5254958791078852567">E1</translation> <translation id="5255690596502591079">তবুও ক্যাপচার করুন</translation> +<translation id="5257739419779698609">{0,plural, =1{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল কপি করা যাবে না}one{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল কপি করা যাবে না}other{অ্যাডমিনিস্ট্রেটরের নীতি অনুযায়ী <ph name="DESTINATION_NAME" />-এ এই ফাইল কপি করা যাবে না}}</translation> <translation id="5266128565379329178">উপরে বাঁধাই</translation> <translation id="5269225904387178860">নিচে কোয়াড পাঞ্চ</translation> <translation id="5269999699920406580">যেসব ফিচার সিস্টেম জুড়ে প্রয়োগ করা হয় সেগুলি শুধুমাত্র মালিক সেট করতে পারবেন: <ph name="OWNER_EMAIL" /></translation> @@ -1698,6 +1703,7 @@ <translation id="5412236728747081950">এই সাইটটি আপনাকে আরও প্রাসঙ্গিক বিজ্ঞাপন দেখানোর জন্য Chrome থেকে আপনার আগ্রহগুলি নেয়।</translation> <translation id="5412245327974352290"><ph name="TRADITIONAL_TEXT" /> - <ph name="ADDITIONAL_TEXT" /></translation> <translation id="541416427766103491">স্ট্যাকার ৪</translation> +<translation id="5414511064953050917">যেকোনওভাবে সরান</translation> <translation id="5421136146218899937">ব্রাউজিং ডেটা সাফ করুন...</translation> <translation id="5425241977284572032">{NUM_COOKIES,plural, =0{কোনও সাইট ব্লক করা নেই}=1{১টি সাইট ব্লক করা আছে}one{#টি সাইট ব্লক করা আছে}other{#টি সাইট ব্লক করা আছে}}</translation> <translation id="5426179911063097041"><ph name="SITE" /> আপনাকে বিজ্ঞপ্তি পাঠাতে চায়</translation> @@ -2318,6 +2324,7 @@ <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}one{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}other{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}}</translation> <translation id="7153618581592392745">ল্যাভেণ্ডার</translation> <translation id="7156870133441232244">সার্ভারটিকে TLS 1.2 বা এর পরবর্তী যেকোনও ভার্সনে আপগ্রেড করতে হবে।</translation> +<translation id="7163295244162773898">{0,plural, =1{গোপনীয় ফাইল কপি করবেন?}one{গোপনীয় ফাইল কপি করবেন?}other{গোপনীয় ফাইল কপি করবেন?}}</translation> <translation id="717330890047184534">Gaia আইডি:</translation> <translation id="7174545416324379297">মার্জ করা হয়েছে</translation> <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}one{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}other{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}}</translation> @@ -2428,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">সুন্দর</translation> +<translation id="741204030948306876">হ্যাঁ, আমি রাজি</translation> <translation id="7416351320495623771">পাসওয়ার্ডগুলি পরিচালনা করুন…</translation> <translation id="7418620734632363981">প্রোগ্রামিং</translation> <translation id="7419106976560586862">প্রোফাইল পাথ</translation> @@ -2926,6 +2934,7 @@ <translation id="8763986294015493060">বর্তমানে খোলা আছে এমন সব 'ছদ্মবেশী' উইন্ডো বন্ধ করুন</translation> <translation id="8766943070169463815">নিরাপদে পেমেন্ট ক্রেডেনশিয়াল যাচাই করার শিট খোলা হয়েছে</translation> <translation id="8767765348545497220">সহায়তা বাবল বন্ধ করুন</translation> +<translation id="877348612833018844">{0,plural, =1{গোপনীয় ফাইল সরাবেন?}one{গোপনীয় ফাইল সরাবেন?}other{গোপনীয় ফাইল সরাবেন?}}</translation> <translation id="877985182522063539">A4</translation> <translation id="8785658048882205566">মোটর সাইকেল</translation> <translation id="8790007591277257123">&মুছে ফেলাকে আবার করুন</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 683cef0..96ee12d5 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Široki format</translation> <translation id="7410471291937727359">Divno</translation> +<translation id="741204030948306876">Da, želim</translation> <translation id="7416351320495623771">Upravljaj lozinkama…</translation> <translation id="7418620734632363981">Programiranje</translation> <translation id="7419106976560586862">Putanja profila</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 1992b3c8..99e1375 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Reinicia</translation> <translation id="2803306138276472711">Navegació segura de Google ha <ph name="BEGIN_LINK" />detectat programari maliciós<ph name="END_LINK" /> recentment a la pàgina <ph name="SITE" />. De vegades, els llocs web que acostumen a ser segurs s'infecten amb programari maliciós.</translation> <translation id="2807052079800581569">Posició de la imatge a l'eix Y</translation> +<translation id="2808278141522721006">Pots activar o desactivar Windows Hello a <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">S'està cercant...</translation> <translation id="2824775600643448204">Barra d'adreces i de cerca</translation> <translation id="2826760142808435982">La connexió s'ha encriptat i autenticat mitjançant <ph name="CIPHER" /> i fa servir <ph name="KX" /> com a mecanisme d'intercanvi clau.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">És possible que <ph name="URL" /> hagi de fer més passos per verificar el teu pagament</translation> <translation id="3293642807462928945">Més informació sobre la política <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Consulta i gestiona les teves contrasenyes a la configuració de Chrome</translation> +<translation id="3299098170013242198">Windows Hello està activat per emplenar contrasenyes</translation> <translation id="3303855915957856445">No s'ha trobat cap resultat de la cerca</translation> <translation id="3304073249511302126">cerca de dispositius Bluetooth</translation> <translation id="33073482541490531">La contrasenya que acabes d'utilitzar s'ha trobat en una violació de les dades. El gestor de contrasenyes recomana que la canviïs ara.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Extensió no vàlida: s'esperava que el valor tingués una de les formes següents: <extension_id> o <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Obre la pàgina en una finestra d'incògnit nova (Ctrl+Maj+N)</translation> <translation id="3681007416295224113">Informació del certificat</translation> +<translation id="3699374065820972102">Touch ID està activat per emplenar contrasenyes</translation> <translation id="3701427423622901115">Restabliment acceptat.</translation> <translation id="3704162925118123524">És possible que la xarxa que esteu fent servir requereixi que visiteu la pàgina d'inici de sessió.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Novè corró</translation> <translation id="4901778704868714008">Desa...</translation> <translation id="4905659621780993806">L'administrador reiniciarà automàticament el dispositiu el dia <ph name="DATE" /> a les <ph name="TIME" />. Abans no es reiniciï, desa tots els elements oberts.</translation> +<translation id="4911007278801291296">Pots activar o desactivar Touch ID a <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Encunyació a la part superior esquerra</translation> <translation id="4918221908152712722">Instal·la l'aplicació <ph name="APP_NAME" /> (no cal que la baixis)</translation> <translation id="4923459931733593730">Pagament</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Arts visuals i disseny</translation> <translation id="536296301121032821">No s'ha pogut emmagatzemar la configuració de la política</translation> <translation id="5363309033720083897">Port en sèrie admès pel teu administrador</translation> +<translation id="5363713372507812442">Cerca recorreguts</translation> <translation id="5371425731340848620">Actualitza la targeta</translation> <translation id="5377026284221673050">"El rellotge està endarrerit", "El rellotge està avançat" o "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Botó Crea una presentació: prem Retorn per crear una presentació ràpidament a Google Presentacions</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Encantadora</translation> +<translation id="741204030948306876">Sí, ho accepto</translation> <translation id="7416351320495623771">Gestiona les contrasenyes…</translation> <translation id="7418620734632363981">Programació</translation> <translation id="7419106976560586862">Camí del perfil</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index d1f0423..ff04a74 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Restartovat</translation> <translation id="2803306138276472711">Služba Bezpečné prohlížení Google na webu <ph name="SITE" /> nedávno <ph name="BEGIN_LINK" />zjistila malware<ph name="END_LINK" />. Někdy mohou být malwarem nakaženy i weby, které jsou obvykle bezpečné.</translation> <translation id="2807052079800581569">Pozice obrázku na ose Y</translation> +<translation id="2808278141522721006">Windows Hello můžete zapnout nebo vypnout v <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Vyhledávání...</translation> <translation id="2824775600643448204">Adresní a vyhledávací řádek</translation> <translation id="2826760142808435982">Připojení je šifrováno a ověřeno pomocí šifry <ph name="CIPHER" /> a jako mechanismus výměny klíčů používá <ph name="KX" />.</translation> @@ -881,6 +882,7 @@ <translation id="3288238092761586174"><ph name="URL" /> zřejmě bude muset vaši platbu ověřit pomocí dodatečných kroků</translation> <translation id="3293642807462928945">Další informace o zásadě <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Zobrazte a spravujte svá hesla v nastavení Chromu</translation> +<translation id="3299098170013242198">Pro vyplňování hesel je zapnutá funkce Windows Hello</translation> <translation id="3303855915957856445">Nebyly nalezeny žádné výsledky</translation> <translation id="3304073249511302126">vyhledávání bluetooth</translation> <translation id="33073482541490531">Právě použité heslo bylo nalezeno na seznamu hesel uniklých při incidentu porušení zabezpečení údajů. Správce hesel doporučuje ihned toto heslo změnit.</translation> @@ -1028,6 +1030,7 @@ <translation id="3678342917559046352">Neplatné rozšíření: Očekávána hodnota v některém z těchto formátů: <extension_id> nebo <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Otevřete stránku v novém anonymním okně (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Informace o certifikátu</translation> +<translation id="3699374065820972102">Pro vyplňování hesel je zapnutá funkce TouchID</translation> <translation id="3701427423622901115">Resetování bylo potvrzeno.</translation> <translation id="3704162925118123524">Síť, kterou používáte, může vyžadovat, abyste navštívili její stránku přihlášení.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1490,6 +1493,7 @@ <translation id="4900217275619098670">Devátá role</translation> <translation id="4901778704868714008">Uložit...</translation> <translation id="4905659621780993806">V <ph name="TIME" /> dne <ph name="DATE" /> administrátor zařízení automaticky restartuje. Před restartováním zařízení uložte všechny otevřené položky.</translation> +<translation id="4911007278801291296">Funkci TouchID můžete zapnout nebo vypnout v <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Děrování vlevo nahoře</translation> <translation id="4918221908152712722">Nainstalujte si aplikaci <ph name="APP_NAME" /> (není potřeba nic stahovat)</translation> <translation id="4923459931733593730">Platba</translation> @@ -1683,6 +1687,7 @@ <translation id="5357848622083956825">Vizuální umění a design</translation> <translation id="536296301121032821">Ukládání nastavení zásady se nezdařilo</translation> <translation id="5363309033720083897">Sériový port je povolen administrátorem</translation> +<translation id="5363713372507812442">Cesty vyhledávání</translation> <translation id="5371425731340848620">Aktualizace karty</translation> <translation id="5377026284221673050">Vaše hodiny se zpožďují, Vaše hodiny jdou napřed nebo <span class="error-code">NET::ERR_CERT_DATE_INVALID</span></translation> <translation id="5379027395132364855">Tlačítko Vytvořit prezentaci, stisknutím klávesy Enter rychle vytvoříte novou prezentaci Google v Prezentacích</translation> @@ -2429,6 +2434,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Půvabné</translation> +<translation id="741204030948306876">Ano</translation> <translation id="7416351320495623771">Spravovat hesla…</translation> <translation id="7418620734632363981">Programování</translation> <translation id="7419106976560586862">Cesta k profilu</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb index 9e058db8..90423b64 100644 --- a/components/strings/components_strings_cy.xtb +++ b/components/strings/components_strings_cy.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Ail-lansio</translation> <translation id="2803306138276472711">Yn ddiweddar, gwnaeth Safe Browsing gyda Google ganfod <ph name="BEGIN_LINK" />meddalwedd<ph name="END_LINK" /> ar <ph name="SITE" />. Weithiau mae gwefannau sydd fel arfer yn ddiogel yn cael eu heintio â meddalwedd faleisus.</translation> <translation id="2807052079800581569">Safle Y llun</translation> +<translation id="2808278141522721006">Gallwch chi droi Windows Hello ymlaen neu ei ddiffodd yn <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Wrthi'n sganio...</translation> <translation id="2824775600643448204">Bar cyfeiriad a chwilio</translation> <translation id="2826760142808435982">Mae'r cysylltiad wedi'i amgryptio a'i ddilysu gan ddefnyddio <ph name="CIPHER" /> ac yn defnyddio <ph name="KX" /> fel y mecanwaith cyfnewid allweddau.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">Mae'n bosib y bydd angen i <ph name="URL" /> gymryd camau ychwanegol i ddilysu eich taliad</translation> <translation id="3293642807462928945">Dysgu rhagor am y polisi <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Gweld a rheoli'ch cyfrineiriau yn Gosodiadau Chrome</translation> +<translation id="3299098170013242198">Mae Windows Hello ymlaen ar gyfer llenwi cyfrineiriau</translation> <translation id="3303855915957856445">Ni chanfuwyd unrhyw ganlyniadau chwilio</translation> <translation id="3304073249511302126">sganio Bluetooth</translation> <translation id="33073482541490531">Canfuwyd y cyfrinair rydych newydd ei ddefnyddio mewn achos o dor data. Mae'r Rheolwr Cyfrineiriau yn argymell newid y cyfrinair hwn ar unwaith.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Estyniad Annilys: Disgwylir i werth un o'r ffurfiau canlynol fod: <extension_id> neu <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Agor tudalen mewn ffenestr anhysbys newydd (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Gwybodaeth am y dystysgrif</translation> +<translation id="3699374065820972102">Mae TouchID ymlaen ar gyfer llenwi cyfrineiriau</translation> <translation id="3701427423622901115">Mae'r ailosod wedi'i gydnabod.</translation> <translation id="3704162925118123524">Mae'n bosib y bydd y rhwydwaith rydych yn ei ddefnyddio yn gofyn i chi fynd i'w dudalen fewngofnodi.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Nawfed Rôl</translation> <translation id="4901778704868714008">Cadw...</translation> <translation id="4905659621780993806">Bydd eich gweinyddwr yn ailgychwyn eich dyfais yn awtomatig am <ph name="TIME" /> ar <ph name="DATE" />. Cadwch unrhyw eitemau sydd ar agor cyn i'ch dyfais ailgychwyn.</translation> +<translation id="4911007278801291296">Gallwch chi droi TouchID ymlaen neu ei ddiffodd yn <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Twll ar y chwith uchaf</translation> <translation id="4918221908152712722">Gosod <ph name="APP_NAME" /> (nid oes angen ei lawrlwytho)</translation> <translation id="4923459931733593730">Talu</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Celf a dylunio gweledol</translation> <translation id="536296301121032821">Wedi methu â storio gosodiadau'r polisi</translation> <translation id="5363309033720083897">Porth cyfresol a ganiateir gan eich gweinyddwr</translation> +<translation id="5363713372507812442">Chwilio Teithiau</translation> <translation id="5371425731340848620">Diweddaru'r cerdyn</translation> <translation id="5377026284221673050">"Mae eich cloc yn hwyr" neu "Mae eich cloc yn gynnar" neu "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Botwm creu cyflwyniad, pwyswch Enter i greu cyflwyniad Google newydd yn Slides yn gyflym</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Fformat Eang</translation> <translation id="7410471291937727359">Hyfryd</translation> +<translation id="741204030948306876">Iawn, rwy'n cydsynio</translation> <translation id="7416351320495623771">Rheoli cyfrineiriau…</translation> <translation id="7418620734632363981">Rhaglennu</translation> <translation id="7419106976560586862">Llwybr Proffil</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 07ca546..b8e6dad 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Genstart</translation> <translation id="2803306138276472711">Google Beskyttet browsing <ph name="BEGIN_LINK" />registrerede malware<ph name="END_LINK" /> på <ph name="SITE" />. Websites, der normalt er sikre, bliver undertiden inficeret med malware.</translation> <translation id="2807052079800581569">Billedposition Y</translation> +<translation id="2808278141522721006">Du kan aktivere eller deaktivere Windows Hello i <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Scanner…</translation> <translation id="2824775600643448204">Adresse og søgelinje</translation> <translation id="2826760142808435982">Forbindelsen er krypteret og godkendt ved hjælp af <ph name="CIPHER" />, og den anvender <ph name="KX" /> som primær udvekslingsmekanisme.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> er muligvis nødt til at gennemføre yderligere trin for at bekræfte din betaling</translation> <translation id="3293642807462928945">Få flere oplysninger om politikken <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Se og administrer dine adgangskoder i Chrome-indstillingerne</translation> +<translation id="3299098170013242198">Windows Hello er aktiveret med henblik på udfyldning af adgangskoder</translation> <translation id="3303855915957856445">Der blev ikke fundet nogen søgeresultater</translation> <translation id="3304073249511302126">Bluetooth-scanning</translation> <translation id="33073482541490531">Den adgangskode, du lige har brugt, er blevet lækket i forbindelse med et brud på datasikkerheden. Adgangskodeadministrator anbefaler, at du ændrer denne adgangskode nu.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Ugyldig udvidelse: Det var forventet, at værdien skulle være en af følgende: <extension_id> eller <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Åbn siden i et nyt inkognitovindue (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Certifikatoplysninger</translation> +<translation id="3699374065820972102">TouchID er aktiveret med henblik på udfyldning af adgangskoder</translation> <translation id="3701427423622901115">Nulstillingen blev anerkendt.</translation> <translation id="3704162925118123524">Det netværk, du bruger, kan kræve, at du går til netværkets loginside.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Niende papirrulle</translation> <translation id="4901778704868714008">Gem...</translation> <translation id="4905659621780993806">Din administrator genstarter automatisk din enhed <ph name="TIME" /> <ph name="DATE" />. Gem eventuelle åbne elementer, inden din enhed genstarter.</translation> +<translation id="4911007278801291296">Du kan aktivere eller deaktivere TouchID i <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Hul øverst til venstre</translation> <translation id="4918221908152712722">Installer <ph name="APP_NAME" /> (kræver ikke download)</translation> <translation id="4923459931733593730">Betaling</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Visuel kunst og design</translation> <translation id="536296301121032821">Der kunne ikke gemmes indstillinger for politik</translation> <translation id="5363309033720083897">Din administrator har tilladt denne serieport</translation> +<translation id="5363713372507812442">Søgeforløb</translation> <translation id="5371425731340848620">Opdater kortet</translation> <translation id="5377026284221673050">"Dit ur er bagud" eller "Dit ur er forud" eller "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Knappen Opret præsentation, tryk på Enter for hurtigt at oprette en ny Google-præsentation i Slides</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Sød</translation> +<translation id="741204030948306876">Ja tak</translation> <translation id="7416351320495623771">Administrer adgangskoder…</translation> <translation id="7418620734632363981">Programmering</translation> <translation id="7419106976560586862">Profilsti</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index feef186..f008720 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -2426,6 +2426,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Hübsch</translation> +<translation id="741204030948306876">Ja, bitte</translation> <translation id="7416351320495623771">Passwörter verwalten…</translation> <translation id="7418620734632363981">Programmieren</translation> <translation id="7419106976560586862">Profilpfad</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index 74197249..ce9466b8 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Επανεκκίνηση</translation> <translation id="2803306138276472711">Πρόσφατα η Ασφαλής περιήγηση Google <ph name="BEGIN_LINK" />εντόπισε κακόβουλο λογισμικό<ph name="END_LINK" /> στον ιστότοπο <ph name="SITE" />. Οι ιστότοποι που είναι ασφαλείς υπό φυσιολογικές συνθήκες μερικές φορές προσβάλλονται από κακόβουλα λογισμικά.</translation> <translation id="2807052079800581569">Θέση εικόνας στον άξονα Y</translation> +<translation id="2808278141522721006">Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε το Windows Hello από το μενού <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Σάρωση…</translation> <translation id="2824775600643448204">Γραμμή διευθύνσεων και αναζήτησης</translation> <translation id="2826760142808435982">Η κρυπτογράφηση και ο έλεγχος ταυτότητας της σύνδεσης γίνονται με <ph name="CIPHER" /> και χρησιμοποιεί το <ph name="KX" /> ως μηχανισμό ανταλλαγής κλειδιών.</translation> @@ -885,6 +886,7 @@ <translation id="3288238092761586174">Ενδέχεται να χρειαστούν επιπλέον βήματα από το <ph name="URL" /> για την επαλήθευση της πληρωμής σας.</translation> <translation id="3293642807462928945">Μάθετε περισσότερα σχετικά με την πολιτική <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Δείτε και διαχειριστείτε τους κωδικούς πρόσβασής σας στις ρυθμίσεις του Chrome.</translation> +<translation id="3299098170013242198">Το Windows Hello είναι ενεργό για τη συμπλήρωση κωδικών πρόσβασης</translation> <translation id="3303855915957856445">Δεν βρέθηκαν αποτελέσματα αναζήτησης</translation> <translation id="3304073249511302126">σάρωση Bluetooth</translation> <translation id="33073482541490531">Ο κωδικός πρόσβασης που μόλις χρησιμοποιήσατε εντοπίστηκε σε μια παραβίαση δεδομένων. Ο Διαχειριστής κωδικών πρόσβασης συνιστά την άμεση αλλαγή αυτού του κωδικού πρόσβασης.</translation> @@ -1033,6 +1035,7 @@ <translation id="3678342917559046352">Μη έγκυρη επέκταση: Η τιμή αναμενόταν να έχει μία από τις ακόλουθες μορφές: <extension_id> ή <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Ανοίξτε τη σελίδα σε ένα νέο παράθυρο ανώνυμης περιήγησης (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Πληροφορίες πιστοποιητικού</translation> +<translation id="3699374065820972102">Το TouchID είναι ενεργό για τη συμπλήρωση κωδικών πρόσβασης</translation> <translation id="3701427423622901115">Έγινε επιβεβαίωση της επαναφοράς.</translation> <translation id="3704162925118123524">Το δίκτυο που χρησιμοποιείτε ενδέχεται να σας ζητήσει να επισκεφτείτε τη σελίδα σύνδεσης του.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1497,6 +1500,7 @@ <translation id="4900217275619098670">Ένατο ρολό</translation> <translation id="4901778704868714008">Αποθήκευση…</translation> <translation id="4905659621780993806">Ο διαχειριστής σας θα επανεκκινήσει τη συσκευή σας αυτόματα στις <ph name="TIME" /> στις <ph name="DATE" />. Αποθηκεύστε τυχόν ανοιχτά στοιχεία πριν από την επανεκκίνηση της συσκευής σας.</translation> +<translation id="4911007278801291296">Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε το TouchID από το μενού <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Τρύπημα επάνω αριστερά</translation> <translation id="4918221908152712722">Εγκατάσταση εφαρμογής <ph name="APP_NAME" /> (δεν απαιτείται λήψη)</translation> <translation id="4923459931733593730">Πληρωμή</translation> @@ -1690,6 +1694,7 @@ <translation id="5357848622083956825">Εικαστικές τέχνες και σχέδιο</translation> <translation id="536296301121032821">Αποτυχία αποθήκευσης ρυθμίσεων πολιτικής</translation> <translation id="5363309033720083897">Σειριακή θύρα που επιτρέπεται από τον διαχειριστή σας</translation> +<translation id="5363713372507812442">Αναζήτηση διαδρομών</translation> <translation id="5371425731340848620">Ενημέρωση κάρτας</translation> <translation id="5377026284221673050">"Το ρολόι σας πάει πίσω" ή "Το ρολόι σας πάει μπροστά" ή "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Κουμπί Δημιουργία παρουσίασης, πατήστε το πλήκτρο Enter για να δημιουργήσετε γρήγορα μια νέα παρουσίαση Google στις Παρουσιάσεις</translation> @@ -2439,6 +2444,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Αξιαγάπητο</translation> +<translation id="741204030948306876">Ναι, συμφωνώ</translation> <translation id="7416351320495623771">Διαχείριση κωδικών πρόσβασης…</translation> <translation id="7418620734632363981">Προγραμματισμός</translation> <translation id="7419106976560586862">Διαδρομή προφίλ</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index dac6eda..7e3c2db9c 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Lovely</translation> +<translation id="741204030948306876">Yes, I'm in</translation> <translation id="7416351320495623771">Manage passwords...</translation> <translation id="7418620734632363981">Programming</translation> <translation id="7419106976560586862">Profile Path</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index 7c9c53f5..84d981a 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803306138276472711">La Navegación segura de Google <ph name="BEGIN_LINK" />detectó software malicioso<ph name="END_LINK" /> en <ph name="SITE" /> recientemente. A veces, los sitios web que suelen ser seguros contienen software malicioso.</translation> <translation id="2807052079800581569">Posición de la imagen en el eje Y</translation> +<translation id="2808278141522721006">Puedes activar o desactivar Windows Hello en <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Buscando…</translation> <translation id="2824775600643448204">Barra de direcciones y de búsqueda</translation> <translation id="2826760142808435982">La conexión se encriptó y autenticó con <ph name="CIPHER" />, y utiliza <ph name="KX" /> como el mecanismo de intercambio de claves.</translation> @@ -885,6 +886,7 @@ <translation id="3288238092761586174">Es posible que <ph name="URL" /> deba realizar pasos adicionales para verificar tu pago.</translation> <translation id="3293642807462928945">Más información sobre la política <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Consulta y administra tus contraseñas en la configuración de Chrome</translation> +<translation id="3299098170013242198">Se activó Windows Hello para completar contraseñas</translation> <translation id="3303855915957856445">No se encontraron resultados en la búsqueda</translation> <translation id="3304073249511302126">búsqueda de dispositivos Bluetooth</translation> <translation id="33073482541490531">La contraseña que acabas de usar se encontró en una violación de la seguridad de los datos. El Administrador de contraseñas te recomienda cambiar la contraseña ahora.</translation> @@ -1033,6 +1035,7 @@ <translation id="3678342917559046352">La extensión no es válida: Se esperaba que el valor fuera uno de los siguientes formatos: <extension_id> o <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Abre la página en una nueva ventana de incógnito (Ctrl-mayúscula-N).</translation> <translation id="3681007416295224113">Información sobre el certificado</translation> +<translation id="3699374065820972102">Se activó TouchID para completar contraseñas</translation> <translation id="3701427423622901115">Se detectó el restablecimiento.</translation> <translation id="3704162925118123524">Es posible que la red que estás usando requiera que visites la página de acceso.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1495,6 +1498,7 @@ <translation id="4900217275619098670">Noveno rollo</translation> <translation id="4901778704868714008">Guardar…</translation> <translation id="4905659621780993806">El administrador reiniciará el dispositivo el <ph name="DATE" /> a las <ph name="TIME" />. Guarda los elementos abiertos antes de reiniciar el dispositivo.</translation> +<translation id="4911007278801291296">Puedes activar o desactivar TouchID en <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Perforación en la esquina superior izquierda</translation> <translation id="4918221908152712722">Instala <ph name="APP_NAME" /> (no es necesario que descargues la app)</translation> <translation id="4923459931733593730">Pago</translation> @@ -1688,6 +1692,7 @@ <translation id="5357848622083956825">Artes visuales y diseño</translation> <translation id="536296301121032821">Error al almacenar la configuración de la política</translation> <translation id="5363309033720083897">Puerto en serie que permite tu administrador</translation> +<translation id="5363713372507812442">Buscar exploraciones</translation> <translation id="5371425731340848620">Actualizar tarjeta</translation> <translation id="5377026284221673050">"El reloj está atrasado", "El reloj está adelantado" o "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Botón Crear presentación, presiona Intro para crear una nueva presentación de Google en Presentaciones rápidamente</translation> @@ -2436,6 +2441,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Lovely</translation> +<translation id="741204030948306876">Sí, acepto</translation> <translation id="7416351320495623771">Administrar contraseñas…</translation> <translation id="7418620734632363981">Programación</translation> <translation id="7419106976560586862">Ruta del perfil</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index b990d22..da17689 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803306138276472711">Recientemente, la función de Navegación segura de Google <ph name="BEGIN_LINK" />ha detectado malware<ph name="END_LINK" /> en <ph name="SITE" />. En ocasiones, los sitios web que normalmente son seguros contienen malware.</translation> <translation id="2807052079800581569">Posición de la imagen en el eje Y</translation> +<translation id="2808278141522721006">Puedes activar o desactivar Windows Hello en <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Buscando...</translation> <translation id="2824775600643448204">Barra de direcciones y de búsqueda </translation> <translation id="2826760142808435982">La conexión se ha encriptado y autenticado con <ph name="CIPHER" />, y utiliza <ph name="KX" /> como el mecanismo de intercambio clave.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">Es posible que <ph name="URL" /> tenga que completar pasos adicionales para verificar tu pago</translation> <translation id="3293642807462928945">Más información sobre la política <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Consulta y gestiona tus contraseñas desde la configuración de Chrome</translation> +<translation id="3299098170013242198">Windows Hello está activado para rellenar contraseñas</translation> <translation id="3303855915957856445">No se han encontrado resultados de búsqueda</translation> <translation id="3304073249511302126">búsqueda de dispositivos Bluetooth</translation> <translation id="33073482541490531">La contraseña que acabas de usar se ha encontrado en una quiebra de seguridad de datos. El gestor de contraseñas te recomienda que cambies esa contraseña ahora.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Extensión no válida: se esperaba que el valor tuviera el formato <extension_id> o <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Abre una página en una nueva ventana de Incógnito (Ctrl + Mayús + N).</translation> <translation id="3681007416295224113">Datos del certificado</translation> +<translation id="3699374065820972102">Touch ID está activado para rellenar contraseñas</translation> <translation id="3701427423622901115">Se han restablecido los ajustes.</translation> <translation id="3704162925118123524">La red que estás utilizando puede requerir el acceso a su página de inicio de sesión.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Noveno rollo</translation> <translation id="4901778704868714008">Guardar...</translation> <translation id="4905659621780993806">Tu administrador reiniciará tu dispositivo automáticamente a las <ph name="TIME" /> el <ph name="DATE" />. Guarda los elementos que tengas abiertos antes de que el dispositivo se reinicie.</translation> +<translation id="4911007278801291296">Puedes activar o desactivar Touch ID en <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Perforado en la parte superior izquierda</translation> <translation id="4918221908152712722">Instala <ph name="APP_NAME" /> (sin descargar nada)</translation> <translation id="4923459931733593730">Pago</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Arte y diseño visuales</translation> <translation id="536296301121032821">Error al almacenar la configuración de la política</translation> <translation id="5363309033720083897">Puerto serie permitido por tu administrador</translation> +<translation id="5363713372507812442">Recorridos de búsqueda</translation> <translation id="5371425731340848620">Actualizar tarjeta</translation> <translation id="5377026284221673050">"Tu reloj está atrasado" o "Tu reloj está adelantado" o "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Botón de crear presentación, pulsa Intro para crear una nueva Presentación de Google rápidamente</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Encantadora</translation> +<translation id="741204030948306876">Sí, acepto</translation> <translation id="7416351320495623771">Gestionar contraseñas…</translation> <translation id="7418620734632363981">Programación</translation> <translation id="7419106976560586862">Ruta del perfil</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 6ee4aace..8aee8563 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Armas</translation> +<translation id="741204030948306876">Jah, sobib</translation> <translation id="7416351320495623771">Halda paroole …</translation> <translation id="7418620734632363981">Programmeerimine</translation> <translation id="7419106976560586862">Profiili tee</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index 9e67431..f9bfaa4 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -2430,6 +2430,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Atsegina</translation> +<translation id="741204030948306876">Bai, ados</translation> <translation id="7416351320495623771">Kudeatu pasahitzak…</translation> <translation id="7418620734632363981">Programazioa</translation> <translation id="7419106976560586862">Profilaren bide-izena</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 017f297..f8ca75c 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">راهاندازی مجدد</translation> <translation id="2803306138276472711">Google Safe Browsing به تازگی در <ph name="SITE" />، <ph name="BEGIN_LINK" />بدافزار شناسایی کرده است<ph name="END_LINK" />. گاهی اوقات وبسایتهایی که معمولاً ایمن هستند با بدافزار آلوده میشوند.</translation> <translation id="2807052079800581569">موقعیت Y تصویر</translation> +<translation id="2808278141522721006">میتوانید Windows Hello را در <ph name="SETTINGS" /> روشن یا خاموش کنید</translation> <translation id="2820957248982571256">درحال اسکن کردن…</translation> <translation id="2824775600643448204">نوار جستجو و آدرس</translation> <translation id="2826760142808435982">اتصال با استفاده از <ph name="CIPHER" /> رمزگذاری و راستیآزمایی شده است و از <ph name="KX" /> به عنوان مکانیسم تبادل کلید استفاده میکند.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> ممکن است برای تأیید پرداخت شما به انجام مراحل تکمیلی نیاز داشته باشد</translation> <translation id="3293642807462928945">درباره خطمشی <ph name="POLICY_NAME" /> بیشتر بدانید</translation> <translation id="3295444047715739395">گذرواژههایتان را در تنظیمات Chrome مشاهده و مدیریت کنید</translation> +<translation id="3299098170013242198">Windows Hello برای پر کردن گذرواژهها روشن است</translation> <translation id="3303855915957856445">هیچ نتیجهای برای جستجو یافت نشد</translation> <translation id="3304073249511302126">اسکن کردن بلوتوث</translation> <translation id="33073482541490531">گذرواژهای که اکنون استفاده کردید در سرقت اطلاعات شبکه پیدا شده است. «مدیر گذرواژه» توصیه میکند این گذرواژه را همینحالا تغییر دهید.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">پسوند نامعتبر است: انتظار میرود مقدار بهصورت یکی از فرمهای زیر باشد: <extension_id> یا <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">صفحه را در پنجره «ناشناس» جدیدی باز کنید (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">اطلاعات گواهی</translation> +<translation id="3699374065820972102">TouchID برای پر کردن گذرواژهها روشن است</translation> <translation id="3701427423622901115">بازنشانی تأیید شد.</translation> <translation id="3704162925118123524">شاید شبکهای که استفاده میکنید، بازدید از صفحه ورود به سیستم خودش را برای شما ضروری کرده باشد.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">رول نهم</translation> <translation id="4901778704868714008">ذخیره...</translation> <translation id="4905659621780993806">سرپرستْ دستگاهتان را ساعت <ph name="TIME" /> روز <ph name="DATE" /> بهطور خودکار بازراهاندازی خواهد کرد. قبلاز بازراهاندازی دستگاه، موارد باز را ذخیره کنید.</translation> +<translation id="4911007278801291296">میتوانید TouchID را در <ph name="SETTINGS" /> روشن یا خاموش کنید</translation> <translation id="4913987521957242411">سوراخ سمت راست بالا</translation> <translation id="4918221908152712722">نصب <ph name="APP_NAME" /> (بارگیری لازم نیست)</translation> <translation id="4923459931733593730">پرداخت</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">هنرهای تجسمی و طراحی</translation> <translation id="536296301121032821">تنظیمات خطمشی ذخیره نشد</translation> <translation id="5363309033720083897">سرپرستتان درگاه سریالی را مجاز کرده است</translation> +<translation id="5363713372507812442">جستجوی سفرها</translation> <translation id="5371425731340848620">بهروزرسانی کارت</translation> <translation id="5377026284221673050">«ساعتتان عقب است» یا «ساعتتان جلو است» یا «<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>»</translation> <translation id="5379027395132364855">دکمه ایجاد ارائه؛ برای ایجاد سریع ارائه جدید در «اسلایدنگار Google»، کلید «ورود» را فشار دهید</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">دوستداشتنی</translation> +<translation id="741204030948306876">بله، موافقم</translation> <translation id="7416351320495623771">مدیریت گذرواژهها…</translation> <translation id="7418620734632363981">برنامهنویسی</translation> <translation id="7419106976560586862">مسیر نمایه</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index 3828b79..5541496 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">Leveä</translation> <translation id="7410471291937727359">Ihana</translation> +<translation id="741204030948306876">Kyllä</translation> <translation id="7416351320495623771">Ylläpidä salasanoja…</translation> <translation id="7418620734632363981">Ohjelmointi</translation> <translation id="7419106976560586862">Profiilin polku</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 685cb60..4f22554 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Ilunsad Muli</translation> <translation id="2803306138276472711">Kamakailan lang, ang Google Safe Browsing ay <ph name="BEGIN_LINK" />nakakita ng malware<ph name="END_LINK" /> sa <ph name="SITE" />. Paminsan-minsan, nagkakaroon ng malware ang mga website na karaniwang ligtas.</translation> <translation id="2807052079800581569">Posisyon ng larawan Y</translation> +<translation id="2808278141522721006">Puwede mong i-on o i-off ang Windows Hello sa <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Nagsa-scan...</translation> <translation id="2824775600643448204">Address bar at bar sa paghahanap</translation> <translation id="2826760142808435982">Ine-encrypt at pinapatotoo ang koneksyon gamit ang <ph name="CIPHER" /> at ginagamit ang <ph name="KX" /> bilang key exchange mechanism.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">Posibleng kailanganin ng <ph name="URL" /> na magsagawa ng mga karagdagang hakbang para ma-verify ang iyong pagbabayad</translation> <translation id="3293642807462928945">Matuto pa tungkol sa patakarang <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Tingnan at pamahalaan ang iyong mga password sa mga setting ng Chrome</translation> +<translation id="3299098170013242198">Naka-on ang Windows Hello para sa paglalagay ng mga password</translation> <translation id="3303855915957856445">Walang nakitang resulta ng paghahanap</translation> <translation id="3304073249511302126">pag-scan ng bluetooth</translation> <translation id="33073482541490531">Nakita sa isang data breach ang password na kakagamit mo lang. Inirerekomenda ng Password Manager na palitan na ngayon ang password na ito.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Invalid na Extension: Inaasahang isa sa mga sumusunod na form ang value: <extension_id> o <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Buksan ang page sa bagong Incognito window (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Impormasyon sa certificate</translation> +<translation id="3699374065820972102">Naka-on ang TouchID para sa paglalagay ng mga password</translation> <translation id="3701427423622901115">Tinanggap ang pag-reset.</translation> <translation id="3704162925118123524">Ang network na ginagamit mo ay maaaring humiling sa iyo na bisitahin ang page ng pag-login nito.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Ikasiyam na Rolyo</translation> <translation id="4901778704868714008">I-save...</translation> <translation id="4905659621780993806">Awtomatikong ire-restart ng iyong administrator ang device mo nang <ph name="TIME" /> sa <ph name="DATE" />. I-save ang anumang bukas na item bago mag-restart ang iyong device.</translation> +<translation id="4911007278801291296">Puwede mong i-on o i-off ang TouchID sa <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Punch top left</translation> <translation id="4918221908152712722">I-install ang <ph name="APP_NAME" /> (hindi kinakailangang i-download)</translation> <translation id="4923459931733593730">Pagbabayad</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Visual art at disenyo</translation> <translation id="536296301121032821">Nabigo i-load ang mga setting ng patakaran sa store</translation> <translation id="5363309033720083897">Serial port na pinapayagan ng iyong administrator</translation> +<translation id="5363713372507812442">Maghanap sa Mga Journey</translation> <translation id="5371425731340848620">I-update ang card</translation> <translation id="5377026284221673050">"Nahuhuli ang iyong orasan" o "Nauuna ang iyong orasan" o "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Button na gumawa ng presentation, pindutin ang Enter para gumawa ng bagong Google presentation sa Slides nang mabilis</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Maganda</translation> +<translation id="741204030948306876">Oo, sali ako</translation> <translation id="7416351320495623771">Pamahalaan ang Mga Password...</translation> <translation id="7418620734632363981">Programming</translation> <translation id="7419106976560586862">Path ng Profile</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 4bd91211..fbd6bdf 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Format large</translation> <translation id="7410471291937727359">Précieux</translation> +<translation id="741204030948306876">Oui, j'accepte</translation> <translation id="7416351320495623771">Gérer les mots de passe…</translation> <translation id="7418620734632363981">Programmation</translation> <translation id="7419106976560586862">Chemin d'accès du profil</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index 31dfd39..896fd6cc 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -2429,6 +2429,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Joli</translation> +<translation id="741204030948306876">J'accepte</translation> <translation id="7416351320495623771">Gérer les mots de passe…</translation> <translation id="7418620734632363981">Programmation</translation> <translation id="7419106976560586862">Chemin d'accès au profil</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index 33fd7e70..2b5664d 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Encantador</translation> +<translation id="741204030948306876">Si, acepto</translation> <translation id="7416351320495623771">Xestionar contrasinais…</translation> <translation id="7418620734632363981">Programación</translation> <translation id="7419106976560586862">Ruta do perfil</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 14030a14..891ab00 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">ફરીથી લોંચ કરો</translation> <translation id="2803306138276472711">Google Safe Browsing ને તાજેતરમાં <ph name="SITE" /> પર <ph name="BEGIN_LINK" />મૉલવેર મળ્યું<ph name="END_LINK" />. વેબસાઇટ્સ કે જે સામાન્ય રીતે સુરક્ષિત છે તે ક્યારેક મૉલવેરથી દૂષિત હોય છે.</translation> <translation id="2807052079800581569">છબીની Y અક્ષ પરની સ્થિતિ</translation> +<translation id="2808278141522721006">તમે <ph name="SETTINGS" />માં જઈને Windows Hello ચાલુ કે બંધ કરી શકો છો</translation> <translation id="2820957248982571256">સ્કૅન કરી રહ્યાં છીએ…</translation> <translation id="2824775600643448204">સરનામું અને શોધ બાર</translation> <translation id="2826760142808435982">કનેક્શન <ph name="CIPHER" />નો ઉપયોગ કરીને એન્ક્રિપ્ટ અને પ્રમાણિત કરેલુંં છે અને મુખ્ય એક્સચેન્જ મેકેનિઝ્મ તરીકે <ph name="KX" />નો ઉપયોગ કરે છે.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">તમારી ચુકવણીની ચકાસણી કરવા માટે <ph name="URL" /> દ્વારા વધારાના પગલાં લેવા જરૂરી હોઈ શકે છે</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> પૉલિસી વિશે વધુ જાણો</translation> <translation id="3295444047715739395">Chrome સેટિંગમાં તમારા પાસવર્ડ જુઓ અને તેને મેનેજ કરો</translation> +<translation id="3299098170013242198">પાસવર્ડ ભરવા માટે Windows Hello ચાલુ છે</translation> <translation id="3303855915957856445">કોઈ શોધ પરિણામો મળ્યાં નથી</translation> <translation id="3304073249511302126">બ્લૂટૂથ સ્કૅનિંગ</translation> <translation id="33073482541490531">તમે હાલમાં જ ઉપયોગમાં લીધેલો પાસવર્ડ ડેટા ઉલ્લંઘનમાં જોવા મળ્યો છે. Password Manager હમણાં જ આ પાસવર્ડ બદલવાનો સુઝાવ આપે છે.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">અમાન્ય એક્સ્ટેન્શન: મૂલ્ય નીચેનામાંથી કોઈ એક સ્વરૂપમાં હોવું અપેક્ષિત છે: <extension_id> અથવા <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">એક નવી છુપી વિંડોમાં પેજ ખોલો (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">પ્રમાણપત્ર માહિતી</translation> +<translation id="3699374065820972102">પાસવર્ડ ભરવા માટે TouchID ચાલુ છે</translation> <translation id="3701427423622901115">રીસેટ કરવાનું સ્વીકાર્યું હતું.</translation> <translation id="3704162925118123524">તમે ઉપયોગમાં લઈ રહ્યાં છો તે નેટવર્ક માટે, તમારે તેના લૉગ ઇન પેજની મુલાકાત લેવાની જરૂર હોઈ શકે છે.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">નવમો રોલ</translation> <translation id="4901778704868714008">સાચવો...</translation> <translation id="4905659621780993806">તમારા ઍડમિનિસ્ટ્રેટર <ph name="DATE" />ના રોજ <ph name="TIME" /> વાગ્યે ઑટોમૅટિક રીતે તમારું ડિવાઇસ ફરી શરૂ કરશે. તમારું ડિવાઇસ ફરી શરૂ થાય તે પહેલાં ખુલી હોય એવી કોઈપણ આઇટમ સાચવો.</translation> +<translation id="4911007278801291296">તમે <ph name="SETTINGS" />માં જઈને TouchID ચાલુ કે બંધ કરી શકો છો</translation> <translation id="4913987521957242411">ઉપર ડાબી બાજુએ કાણું પાડો</translation> <translation id="4918221908152712722"><ph name="APP_NAME" />ને ઇન્સ્ટૉલ કરો (કોઈ ડાઉનલોડ આવશ્યક નથી)</translation> <translation id="4923459931733593730">ચુકવણી</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">વિઝ્યુઅલ આર્ટ અને ડિઝાઇન</translation> <translation id="536296301121032821">પૉલિસી સેટિંગ સ્ટોર કરવામાં નિષ્ફળ થયાં</translation> <translation id="5363309033720083897">તમારા વ્યવસ્થાપક દ્વારા મંજૂરી આપવામાં આવેલો સીરિયલ પોર્ટ</translation> +<translation id="5363713372507812442">પ્રવાસો શોધો</translation> <translation id="5371425731340848620">કાર્ડને અપડેટ કરો</translation> <translation id="5377026284221673050">"તમારી ઘડિયાળ પાછળ છે" અથવા "તમારી ઘડિયાળ આગળ છે" અથવા "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">'પ્રસ્તુતિ બનાવો' બટન, Slidesમાં ઝડપથી કોઈ નવી Google પ્રસ્તુતિ બનાવવા માટે, Enter કી દબાવો</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">પહોળાઈ-ફૉર્મેટ</translation> <translation id="7410471291937727359">મનોરમ</translation> +<translation id="741204030948306876">હા, હું સંમત છું</translation> <translation id="7416351320495623771">પાસવર્ડ મેનેજ કરો…</translation> <translation id="7418620734632363981">પ્રોગ્રામિંગ</translation> <translation id="7419106976560586862">પ્રોફાઇલ પાથ</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index e170de9..5729c75 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -782,7 +782,7 @@ <translation id="3008447029300691911"><ph name="CREDIT_CARD" /> का CVC डालें. आपकी तरफ से पुष्टि हो जाने पर, आपके कार्ड के विवरण इस साइट के साथ शेयर किए जाएंगे.</translation> <translation id="3013291976881901233">MIDI डिवाइस</translation> <translation id="301521992641321250">ऑटोमैटिक रूप से ब्लॉक है</translation> -<translation id="3016780570757425217">आपका स्थान पता करना</translation> +<translation id="3016780570757425217">आपकी जगह की जानकारी ऐक्सेस करने की</translation> <translation id="3017086357773116182"><ph name="REMOVE_SUGGESTION_SUFFIX" />, सुझाव हटाने के लिए पहले Tab और फिर Enter दबाएं.</translation> <translation id="3024663005179499861">गलत नीति प्रकार</translation> <translation id="3029752078111257850">दुनिया भर की खबरें</translation> @@ -2428,6 +2428,7 @@ </ol></translation> <translation id="741007362987735528">चौड़े पेज वाला फ़ॉर्मैट</translation> <translation id="7410471291937727359">प्यारा</translation> +<translation id="741204030948306876">हां, मैं सहमत हूं</translation> <translation id="7416351320495623771">पासवर्ड प्रबंधित करें…</translation> <translation id="7418620734632363981">प्रोग्रामिंग</translation> <translation id="7419106976560586862">प्रोफ़ाइल पाथ</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index 6e873bf..eff47ac8 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -2439,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Lijepo</translation> +<translation id="741204030948306876">Da, u redu</translation> <translation id="7416351320495623771">Upravljaj zaporkama…</translation> <translation id="7418620734632363981">Programiranje</translation> <translation id="7419106976560586862">Putanja profila</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index 47e7658..67f2148c 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -2433,6 +2433,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Kedves</translation> +<translation id="741204030948306876">Igen, folytatom</translation> <translation id="7416351320495623771">Jelszavak kezelése…</translation> <translation id="7418620734632363981">Programozás</translation> <translation id="7419106976560586862">Profil elérési útja</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index 116d556..4aac51c 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Հաճելի</translation> +<translation id="741204030948306876">Լավ</translation> <translation id="7416351320495623771">Գաղտնաբառերի կառավարում…</translation> <translation id="7418620734632363981">Ծրագրավորում</translation> <translation id="7419106976560586862">Պրոֆիլի ուղի</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index eeae6ed..fe2fe892 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Luncurkan Ulang</translation> <translation id="2803306138276472711">Google Safe Browsing baru saja <ph name="BEGIN_LINK" />mendeteksi software perusak<ph name="END_LINK" /> di <ph name="SITE" />. Situs web yang umumnya aman terkadang terinfeksi software perusak.</translation> <translation id="2807052079800581569">Posisi image Y</translation> +<translation id="2808278141522721006">Anda dapat mengaktifkan atau menonaktifkan Windows Hello di <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Memindai...</translation> <translation id="2824775600643448204">Bilah penelusuran dan alamat</translation> <translation id="2826760142808435982">Sambungan dienkripsi dan diautentikasi menggunakan <ph name="CIPHER" /> dan menggunakan <ph name="KX" /> sebagai mekanisme pertukaran kunci.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> mungkin perlu melakukan langkah tambahan untuk memverifikasi pembayaran Anda</translation> <translation id="3293642807462928945">Pelajari lebih lanjut tentang kebijakan <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Lihat dan kelola sandi Anda di setelan Chrome</translation> +<translation id="3299098170013242198">Windows Hello aktif untuk mengisi sandi</translation> <translation id="3303855915957856445">Hasil penelusuran tidak ditemukan</translation> <translation id="3304073249511302126">pemindaian bluetooth</translation> <translation id="33073482541490531">Sandi yang baru saja Anda gunakan terekspos dalam pelanggaran data. Pengelola Sandi merekomendasikan untuk mengubah sandi ini sekarang.</translation> @@ -1031,6 +1033,7 @@ <translation id="3678342917559046352">Ekstensi Tidak Valid: Nilai yang diharapkan harus dalam salah satu format berikut: <extension_id> atau <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Buka halaman dalam jendela Samaran baru (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Informasi sertifikat</translation> +<translation id="3699374065820972102">TouchID aktif untuk mengisi sandi</translation> <translation id="3701427423622901115">Reset dikonfirmasi.</translation> <translation id="3704162925118123524">Jaringan yang digunakan mungkin mewajibkan Anda mengunjungi halaman masuk jaringan.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1493,6 +1496,7 @@ <translation id="4900217275619098670">Rol Kesembilan</translation> <translation id="4901778704868714008">Simpan...</translation> <translation id="4905659621780993806">Administrator akan memulai ulang perangkat Anda secara otomatis pada <ph name="DATE" /> pukul <ph name="TIME" />. Simpan item yang terbuka sebelum perangkat dimulai ulang.</translation> +<translation id="4911007278801291296">Anda dapat mengaktifkan atau menonaktifkan TouchID di <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Lubang di kiri atas</translation> <translation id="4918221908152712722">Instal <ph name="APP_NAME" /> (tidak perlu didownload)</translation> <translation id="4923459931733593730">Pembayaran</translation> @@ -1686,6 +1690,7 @@ <translation id="5357848622083956825">Seni & desain visual</translation> <translation id="536296301121032821">Gagal menyimpan setelan kebijakan</translation> <translation id="5363309033720083897">Port serial yang diizinkan oleh administrator Anda</translation> +<translation id="5363713372507812442">Telusuri Perjalanan</translation> <translation id="5371425731340848620">Perbarui kartu</translation> <translation id="5377026284221673050">"Jam Anda terlalu lambat" atau "Jam Anda terlalu cepat" atau "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Tombol Buat presentasi, tekan Enter untuk membuat presentasi Google baru di Slide dengan cepat</translation> @@ -2432,6 +2437,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Cantik</translation> +<translation id="741204030948306876">Ya, saya setuju</translation> <translation id="7416351320495623771">Kelola Sandi...</translation> <translation id="7418620734632363981">Pemrograman</translation> <translation id="7419106976560586862">Jalur Profil</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 9a6e270..696ddcdc 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Fagurt</translation> +<translation id="741204030948306876">Hljómar vel</translation> <translation id="7416351320495623771">Stjórna aðgangsorðum…</translation> <translation id="7418620734632363981">Forritun</translation> <translation id="7419106976560586862">Slóð prófíls</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index dfc56a7a..ef79572 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -2431,6 +2431,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Incantevole</translation> +<translation id="741204030948306876">Sì, accetto</translation> <translation id="7416351320495623771">Gestisci password…</translation> <translation id="7418620734632363981">Programmazione</translation> <translation id="7419106976560586862">Percorso profilo</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 827212a..d220bc0 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -2433,6 +2433,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">חביב</translation> +<translation id="741204030948306876">כן, אני רוצה</translation> <translation id="7416351320495623771">ניהול סיסמאות…</translation> <translation id="7418620734632363981">תכנות</translation> <translation id="7419106976560586862">נתיב פרופיל</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 473d4fe..dffa143c 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -2428,6 +2428,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">ラブリー</translation> +<translation id="741204030948306876">有効にする</translation> <translation id="7416351320495623771">パスワードを管理…</translation> <translation id="7418620734632363981">プログラミング</translation> <translation id="7419106976560586862">プロフィール パス</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index 37508196..c9f92484 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">საყვარელი</translation> +<translation id="741204030948306876">დიახ, თანახმა ვარ</translation> <translation id="7416351320495623771">პაროლების მართვა…</translation> <translation id="7418620734632363981">პროგრამირება</translation> <translation id="7419106976560586862">პროფილის მისამართი</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 1ab5aca..a6b8a97b 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -2427,6 +2427,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Сүйкімді</translation> +<translation id="741204030948306876">Жарайды</translation> <translation id="7416351320495623771">Құпия сөздерді басқару...</translation> <translation id="7418620734632363981">Бағдарламалау</translation> <translation id="7419106976560586862">Профиль жолы</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 3a1c5cc..5167592 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -2444,6 +2444,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">គួរឱ្យស្រឡាញ់</translation> +<translation id="741204030948306876">បាទ/ចាស ខ្ញុំយល់ព្រម</translation> <translation id="7416351320495623771">គ្រប់គ្រងពាក្យសម្ងាត់…</translation> <translation id="7418620734632363981">ការសរសរកម្មវិធី</translation> <translation id="7419106976560586862">ផ្លូវទម្រង់</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index f5b2cd0..cfe6017 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -713,6 +713,7 @@ <translation id="2799223571221894425">ಮರುಪ್ರಾರಂಭಿಸು</translation> <translation id="2803306138276472711">Google ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಇತ್ತೀಚೆಗೆ <ph name="SITE" /> ನಲ್ಲಿ <ph name="BEGIN_LINK" />ಮಾಲ್ವೇರ್ ಪತ್ತೆಹಚ್ಚಿದೆ<ph name="END_LINK" />. ವೆಬ್ಸೈಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಸುರಕ್ಷಿತವಾಗಿದ್ದರೂ, ಕೆಲವೊಮ್ಮೆ ಮಾಲ್ವೇರ್ಗೆ ತುತ್ತಾಗಿರುತ್ತವೆ.</translation> <translation id="2807052079800581569">ಚಿತ್ರ Y ಸ್ಥಿತಿ</translation> +<translation id="2808278141522721006">ನೀವು <ph name="SETTINGS" /> ನಲ್ಲಿ Windows Hello ಅನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಿ</translation> <translation id="2820957248982571256">ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ…</translation> <translation id="2824775600643448204">ವಿಳಾಸ ಹಾಗೂ ಹುಡುಕಾಟ ಪಟ್ಟಿ</translation> <translation id="2826760142808435982"><ph name="CIPHER" /> ಬಳಸಿಕೊಂಡು ಸಂಪರ್ಕವನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ದೃಢೀಕರಿಸಲಾಗಿದೆ ಮತ್ತು <ph name="KX" /> ಅನ್ನು ಕೀ ವಿನಿಮಯ ಯಾಂತ್ರಿಕತೆಯಂತೆ ಬಳಸುತ್ತದೆ.</translation> @@ -881,6 +882,7 @@ <translation id="3288238092761586174">ನಿಮ್ಮ ಪಾವತಿಯನ್ನು ಪರಿಶೀಲಿಸಲು <ph name="URL" /> ಗೆ ಹೆಚ್ಚುವರಿ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಬೇಕಾಗಬಹುದು</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಿ</translation> <translation id="3295444047715739395">Chrome ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation> +<translation id="3299098170013242198">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಭರ್ತಿ ಮಾಡುವುದಕ್ಕಾಗಿ Windows Hello ಆನ್ ಆಗಿದೆ</translation> <translation id="3303855915957856445">ಯಾವುದೇ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="3304073249511302126">ಬ್ಲೂಟೂತ್ ಸ್ಕ್ಯಾನಿಂಗ್</translation> <translation id="33073482541490531">ನೀವು ಈಗಷ್ಟೇ ಬಳಸಿದ ಪಾಸ್ವರ್ಡ್ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ. ಪಾಸ್ವರ್ಡ್ ನಿರ್ವಾಹಕವು ಈ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಈಗಲೇ ಬದಲಾಯಿಸುವಂತೆ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> @@ -1028,6 +1030,7 @@ <translation id="3678342917559046352">ಅಮಾನ್ಯ ವಿಸ್ತರಣೆ: ಮೌಲ್ಯವು ಈ ಕೆಳಗಿನ ಫಾರ್ಮ್ಗಳಲ್ಲಿ ಒಂದಾಗಿರಬೇಕೆಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ: <extension_id> ಅಥವಾ <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">ಪುಟವನ್ನು ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">ಪ್ರಮಾಣಪತ್ರ ಮಾಹಿತಿ</translation> +<translation id="3699374065820972102">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಭರ್ತಿ ಮಾಡುವುದಕ್ಕಾಗಿ TouchID ಆನ್ ಆಗಿದೆ</translation> <translation id="3701427423622901115">ಮರುಹೊಂದಿಸುವಿಕೆಯನ್ನು ಅಂಗೀಕರಿಸಲಾಗಿದೆ.</translation> <translation id="3704162925118123524">ನೀವು ಬಳಸುತ್ತಿರುವ ನೆಟ್ವರ್ಕ್ನ ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಬೇಕಾದ ಅಗತ್ಯವಿದೆ.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1490,6 +1493,7 @@ <translation id="4900217275619098670">ಒಂಭತ್ತನೇ ರೋಲ್</translation> <translation id="4901778704868714008">ಉಳಿಸಿ...</translation> <translation id="4905659621780993806">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು <ph name="DATE" /> ರಂದು <ph name="TIME" /> ಸಮಯಕ್ಕೆ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಸಾಧನ ಮರುಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ಯಾವುದೇ ತೆರೆದಿರುವ ಐಟಂಗಳನ್ನು ಉಳಿಸಿ.</translation> +<translation id="4911007278801291296">ನೀವು <ph name="SETTINGS" /> ನಲ್ಲಿ TouchID ಅನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಬಹುದು</translation> <translation id="4913987521957242411">ಮೇಲಿನ ಎಡಭಾಗದಲ್ಲಿ ತೂತು ಮಾಡಿ</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> ಆ್ಯಪ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ (ಡೌನ್ಲೋಡ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ)</translation> <translation id="4923459931733593730">ಪಾವತಿ</translation> @@ -1683,6 +1687,7 @@ <translation id="5357848622083956825">ದೃಶ್ಯ ಕಲೆ ಮತ್ತು ವಿನ್ಯಾಸ</translation> <translation id="536296301121032821">ನೀತಿಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ</translation> <translation id="5363309033720083897">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸೀರಿಯಲ್ ಪೋರ್ಟ್ ಅನ್ನು ಅನುಮತಿಸಿದ್ದಾರೆ</translation> +<translation id="5363713372507812442">ಪ್ರಯಾಣಗಳನ್ನು ಹುಡುಕಿ</translation> <translation id="5371425731340848620">ಕಾರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="5377026284221673050">"ನಿಮ್ಮ ಗಡಿಯಾರ ಹಿಂದಿದೆ" ಅಥವಾ "ನಿಮ್ಮ ಗಡಿಯಾರ ಮುಂದಿದೆ" ಅಥವಾ "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">ಪ್ರಸ್ತುತಿ ರಚಿಸಿ ಬಟನ್, Slides ನಲ್ಲಿ ಹೊಸ Google ಪ್ರಸ್ತುತಿಯನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಲು Enter ಒತ್ತಿ</translation> @@ -2429,6 +2434,7 @@ <li>ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಿಂದ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ತೆಗೆದುಹಾಕುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿದುಕೊಳ್ಳಲು <a href="https://support.google.com/chrome/answer/6098869">Chrome ಸಹಾಯ ಕೇಂದ್ರಕ್ಕೆ</a> ಭೇಟಿ ನೀಡಿ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">ಸುಂದರ</translation> +<translation id="741204030948306876">ಹೌದು, ನಾನಿದ್ದೇನೆ</translation> <translation id="7416351320495623771">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ…</translation> <translation id="7418620734632363981">ಪ್ರೋಗ್ರಾಮಿಂಗ್</translation> <translation id="7419106976560586862">ಪ್ರೊಫೈಲ್ ಹಾದಿ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index aae9a4e..532516cd 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -2434,6 +2434,7 @@ <li><a href="https://support.google.com/chrome/answer/6098869">Chrome 고객센터</a>를 방문하여 컴퓨터에서 소프트웨어를 영구적으로 삭제하는 방법을 알아보세요. </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">사랑스러움</translation> +<translation id="741204030948306876">사용</translation> <translation id="7416351320495623771">비밀번호 관리...</translation> <translation id="7418620734632363981">프로그래밍</translation> <translation id="7419106976560586862">프로필 경로</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index 75d6852..6ca122d 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -2439,6 +2439,7 @@ <ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Cүйкүмдүү</translation> +<translation id="741204030948306876">Ооба, макулмун</translation> <translation id="7416351320495623771">Сырсөздөрдү башкаруу…</translation> <translation id="7418620734632363981">Программалоо</translation> <translation id="7419106976560586862">Профиль жолу</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb index ee28b12b..0492dc1 100644 --- a/components/strings/components_strings_lo.xtb +++ b/components/strings/components_strings_lo.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">ໜ້າຮັກ</translation> +<translation id="741204030948306876">ແມ່ນ, ຂ້ອຍຂໍເຂົ້າຮ່ວມ</translation> <translation id="7416351320495623771">ຈັດການລະຫັດຜ່ານ...</translation> <translation id="7418620734632363981">ການຂຽນໂປຣແກຣມ</translation> <translation id="7419106976560586862">ຊ່ອງທາງໂປຣໄຟລ໌</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index c974106a..f764c00 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Puiku</translation> +<translation id="741204030948306876">Taip, sutinku</translation> <translation id="7416351320495623771">Tvarkyti slaptažodžius…</translation> <translation id="7418620734632363981">Programavimas</translation> <translation id="7419106976560586862">Profilio kelias</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index 82448a5..fcdd035 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -2434,6 +2434,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Glīta</translation> +<translation id="741204030948306876">Jā, piekrītu</translation> <translation id="7416351320495623771">Pārvaldīt paroles…</translation> <translation id="7418620734632363981">Programmēšana</translation> <translation id="7419106976560586862">Profila ceļš</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index 8f6fcf5..ced6ae5a 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Убав</translation> +<translation id="741204030948306876">Да, може</translation> <translation id="7416351320495623771">Управувајте со лозинките…</translation> <translation id="7418620734632363981">Програмирање</translation> <translation id="7419106976560586862">Патека на профилот</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 85539b6..87314284 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">വീണ്ടും സമാരംഭിക്കുക</translation> <translation id="2803306138276472711"><ph name="SITE" /> എന്നതിൽ Google സുരക്ഷിത ബ്രൗസിംഗ് ഈയിടെ <ph name="BEGIN_LINK" />മാൽവെയർ കണ്ടെത്തി<ph name="END_LINK" />. സാധാരണ നിലയിൽ സുരക്ഷിതമായ വെബ്സൈറ്റുകളിൽ ചിലപ്പോൾ മാൽവെയർ ഉണ്ടായേക്കാം.</translation> <translation id="2807052079800581569">ചിത്രം Y സ്ഥാനം</translation> +<translation id="2808278141522721006">നിങ്ങൾക്ക് <ph name="SETTINGS" /> എന്നതിൽ Windows Hello ഓണാക്കുകയോ ഓഫാക്കുകയോ ചെയ്യാം</translation> <translation id="2820957248982571256">സ്കാൻ ചെയ്യുന്നു...</translation> <translation id="2824775600643448204">വിലാസവും തിരയൽ ബാറും</translation> <translation id="2826760142808435982"><ph name="CIPHER" /> ഉപയോഗിച്ച് കണക്ഷൻ എൻക്രിപ്റ്റുചെയ്ത് പ്രാമാണീകരിക്കുന്നു, ഒപ്പം പ്രധാന എക്സേഞ്ച് മെക്കാനിസമായി <ph name="KX" /> ഉപയോഗിക്കുന്നു.</translation> @@ -883,6 +884,7 @@ <translation id="3288238092761586174">നിങ്ങളുടെ പേയ്മെന്റ് പരിശോധിച്ചുറപ്പിക്കാൻ <ph name="URL" /> അധിക നടപടികൾ സ്വീകരിക്കേണ്ടതായി വന്നേക്കാം</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> നയത്തെ കുറിച്ച് കൂടുതലറിയുക</translation> <translation id="3295444047715739395">Chrome ക്രമീകരണത്തിൽ നിങ്ങളുടെ പാസ്വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation> +<translation id="3299098170013242198">പാസ്വേഡുകൾ പൂരിപ്പിക്കുന്നതിന് Windows Hello ഓണാണ്</translation> <translation id="3303855915957856445">തിരയൽ ഫലങ്ങളൊന്നും കണ്ടെത്തിയില്ല</translation> <translation id="3304073249511302126">Bluetooth സ്കാനിംഗ്</translation> <translation id="33073482541490531">നിങ്ങൾ ഇപ്പോൾ ഉപയോഗിച്ച പാസ്വേഡ് ഡാറ്റാ ലംഘനത്തിൽ കണ്ടെത്തിയിരിക്കുന്നു. ഈ പാസ്വേഡ് ഇപ്പോൾ തന്നെ മാറ്റാൻ Password Manager നിർദ്ദേശിക്കുന്നു.</translation> @@ -1031,6 +1033,7 @@ <translation id="3678342917559046352">വിപുലീകരണം അസാധുവാണ്: ഈ ഫോർമാറ്റുകളിൽ ഒരെണ്ണം ഉപയോഗിച്ചാണ് മൂല്യം ചേർക്കേണ്ടത് : <extension_id> അല്ലെങ്കിൽ <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">പുതിയ അദൃശ്യ വിൻഡോയിൽ പേജ് തുറക്കുക (കൺട്രോൾ-ഷിഫ്റ്റ്-N)</translation> <translation id="3681007416295224113">സര്ട്ടിഫിക്കറ്റ് വിവരങ്ങള്</translation> +<translation id="3699374065820972102">പാസ്വേഡുകൾ പൂരിപ്പിക്കുന്നതിന് TouchID ഓണാണ്</translation> <translation id="3701427423622901115">റീസെറ്റ് അംഗീകരിച്ചിരിക്കുന്നു</translation> <translation id="3704162925118123524">നിങ്ങൾ ഉപയോഗിക്കുന്ന നെറ്റ്വർക്കിനായി, ഇതിന്റെ ലോഗിൻ പേജ് സന്ദർശിക്കേണ്ടിവരാം.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1493,6 +1496,7 @@ <translation id="4900217275619098670">ഒൻപതാമത്തെ റോൾ</translation> <translation id="4901778704868714008">സംരക്ഷിക്കുക...</translation> <translation id="4905659621780993806">നിങ്ങളുടെ അഡ്മിൻ നിങ്ങളുടെ ഉപകരണം <ph name="DATE" />, <ph name="TIME" />-ന് റീസ്റ്റാർട്ട് ചെയ്യും. നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യുന്നതിന് മുമ്പ് തുറന്നിരിക്കുന്ന ഇനങ്ങളെല്ലാം സംരക്ഷിക്കുക.</translation> +<translation id="4911007278801291296">നിങ്ങൾക്ക് <ph name="SETTINGS" /> എന്നതിൽ TouchID ഓണാക്കുകയോ ഓഫാക്കുകയോ ചെയ്യാം</translation> <translation id="4913987521957242411">മുകളിൽ ഇടതുവശത്ത് പഞ്ച് ചെയ്യുക</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> ഇൻസ്റ്റാൾ ചെയ്യുക (ഡൗൺലോഡ് ചെയ്യേണ്ടതില്ല)</translation> <translation id="4923459931733593730">പേയ്മെന്റ് രീതി</translation> @@ -1686,6 +1690,7 @@ <translation id="5357848622083956825">ദൃശ്യ കലയും ഡിസൈനും</translation> <translation id="536296301121032821">നയ ക്രമീകരണങ്ങൾ സംഭരിക്കുന്നതിൽ പരാജയപ്പെട്ടു</translation> <translation id="5363309033720083897">നിങ്ങളുടെ അഡ്മിൻ അനുവദിച്ചിരിക്കുന്ന സീരിയൽ പോർട്ട്</translation> +<translation id="5363713372507812442">യാത്രകൾ തിരയുക</translation> <translation id="5371425731340848620">കാർഡ് അപ്ഡേറ്റ് ചെയ്യുക</translation> <translation id="5377026284221673050">"നിങ്ങളുടെ സമയം പിന്നിലാണ്" അല്ലെങ്കിൽ "നിങ്ങളുടെ സമയം മുന്നിലാണ്" അല്ലെങ്കിൽ "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">'അവതരണം സൃഷ്ടിക്കുക' ബട്ടൺ, Slides-ൽ പുതിയൊരു Google അവതരണം വേഗത്തിൽ സൃഷ്ടിക്കാൻ Enter അമർത്തുക</translation> @@ -2432,6 +2437,7 @@ നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് എങ്ങനെയാണ് സോഫ്റ്റ്വെയർ ശാശ്വതമായി നീക്കംചെയ്യുന്നത് എന്നറിയാൻ <a href="https://support.google.com/chrome/answer/6098869">Chrome സഹായ കേന്ദ്രം</a> സന്ദർശിക്കുക </ol></translation> <translation id="741007362987735528">വിസ്തൃത-ഫോർമാറ്റ്</translation> <translation id="7410471291937727359">മനോഹരമായത്</translation> +<translation id="741204030948306876">ഞാൻ തയ്യാറാണ്</translation> <translation id="7416351320495623771">പാസ്വേഡുകൾ മാനേജ് ചെയ്യുക…</translation> <translation id="7418620734632363981">പ്രോഗ്രാമിംഗ്</translation> <translation id="7419106976560586862">പ്രൊഫൈൽ പാത</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 10652fd..7a4bdee 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Өргөн-Формат</translation> <translation id="7410471291937727359">Хайр татам</translation> +<translation id="741204030948306876">Тийм, би зөвшөөрч байна</translation> <translation id="7416351320495623771">Нууц үгийг удирдах...</translation> <translation id="7418620734632363981">Программчлал</translation> <translation id="7419106976560586862">Профайлын зам</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 37287b6d..bdc40a9 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">पुन्हा लाँच करा</translation> <translation id="2803306138276472711">Google सुरक्षित ब्राउझिंगला अलीकडे <ph name="SITE" /> वर <ph name="BEGIN_LINK" />मालवेअर आढळले आहे<ph name="END_LINK" />. सामान्यतः सुरक्षित असलेल्या वेबसाइट काहीवेळा मालवेअरमुळे संक्रमित झालेल्या असतात.</translation> <translation id="2807052079800581569">इमेज Y स्थिती</translation> +<translation id="2808278141522721006">तुम्ही <ph name="SETTINGS" /> मध्ये Windows Hello सुरू किंवा बंद करू शकता</translation> <translation id="2820957248982571256">स्कॅन होत आहे...</translation> <translation id="2824775600643448204">पत्ता आणि शोध बार</translation> <translation id="2826760142808435982">कनेक्शन <ph name="CIPHER" /> वापरून आणि महत्त्वाचे एक्स्चेंज तंत्र म्हणून <ph name="KX" /> वापर एंक्रिप्ट आणि ऑथेंटिकेट केले आहे.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174">तुमच्या पेमेंटची पडताळणी करण्यासाठी <ph name="URL" /> ने अतिरिक्त पावले उचलणे आवश्यक असू शकते</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> धोरणांबद्दल अधिक जाणून घ्या</translation> <translation id="3295444047715739395">Chrome सेटिंग्जमध्ये तुमचे पासवर्ड पहा आणि व्यवस्थापित करा</translation> +<translation id="3299098170013242198">पासवर्ड एंटर करण्यासाठी Windows Hello सुरू आहे</translation> <translation id="3303855915957856445">कोणतेही शोध परिणाम आढळले नाहीत</translation> <translation id="3304073249511302126">ब्लूटूथ स्कॅन करणे</translation> <translation id="33073482541490531">तुम्ही नुकताच वापरलेला पासवर्ड डेटा भंगामध्ये आढळला होता. पासवर्ड व्यवस्थापक हा पासवर्ड आता बदलण्याची शिफारस करतो.</translation> @@ -1031,6 +1033,7 @@ <translation id="3678342917559046352">एक्स्टेंशन चुकीचे आहे: मूल्य हे पुढीलपैकी एका स्वरूपात असणे अपेक्षित आहे: <extension_id> किंवा <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">पेज एका नवीन गुप्त विंडोमध्ये उघडा (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">सर्टिफिकेट माहिती</translation> +<translation id="3699374065820972102">पासवर्ड एंटर करण्यासाठी TouchID सुरू आहे</translation> <translation id="3701427423622901115">रीसेट करण्याची नोंद घेतली आहे.</translation> <translation id="3704162925118123524">तुम्ही वापरत असलेल्या नेटवर्कला तुम्ही त्याच्या लॉग इन पेजला भेट देण्याची आवश्यकता असू शकते.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1493,6 +1496,7 @@ <translation id="4900217275619098670">नववा रोल</translation> <translation id="4901778704868714008">सेव्ह करा…</translation> <translation id="4905659621780993806">तुमचा अॅडमिनिस्ट्रेटर तुमचे डिव्हाइस <ph name="DATE" /> रोजी <ph name="TIME" /> वाजता आपोआप रीस्टार्ट करेल. तुमचे डिव्हाइस रीस्टार्ट होण्यापूर्वी कोणतेही खुले आयटम सेव्ह करा.</translation> +<translation id="4911007278801291296">तुम्ही <ph name="SETTINGS" /> मध्ये TouchID सुरू किंवा बंद करू शकता</translation> <translation id="4913987521957242411">पंच टॉप लेफ्ट</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> इंस्टॉल करा (डाउनलोड करण्याची आवश्यकता नाही)</translation> <translation id="4923459931733593730">पेमेंट</translation> @@ -1686,6 +1690,7 @@ <translation id="5357848622083956825">व्हिज्युअल आर्ट आणि डिझाइन</translation> <translation id="536296301121032821">धोरण सेटिंग्ज संचयित करण्यात अयशस्वी</translation> <translation id="5363309033720083897">तुमच्या अॅडमिनिस्ट्रेटरने अनुमती दिलेला सिरीअल पोर्ट</translation> +<translation id="5363713372507812442">प्रवास शोधा</translation> <translation id="5371425731340848620">कार्ड अपडेट करा</translation> <translation id="5377026284221673050">"तुमचे क्लॉक मागे पडले आहे" किंवा "तुमचे क्लॉक वेळेपेक्षा पुढे आहे" किंवा "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">प्रेझेंटेशन तयार करा बटण, Slides मध्ये नवीन Google प्रेझेंटेशन झटपट तयार करण्यासाठी एंटर दाबा</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">सुंदर</translation> +<translation id="741204030948306876">होय, मला मान्य आहे</translation> <translation id="7416351320495623771">पासवर्ड व्यवस्थापित करा…</translation> <translation id="7418620734632363981">प्रोग्रामिंग</translation> <translation id="7419106976560586862">प्रोफाइल पथ</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 0fcd4340a..196bb85 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -2441,6 +2441,7 @@ </ol></translation> <translation id="741007362987735528">Format-Lebar</translation> <translation id="7410471291937727359">Comel</translation> +<translation id="741204030948306876">Ya, saya setuju</translation> <translation id="7416351320495623771">Urus Kata Laluan…</translation> <translation id="7418620734632363981">Pengaturcaraan</translation> <translation id="7419106976560586862">Laluan Profil</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index 591c85c..48bc31d 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">အကျယ် ပုံစံ</translation> <translation id="7410471291937727359">ချစ်စဖွယ်</translation> +<translation id="741204030948306876">ပါဝင်ပါမည်</translation> <translation id="7416351320495623771">စကားဝှက်များ စီမံရန်…</translation> <translation id="7418620734632363981">ပရိုဂရမ်ရေးခြင်း</translation> <translation id="7419106976560586862">ပရိုဖိုင် လမ်းကြောင်း</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 9c3a197..0b947564 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -712,6 +712,7 @@ <translation id="2799223571221894425">पुन: सुरुवात गर्नुहोस्</translation> <translation id="2803306138276472711">Google सुरक्षित ब्राउजि्ले हालै <ph name="SITE" /> मा <ph name="BEGIN_LINK" />मालवेयर पत्ता<ph name="END_LINK" /> लगायो। सामन्यतया सुरक्षित भनिएका वेबसाइटहरू कहिलेकाहीँ मालवेयरद्वारा संक्रमित हुन्छन्।</translation> <translation id="2807052079800581569">छविको Y स्थान</translation> +<translation id="2808278141522721006">तपाईं <ph name="SETTINGS" /> मा गई Windows Hello अन वा अफ गर्न सक्नुहुन्छ</translation> <translation id="2820957248982571256">स्क्यान गर्दै...</translation> <translation id="2824775600643448204">ठेगाना र खोज पट्टी</translation> <translation id="2826760142808435982">यो जडान गुप्तलेख गरिएको र <ph name="CIPHER" /> प्रयोग गर्दै प्रमाणीकरण गरिएको छ र कुञ्जी साट्ने प्रक्रियाको रूपमा <ph name="KX" /> प्रयोग गर्छ।</translation> @@ -879,6 +880,7 @@ <translation id="3288238092761586174"><ph name="URL" /> ले तपाईंको भुक्तानी पुष्टि गर्नका निम्ति अतिरिक्त चरणहरू पूरा गर्नु पर्ने हुन सक्छ</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> नीतिका बारेमा थप जान्नुहोस्</translation> <translation id="3295444047715739395">Chrome ब्राउजरका सेटिङमा गई आफ्ना पासवर्डहरू हेर्नुहोस् तथा व्यवस्थापन गर्नुहोस्</translation> +<translation id="3299098170013242198">पासवर्डहरू हाल्नका निम्ति Windows Hello अन छ</translation> <translation id="3303855915957856445">खोजका परिणाम फेला परेनन्</translation> <translation id="3304073249511302126">ब्लुटुथ स्क्यान गर्ने सुविधा</translation> <translation id="33073482541490531">तपाईंले भर्खरै प्रयोग गर्नुभएको पासवर्ड चोरी भएको डेटाको सङ्ग्रहमा भेटिएको छ। पासवर्ड म्यानेजर अहिले नै यो पासवर्ड बदल्न सिफारिस गर्छ।</translation> @@ -1027,6 +1029,7 @@ <translation id="3678342917559046352">एक्सटेन्सन अवैध छ: यसको मान निम्नमध्ये कुनै फर्म्याटमा राखिनु पर्छ: <extension_id> वा <extension_id>;<update_url>।</translation> <translation id="3678529606614285348">पृष्ठलाई नयाँ इन्कोग्निटो विन्डोमा खोल्नुहोस् (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">प्रमाणपत्र जानकारी</translation> +<translation id="3699374065820972102">पासवर्डहरू हाल्नका निम्ति TouchID अन छ</translation> <translation id="3701427423622901115">रिसेट स्वीकार गरियो।</translation> <translation id="3704162925118123524">तपाईंले प्रयोग गरिरहनु भएको सञ्जाललाई यसको लगइन पृष्ठ भ्रमण गर्न आवश्यकता हुन सक्छ।</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" />, <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1487,6 +1490,7 @@ <translation id="4900217275619098670">नवौँ रोल</translation> <translation id="4901778704868714008">सेभ गर्नुहोस्...</translation> <translation id="4905659621780993806">तपाईंका एड्मिनले तपाईंको डिभाइस <ph name="DATE" /> का दिन <ph name="TIME" /> बजे रिस्टार्ट गर्ने छन्। तपाईंको डिभाइस रिस्टार्ट हुनुअघि खोलिएका सबै वस्तु सेभ गर्नुहोस्।</translation> +<translation id="4911007278801291296">तपाईं <ph name="SETTINGS" /> मा गई TouchID अन वा अफ गर्न सक्नुहुन्छ</translation> <translation id="4913987521957242411">सिरानको बायाँपट्टि प्वाल</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> स्थापना गर्नुहोस् (डाउनलोड गरिराख्नु पर्दैन)</translation> <translation id="4923459931733593730">भुक्तानी</translation> @@ -1679,6 +1683,7 @@ <translation id="5357848622083956825">भिजुअल आर्ट तथा डिजाइन</translation> <translation id="536296301121032821">नीति सेटिङहरू भण्डारण गर्न असफल भयो</translation> <translation id="5363309033720083897">तपाईंका एड्मिनले प्रयोग गर्ने अनुमति दिनुभएको सिरियल पोर्ट</translation> +<translation id="5363713372507812442">Search Journeys</translation> <translation id="5371425731340848620">कार्ड अपडेट गर्नुहोस्</translation> <translation id="5377026284221673050">"तपाईंको घडी ढिला छ" वा "तपाईंको घडी छिटो छ" अथवा "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">"प्रेजेन्टेसन बनाउनुहोस्" बटन, Google Slides प्रयोग गरी तुरुन्तै नयाँ प्रेजेन्टेसन बनाउन Enter थिच्नुहोस्</translation> @@ -2425,6 +2430,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">सुन्दर</translation> +<translation id="741204030948306876">हुन्छ, म सहमत छु</translation> <translation id="7416351320495623771">पासवर्डहरूको व्यवस्थापन गर्नुहोस्…</translation> <translation id="7418620734632363981">प्रोग्रामिङ</translation> <translation id="7419106976560586862">प्रोफाइल मार्ग</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index ab26156c..01e7c501 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -2434,6 +2434,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Mooi</translation> +<translation id="741204030948306876">Ja, aanzetten</translation> <translation id="7416351320495623771">Wachtwoorden beheren…</translation> <translation id="7418620734632363981">Programmeren</translation> <translation id="7419106976560586862">Profielpad</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index fb7c5a4..596b267 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -2439,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Nydelig</translation> +<translation id="741204030948306876">Ja, jeg er med</translation> <translation id="7416351320495623771">Administrer passord…</translation> <translation id="7418620734632363981">Programmering</translation> <translation id="7419106976560586862">Profilbane</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index adce3a7..8ace955b 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -2437,6 +2437,7 @@ </ol></translation> <translation id="741007362987735528">ୱାଇଡ୍-ଫର୍ମାଟ୍</translation> <translation id="7410471291937727359">ଲଭଲି</translation> +<translation id="741204030948306876">ହଁ, ମୁଁ ପ୍ରସ୍ତୁତ</translation> <translation id="7416351320495623771">ପାସ୍ୱର୍ଡଗୁଡ଼ିକୁ ପରିଚାଳିତ କରନ୍ତୁ…</translation> <translation id="7418620734632363981">ପ୍ରୋଗ୍ରାମିଂ</translation> <translation id="7419106976560586862">ପ୍ରୋଫାଇଲ୍ ପଥ</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index b00aad0..87c9f4ec 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -2436,6 +2436,7 @@ </ol></translation> <translation id="741007362987735528">ਚੌੜਾ-ਫਾਰਮੈਟ</translation> <translation id="7410471291937727359">ਪਿਆਰਾ</translation> +<translation id="741204030948306876">ਹਾਂ, ਸਹਿਮਤ ਹਾਂ</translation> <translation id="7416351320495623771">ਪਾਸਵਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ…</translation> <translation id="7418620734632363981">ਪ੍ਰੋਗਰਾਮਿੰਗ</translation> <translation id="7419106976560586862">ਪ੍ਰੋਫਾਈਲ ਪਾਥ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index ad5b018..92413bd8 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Romantyczny</translation> +<translation id="741204030948306876">Tak</translation> <translation id="7416351320495623771">Zarządzaj hasłami…</translation> <translation id="7418620734632363981">Programowanie</translation> <translation id="7419106976560586862">Ścieżka profilu</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 4c193ef..ff0947e 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Formato largo</translation> <translation id="7410471291937727359">Adorável</translation> +<translation id="741204030948306876">Sim</translation> <translation id="7416351320495623771">Gerenciar senhas…</translation> <translation id="7418620734632363981">Programação</translation> <translation id="7419106976560586862">Caminho de perfil</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index ceca11a6..8e60e3d 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -2439,6 +2439,7 @@ <li>Visite o <a href="https://support.google.com/chrome/answer/6098869">Centro de Ajuda do Chrome</a> para saber como remover permanentemente o software do computador. </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Adorável</translation> +<translation id="741204030948306876">Sim, aceito</translation> <translation id="7416351320495623771">Gerir palavras-passe…</translation> <translation id="7418620734632363981">Programação</translation> <translation id="7419106976560586862">Caminho do Perfil</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index a073140..8c75cdf 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Format-Larg</translation> <translation id="7410471291937727359">Adorabil</translation> +<translation id="741204030948306876">Da, accept</translation> <translation id="7416351320495623771">Gestionează parolele…</translation> <translation id="7418620734632363981">Programare</translation> <translation id="7419106976560586862">Calea profilului</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index 555693d9..a942f3e 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -2427,6 +2427,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Симпатичный</translation> +<translation id="741204030948306876">ОК</translation> <translation id="7416351320495623771">Управление паролями</translation> <translation id="7418620734632363981">Программирование</translation> <translation id="7419106976560586862">Путь к профилю</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb index 21d29d99..d50dc1f4 100644 --- a/components/strings/components_strings_si.xtb +++ b/components/strings/components_strings_si.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">ආදරණීය</translation> +<translation id="741204030948306876">ඔව්, මම කැමතියි</translation> <translation id="7416351320495623771">මුරපද කළමනාකරණය කරන්න...</translation> <translation id="7418620734632363981">ක්රමලේඛනය</translation> <translation id="7419106976560586862">පැතිකඩ මඟ</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 3fd9bcd..80b1e04 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Široký formát</translation> <translation id="7410471291937727359">Krásne</translation> +<translation id="741204030948306876">Áno, súhlasím</translation> <translation id="7416351320495623771">Spravovať heslá…</translation> <translation id="7418620734632363981">Programovanie</translation> <translation id="7419106976560586862">Cesta profilu</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index 5cd737d..9f1e3ec 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -2440,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Ljubko</translation> +<translation id="741204030948306876">Da, sem za</translation> <translation id="7416351320495623771">Upravljaj gesla …</translation> <translation id="7418620734632363981">Programiranje</translation> <translation id="7419106976560586862">Pot profila</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index c266a862..8cc60f1 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Nis sërish</translation> <translation id="2803306138276472711">Kohët e fundit "Shfletimi i sigurt me Google" <ph name="BEGIN_LINK" />zbuloi softuerin keqdashës<ph name="END_LINK" /> në <ph name="SITE" />. Faqet që zakonisht janë të sigurta ndonjëherë infektohen me softuerë keqdashës.</translation> <translation id="2807052079800581569">Pozicioni i imazhit në boshtin Y</translation> +<translation id="2808278141522721006">Mund ta aktivizosh ose çaktivizosh Windows Hello te "<ph name="SETTINGS" />"</translation> <translation id="2820957248982571256">Po skanon...</translation> <translation id="2824775600643448204">Shiriti i adresës dhe i kërkimit</translation> <translation id="2826760142808435982">Lidhja është e enkriptuar dhe e vërtetuar me <ph name="CIPHER" /> dhe përdor <ph name="KX" /> si mekanizëm kryesor shkëmbimi.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> mund të duhet të marrë hapa të mëtejshëm për të verifikuar pagesën tënde</translation> <translation id="3293642807462928945">Mëso më shumë për politikën <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Shiko dhe menaxho fjalëkalimet e tua te cilësimet e Chrome</translation> +<translation id="3299098170013242198">Windows Hello është aktiv për plotësimin e fjalëkalimeve</translation> <translation id="3303855915957856445">Nuk u gjetën rezultate kërkimi</translation> <translation id="3304073249511302126">Skanimi i Bluetooth-it</translation> <translation id="33073482541490531">Fjalëkalimi që sapo përdore u gjet në një nxjerrje të paautorizuar të të dhënave. "Menaxheri i fjalëkalimeve" rekomandon që ta ndryshosh këtë fjalëkalim tani.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Shtesë e pavlefshme: Pritej që vlera të ishte në një nga format e mëposhtme: <extension_id> ose <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Hape faqen në një dritare të re "të fshehtë" (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Informacioni i certifikatës</translation> +<translation id="3699374065820972102">TouchID është aktiv për plotësimin e fjalëkalimeve</translation> <translation id="3701427423622901115">Rivendosja u pranua.</translation> <translation id="3704162925118123524">Rrjeti që po përdor mund të kërkojë që të vizitosh faqen e tij të lidhjes.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Ruli i nëntë</translation> <translation id="4901778704868714008">Ruaj...</translation> <translation id="4905659621780993806">Administratori yt do ta rinisë pajisjen automatikisht në orën <ph name="TIME" /> më <ph name="DATE" />. Ruaj çdo artikull të hapur përpara se pajisja të riniset.</translation> +<translation id="4911007278801291296">Mund ta aktivizosh ose çaktivizosh TouchID te "<ph name="SETTINGS" />"</translation> <translation id="4913987521957242411">Shpim lart majtas</translation> <translation id="4918221908152712722">Instalo <ph name="APP_NAME" /> (nuk nevojitet shkarkim)</translation> <translation id="4923459931733593730">Pagesa</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Artet pamore dhe dizajni</translation> <translation id="536296301121032821">Dështoi në ruajtjen e cilësimeve të politikës.</translation> <translation id="5363309033720083897">Porta seriale e lejuar nga administratori yt</translation> +<translation id="5363713372507812442">Kërko tek udhëtimet</translation> <translation id="5371425731340848620">Përditëso kartën</translation> <translation id="5377026284221673050">"Ora jote është prapa" ose "Ora jote është përpara" ose "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Butoni "Krijo prezantim", shtyp Enter për të krijuar shpejt një prezantim të ri të Google në Slides</translation> @@ -2434,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">I këndshëm</translation> +<translation id="741204030948306876">Po, jam dakord</translation> <translation id="7416351320495623771">Menaxho fjalëkalimet…</translation> <translation id="7418620734632363981">Programimi</translation> <translation id="7419106976560586862">Shtegu i profilit</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index afc989ed..4e73494 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -2439,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Divno</translation> +<translation id="741204030948306876">Da, omogući</translation> <translation id="7416351320495623771">Upravljaj lozinkama...</translation> <translation id="7418620734632363981">Programiranje</translation> <translation id="7419106976560586862">Putanja profila</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 7b9b39c7..8086388 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -2439,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Дивно</translation> +<translation id="741204030948306876">Да, омогући</translation> <translation id="7416351320495623771">Управљај лозинкама...</translation> <translation id="7418620734632363981">Програмирање</translation> <translation id="7419106976560586862">Путања профила</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index b420095..010607d 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Ljuvlig</translation> +<translation id="741204030948306876">Ja</translation> <translation id="7416351320495623771">Hantera lösenord …</translation> <translation id="7418620734632363981">Programmering</translation> <translation id="7419106976560586862">Profilsökväg</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index eacf7ee..e8c76421 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -2433,6 +2433,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Lovely</translation> +<translation id="741204030948306876">Ndiyo, ninakubali</translation> <translation id="7416351320495623771">Dhibiti Manenosiri…</translation> <translation id="7418620734632363981">Uwekaji Mipangilio</translation> <translation id="7419106976560586862">Kijia cha Maelezo mafupi</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 241cd49..4865e98 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">மீண்டும் தொடங்கு</translation> <translation id="2803306138276472711">Google பாதுகாப்பு உலாவலானது சமீபத்தில் <ph name="SITE" /> இல் <ph name="BEGIN_LINK" />மால்வேர் உள்ளதைக் கண்டுபிடித்தது<ph name="END_LINK" />. இயல்பாகவே பாதுகாப்பாக இருக்கும் இணையதளங்களும் சில சமயங்களில் மால்வேரினால் பாதிக்கப்பட்டிருக்கும்.</translation> <translation id="2807052079800581569">இமேஜ் Y நிலை</translation> +<translation id="2808278141522721006">Windows Helloவை <ph name="SETTINGS" /> பிரிவில் இயக்கலாம் அல்லது முடக்கலாம்</translation> <translation id="2820957248982571256">ஸ்கேன் செய்கிறது...</translation> <translation id="2824775600643448204">முகவரி மற்றும் தேடல் பட்டி</translation> <translation id="2826760142808435982">இந்த இணைப்பு <ph name="CIPHER" /> ஐப் பயன்படுத்தி என்க்ரிப்ட் செய்யப்பட்டு அங்கீகரிக்கப்பட்டது, ஒரு முக்கிய பரிமாற்ற செயல்முறையாக <ph name="KX" /> ஐப் பயன்படுத்துகிறது.</translation> @@ -881,6 +882,7 @@ <translation id="3288238092761586174">உங்கள் பேமெண்ட்டை உறுதிப்படுத்த <ph name="URL" /> தளத்தில் கூடுதல் படிகளைச் செய்ய வேண்டியிருக்கலாம்</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> கொள்கை குறித்து மேலும் அறிக</translation> <translation id="3295444047715739395">Chrome அமைப்புகளில் உங்கள் கடவுச்சொற்களைப் பார்த்தல் & நிர்வகித்தல்</translation> +<translation id="3299098170013242198">Windows Hello இயக்கத்தில் உள்ளதால் கடவுச்சொற்கள் நிரப்பப்படும்</translation> <translation id="3303855915957856445">தேடல் முடிவுகள் எதுவுமில்லை</translation> <translation id="3304073249511302126">புளூடூத் ஸ்கேனிங்</translation> <translation id="33073482541490531">நீங்கள் தற்போது பயன்படுத்திய கடவுச்சொல், தரவு மீறலுக்கு உள்ளாகியிருப்பதாகக் கண்டறியப்பட்டுள்ளது. இதை இப்போதே மாற்றும்படி கடவுச்சொல் நிர்வாகி பரிந்துரைக்கிறது.</translation> @@ -1028,6 +1030,7 @@ <translation id="3678342917559046352">தவறான நீட்டிப்பு: எதிர்பார்க்கப்படும் மதிப்பு பின்வரும் வடிவத்தில் ஒன்றாக இருக்க வேண்டும்: <extension_id> அல்லது <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">புதிய மறைநிலைச் சாளரத்தில் பக்கத்தைத் திறக்கவும் (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">சான்றிதழ் தகவல்</translation> +<translation id="3699374065820972102">TouchID இயக்கத்தில் உள்ளதால் கடவுச்சொற்கள் நிரப்பப்படும்</translation> <translation id="3701427423622901115">மீட்டமைத்தல் ஏற்கப்பட்டது.</translation> <translation id="3704162925118123524">நீங்கள் பயன்படுத்திக் கொண்டிருக்கும் நெட்வொர்க், அதன் உள்நுழைவுப் பக்கத்தை நீங்கள் பார்க்கக் கோரலாம்.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1490,6 +1493,7 @@ <translation id="4900217275619098670">ரோல் 9</translation> <translation id="4901778704868714008">சேமி...</translation> <translation id="4905659621780993806">உங்கள் நிர்வாகி <ph name="DATE" />, <ph name="TIME" />க்குத் தானாகவே உங்கள் சாதனத்தை மீண்டும் தொடங்குவார். நீங்கள் திறந்திருப்பவற்றைச் சாதனம் மீண்டும் தொடங்குவதற்கு முன் சேமிக்கவும்.</translation> +<translation id="4911007278801291296">TouchIDயை <ph name="SETTINGS" /> பிரிவில் இயக்கலாம் அல்லது முடக்கலாம்</translation> <translation id="4913987521957242411">பஞ்ச் டாப் லெஃப்ட்</translation> <translation id="4918221908152712722"><ph name="APP_NAME" />ஐ நிறுவு (பதிவிறக்க வேண்டியதில்லை)</translation> <translation id="4923459931733593730">கட்டண முறை</translation> @@ -1683,6 +1687,7 @@ <translation id="5357848622083956825">விஷுவல் ஆர்ட் & டிசைன்</translation> <translation id="536296301121032821">கொள்கை அமைப்புகளைச் சேமிப்பதில் தோல்வி</translation> <translation id="5363309033720083897">உங்கள் நிர்வாகி அனுமதித்துள்ள சீரியல் போர்ட்</translation> +<translation id="5363713372507812442">தொகுக்கப்பட்ட தேடல் பதிவுகளில் தேடுக</translation> <translation id="5371425731340848620">கார்டை மாற்றவும்</translation> <translation id="5377026284221673050">"நேரம் பின்தங்கியுள்ளது" அல்லது "நேரம் கூடுதலாக அமைக்கப்பட்டுள்ளது" அல்லது "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">விளக்கக்காட்சியை உருவாக்குவதற்கான பட்டன். Slidesஸில் புதிய Google விளக்கக்காட்சியை விரைவாக உருவாக்க Tab பட்டனை அழுத்திவிட்டு Enter பட்டனை அழுத்துங்கள்</translation> @@ -2430,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">லவ்லி</translation> +<translation id="741204030948306876">ஏற்கிறேன்</translation> <translation id="7416351320495623771">கடவுச்சொற்களை நிர்வகி…</translation> <translation id="7418620734632363981">புரோகிராமிங்</translation> <translation id="7419106976560586862">சுயவிவரப் பாதை</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 312dfb1..f47a3f7 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -2442,6 +2442,7 @@ </ol></translation> <translation id="741007362987735528">వెడల్పైన-ఫార్మాట్</translation> <translation id="7410471291937727359">అందమైనది</translation> +<translation id="741204030948306876">సరే, సమ్మతమే</translation> <translation id="7416351320495623771">పాస్వర్డ్లను నిర్వహించండి…</translation> <translation id="7418620734632363981">ప్రోగ్రామింగ్</translation> <translation id="7419106976560586862">ప్రొఫైల్ మార్గం</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index e1d76fd..6edc12c 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -2439,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">น่ารัก</translation> +<translation id="741204030948306876">ได้สิ ตกลง</translation> <translation id="7416351320495623771">จัดการรหัสผ่าน…</translation> <translation id="7418620734632363981">การเขียนโปรแกรม</translation> <translation id="7419106976560586862">เส้นทางโปรไฟล์</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index 1559d9e..4f892771 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Yeniden başlat</translation> <translation id="2803306138276472711">Google Güvenli Tarama yakın bir zamanda <ph name="SITE" /> sitesinde <ph name="BEGIN_LINK" />kötü amaçlı yazılım<ph name="END_LINK" /> tespit etti. Normalde güvenli olan web sitelerine bazen kötü amaçlı yazılımlar bulaşır.</translation> <translation id="2807052079800581569">Resim Y konumu</translation> +<translation id="2808278141522721006"><ph name="SETTINGS" /> bölümünden Windows Hello'yu etkinleştirebilir veya devre dışı bırakabilirsiniz</translation> <translation id="2820957248982571256">Taranıyor...</translation> <translation id="2824775600643448204">Adres ve arama çubuğu</translation> <translation id="2826760142808435982">Bağlantı <ph name="CIPHER" /> kullanılarak şifrelenmiş ve kimliği doğrulanmıştır. Anahtar değişim mekanizması olarak <ph name="KX" /> kullanılır.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" />, ödemenizi onaylamak için ek adımlar uygulayabilir</translation> <translation id="3293642807462928945"><ph name="POLICY_NAME" /> politikası ile ilgili daha fazla bilgi edinin</translation> <translation id="3295444047715739395">Chrome ayarlarında şifrelerinizi görüntüleyin ve yönetin</translation> +<translation id="3299098170013242198">Şifreleri doldurmak için Windows Hello etkin</translation> <translation id="3303855915957856445">Arama sonucu bulunamadı</translation> <translation id="3304073249511302126">bluetooth taraması</translation> <translation id="33073482541490531">Az önce kullandığınız şifrenin bir veri ihlali sonucunda açığa çıktığı anlaşıldı. Şifre Yöneticisi bu şifreyi hemen değiştirmenizi öneriyor.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Geçersiz uzantı: Değerin şu biçimlerden biri olması bekleniyordu: <extension_id> veya <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Sayfayı yeni Gizli pencerede açın (Ctrl-Üst Karakter-N)</translation> <translation id="3681007416295224113">Sertifika bilgileri</translation> +<translation id="3699374065820972102">Şifreleri doldurmak için TouchID etkin</translation> <translation id="3701427423622901115">Sıfırlama işlemi onaylandı.</translation> <translation id="3704162925118123524">Kullandığınız ağ bir giriş sayfasını ziyaret etmenizi gerektiriyor olabilir.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Dokuzuncu Rulo</translation> <translation id="4901778704868714008">Kaydet...</translation> <translation id="4905659621780993806">Yöneticiniz cihazınızı <ph name="DATE" /> tarihinde saat <ph name="TIME" /> olunca otomatik olarak yeniden başlatacak. Cihazınız yeniden başlatılmadan önce tüm açık öğeleri kaydedin.</translation> +<translation id="4911007278801291296"><ph name="SETTINGS" /> bölümünden TouchID'yi etkinleştirebilir veya devre dışı bırakabilirsiniz</translation> <translation id="4913987521957242411">Sol üstte delik</translation> <translation id="4918221908152712722"><ph name="APP_NAME" /> uygulamasını yükleyin (indirmek gerekmez)</translation> <translation id="4923459931733593730">Ödeme</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Görsel sanatlar ve tasarım</translation> <translation id="536296301121032821">Politika ayarları saklanamadı</translation> <translation id="5363309033720083897">Yöneticiniz tarafından izin verilen seri bağlantı noktası</translation> +<translation id="5363713372507812442">Arama Yolculukları</translation> <translation id="5371425731340848620">Kartı güncelle</translation> <translation id="5377026284221673050">"Saatiniz geri", "Saatiniz ileri" veya "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Sunu oluştur düğmesi, Slaytlar'da hızlıca yeni bir Google sunusu oluşturmak için Enter'a basın</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Hoş</translation> +<translation id="741204030948306876">Evet, istiyorum</translation> <translation id="7416351320495623771">Şifreleri Yönet…</translation> <translation id="7418620734632363981">Programlama</translation> <translation id="7419106976560586862">Profil Yolu</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 9e1ed63..aa476f7 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -2435,6 +2435,7 @@ </ol></translation> <translation id="741007362987735528">Широкий формат</translation> <translation id="7410471291937727359">Милий</translation> +<translation id="741204030948306876">Увімкнути</translation> <translation id="7416351320495623771">Керувати паролями…</translation> <translation id="7418620734632363981">Програмування</translation> <translation id="7419106976560586862">Шлях до профілю</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index f6c3155..4c5950f 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -2438,6 +2438,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">لولی</translation> +<translation id="741204030948306876">ہاں، میں شامل ہوں</translation> <translation id="7416351320495623771">پاس ورڈز کا نظم کریں…</translation> <translation id="7418620734632363981">پروگرامنگ</translation> <translation id="7419106976560586862">پروفائل پاتھ</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index cfd7b736..339b820 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -2434,6 +2434,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Sevimli</translation> +<translation id="741204030948306876">Ha, roziman</translation> <translation id="7416351320495623771">Parollarni boshqarish…</translation> <translation id="7418620734632363981">Dasturlash</translation> <translation id="7419106976560586862">Profil saqlanadigan jild</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index bbf88f63..77557ad 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">Chạy lại</translation> <translation id="2803306138276472711">Duyệt web an toàn của Google gần đây <ph name="BEGIN_LINK" />đã phát hiện phần mềm độc hại<ph name="END_LINK" /> trên <ph name="SITE" />. Các trang web thường được coi là an toàn đôi khi vẫn bị nhiễm phần mềm độc hại.</translation> <translation id="2807052079800581569">Vị trí Y của hình ảnh</translation> +<translation id="2808278141522721006">Bạn có thể bật hoặc tắt Windows Hello trong <ph name="SETTINGS" /></translation> <translation id="2820957248982571256">Đang quét...</translation> <translation id="2824775600643448204">Thanh địa chỉ và tìm kiếm</translation> <translation id="2826760142808435982">Kết nối được mã hóa và xác thực bằng <ph name="CIPHER" /> đồng thời sử dụng <ph name="KX" /> làm cơ chế trao đổi chính.</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> có thể cần thực hiện các bước bổ sung để xác minh khoản thanh toán của bạn</translation> <translation id="3293642807462928945">Hãy tìm hiểu thêm về chính sách <ph name="POLICY_NAME" /></translation> <translation id="3295444047715739395">Xem và quản lý mật khẩu của bạn trong phần cài đặt của Chrome</translation> +<translation id="3299098170013242198">Windows Hello đã được kích hoạt để điền mật khẩu</translation> <translation id="3303855915957856445">Không tìm thấy kết quả tìm kiếm nào</translation> <translation id="3304073249511302126">quét tìm Bluetooth</translation> <translation id="33073482541490531">Mật khẩu bạn vừa sử dụng đã bị lộ trong một sự cố rò rỉ dữ liệu. Trình quản lý mật khẩu khuyên bạn nên đổi mật khẩu này ngay.</translation> @@ -1032,6 +1034,7 @@ <translation id="3678342917559046352">Tiện ích không hợp lệ: Giá trị phải thuộc một trong các dạng sau: <extension_id> hoặc <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">Mở trang trong cửa sổ Ẩn danh mới (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">Thông tin chứng chỉ</translation> +<translation id="3699374065820972102">TouchID đã được kích hoạt để điền mật khẩu</translation> <translation id="3701427423622901115">Đã xác nhận thao tác đặt lại.</translation> <translation id="3704162925118123524">Mạng mà bạn đang sử dụng có thể yêu cầu bạn phải truy cập trang đăng nhập của mạng đó.</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1494,6 +1497,7 @@ <translation id="4900217275619098670">Cuộn thứ chín</translation> <translation id="4901778704868714008">Lưu...</translation> <translation id="4905659621780993806">Quản trị viên của bạn sẽ tự động khởi động lại thiết bị của bạn vào lúc <ph name="TIME" /> <ph name="DATE" /> Hãy lưu mọi mục đang mở trước khi thiết bị của bạn khởi động lại.</translation> +<translation id="4911007278801291296">Bạn có thể bật hoặc tắt TouchID trong <ph name="SETTINGS" /></translation> <translation id="4913987521957242411">Đục lỗ trên cùng bên trái</translation> <translation id="4918221908152712722">Cài đặt <ph name="APP_NAME" /> (không cần tải xuống)</translation> <translation id="4923459931733593730">Thanh toán</translation> @@ -1687,6 +1691,7 @@ <translation id="5357848622083956825">Thiết kế và nghệ thuật thị giác</translation> <translation id="536296301121032821">Không thể lưu trữ cài đặt chính sách</translation> <translation id="5363309033720083897">Cổng nối tiếp được quản trị viên của bạn cho phép</translation> +<translation id="5363713372507812442">Hành trình tìm kiếm</translation> <translation id="5371425731340848620">Cập nhật thẻ</translation> <translation id="5377026284221673050">"Đồng hồ của bạn chạy chậm" hoặc "Đồng hồ của bạn chạy nhanh" hay "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> <translation id="5379027395132364855">Nút tạo bản trình bày, nhấn phím Enter để tạo nhanh một bản trình bày mới trong Google Trang trình bày</translation> @@ -2435,6 +2440,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">Đáng yêu</translation> +<translation id="741204030948306876">Có, tôi đồng ý</translation> <translation id="7416351320495623771">Quản lý mật khẩu…</translation> <translation id="7418620734632363981">Lập trình</translation> <translation id="7419106976560586862">Đường dẫn cấu hình</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 663a40d8..d0bae0e5 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -2423,6 +2423,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">可爱</translation> +<translation id="741204030948306876">立即开启</translation> <translation id="7416351320495623771">管理密码…</translation> <translation id="7418620734632363981">编程</translation> <translation id="7419106976560586862">个人资料路径</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index ab1da0894..92244e9 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">重新啟動</translation> <translation id="2803306138276472711">Google 安全瀏覽功能最近在 <ph name="SITE" /> 上<ph name="BEGIN_LINK" />偵測到惡意軟件<ph name="END_LINK" />。即使是平常可以安全使用的網站,有時也會被惡意軟件感染。</translation> <translation id="2807052079800581569">圖片 Y 位置</translation> +<translation id="2808278141522721006">你可以前往「<ph name="SETTINGS" />」開啟或關閉 Windows Hello</translation> <translation id="2820957248982571256">正在掃瞄…</translation> <translation id="2824775600643448204">網址與搜尋列</translation> <translation id="2826760142808435982">連線採用 <ph name="CIPHER" /> 加密,並設有 <ph name="KX" /> 金鑰交換機制。</translation> @@ -884,6 +885,7 @@ <translation id="3288238092761586174"><ph name="URL" /> 可能需要採取其他步驟,才能驗證付款方式</translation> <translation id="3293642807462928945">進一步瞭解 <ph name="POLICY_NAME" /> 政策</translation> <translation id="3295444047715739395">在 Chrome 設定中查看和管理密碼</translation> +<translation id="3299098170013242198">已開啟 Windows Hello 做為填入密碼時的驗證機制</translation> <translation id="3303855915957856445">找不到任何搜尋結果</translation> <translation id="3304073249511302126">藍牙掃瞄</translation> <translation id="33073482541490531">系統發現您剛才使用的密碼因資料外洩而被洩露。「密碼管理工具」建議您立即變更密碼。</translation> @@ -1031,6 +1033,7 @@ <translation id="3678342917559046352">副檔名無效:副檔名的格式必須為 <extension_id>、<extension_id> 或 <update_url> 其中之一。</translation> <translation id="3678529606614285348">在新無痕式視窗中開啟網頁 (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">憑證資料</translation> +<translation id="3699374065820972102">已開啟 Touch ID 做為填入密碼時的驗證機制</translation> <translation id="3701427423622901115">重設已確認。</translation> <translation id="3704162925118123524">目前使用的網絡可能要求您前往其登入頁面。</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1493,6 +1496,7 @@ <translation id="4900217275619098670">第九卷</translation> <translation id="4901778704868714008">儲存…</translation> <translation id="4905659621780993806">管理員將於 <ph name="DATE" /><ph name="TIME" /> 自動重新啟動您的裝置。請在裝置重新啟動前儲存任何開啟的項目。</translation> +<translation id="4911007278801291296">你可以前往「<ph name="SETTINGS" />」開啟或關閉 Touch ID</translation> <translation id="4913987521957242411">打孔 (左上方)</translation> <translation id="4918221908152712722">安裝「<ph name="APP_NAME" />」(無需下載)</translation> <translation id="4923459931733593730">付款</translation> @@ -1686,6 +1690,7 @@ <translation id="5357848622083956825">視覺藝術及設計</translation> <translation id="536296301121032821">無法儲存政策設定</translation> <translation id="5363309033720083897">管理員允許的序列連接埠</translation> +<translation id="5363713372507812442">搜尋瀏覽歷程</translation> <translation id="5371425731340848620">更新信用卡</translation> <translation id="5377026284221673050">「您的時鐘慢了」、「您的時鐘快了」或「<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>」</translation> <translation id="5379027395132364855">建立簡報掣,㩒一下 Enter 鍵就可以喺簡報度快速建立新嘅 Google 簡報</translation> @@ -2434,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">可愛</translation> +<translation id="741204030948306876">確認</translation> <translation id="7416351320495623771">管理密碼…</translation> <translation id="7418620734632363981">程式設計</translation> <translation id="7419106976560586862">設定檔路徑</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 202c2b82..3ef7599 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -714,6 +714,7 @@ <translation id="2799223571221894425">重新啟動</translation> <translation id="2803306138276472711">Google 安全瀏覽功能最近在 <ph name="SITE" /> 上<ph name="BEGIN_LINK" />偵測到惡意軟體<ph name="END_LINK" />。即使是平常可以安全使用的網站,有時也會遭到惡意軟體感染。</translation> <translation id="2807052079800581569">圖片 Y 位置</translation> +<translation id="2808278141522721006">你可以前往「<ph name="SETTINGS" />」開啟或關閉 Windows Hello</translation> <translation id="2820957248982571256">掃描中...</translation> <translation id="2824775600643448204">網址與搜尋列</translation> <translation id="2826760142808435982">連線採用 <ph name="CIPHER" /> 加密,並設有 <ph name="KX" /> 金鑰交換機制。</translation> @@ -883,6 +884,7 @@ <translation id="3288238092761586174"><ph name="URL" /> 可能需要採取其他步驟,才能驗證付款方式</translation> <translation id="3293642807462928945">進一步瞭解 <ph name="POLICY_NAME" /> 政策</translation> <translation id="3295444047715739395">在 Chrome 設定中查看和管理密碼</translation> +<translation id="3299098170013242198">已開啟 Windows Hello 做為填入密碼時的驗證機制</translation> <translation id="3303855915957856445">找不到相符的搜尋結果</translation> <translation id="3304073249511302126">藍牙掃描</translation> <translation id="33073482541490531">系統發現你剛才使用的密碼因為資料侵害事件而遭到外洩。密碼管理工具建議你立即變更這組密碼。</translation> @@ -1031,6 +1033,7 @@ <translation id="3678342917559046352">副檔名無效:副檔名的格式必須為 <extension_id>、<extension_id> 或 <update_url> 其中之一。</translation> <translation id="3678529606614285348">在新的無痕式視窗中開啟網頁 (Ctrl + Shift + N 鍵)</translation> <translation id="3681007416295224113">憑證資訊</translation> +<translation id="3699374065820972102">已開啟 Touch ID 做為填入密碼時的驗證機制</translation> <translation id="3701427423622901115">已確認重設。</translation> <translation id="3704162925118123524">您可能需要造訪目前所使用網路的登入網頁。</translation> <translation id="3705189812819839667"><ph name="RESULT_OWNER" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> @@ -1493,6 +1496,7 @@ <translation id="4900217275619098670">第九卷</translation> <translation id="4901778704868714008">儲存...</translation> <translation id="4905659621780993806">管理員將自動於 <ph name="DATE" /><ph name="TIME" />重新啟動你的裝置。在裝置重新啟動前,請記得儲存開啟的項目。</translation> +<translation id="4911007278801291296">你可以前往「<ph name="SETTINGS" />」開啟或關閉 Touch ID</translation> <translation id="4913987521957242411">打孔 (左上方)</translation> <translation id="4918221908152712722">安裝「<ph name="APP_NAME" />」(無須下載)</translation> <translation id="4923459931733593730">付款</translation> @@ -1686,6 +1690,7 @@ <translation id="5357848622083956825">視覺藝術與設計</translation> <translation id="536296301121032821">無法儲存政策設定</translation> <translation id="5363309033720083897">管理員允許使用的序列埠</translation> +<translation id="5363713372507812442">搜尋瀏覽歷程</translation> <translation id="5371425731340848620">更新信用卡</translation> <translation id="5377026284221673050">「你的時鐘時間過慢」、「你的時鐘時間過快」或 「<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>」</translation> <translation id="5379027395132364855">建立簡報的按鈕;按下 Enter 鍵即可在 Google 簡報中快速建立新簡報</translation> @@ -2434,6 +2439,7 @@ </ol></translation> <translation id="741007362987735528">Wide-Format</translation> <translation id="7410471291937727359">可愛</translation> +<translation id="741204030948306876">是,我要啟用</translation> <translation id="7416351320495623771">管理密碼…</translation> <translation id="7418620734632363981">程式設計</translation> <translation id="7419106976560586862">設定檔路徑</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index d67d16e..e2e9ae66 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -2437,6 +2437,7 @@ </ol></translation> <translation id="741007362987735528">Ifomethi ebanzi</translation> <translation id="7410471291937727359">I-Lovely</translation> +<translation id="741204030948306876">Yebo, ngingenile</translation> <translation id="7416351320495623771">Phatha amaphasiwedi...</translation> <translation id="7418620734632363981">Ukwenza uhlelo</translation> <translation id="7419106976560586862">Indlela yephrofayela</translation>
diff --git a/components/sync/model/client_tag_based_model_type_processor.cc b/components/sync/model/client_tag_based_model_type_processor.cc index 5d0bbbb..a7c0c81 100644 --- a/components/sync/model/client_tag_based_model_type_processor.cc +++ b/components/sync/model/client_tag_based_model_type_processor.cc
@@ -1263,4 +1263,10 @@ return entity->metadata().possibly_trimmed_base_specifics(); } +base::WeakPtr<ModelTypeChangeProcessor> +ClientTagBasedModelTypeProcessor::GetWeakPtr() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + return weak_ptr_factory_for_controller_.GetWeakPtr(); +} + } // namespace syncer
diff --git a/components/sync/model/client_tag_based_model_type_processor.h b/components/sync/model/client_tag_based_model_type_processor.h index 32c736d8..cf911461a 100644 --- a/components/sync/model/client_tag_based_model_type_processor.h +++ b/components/sync/model/client_tag_based_model_type_processor.h
@@ -91,6 +91,7 @@ base::WeakPtr<ModelTypeControllerDelegate> GetControllerDelegate() override; const sync_pb::EntitySpecifics& GetPossiblyTrimmedRemoteSpecifics( const std::string& storage_key) const override; + base::WeakPtr<ModelTypeChangeProcessor> GetWeakPtr() override; // ModelTypeProcessor implementation. void ConnectSync(std::unique_ptr<CommitQueue> worker) override; @@ -292,7 +293,7 @@ // WeakPtrFactory for this processor for ModelTypeController (only gets // invalidated during destruction). - base::WeakPtrFactory<ModelTypeControllerDelegate> + base::WeakPtrFactory<ClientTagBasedModelTypeProcessor> weak_ptr_factory_for_controller_{this}; // WeakPtrFactory for this processor which will be sent to sync thread.
diff --git a/components/sync/model/model_type_change_processor.h b/components/sync/model/model_type_change_processor.h index 2c7cb7d..dee34b1 100644 --- a/components/sync/model/model_type_change_processor.h +++ b/components/sync/model/model_type_change_processor.h
@@ -136,6 +136,8 @@ // available. virtual const sync_pb::EntitySpecifics& GetPossiblyTrimmedRemoteSpecifics( const std::string& storage_key) const = 0; + + virtual base::WeakPtr<ModelTypeChangeProcessor> GetWeakPtr() = 0; }; } // namespace syncer
diff --git a/components/sync/model/sync_metadata_store_change_list.cc b/components/sync/model/sync_metadata_store_change_list.cc index 1a4e95f..73a9ed76 100644 --- a/components/sync/model/sync_metadata_store_change_list.cc +++ b/components/sync/model/sync_metadata_store_change_list.cc
@@ -4,27 +4,25 @@ #include "components/sync/model/sync_metadata_store_change_list.h" -#include "components/sync/protocol/entity_metadata.pb.h" +#include <utility> #include "base/location.h" - -using absl::optional; -using syncer::ModelError; +#include "components/sync/protocol/entity_metadata.pb.h" +#include "components/sync/protocol/model_type_state.pb.h" namespace syncer { SyncMetadataStoreChangeList::SyncMetadataStoreChangeList( SyncMetadataStore* store, - syncer::ModelType type) - : store_(store), type_(type) { + syncer::ModelType type, + ErrorCallback error_callback) + : store_(store), type_(type), error_callback_(std::move(error_callback)) { if (!store_) { - error_ = ModelError(FROM_HERE, "Invalid SyncMetadataStore"); + SetError(ModelError(FROM_HERE, "Invalid SyncMetadataStore")); } } -SyncMetadataStoreChangeList::~SyncMetadataStoreChangeList() { - DCHECK(!error_); -} +SyncMetadataStoreChangeList::~SyncMetadataStoreChangeList() = default; void SyncMetadataStoreChangeList::UpdateModelTypeState( const sync_pb::ModelTypeState& model_type_state) { @@ -33,7 +31,7 @@ } if (!store_->UpdateModelTypeState(type_, model_type_state)) { - error_ = ModelError(FROM_HERE, "Failed to update ModelTypeState."); + SetError(ModelError(FROM_HERE, "Failed to update ModelTypeState.")); } } @@ -43,7 +41,7 @@ } if (!store_->ClearModelTypeState(type_)) { - error_ = ModelError(FROM_HERE, "Failed to clear ModelTypeState."); + SetError(ModelError(FROM_HERE, "Failed to clear ModelTypeState.")); } } @@ -55,7 +53,7 @@ } if (!store_->UpdateSyncMetadata(type_, storage_key, metadata)) { - error_ = ModelError(FROM_HERE, "Failed to update entity metadata."); + SetError(ModelError(FROM_HERE, "Failed to update entity metadata.")); } } @@ -66,12 +64,12 @@ } if (!store_->ClearSyncMetadata(type_, storage_key)) { - error_ = ModelError(FROM_HERE, "Failed to clear entity metadata."); + SetError(ModelError(FROM_HERE, "Failed to clear entity metadata.")); } } -optional<ModelError> SyncMetadataStoreChangeList::TakeError() { - optional<ModelError> temp = error_; +absl::optional<ModelError> SyncMetadataStoreChangeList::TakeError() { + absl::optional<ModelError> temp = error_; error_.reset(); return temp; } @@ -81,4 +79,11 @@ return store_; } +void SyncMetadataStoreChangeList::SetError(ModelError error) { + if (!error_) { + error_ = std::move(error); + error_callback_.Run(*error_); + } +} + } // namespace syncer
diff --git a/components/sync/model/sync_metadata_store_change_list.h b/components/sync/model/sync_metadata_store_change_list.h index 3c91f0e..5312ea1 100644 --- a/components/sync/model/sync_metadata_store_change_list.h +++ b/components/sync/model/sync_metadata_store_change_list.h
@@ -12,23 +12,28 @@ #include "components/sync/model/metadata_change_list.h" #include "components/sync/model/model_error.h" #include "components/sync/model/sync_metadata_store.h" -#include "components/sync/protocol/model_type_state.pb.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace sync_pb { class EntityMetadata; +class ModelTypeState; } // namespace sync_pb namespace syncer { // A thin wrapper around an SyncMetadataStore that implements sync's // MetadataChangeList interface. Changes are passed directly into the store and -// not stored inside this object. Since the store calls can fail, |TakeError()| -// must be called before this object is destroyed to check whether any -// operations failed. +// not stored inside this object. class SyncMetadataStoreChangeList : public MetadataChangeList { public: - SyncMetadataStoreChangeList(SyncMetadataStore* store, syncer::ModelType type); + using ErrorCallback = base::RepeatingCallback<void(const ModelError&)>; + + // If an error happened during any Update*/Clear* operation, then + // `error_callback` will be called during destruction and passed the error. + // Should typically be bound to ModelTypeChangeProcessor::ReportError(). + SyncMetadataStoreChangeList(SyncMetadataStore* store, + ModelType type, + ErrorCallback error_callback); ~SyncMetadataStoreChangeList() override; // MetadataChangeList implementation. @@ -38,19 +43,28 @@ void UpdateMetadata(const std::string& storage_key, const sync_pb::EntityMetadata& metadata) override; void ClearMetadata(const std::string& storage_key) override; - absl::optional<syncer::ModelError> TakeError(); + + // Allows querying and manually handling any error, instead of relying on the + // error callback passed to the constructor. + // TODO(crbug.com/1356990): Consider removing this method. Callers can use + // ModelTypeChangeProcessor::GetError() instead. + absl::optional<ModelError> TakeError(); const SyncMetadataStore* GetMetadataStoreForTesting() const; private: + void SetError(ModelError error); + // The metadata store to store metadata in; always outlives |this|. raw_ptr<SyncMetadataStore> store_; // The sync model type for this metadata. - syncer::ModelType type_; + ModelType type_; // The first error encountered by this object, if any. - absl::optional<syncer::ModelError> error_; + absl::optional<ModelError> error_; + + const ErrorCallback error_callback_; }; } // namespace syncer
diff --git a/components/sync/test/forwarding_model_type_change_processor.cc b/components/sync/test/forwarding_model_type_change_processor.cc index e2690da5..8842c72 100644 --- a/components/sync/test/forwarding_model_type_change_processor.cc +++ b/components/sync/test/forwarding_model_type_change_processor.cc
@@ -109,4 +109,11 @@ return other_->GetPossiblyTrimmedRemoteSpecifics(storage_key); } +base::WeakPtr<ModelTypeChangeProcessor> +ForwardingModelTypeChangeProcessor::GetWeakPtr() { + // Note: Don't bother with a separate WeakPtrFactory for the forwarding + // processor; just hand out a WeakPtr directly to the real processor. + return other_->GetWeakPtr(); +} + } // namespace syncer
diff --git a/components/sync/test/forwarding_model_type_change_processor.h b/components/sync/test/forwarding_model_type_change_processor.h index aca84d0..ebc3c0bf 100644 --- a/components/sync/test/forwarding_model_type_change_processor.h +++ b/components/sync/test/forwarding_model_type_change_processor.h
@@ -50,6 +50,7 @@ base::WeakPtr<ModelTypeControllerDelegate> GetControllerDelegate() override; const sync_pb::EntitySpecifics& GetPossiblyTrimmedRemoteSpecifics( const std::string& storage_key) const override; + base::WeakPtr<ModelTypeChangeProcessor> GetWeakPtr() override; private: raw_ptr<ModelTypeChangeProcessor> other_;
diff --git a/components/sync/test/mock_model_type_change_processor.h b/components/sync/test/mock_model_type_change_processor.h index 205eb20..4248d0b 100644 --- a/components/sync/test/mock_model_type_change_processor.h +++ b/components/sync/test/mock_model_type_change_processor.h
@@ -88,6 +88,10 @@ GetPossiblyTrimmedRemoteSpecifics, (const std::string& storage_key), (const override)); + MOCK_METHOD(base::WeakPtr<ModelTypeChangeProcessor>, + GetWeakPtr, + (), + (override)); // Returns a processor that forwards all calls to // |this|. |*this| must outlive the returned processor.
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.cc b/content/browser/first_party_sets/first_party_sets_handler_impl.cc index 5ba79be3..17dbbde2 100644 --- a/content/browser/first_party_sets/first_party_sets_handler_impl.cc +++ b/content/browser/first_party_sets/first_party_sets_handler_impl.cc
@@ -19,6 +19,7 @@ #include "content/public/browser/content_browser_client.h" #include "content/public/browser/first_party_sets_handler.h" #include "content/public/common/content_client.h" +#include "content/public/common/content_features.h" #include "net/first_party_sets/first_party_sets_context_config.h" #include "net/first_party_sets/global_first_party_sets.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -251,7 +252,7 @@ base::OnceCallback<void(net::FirstPartySetsContextConfig)> callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!enabled_) { + if (!enabled_ || !features::kFirstPartySetsClearSiteDataOnChangedSets.Get()) { std::move(callback).Run(std::move(context_config)); return; } @@ -278,7 +279,7 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(global_sets_.has_value()); DCHECK(!browser_context_id.empty()); - DCHECK(enabled_); + DCHECK(enabled_ && features::kFirstPartySetsClearSiteDataOnChangedSets.Get()); if (!db_helper_.is_null()) { // TODO(crbug.com/1219656): Call site state clearing.
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc index 6d77cc5..db29d599 100644 --- a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc +++ b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc
@@ -12,12 +12,14 @@ #include "base/files/scoped_temp_dir.h" #include "base/json/json_reader.h" #include "base/run_loop.h" +#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "base/test/test_future.h" #include "base/version.h" #include "content/browser/first_party_sets/first_party_set_parser.h" #include "content/browser/first_party_sets/local_set_declaration.h" #include "content/public/browser/first_party_sets_handler.h" +#include "content/public/common/content_features.h" #include "net/base/schemeful_site.h" #include "net/first_party_sets/first_party_set_entry.h" #include "net/first_party_sets/first_party_sets_context_config.h" @@ -217,7 +219,52 @@ } TEST_F(FirstPartySetsHandlerImplEnabledTest, + ClearSiteDataOnChangedSetsForContext_FeatureNotEnabled) { + net::SchemefulSite foo(GURL("https://foo.test")); + net::SchemefulSite associated(GURL("https://associatedsite.test")); + + FirstPartySetsHandlerImpl::GetInstance() + ->SetEmbedderWillProvidePublicSetsForTesting(true); + const std::string browser_context_id = "profile"; + const std::string input = + R"({"primary": "https://foo.test", )" + R"("associatedSites": ["https://associatedsite.test"]})"; + ASSERT_TRUE(base::JSONReader::Read(input)); + FirstPartySetsHandlerImpl::GetInstance()->SetPublicFirstPartySets( + base::Version("0.0.1"), WritePublicSetsFile(input)); + + FirstPartySetsHandlerImpl::GetInstance()->Init(scoped_dir_.GetPath(), + LocalSetDeclaration()); + ASSERT_THAT(GetSetsAndWait().FindEntries({foo, associated}, + net::FirstPartySetsContextConfig()), + UnorderedElementsAre( + Pair(foo, net::FirstPartySetEntry( + foo, net::SiteType::kPrimary, absl::nullopt)), + Pair(associated, net::FirstPartySetEntry( + foo, net::SiteType::kAssociated, 0)))); + + base::RunLoop run_loop; + FirstPartySetsHandlerImpl::GetInstance() + ->ClearSiteDataOnChangedSetsForContext( + base::BindRepeating(&FakeBrowserContextGetter), browser_context_id, + net::FirstPartySetsContextConfig(), + base::BindLambdaForTesting( + [&](net::FirstPartySetsContextConfig) { run_loop.Quit(); })); + run_loop.Run(); + + EXPECT_THAT( + GetPersistedGlobalSetsAndWait(browser_context_id) + ->FindEntries({foo, associated}, net::FirstPartySetsContextConfig()), + IsEmpty()); +} + +TEST_F(FirstPartySetsHandlerImplEnabledTest, ClearSiteDataOnChangedSetsForContext_Successful) { + base::test::ScopedFeatureList features; + features.InitAndEnableFeatureWithParameters( + features::kFirstPartySets, + {{features::kFirstPartySetsClearSiteDataOnChangedSets.name, "true"}}); + net::SchemefulSite foo(GURL("https://foo.test")); net::SchemefulSite associated(GURL("https://associatedsite.test")); @@ -263,6 +310,11 @@ TEST_F(FirstPartySetsHandlerImplEnabledTest, ClearSiteDataOnChangedSetsForContext_EmptyDBPath) { + base::test::ScopedFeatureList features; + features.InitAndEnableFeatureWithParameters( + features::kFirstPartySets, + {{features::kFirstPartySetsClearSiteDataOnChangedSets.name, "true"}}); + net::SchemefulSite foo(GURL("https://foo.test")); net::SchemefulSite associated(GURL("https://associatedsite.test")); @@ -300,6 +352,11 @@ TEST_F(FirstPartySetsHandlerImplEnabledTest, ClearSiteDataOnChangedSetsForContext_BeforeSetsReady) { + base::test::ScopedFeatureList features; + features.InitAndEnableFeatureWithParameters( + features::kFirstPartySets, + {{features::kFirstPartySetsClearSiteDataOnChangedSets.name, "true"}}); + FirstPartySetsHandlerImpl::GetInstance() ->SetEmbedderWillProvidePublicSetsForTesting(true);
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc index b0714db..2254752 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.cc +++ b/content/browser/indexed_db/indexed_db_backing_store.cc
@@ -3047,7 +3047,8 @@ DCHECK(!committing_); } -void IndexedDBBackingStore::Transaction::Begin(std::vector<LeveledLock> locks) { +void IndexedDBBackingStore::Transaction::Begin( + std::vector<PartitionedLock> locks) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(backing_store_->sequence_checker_); DCHECK(backing_store_);
diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h index 50a7e3f0..24e9a7f 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.h +++ b/content/browser/indexed_db/indexed_db_backing_store.h
@@ -26,7 +26,7 @@ #include "base/thread_annotations.h" #include "base/time/time.h" #include "base/timer/timer.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" #include "components/services/storage/public/cpp/filesystem/filesystem_proxy.h" #include "components/services/storage/public/mojom/blob_storage_context.mojom-forward.h" @@ -133,7 +133,7 @@ virtual ~Transaction(); - virtual void Begin(std::vector<LeveledLock> locks); + virtual void Begin(std::vector<PartitionedLock> locks); // CommitPhaseOne determines what blobs (if any) need to be written to disk // and updates the primary blob journal, and kicks off the async writing
diff --git a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc index 02e0859..3b10fa20 100644 --- a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc +++ b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
@@ -32,7 +32,7 @@ #include "base/test/task_environment.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/default_clock.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/indexed_db/scopes/varint_coding.h" #include "components/services/storage/indexed_db/transactional_leveldb/leveldb_write_batch.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" @@ -363,11 +363,11 @@ lock_manager_ = bucket_state_handle_.bucket_state()->lock_manager(); } - std::vector<LeveledLock> CreateDummyLock() { + std::vector<PartitionedLock> CreateDummyLock() { base::RunLoop loop; - LeveledLockHolder locks_receiver; + PartitionedLockHolder locks_receiver; bool success = lock_manager_->AcquireLocks( - {{0, {"01", "11"}, LeveledLockManager::LockType::kShared}}, + {{0, {"01", "11"}, PartitionedLockManager::LockType::kShared}}, locks_receiver.AsWeakPtr(), base::BindLambdaForTesting([&loop]() { loop.Quit(); })); EXPECT_TRUE(success); @@ -465,7 +465,7 @@ scoped_refptr<storage::MockQuotaManagerProxy> quota_manager_proxy_; scoped_refptr<IndexedDBContextImpl> idb_context_; std::unique_ptr<TestIDBFactory> idb_factory_; - raw_ptr<DisjointRangeLockManager> lock_manager_; + raw_ptr<PartitionedLockManagerImpl> lock_manager_; IndexedDBBucketStateHandle bucket_state_handle_; raw_ptr<TestableIndexedDBBackingStore> backing_store_ = nullptr; @@ -1348,16 +1348,16 @@ if (TestType() != ExternalObjectTestType::kOnlyFileSystemAccessHandles) { EXPECT_TRUE(backing_store()->IsBlobCleanupPending()); #if DCHECK_IS_ON() - EXPECT_EQ(3, - backing_store()->NumAggregatedJournalCleaningRequestsForTesting()); + EXPECT_EQ( + 3, backing_store()->NumAggregatedJournalCleaningRequestsForTesting()); #endif - for (int i = 3; i < IndexedDBBackingStore::kMaxJournalCleanRequests; ++i) { - backing_store()->StartJournalCleaningTimer(); - } - EXPECT_NE(0U, backing_store()->removals().size()); - EXPECT_TRUE(CheckBlobRemovals()); + for (int i = 3; i < IndexedDBBackingStore::kMaxJournalCleanRequests; ++i) { + backing_store()->StartJournalCleaningTimer(); + } + EXPECT_NE(0U, backing_store()->removals().size()); + EXPECT_TRUE(CheckBlobRemovals()); #if DCHECK_IS_ON() - EXPECT_EQ(3, backing_store()->NumBlobFilesDeletedForTesting()); + EXPECT_EQ(3, backing_store()->NumBlobFilesDeletedForTesting()); #endif }
diff --git a/content/browser/indexed_db/indexed_db_bucket_state.cc b/content/browser/indexed_db/indexed_db_bucket_state.cc index 10c56b3..e7bf41c8 100644 --- a/content/browser/indexed_db/indexed_db_bucket_state.cc +++ b/content/browser/indexed_db/indexed_db_bucket_state.cc
@@ -126,7 +126,7 @@ TransactionalLevelDBFactory* transactional_leveldb_factory, base::Time* earliest_global_sweep_time, base::Time* earliest_global_compaction_time, - std::unique_ptr<DisjointRangeLockManager> lock_manager, + std::unique_ptr<PartitionedLockManagerImpl> lock_manager, TasksAvailableCallback notify_tasks_callback, TearDownCallback tear_down_callback, std::unique_ptr<IndexedDBBackingStore> backing_store)
diff --git a/content/browser/indexed_db/indexed_db_bucket_state.h b/content/browser/indexed_db/indexed_db_bucket_state.h index fcb9bb4..cd7a9972 100644 --- a/content/browser/indexed_db/indexed_db_bucket_state.h +++ b/content/browser/indexed_db/indexed_db_bucket_state.h
@@ -18,7 +18,7 @@ #include "base/time/clock.h" #include "base/time/time.h" #include "base/timer/timer.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" #include "content/browser/indexed_db/indexed_db_bucket_state_handle.h" #include "content/browser/indexed_db/indexed_db_task_helper.h" @@ -100,7 +100,7 @@ TransactionalLevelDBFactory* transactional_leveldb_factory, base::Time* earliest_global_sweep_time, base::Time* earliest_global_compaction_time, - std::unique_ptr<DisjointRangeLockManager> lock_manager, + std::unique_ptr<PartitionedLockManagerImpl> lock_manager, TasksAvailableCallback notify_tasks_callback, TearDownCallback tear_down_callback, std::unique_ptr<IndexedDBBackingStore> backing_store); @@ -137,7 +137,7 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return databases_; } - DisjointRangeLockManager* lock_manager() { + PartitionedLockManagerImpl* lock_manager() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return lock_manager_.get(); } @@ -236,7 +236,7 @@ raw_ptr<base::Time> earliest_global_compaction_time_; ClosingState closing_stage_ = ClosingState::kNotClosing; base::OneShotTimer close_timer_; - const std::unique_ptr<DisjointRangeLockManager> lock_manager_; + const std::unique_ptr<PartitionedLockManagerImpl> lock_manager_; std::unique_ptr<IndexedDBBackingStore> backing_store_; DBMap databases_;
diff --git a/content/browser/indexed_db/indexed_db_class_factory.cc b/content/browser/indexed_db/indexed_db_class_factory.cc index e40a807..34a3c74 100644 --- a/content/browser/indexed_db/indexed_db_class_factory.cc +++ b/content/browser/indexed_db/indexed_db_class_factory.cc
@@ -97,7 +97,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const IndexedDBDatabase::Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager) { + PartitionedLockManager* transaction_lock_manager) { DCHECK(backing_store); DCHECK(factory); std::unique_ptr<IndexedDBDatabase> database =
diff --git a/content/browser/indexed_db/indexed_db_class_factory.h b/content/browser/indexed_db/indexed_db_class_factory.h index f8857ec..c701e34 100644 --- a/content/browser/indexed_db/indexed_db_class_factory.h +++ b/content/browser/indexed_db/indexed_db_class_factory.h
@@ -16,7 +16,7 @@ #include "base/lazy_instance.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "content/browser/indexed_db/indexed_db_backing_store.h" #include "content/browser/indexed_db/indexed_db_database.h" #include "content/browser/indexed_db/indexed_db_task_helper.h" @@ -68,7 +68,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const IndexedDBDatabase::Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager); + PartitionedLockManager* transaction_lock_manager); // |tasks_available_callback| is called when the transaction has tasks to run. virtual std::unique_ptr<IndexedDBTransaction> CreateIndexedDBTransaction(
diff --git a/content/browser/indexed_db/indexed_db_connection_coordinator.cc b/content/browser/indexed_db/indexed_db_connection_coordinator.cc index b98cada..3837c71 100644 --- a/content/browser/indexed_db/indexed_db_connection_coordinator.cc +++ b/content/browser/indexed_db/indexed_db_connection_coordinator.cc
@@ -13,7 +13,7 @@ #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_number_conversions.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" @@ -214,9 +214,10 @@ DCHECK_GT(new_version, old_version); if (!has_connections) { - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests = { - {kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata_.id), - LeveledLockManager::LockType::kExclusive}}; + std::vector<PartitionedLockManager::PartitionedLockRequest> + lock_requests = {{kDatabaseRangeLockLevel, + GetDatabaseLockRange(db_->metadata_.id), + PartitionedLockManager::LockType::kExclusive}}; state_ = RequestState::kPendingLocks; db_->lock_manager_->AcquireLocks( std::move(lock_requests), lock_receiver_.weak_factory.GetWeakPtr(), @@ -261,9 +262,9 @@ void OnNoConnections() override { DCHECK(state_ == RequestState::kPendingNoConnections); - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests = { - {kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata().id), - LeveledLockManager::LockType::kExclusive}}; + std::vector<PartitionedLockManager::PartitionedLockRequest> lock_requests = + {{kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata().id), + PartitionedLockManager::LockType::kExclusive}}; state_ = RequestState::kPendingLocks; db_->lock_manager_->AcquireLocks( std::move(lock_requests), lock_receiver_.weak_factory.GetWeakPtr(), @@ -368,7 +369,7 @@ } private: - LeveledLockHolder lock_receiver_; + PartitionedLockHolder lock_receiver_; std::unique_ptr<IndexedDBPendingConnection> pending_; @@ -405,9 +406,10 @@ void Perform(bool has_connections) override { if (!has_connections) { // No connections, so delete immediately. - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests = { - {kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata().id), - LeveledLockManager::LockType::kExclusive}}; + std::vector<PartitionedLockManager::PartitionedLockRequest> + lock_requests = {{kDatabaseRangeLockLevel, + GetDatabaseLockRange(db_->metadata().id), + PartitionedLockManager::LockType::kExclusive}}; state_ = RequestState::kPendingLocks; db_->lock_manager_->AcquireLocks( std::move(lock_requests), lock_receiver_.AsWeakPtr(), @@ -434,9 +436,9 @@ void OnNoConnections() override { DCHECK(state_ == RequestState::kPendingNoConnections); - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests = { - {kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata().id), - LeveledLockManager::LockType::kExclusive}}; + std::vector<PartitionedLockManager::PartitionedLockRequest> lock_requests = + {{kDatabaseRangeLockLevel, GetDatabaseLockRange(db_->metadata().id), + PartitionedLockManager::LockType::kExclusive}}; state_ = RequestState::kPendingLocks; db_->lock_manager_->AcquireLocks( std::move(lock_requests), lock_receiver_.AsWeakPtr(), @@ -511,7 +513,7 @@ } private: - LeveledLockHolder lock_receiver_; + PartitionedLockHolder lock_receiver_; scoped_refptr<IndexedDBCallbacks> callbacks_; base::OnceClosure on_database_deleted_;
diff --git a/content/browser/indexed_db/indexed_db_database.cc b/content/browser/indexed_db/indexed_db_database.cc index ff26c3e..c52ca4df 100644 --- a/content/browser/indexed_db/indexed_db_database.cc +++ b/content/browser/indexed_db/indexed_db_database.cc
@@ -21,8 +21,8 @@ #include "base/numerics/safe_conversions.h" #include "base/strings/string_number_conversions.h" #include "base/trace_event/base_tracing.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/scopes/leveldb_scope.h" #include "components/services/storage/indexed_db/scopes/leveldb_scopes.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" @@ -156,7 +156,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager) + PartitionedLockManager* transaction_lock_manager) : backing_store_(backing_store), metadata_(name, kInvalidId, @@ -178,17 +178,17 @@ IndexedDBTransaction* transaction) { TRACE_EVENT1("IndexedDB", "IndexedDBDatabase::RegisterAndScheduleTransaction", "txn.id", transaction->id()); - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests; + std::vector<PartitionedLockManager::PartitionedLockRequest> lock_requests; lock_requests.reserve(1 + transaction->scope().size()); lock_requests.emplace_back( kDatabaseRangeLockLevel, GetDatabaseLockRange(id()), transaction->mode() == blink::mojom::IDBTransactionMode::VersionChange - ? LeveledLockManager::LockType::kExclusive - : LeveledLockManager::LockType::kShared); - LeveledLockManager::LockType lock_type = + ? PartitionedLockManager::LockType::kExclusive + : PartitionedLockManager::LockType::kShared); + PartitionedLockManager::LockType lock_type = transaction->mode() == blink::mojom::IDBTransactionMode::ReadOnly - ? LeveledLockManager::LockType::kShared - : LeveledLockManager::LockType::kExclusive; + ? PartitionedLockManager::LockType::kShared + : PartitionedLockManager::LockType::kExclusive; for (int64_t object_store : transaction->scope()) { lock_requests.emplace_back(kObjectStoreRangeLockLevel, GetObjectStoreLockRange(id(), object_store),
diff --git a/content/browser/indexed_db/indexed_db_database.h b/content/browser/indexed_db/indexed_db_database.h index 3b1d1b8..6ea0c43b3 100644 --- a/content/browser/indexed_db/indexed_db_database.h +++ b/content/browser/indexed_db/indexed_db_database.h
@@ -21,7 +21,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" #include "content/browser/indexed_db/indexed_db.h" #include "content/browser/indexed_db/indexed_db_backing_store.h" @@ -81,8 +81,8 @@ } const blink::IndexedDBDatabaseMetadata& metadata() const { return metadata_; } - LeveledLockManager* transaction_lock_manager() { return lock_manager_; } - const LeveledLockManager* transaction_lock_manager() const { + PartitionedLockManager* transaction_lock_manager() { return lock_manager_; } + const PartitionedLockManager* transaction_lock_manager() const { return lock_manager_; } @@ -324,7 +324,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager); + PartitionedLockManager* transaction_lock_manager); // May be overridden in tests. virtual size_t GetUsableMessageSizeInBytes() const; @@ -383,7 +383,7 @@ const raw_ptr<IndexedDBClassFactory> class_factory_; std::unique_ptr<IndexedDBMetadataCoding> metadata_coding_; - raw_ptr<LeveledLockManager> lock_manager_; + raw_ptr<PartitionedLockManager> lock_manager_; int64_t transaction_count_ = 0; list_set<IndexedDBConnection*> connections_;
diff --git a/content/browser/indexed_db/indexed_db_database_unittest.cc b/content/browser/indexed_db/indexed_db_database_unittest.cc index 821978c..80fda1f 100644 --- a/content/browser/indexed_db/indexed_db_database_unittest.cc +++ b/content/browser/indexed_db/indexed_db_database_unittest.cc
@@ -18,7 +18,7 @@ #include "base/test/mock_callback.h" #include "base/test/task_environment.h" #include "base/threading/thread_task_runner_handle.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" #include "content/browser/indexed_db/fake_indexed_db_metadata_coding.h" #include "content/browser/indexed_db/indexed_db.h" @@ -106,7 +106,7 @@ private: base::test::TaskEnvironment task_environment_; - DisjointRangeLockManager lock_manager_; + PartitionedLockManagerImpl lock_manager_; base::WeakPtrFactory<IndexedDBDatabaseTest> weak_factory_{this}; }; @@ -551,7 +551,7 @@ scoped_refptr<MockIndexedDBCallbacks> request_; scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks_; raw_ptr<IndexedDBTransaction> transaction_ = nullptr; - DisjointRangeLockManager lock_manager_; + PartitionedLockManagerImpl lock_manager_; bool error_called_ = false; leveldb::Status commit_success_;
diff --git a/content/browser/indexed_db/indexed_db_factory_impl.cc b/content/browser/indexed_db/indexed_db_factory_impl.cc index d2ea9ea..fbcd854 100644 --- a/content/browser/indexed_db/indexed_db_factory_impl.cc +++ b/content/browser/indexed_db/indexed_db_factory_impl.cc
@@ -665,8 +665,8 @@ // TODO(dmurph) Have these factories be given in the constructor, or as // arguments to this method. DefaultLevelDBScopesFactory scopes_factory; - std::unique_ptr<DisjointRangeLockManager> lock_manager = - std::make_unique<DisjointRangeLockManager>(kIndexedDBLockLevelCount); + std::unique_ptr<PartitionedLockManagerImpl> lock_manager = + std::make_unique<PartitionedLockManagerImpl>(kIndexedDBLockLevelCount); IndexedDBDataLossInfo data_loss_info; std::unique_ptr<IndexedDBBackingStore> backing_store; bool disk_full = false;
diff --git a/content/browser/indexed_db/indexed_db_fake_backing_store.cc b/content/browser/indexed_db/indexed_db_fake_backing_store.cc index 20113bf..2949c48 100644 --- a/content/browser/indexed_db/indexed_db_fake_backing_store.cc +++ b/content/browser/indexed_db/indexed_db_fake_backing_store.cc
@@ -200,7 +200,7 @@ mode), result_(result) {} void IndexedDBFakeBackingStore::FakeTransaction::Begin( - std::vector<LeveledLock> locks) {} + std::vector<PartitionedLock> locks) {} leveldb::Status IndexedDBFakeBackingStore::FakeTransaction::CommitPhaseOne( BlobWriteCallback callback) { return std::move(callback).Run(
diff --git a/content/browser/indexed_db/indexed_db_fake_backing_store.h b/content/browser/indexed_db/indexed_db_fake_backing_store.h index bf1461af..fcf23be0d 100644 --- a/content/browser/indexed_db/indexed_db_fake_backing_store.h +++ b/content/browser/indexed_db/indexed_db_fake_backing_store.h
@@ -125,7 +125,7 @@ FakeTransaction(const FakeTransaction&) = delete; FakeTransaction& operator=(const FakeTransaction&) = delete; - void Begin(std::vector<LeveledLock> locks) override; + void Begin(std::vector<PartitionedLock> locks) override; leveldb::Status CommitPhaseOne(BlobWriteCallback) override; leveldb::Status CommitPhaseTwo() override; uint64_t GetTransactionSize() override;
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding.cc b/content/browser/indexed_db/indexed_db_leveldb_coding.cc index ff95f786..9a8fb0f 100644 --- a/content/browser/indexed_db/indexed_db_leveldb_coding.cc +++ b/content/browser/indexed_db/indexed_db_leveldb_coding.cc
@@ -1211,7 +1211,7 @@ return result.str(); } -LeveledLockRange GetDatabaseLockRange(int64_t database_id) { +PartitionedLockRange GetDatabaseLockRange(int64_t database_id) { // The numbers are transformed into big-endian to make them // bytewise-comparable. Eventually, these lock ranges should just match the // leveldb keys when they are bytewise-comparable. @@ -1221,8 +1221,8 @@ std::string(reinterpret_cast<char*>(&next), sizeof(next))}; } -LeveledLockRange GetObjectStoreLockRange(int64_t database_id, - int64_t object_store_id) { +PartitionedLockRange GetObjectStoreLockRange(int64_t database_id, + int64_t object_store_id) { // The numbers are transformed into big-endian to make them // bytewise-comparable. Eventually, these lock ranges should just match the // leveldb keys when they are bytewise-comparable.
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding.h b/content/browser/indexed_db/indexed_db_leveldb_coding.h index e5443100..c3af735c 100644 --- a/content/browser/indexed_db/indexed_db_leveldb_coding.h +++ b/content/browser/indexed_db/indexed_db_leveldb_coding.h
@@ -15,7 +15,7 @@ #include "base/memory/ref_counted.h" #include "base/strings/string_piece.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_range.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_range.h" #include "content/common/content_export.h" #include "third_party/blink/public/common/indexeddb/indexeddb_key.h" #include "third_party/blink/public/common/indexeddb/indexeddb_key_path.h" @@ -121,8 +121,8 @@ const constexpr int kObjectStoreRangeLockLevel = 1; const constexpr int kIndexedDBLockLevelCount = 2; -CONTENT_EXPORT LeveledLockRange GetDatabaseLockRange(int64_t database_id); -CONTENT_EXPORT LeveledLockRange +CONTENT_EXPORT PartitionedLockRange GetDatabaseLockRange(int64_t database_id); +CONTENT_EXPORT PartitionedLockRange GetObjectStoreLockRange(int64_t database_id, int64_t object_store_id); // TODO(dmurph): Modify all decoding methods to return something more sensible, @@ -146,8 +146,8 @@ static const size_t kMaxObjectStoreIdSizeBits = 3; static const size_t kMaxIndexIdSizeBits = 2; - static const size_t kMaxDatabaseIdSizeBytes = - 1ULL << kMaxDatabaseIdSizeBits; // 8 + static const size_t kMaxDatabaseIdSizeBytes = 1ULL + << kMaxDatabaseIdSizeBits; // 8 static const size_t kMaxObjectStoreIdSizeBytes = 1ULL << kMaxObjectStoreIdSizeBits; // 8 static const size_t kMaxIndexIdSizeBytes = 1ULL << kMaxIndexIdSizeBits; // 4 @@ -346,12 +346,7 @@ class IndexMetaDataKey { public: - enum MetaDataType { - NAME = 0, - UNIQUE = 1, - KEY_PATH = 2, - MULTI_ENTRY = 3 - }; + enum MetaDataType { NAME = 0, UNIQUE = 1, KEY_PATH = 2, MULTI_ENTRY = 3 }; IndexMetaDataKey(); static bool Decode(base::StringPiece* slice, IndexMetaDataKey* result);
diff --git a/content/browser/indexed_db/indexed_db_transaction.h b/content/browser/indexed_db/indexed_db_transaction.h index 1923a03..dfcddbb 100644 --- a/content/browser/indexed_db/indexed_db_transaction.h +++ b/content/browser/indexed_db/indexed_db_transaction.h
@@ -20,7 +20,7 @@ #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "base/timer/timer.h" -#include "components/services/storage/indexed_db/locks/leveled_lock.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock.h" #include "content/browser/indexed_db/indexed_db_backing_store.h" #include "content/browser/indexed_db/indexed_db_connection.h" #include "content/browser/indexed_db/indexed_db_database_error.h" @@ -141,7 +141,7 @@ return ptr_factory_.GetWeakPtr(); } - LeveledLockHolder* mutable_locks_receiver() { return &locks_receiver_; } + PartitionedLockHolder* mutable_locks_receiver() { return &locks_receiver_; } // in_flight_memory() is used to keep track of all memory scheduled to be // written using ScheduleTask. This is reported to memory dumps. @@ -216,7 +216,7 @@ bool used_ = false; State state_ = CREATED; - LeveledLockHolder locks_receiver_; + PartitionedLockHolder locks_receiver_; bool is_commit_pending_ = false; // We are owned by the connection object, but during force closes sometimes
diff --git a/content/browser/indexed_db/indexed_db_transaction_unittest.cc b/content/browser/indexed_db/indexed_db_transaction_unittest.cc index 2ac0cb8..ffd7493 100644 --- a/content/browser/indexed_db/indexed_db_transaction_unittest.cc +++ b/content/browser/indexed_db/indexed_db_transaction_unittest.cc
@@ -15,7 +15,7 @@ #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/task_environment.h" -#include "components/services/storage/indexed_db/locks/disjoint_range_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager_impl.h" #include "content/browser/indexed_db/fake_indexed_db_metadata_coding.h" #include "content/browser/indexed_db/indexed_db_class_factory.h" #include "content/browser/indexed_db/indexed_db_connection.h" @@ -127,7 +127,7 @@ return connection; } - DisjointRangeLockManager* lock_manager() { return &lock_manager_; } + PartitionedLockManagerImpl* lock_manager() { return &lock_manager_; } protected: std::unique_ptr<base::test::TaskEnvironment> task_environment_; @@ -138,7 +138,7 @@ bool error_called_ = false; private: - DisjointRangeLockManager lock_manager_; + PartitionedLockManagerImpl lock_manager_; }; class IndexedDBTransactionTestMode @@ -543,13 +543,13 @@ // Acquire a lock to block the transaction's lock acquisition. bool locks_recieved = false; - std::vector<LeveledLockManager::LeveledLockRequest> lock_requests; + std::vector<PartitionedLockManager::PartitionedLockRequest> lock_requests; lock_requests.emplace_back(kDatabaseRangeLockLevel, GetDatabaseLockRange(id), - LeveledLockManager::LockType::kShared); + PartitionedLockManager::LockType::kShared); lock_requests.emplace_back(kObjectStoreRangeLockLevel, GetObjectStoreLockRange(id, object_store_id), - LeveledLockManager::LockType::kExclusive); - LeveledLockHolder temp_lock_receiver; + PartitionedLockManager::LockType::kExclusive); + PartitionedLockHolder temp_lock_receiver; lock_manager()->AcquireLocks(lock_requests, temp_lock_receiver.weak_factory.GetWeakPtr(), base::BindOnce(SetToTrue, &locks_recieved));
diff --git a/content/browser/indexed_db/indexed_db_unittest.cc b/content/browser/indexed_db/indexed_db_unittest.cc index 1d7b2550..6267963 100644 --- a/content/browser/indexed_db/indexed_db_unittest.cc +++ b/content/browser/indexed_db/indexed_db_unittest.cc
@@ -15,7 +15,7 @@ #include "base/test/task_environment.h" #include "base/threading/sequenced_task_runner_handle.h" #include "base/time/default_clock.h" -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom-test-utils.h" #include "components/services/storage/public/cpp/buckets/bucket_locator.h" @@ -609,8 +609,8 @@ auto create_transaction_callback1 = base::BindOnce(&CreateAndBindTransactionPlaceholder); auto connection = std::make_unique<IndexedDBPendingConnection>( - callbacks, db_callbacks, - transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION, + callbacks, db_callbacks, transaction_id, + IndexedDBDatabaseMetadata::DEFAULT_VERSION, std::move(create_transaction_callback1)); factory->Open(u"db", std::move(connection), bucket_locator, context()->GetDataPath(bucket_locator)); @@ -631,11 +631,11 @@ EXPECT_FALSE(factory->IsBackingStoreOpen(bucket_locator)); } -TEST(LeveledLockManager, TestRangeDifferences) { - LeveledLockRange range_db1; - LeveledLockRange range_db2; - LeveledLockRange range_db1_os1; - LeveledLockRange range_db1_os2; +TEST(PartitionedLockManager, TestRangeDifferences) { + PartitionedLockRange range_db1; + PartitionedLockRange range_db2; + PartitionedLockRange range_db1_os1; + PartitionedLockRange range_db1_os2; for (int64_t i = 0; i < 512; ++i) { range_db1 = GetDatabaseLockRange(i); range_db2 = GetDatabaseLockRange(i + 1);
diff --git a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc index 2a3c0f1..befd223e 100644 --- a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc +++ b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.cc
@@ -63,7 +63,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager) + PartitionedLockManager* transaction_lock_manager) : IndexedDBDatabase(name, backing_store, factory, @@ -376,7 +376,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const IndexedDBDatabase::Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager) { + PartitionedLockManager* transaction_lock_manager) { std::unique_ptr<IndexedDBTestDatabase> database = std::make_unique<IndexedDBTestDatabase>( name, backing_store, factory, this,
diff --git a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h index 5db722f..60153d95 100644 --- a/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h +++ b/content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
@@ -11,7 +11,7 @@ #include <memory> #include <set> -#include "components/services/storage/indexed_db/locks/leveled_lock_manager.h" +#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_factory.h" #include "components/services/storage/privileged/mojom/indexed_db_control_test.mojom.h" #include "content/browser/indexed_db/indexed_db_backing_store.h" @@ -49,7 +49,7 @@ TasksAvailableCallback tasks_available_callback, std::unique_ptr<IndexedDBMetadataCoding> metadata_coding, const IndexedDBDatabase::Identifier& unique_identifier, - LeveledLockManager* transaction_lock_manager) override; + PartitionedLockManager* transaction_lock_manager) override; std::unique_ptr<IndexedDBTransaction> CreateIndexedDBTransaction( int64_t id, IndexedDBConnection* connection,
diff --git a/content/browser/private_aggregation/private_aggregation_budget_key.cc b/content/browser/private_aggregation/private_aggregation_budget_key.cc index 64cc0bd..20bebff 100644 --- a/content/browser/private_aggregation/private_aggregation_budget_key.cc +++ b/content/browser/private_aggregation/private_aggregation_budget_key.cc
@@ -14,11 +14,19 @@ namespace content { +namespace { +base::Time FloorToDuration(base::Time time) { + // `FloorToMultiple` would no-op on `base::Time::Max()`. + DCHECK(!time.is_max()); + + return base::Time() + time.since_origin().FloorToMultiple( + PrivateAggregationBudgetKey::TimeWindow::kDuration); +} +} // namespace + PrivateAggregationBudgetKey::TimeWindow::TimeWindow( base::Time api_invocation_time) - : start_time_(base::Time::UnixEpoch() + - (api_invocation_time - base::Time::UnixEpoch()) - .FloorToMultiple(kDuration)) {} + : start_time_(FloorToDuration(api_invocation_time)) {} PrivateAggregationBudgetKey::PrivateAggregationBudgetKey( url::Origin origin,
diff --git a/content/browser/private_aggregation/private_aggregation_budget_key.h b/content/browser/private_aggregation/private_aggregation_budget_key.h index 40f0f5e..28b84ba 100644 --- a/content/browser/private_aggregation/private_aggregation_budget_key.h +++ b/content/browser/private_aggregation/private_aggregation_budget_key.h
@@ -24,14 +24,15 @@ // Represents a period of time for which budget usage is recorded. This // interval includes the `start_time()` instant but excludes the end time - // (`start_time() + kDuration`) instant. - // TODO(crbug.com/1353473): Ensure `base::Time::Min()` and nearby times are - // handled correctly. - class TimeWindow { + // (`start_time() + kDuration`) instant. (But note the `base::Time::Min()` + // `start_time()` caveat below.) No instant is included in multiple time + // windows. + class CONTENT_EXPORT TimeWindow { public: static constexpr base::TimeDelta kDuration = base::Hours(1); // Constructs the window that the `api_invocation_time` lies within. + // `base::Time::Max()` is disallowed. explicit TimeWindow(base::Time api_invocation_time); TimeWindow(const TimeWindow& other) = default; @@ -40,7 +41,8 @@ base::Time start_time() const { return start_time_; } private: - // Must be 'on the hour' in UTC. + // Must be 'on the hour' in UTC, or `base::Time::Min()` for the window that + // includes `base::Time::Min()` (as its start time cannot be represented.) base::Time start_time_; // When adding new members, the corresponding `operator==()` definition in
diff --git a/content/browser/private_aggregation/private_aggregation_budget_key_unittest.cc b/content/browser/private_aggregation/private_aggregation_budget_key_unittest.cc index 3d0958a..37543611 100644 --- a/content/browser/private_aggregation/private_aggregation_budget_key_unittest.cc +++ b/content/browser/private_aggregation/private_aggregation_budget_key_unittest.cc
@@ -86,6 +86,41 @@ kExampleHourBoundary - base::Hours(1)); } +TEST(PrivateAggregationBudgetKeyTest, ExtremeStartTimes_HandledCorrectly) { + // The earliest window should report an extreme start time as its 'conceptual' + // start time can't be represented. + EXPECT_EQ( + PrivateAggregationBudgetKey::TimeWindow(base::Time::Min()).start_time(), + base::Time::Min()); + EXPECT_EQ(PrivateAggregationBudgetKey::TimeWindow(base::Time::Min() + + base::Microseconds(1)) + .start_time(), + base::Time::Min()); + + // The second earliest window should report a start time 'on the hour' again. + PrivateAggregationBudgetKey::TimeWindow second_earliest_window( + base::Time::Min() + PrivateAggregationBudgetKey::TimeWindow::kDuration); + EXPECT_NE(second_earliest_window.start_time(), base::Time::Min()); + EXPECT_LE( + second_earliest_window.start_time(), + base::Time::Min() + PrivateAggregationBudgetKey::TimeWindow::kDuration); + EXPECT_EQ( + second_earliest_window.start_time().since_origin().InMicroseconds() % + base::Time::kMicrosecondsPerHour, + 0); + + // `base::Time::Max()` is disallowed, but otherwise the last window should + // have no issue rounding down. + PrivateAggregationBudgetKey::TimeWindow last_window(base::Time::Max() - + base::Microseconds(1)); + EXPECT_LT(last_window.start_time(), base::Time::Max()); + EXPECT_EQ(last_window.start_time().since_origin().InMicroseconds() % + base::Time::kMicrosecondsPerHour, + 0); + EXPECT_LE(base::Time::Max() - last_window.start_time(), + PrivateAggregationBudgetKey::TimeWindow::kDuration); +} + TEST(PrivateAggregationBudgetKeyTest, UntrustworthyOrigin_KeyCreationFailed) { absl::optional<PrivateAggregationBudgetKey> opaque_origin_budget_key = PrivateAggregationBudgetKey::Create(
diff --git a/content/browser/private_aggregation/private_aggregation_budgeter.cc b/content/browser/private_aggregation/private_aggregation_budgeter.cc index 11d552b..8b8148b 100644 --- a/content/browser/private_aggregation/private_aggregation_budgeter.cc +++ b/content/browser/private_aggregation/private_aggregation_budgeter.cc
@@ -287,12 +287,8 @@ } // Ensure we round down to capture any time windows that partially overlap. - int64_t serialized_delete_begin = - delete_begin.is_min() - ? SerializeTimeForStorage(base::Time::Min()) - : SerializeTimeForStorage( - PrivateAggregationBudgetKey::TimeWindow(delete_begin) - .start_time()); + int64_t serialized_delete_begin = SerializeTimeForStorage( + PrivateAggregationBudgetKey::TimeWindow(delete_begin).start_time()); // No need to round up as we compare against the time window's start time. int64_t serialized_delete_end = SerializeTimeForStorage(delete_end);
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn index 6827eb9..11d95c4 100644 --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn
@@ -310,7 +310,6 @@ "java/src/org/chromium/content/browser/selection/MagnifierWrapperImpl.java", "java/src/org/chromium/content/browser/selection/PastePopupMenu.java", "java/src/org/chromium/content/browser/selection/SelectionIndicesConverter.java", - "java/src/org/chromium/content/browser/selection/SelectionInsertionHandleObserver.java", "java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java", "java/src/org/chromium/content/browser/selection/SmartSelectionClient.java", "java/src/org/chromium/content/browser/selection/SmartSelectionEventProcessor.java",
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java b/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java index eb9e235..5804aaf5 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java
@@ -9,10 +9,6 @@ import org.chromium.base.ThreadUtils; import org.chromium.content.browser.selection.AdditionalMenuItemProvider; import org.chromium.content.browser.selection.AdditionalMenuItemProviderImpl; -import org.chromium.content.browser.selection.MagnifierAnimator; -import org.chromium.content.browser.selection.MagnifierWrapperImpl; -import org.chromium.content.browser.selection.SelectionInsertionHandleObserver; -import org.chromium.content.browser.selection.SelectionPopupControllerImpl; /** * A class factory for downstream injecting code to content layer. @@ -45,15 +41,6 @@ protected ContentClassFactory() {} /** - * Creates HandleObserver object. - */ - public SelectionInsertionHandleObserver createHandleObserver( - SelectionPopupControllerImpl.ReadbackViewCallback callback) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) return null; - return new MagnifierAnimator(new MagnifierWrapperImpl(callback)); - } - - /** * Creates AddtionalMenuItems object. */ public AdditionalMenuItemProvider createAddtionalMenuItemProvider() {
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/MagnifierAnimator.java b/content/public/android/java/src/org/chromium/content/browser/selection/MagnifierAnimator.java index 9e7fea4..cf2a007 100644 --- a/content/public/android/java/src/org/chromium/content/browser/selection/MagnifierAnimator.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/MagnifierAnimator.java
@@ -13,7 +13,7 @@ * MagnifierAnimator adds animation to MagnifierWrapper when there is a change in y direction. * MagnifierWrapper class isolated P APIs out so we could write test for MagnifierAnimator. */ -public class MagnifierAnimator implements SelectionInsertionHandleObserver { +public class MagnifierAnimator { private static final boolean DEBUG = false; private static final String TAG = "Magnifier"; @@ -48,7 +48,6 @@ mTargetY = -1.0f; } - @Override public void handleDragStartedOrMoved(float x, float y) { if (!mMagnifier.isAvailable()) return; if (DEBUG) { @@ -88,7 +87,6 @@ mMagnifierIsShowing = true; } - @Override public void handleDragStopped() { mMagnifier.dismiss(); mAnimator.cancel();
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionInsertionHandleObserver.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionInsertionHandleObserver.java deleted file mode 100644 index 6d11ec8..0000000 --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionInsertionHandleObserver.java +++ /dev/null
@@ -1,24 +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. - -package org.chromium.content.browser.selection; - -/** - * An interface for observing selection/insertion touch handles. - */ -public interface SelectionInsertionHandleObserver { - /** - * Process with handle drag started and handle moving events. - * @param x The x coordinate of the middle point of selection/insertion bound cooresponding to - * the dragging handle. - * @param y The y coordinate of the middle point of selection/insertion bound cooresponding to - * the dragging handle. - */ - void handleDragStartedOrMoved(float x, float y); - - /** - * Process with handle drag stopped event. - */ - void handleDragStopped(); -}
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java index 71e7d07..c59e812 100644 --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -110,6 +110,9 @@ // menus from the context. private static boolean sMustUseWebContentsContext; + // Used in tests to disable magnifier. + private static boolean sDisableMagnifier; + private static final class UserDataFactoryLazyHolder { private static final UserDataFactory<SelectionPopupControllerImpl> INSTANCE = SelectionPopupControllerImpl::new; @@ -185,11 +188,7 @@ private boolean mPreserveSelectionOnNextLossOfFocus; - /** - * The {@link SelectionInsertionHandleObserver} that processes handle events, or {@code null} if - * none exists. - */ - private SelectionInsertionHandleObserver mHandleObserver; + private MagnifierAnimator mMagnifierAnimator; private AdditionalMenuItemProvider mAdditionalMenuItemProvider; @@ -242,6 +241,11 @@ return new SelectionPopupControllerImpl(webContents, null, false); } + @VisibleForTesting + public static void setDisableMagnifierForTesting(boolean disable) { + sDisableMagnifier = disable; + } + /** * Create {@link SelectionPopupControllerImpl} instance. * @param webContents WebContents instance. @@ -290,7 +294,7 @@ mResultCallback = new SmartSelectionCallback(); mLastSelectedText = ""; - initHandleObserver(); + initMagnifier(); mAdditionalMenuItemProvider = ContentClassFactory.get().createAddtionalMenuItemProvider(); getPopupController().registerPopup(this); } @@ -329,7 +333,7 @@ if (view != null) view.setClickable(true); mView = view; - initHandleObserver(); + initMagnifier(); } // ImeEventObserver @@ -639,7 +643,7 @@ mWindowAndroid = newWindowAndroid; mContext = mWebContents.getContext(); - initHandleObserver(); + initMagnifier(); destroyPastePopup(); } @@ -1306,8 +1310,8 @@ case SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED: showContextMenuAtTouchHandle(left, bottom); - if (mHandleObserver != null) { - mHandleObserver.handleDragStopped(); + if (mMagnifierAnimator != null) { + mMagnifierAnimator.handleDragStopped(); } mIsInHandleDragging = false; break; @@ -1355,8 +1359,8 @@ showContextMenuAtTouchHandle(mSelectionRect.left, mSelectionRect.bottom); } mWasPastePopupShowingOnInsertionDragStart = false; - if (mHandleObserver != null) { - mHandleObserver.handleDragStopped(); + if (mMagnifierAnimator != null) { + mMagnifierAnimator.handleDragStopped(); } mIsInHandleDragging = false; break; @@ -1387,13 +1391,13 @@ return; } - if (mHandleObserver != null) { + if (mMagnifierAnimator != null) { final float deviceScale = getDeviceScaleFactor(); x *= deviceScale; // The selection coordinates are relative to the content viewport, but we need // coordinates relative to the containing View, so adding getContentOffsetYPix(). y = y * deviceScale + mWebContents.getRenderCoordinates().getContentOffsetYPix(); - mHandleObserver.handleDragStartedOrMoved(x, y); + mMagnifierAnimator.handleDragStartedOrMoved(x, y); } } @@ -1464,19 +1468,19 @@ * Sets the handle observer, or null if none exists. */ @VisibleForTesting - void setSelectionInsertionHandleObserver( - @Nullable SelectionInsertionHandleObserver handleObserver) { - mHandleObserver = handleObserver; + void setMagnifierAnimator(@Nullable MagnifierAnimator magnifierAnimator) { + mMagnifierAnimator = magnifierAnimator; } - private void initHandleObserver() { - mHandleObserver = ContentClassFactory.get().createHandleObserver(() -> { + private void initMagnifier() { + if (sDisableMagnifier || Build.VERSION.SDK_INT < Build.VERSION_CODES.P) return; + mMagnifierAnimator = new MagnifierAnimator(new MagnifierWrapperImpl(() -> { if (sShouldGetReadbackViewFromWindowAndroid) { return mWindowAndroid == null ? null : mWindowAndroid.getReadbackView(); } else { return mView; } - }); + })); } @CalledByNative
diff --git a/content/public/android/junit/src/org/chromium/content/browser/selection/SelectionPopupControllerTest.java b/content/public/android/junit/src/org/chromium/content/browser/selection/SelectionPopupControllerTest.java index d6421f1..bb2f40c 100644 --- a/content/public/android/junit/src/org/chromium/content/browser/selection/SelectionPopupControllerTest.java +++ b/content/public/android/junit/src/org/chromium/content/browser/selection/SelectionPopupControllerTest.java
@@ -47,7 +47,6 @@ import org.chromium.base.ContextUtils; import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Feature; -import org.chromium.content.browser.ContentClassFactory; import org.chromium.content.browser.GestureListenerManagerImpl; import org.chromium.content.browser.PopupController; import org.chromium.content.browser.RenderCoordinatesImpl; @@ -88,7 +87,6 @@ private RenderCoordinatesImpl mRenderCoordinates; private ContentResolver mContentResolver; private PopupController mPopupController; - private ContentClassFactory mOriginalContentClassFactory; private GestureListenerManagerImpl mGestureStateListenerManager; private RenderFrameHost mRenderFrameHost; @@ -165,12 +163,7 @@ mPopupController = Mockito.mock(PopupController.class); mGestureStateListenerManager = Mockito.mock(GestureListenerManagerImpl.class); - mOriginalContentClassFactory = ContentClassFactory.get(); - ContentClassFactory mockContentClassFactory = Mockito.mock(ContentClassFactory.class); - when(mockContentClassFactory.createHandleObserver( - Mockito.any(SelectionPopupControllerImpl.ReadbackViewCallback.class))) - .thenReturn(null); - ContentClassFactory.set(mockContentClassFactory); + SelectionPopupControllerImpl.setDisableMagnifierForTesting(true); mContentResolver = RuntimeEnvironment.application.getContentResolver(); // To let isDeviceProvisioned() call in showSelectionMenu() return true. @@ -193,7 +186,7 @@ @After public void tearDown() { - ContentClassFactory.set(mOriginalContentClassFactory); + SelectionPopupControllerImpl.setDisableMagnifierForTesting(false); } @Test @@ -481,51 +474,49 @@ } @Test - @Feature({"TextInput", "HandleObserver"}) + @Feature({"TextInput", "Magnifier"}) public void testHandleObserverSelectionHandle() { - SelectionInsertionHandleObserver handleObserver = - Mockito.mock(SelectionInsertionHandleObserver.class); - InOrder order = inOrder(handleObserver); - mController.setSelectionInsertionHandleObserver(handleObserver); + MagnifierAnimator magnifierAnimator = Mockito.mock(MagnifierAnimator.class); + InOrder order = inOrder(magnifierAnimator); + mController.setMagnifierAnimator(magnifierAnimator); // Selection handles shown. mController.onSelectionEvent(SelectionEventType.SELECTION_HANDLES_SHOWN, 0, 0, 1, 1); // Selection handles drag started. mController.onDragUpdate(TouchSelectionDraggableType.TOUCH_HANDLE, 0.f, 0.f); - order.verify(handleObserver).handleDragStartedOrMoved(0.f, 0.f); + order.verify(magnifierAnimator).handleDragStartedOrMoved(0.f, 0.f); // Moving. mController.onDragUpdate(TouchSelectionDraggableType.TOUCH_HANDLE, 5.f, 5.f); - order.verify(handleObserver).handleDragStartedOrMoved(5.f, 5.f); + order.verify(magnifierAnimator).handleDragStartedOrMoved(5.f, 5.f); // Selection handle drag stopped. mController.onSelectionEvent(SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED, 0, 0, 1, 1); - order.verify(handleObserver).handleDragStopped(); + order.verify(magnifierAnimator).handleDragStopped(); } @Test - @Feature({"TextInput", "HandleObserver"}) + @Feature({"TextInput", "Magnifier"}) public void testHandleObserverInsertionHandle() { - SelectionInsertionHandleObserver handleObserver = - Mockito.mock(SelectionInsertionHandleObserver.class); - InOrder order = inOrder(handleObserver); - mController.setSelectionInsertionHandleObserver(handleObserver); + MagnifierAnimator magnifierAnimator = Mockito.mock(MagnifierAnimator.class); + InOrder order = inOrder(magnifierAnimator); + mController.setMagnifierAnimator(magnifierAnimator); // Insertion handle shown. mController.onSelectionEvent(SelectionEventType.INSERTION_HANDLE_SHOWN, 0, 0, 1, 1); // Insertion handle drag started. mController.onDragUpdate(TouchSelectionDraggableType.TOUCH_HANDLE, 0.f, 0.f); - order.verify(handleObserver).handleDragStartedOrMoved(0.f, 0.f); + order.verify(magnifierAnimator).handleDragStartedOrMoved(0.f, 0.f); // Moving. mController.onDragUpdate(TouchSelectionDraggableType.TOUCH_HANDLE, 5.f, 5.f); - order.verify(handleObserver).handleDragStartedOrMoved(5.f, 5.f); + order.verify(magnifierAnimator).handleDragStartedOrMoved(5.f, 5.f); // Insertion handle drag stopped. mController.onSelectionEvent(SelectionEventType.INSERTION_HANDLE_DRAG_STOPPED, 0, 0, 1, 1); - order.verify(handleObserver).handleDragStopped(); + order.verify(magnifierAnimator).handleDragStopped(); } @Test
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index d56ebb4..8ed5360 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -393,6 +393,10 @@ "FirstPartySets", base::FEATURE_DISABLED_BY_DEFAULT); +// Controls whether to clear sites data on FPS transitions. +const base::FeatureParam<bool> kFirstPartySetsClearSiteDataOnChangedSets{ + &kFirstPartySets, "FirstPartySetsClearSiteDataOnChangedSets", false}; + // Controls whether the client is considered a dogfooder for the FirstPartySets // feature. const base::FeatureParam<bool> kFirstPartySetsIsDogfooder{
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h index 7580b66..a60b041f 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h
@@ -86,6 +86,8 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmManifestValidation); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmMultipleIdentityProviders); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFirstPartySets); +CONTENT_EXPORT extern const base::FeatureParam<bool> + kFirstPartySetsClearSiteDataOnChangedSets; CONTENT_EXPORT extern const base::FeatureParam<bool> kFirstPartySetsIsDogfooder; CONTENT_EXPORT extern const base::FeatureParam<int> kFirstPartySetsMaxAssociatedSites;
diff --git a/content/renderer/media/OWNERS b/content/renderer/media/OWNERS index 5019294..40f913f 100644 --- a/content/renderer/media/OWNERS +++ b/content/renderer/media/OWNERS
@@ -8,4 +8,4 @@ olka@chromium.org # WebAudio OWNERS. -per-file renderer_webaudiodevice_impl.*=file://third_party/blink/renderer/modules/webaudio/OWNERS +per-file renderer_webaudiodevice_impl*=file://third_party/blink/renderer/modules/webaudio/OWNERS
diff --git a/content/renderer/v8_value_converter_impl_unittest.cc b/content/renderer/v8_value_converter_impl_unittest.cc index b6c5951..efe31f1 100644 --- a/content/renderer/v8_value_converter_impl_unittest.cc +++ b/content/renderer/v8_value_converter_impl_unittest.cc
@@ -173,8 +173,7 @@ return child->IsNull(); } - bool IsNull(base::ListValue* value, uint32_t index) { - const auto& list = value->GetListDeprecated(); + bool IsNull(const base::Value::List& list, uint32_t index) { if (list.size() <= index) { ADD_FAILURE(); return false; @@ -182,6 +181,11 @@ return list[index].type() == base::Value::Type::NONE; } + // Deprecated. Convert callers to use base::Value::List and remove. + bool IsNullDeprecated(base::ListValue* value, uint32_t index) { + return IsNull(value->GetList(), index); + } + bool IsNull(v8::Local<v8::Array> value, uint32_t index) { v8::Local<v8::Value> child; if (!value->Get(isolate_->GetCurrentContext(), index).ToLocal(&child)) { @@ -269,7 +273,7 @@ }; TEST_F(V8ValueConverterImplTest, BasicRoundTrip) { - std::unique_ptr<base::Value> original_root = base::test::ParseJsonDeprecated( + const base::Value original_root = base::test::ParseJson( "{ \n" " \"null\": null, \n" " \"true\": true, \n" @@ -289,7 +293,7 @@ " \"list\": [ \"bar\", \"foo\" ], \n" " \"empty-list\": [], \n" "}"); - ASSERT_TRUE(original_root); + ASSERT_TRUE(original_root.is_dict()); v8::HandleScope handle_scope(isolate_); v8::Local<v8::Context> context = @@ -298,10 +302,10 @@ V8ValueConverterImpl converter; v8::Local<v8::Object> v8_object = - converter.ToV8Value(*original_root, context).As<v8::Object>(); + converter.ToV8Value(original_root, context).As<v8::Object>(); ASSERT_FALSE(v8_object.IsEmpty()); - EXPECT_EQ(original_root->DictSize(), + EXPECT_EQ(original_root.DictSize(), v8_object->GetPropertyNames(context).ToLocalChecked()->Length()); EXPECT_TRUE( v8_object @@ -404,14 +408,13 @@ std::unique_ptr<base::Value> new_root( converter.FromV8Value(v8_object, context)); - EXPECT_NE(original_root.get(), new_root.get()); - EXPECT_TRUE(*original_root == *new_root); + EXPECT_EQ(original_root, *new_root); } TEST_F(V8ValueConverterImplTest, KeysWithDots) { - std::unique_ptr<base::Value> original = - base::test::ParseJsonDeprecated("{ \"foo.bar\": \"baz\" }"); - ASSERT_TRUE(original); + const base::Value original = + base::test::ParseJson("{ \"foo.bar\": \"baz\" }"); + ASSERT_TRUE(original.is_dict()); v8::HandleScope handle_scope(isolate_); v8::Local<v8::Context> context = @@ -420,9 +423,9 @@ V8ValueConverterImpl converter; std::unique_ptr<base::Value> copy( - converter.FromV8Value(converter.ToV8Value(*original, context), context)); + converter.FromV8Value(converter.ToV8Value(original, context), context)); - EXPECT_TRUE(*original == *copy); + EXPECT_EQ(original, *copy); } TEST_F(V8ValueConverterImplTest, ObjectExceptions) { @@ -434,7 +437,7 @@ isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); // Set up objects to throw when reading or writing 'foo'. - const char* source = + const char source[] = "Object.prototype.__defineSetter__('foo', " " function() { throw new Error('muah!'); });" "Object.prototype.__defineGetter__('foo', " @@ -477,7 +480,8 @@ v8::MicrotasksScope microtasks( isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = "(function() {" + const char source[] = + "(function() {" "var arr = [];" "arr.__defineSetter__(0, " " function() { throw new Error('muah!'); });" @@ -491,18 +495,18 @@ // Converting from v8 value should replace the first item with null. V8ValueConverterImpl converter; - std::unique_ptr<base::ListValue> converted( - base::ListValue::From(converter.FromV8Value(array, context))); - ASSERT_TRUE(converted.get()); + std::unique_ptr<base::Value> converted = + converter.FromV8Value(array, context); + ASSERT_TRUE(converted); + ASSERT_TRUE(converted->is_list()); // http://code.google.com/p/v8/issues/detail?id=1342 - EXPECT_EQ(2u, converted->GetListDeprecated().size()); - EXPECT_TRUE(IsNull(converted.get(), 0)); + EXPECT_EQ(2u, converted->GetList().size()); + EXPECT_TRUE(IsNull(converted->GetList(), 0)); // Converting to v8 value should not be affected by the getter/setter // because the setters/getters are defined on the array instance, not // on the Array's prototype. - converted.reset(static_cast<base::ListValue*>( - base::test::ParseJsonDeprecated("[ \"foo\", \"bar\" ]").release())); + *converted = base::test::ParseJson("[ \"foo\", \"bar\" ]"); v8::Local<v8::Array> copy = converter.ToV8Value(*converted, context).As<v8::Array>(); ASSERT_FALSE(copy.IsEmpty()); @@ -551,7 +555,8 @@ v8::MicrotasksScope microtasks( isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = "(function() {" + const char source[] = + "(function() {" "Object.prototype.foo = 'foo';" "return {};" "})();"; @@ -566,9 +571,9 @@ } TEST_F(V8ValueConverterImplTest, ObjectPrototypeSetter) { - std::unique_ptr<base::Value> original = - base::test::ParseJsonDeprecated("{ \"foo\": \"good value\" }"); - ASSERT_TRUE(original); + const base::Value original = + base::test::ParseJson("{ \"foo\": \"good value\" }"); + ASSERT_TRUE(original.is_dict()); v8::HandleScope handle_scope(isolate_); v8::Local<v8::Context> context = @@ -577,7 +582,7 @@ v8::MicrotasksScope microtasks(isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = + const char source[] = "var result = { getters: 0, setters: 0 };" "Object.defineProperty(Object.prototype, 'foo', {" " get() { ++result.getters; return 'bogus'; }," @@ -585,7 +590,7 @@ "});" "result;"; - const char* source_sanity = + const char source_sanity[] = "({}).foo = 'Trigger setter';" "({}).foo;"; @@ -598,7 +603,7 @@ V8ValueConverterImpl converter; v8::Local<v8::Object> converted = - converter.ToV8Value(*original, context).As<v8::Object>(); + converter.ToV8Value(original, context).As<v8::Object>(); EXPECT_FALSE(converted.IsEmpty()); // Getters/setters shouldn't be triggered. @@ -635,9 +640,8 @@ } TEST_F(V8ValueConverterImplTest, ArrayPrototypeSetter) { - std::unique_ptr<base::Value> original = - base::test::ParseJsonDeprecated("[100, 200, 300]"); - ASSERT_TRUE(original); + const base::Value original = base::test::ParseJson("[100, 200, 300]"); + ASSERT_TRUE(original.is_list()); v8::HandleScope handle_scope(isolate_); v8::Local<v8::Context> context = @@ -646,7 +650,7 @@ v8::MicrotasksScope microtasks(isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = + const char source[] = "var result = { getters: 0, setters: 0 };" "Object.defineProperty(Array.prototype, '1', {" " get() { ++result.getters; return 1337; }," @@ -654,7 +658,7 @@ "});" "result;"; - const char* source_sanity = + const char source_sanity[] = "[][1] = 'Trigger setter';" "[][1];"; @@ -667,7 +671,7 @@ V8ValueConverterImpl converter; v8::Local<v8::Array> converted = - converter.ToV8Value(*original, context).As<v8::Array>(); + converter.ToV8Value(original, context).As<v8::Array>(); EXPECT_FALSE(converted.IsEmpty()); // Getters/setters shouldn't be triggered during the conversion. @@ -711,7 +715,8 @@ v8::MicrotasksScope microtasks( isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = "(function() {" + const char source[] = + "(function() {" "return { foo: undefined, bar: null };" "})();"; @@ -768,7 +773,7 @@ base::ListValue::From(converter.FromV8Value(array, context))); ASSERT_TRUE(list_result.get()); EXPECT_EQ(2u, list_result->GetListDeprecated().size()); - EXPECT_TRUE(IsNull(list_result.get(), 1)); + EXPECT_TRUE(IsNullDeprecated(list_result.get(), 1)); } TEST_F(V8ValueConverterImplTest, WeirdProperties) { @@ -779,14 +784,15 @@ v8::MicrotasksScope microtasks( isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = "(function() {" + const char source[] = + "(function() {" "return {" - "1: 'foo'," - "'2': 'bar'," - "true: 'baz'," - "false: 'qux'," - "null: 'quux'," - "undefined: 'oops'" + " 1: 'foo'," + " '2': 'bar'," + " true: 'baz'," + " false: 'qux'," + " null: 'quux'," + " undefined: 'oops'" "};" "})();"; @@ -795,7 +801,7 @@ V8ValueConverterImpl converter; std::unique_ptr<base::Value> actual(converter.FromV8Value(object, context)); - std::unique_ptr<base::Value> expected = base::test::ParseJsonDeprecated( + const base::Value expected = base::test::ParseJson( "{ \n" " \"1\": \"foo\", \n" " \"2\": \"bar\", \n" @@ -805,7 +811,7 @@ " \"undefined\": \"oops\", \n" "}"); - EXPECT_TRUE(*expected == *actual); + EXPECT_EQ(expected, *actual); } TEST_F(V8ValueConverterImplTest, ArrayGetters) { @@ -816,7 +822,8 @@ v8::MicrotasksScope microtasks( isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks); - const char* source = "(function() {" + const char source[] = + "(function() {" "var a = [0];" "a.__defineGetter__(1, function() { return 'bar'; });" "return a;" @@ -841,7 +848,8 @@ v8::Local<v8::Object> object; { - const char* source = "(function() {" + const char source[] = + "(function() {" "return { foo: undefined, bar: null, baz: function(){} };" "})();"; object = CompileRun<v8::Object>(context, source); @@ -849,7 +857,8 @@ v8::Local<v8::Array> array; { - const char* source = "(function() {" + const char source[] = + "(function() {" "return [ undefined, null, function(){} ];" "})();"; array = CompileRun<v8::Array>(context, source); @@ -857,7 +866,8 @@ v8::Local<v8::Array> sparse_array; { - const char* source = "(function() {" + const char source[] = + "(function() {" "return new Array(3);" "})();"; sparse_array = CompileRun<v8::Array>(context, source); @@ -867,18 +877,16 @@ std::unique_ptr<base::Value> actual_object( converter.FromV8Value(object, context)); - EXPECT_EQ(*base::test::ParseJsonDeprecated("{ \"bar\": null }"), - *actual_object); + EXPECT_EQ(base::test::ParseJson("{ \"bar\": null }"), *actual_object); // Everything is null because JSON stringification preserves array length. std::unique_ptr<base::Value> actual_array( converter.FromV8Value(array, context)); - EXPECT_EQ(*base::test::ParseJsonDeprecated("[ null, null, null ]"), - *actual_array); + EXPECT_EQ(base::test::ParseJson("[ null, null, null ]"), *actual_array); std::unique_ptr<base::Value> actual_sparse_array( converter.FromV8Value(sparse_array, context)); - EXPECT_EQ(*base::test::ParseJsonDeprecated("[ null, null, null ]"), + EXPECT_EQ(base::test::ParseJson("[ null, null, null ]"), *actual_sparse_array); } @@ -907,15 +915,14 @@ .Check(); // The expected base::Value result. - std::unique_ptr<base::Value> expected = - base::test::ParseJsonDeprecated("[{},{},[],[]]"); - ASSERT_TRUE(expected.get()); + const base::Value expected = base::test::ParseJson("[{},{},[],[]]"); + ASSERT_TRUE(expected.is_list()); // The actual result. std::unique_ptr<base::Value> value(converter.FromV8Value(root, context)); - ASSERT_TRUE(value.get()); + ASSERT_TRUE(value); - EXPECT_TRUE(*expected == *value); + EXPECT_EQ(expected, *value); } TEST_F(V8ValueConverterImplTest, DetectCycles) { @@ -978,7 +985,8 @@ // Object with reused values in different keys. { - const char* source = "(function() {" + const char source[] = + "(function() {" "var objA = {key: 'another same value'};" "var obj = {one: objA, two: objA};" "return obj;" @@ -993,13 +1001,13 @@ { base::DictionaryValue* one_dict = nullptr; - const char* key1 = "one"; + const char key1[] = "one"; ASSERT_TRUE(result->GetDictionary(key1, &one_dict)); EXPECT_EQ("another same value", GetString(one_dict, "key")); } { base::DictionaryValue* two_dict = nullptr; - const char* key2 = "two"; + const char key2[] = "two"; ASSERT_TRUE(result->GetDictionary(key2, &two_dict)); EXPECT_EQ("another same value", GetString(two_dict, "key")); } @@ -1007,7 +1015,8 @@ // Array with reused values. { - const char* source = "(function() {" + const char source[] = + "(function() {" "var objA = {key: 'same value'};" "var arr = [objA, objA];" "return arr;" @@ -1020,9 +1029,8 @@ ASSERT_TRUE(list_result.get()); ASSERT_EQ(2u, list_result->GetListDeprecated().size()); for (size_t i = 0; i < list_result->GetListDeprecated().size(); ++i) { - ASSERT_FALSE(IsNull(list_result.get(), i)); + ASSERT_FALSE(IsNullDeprecated(list_result.get(), i)); base::Value::Dict* dict_value = list_result->GetList()[0].GetIfDict(); - ; ASSERT_TRUE(dict_value); EXPECT_STREQ("same value", dict_value->FindString("key")->c_str()); } @@ -1083,7 +1091,7 @@ v8::MicrotasksScope::kDoNotRunMicrotasks); v8::Context::Scope context_scope(context); - const char* source = "(function() { return -0; })();"; + const char source[] = "(function() { return -0; })();"; v8::Local<v8::Value> value = CompileRun<v8::Value>(context, source); @@ -1235,17 +1243,15 @@ std::unique_ptr<base::Value> object_value( converter.FromV8Value(object, context)); ASSERT_TRUE(object_value); - std::unique_ptr<base::Value> reference_object_value( - base::test::ParseJsonDeprecated("{}")); - EXPECT_EQ(*reference_object_value, *object_value); + const base::Value reference_object_value = base::test::ParseJson("{}"); + EXPECT_EQ(reference_object_value, *object_value); v8::Local<v8::Array> array(v8::Array::New(isolate_)); std::unique_ptr<base::Value> array_value( converter.FromV8Value(array, context)); ASSERT_TRUE(array_value); - std::unique_ptr<base::Value> reference_array_value( - base::test::ParseJsonDeprecated("[]")); - EXPECT_EQ(*reference_array_value, *array_value); + const base::Value reference_array_value = base::test::ParseJson("[]"); + EXPECT_EQ(reference_array_value, *array_value); const char kExampleData[] = {1, 2, 3, 4, 5}; v8::Local<v8::ArrayBuffer> array_buffer( @@ -1272,9 +1278,8 @@ std::unique_ptr<base::Value> number_value( converter.FromV8Value(number, context)); ASSERT_TRUE(number_value); - std::unique_ptr<base::Value> reference_number_value( - base::test::ParseJsonDeprecated("0")); - EXPECT_EQ(*reference_number_value, *number_value); + const base::Value reference_number_value = base::test::ParseJson("0"); + EXPECT_EQ(reference_number_value, *number_value); v8::Local<v8::Primitive> undefined(v8::Undefined(isolate_)); std::unique_ptr<base::Value> undefined_value(
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index 4ceb163..e5d624bd 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -72060,10 +72060,9 @@ builders { name: "ios-simulator" swarming_host: "chromium-swarm.appspot.com" - dimensions: "cores:2" + dimensions: "builder:ios-simulator" dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-18.04" - dimensions: "pool:luci.chromium.try.orchestrator" + dimensions: "pool:luci.chromium.try" exe { cipd_package: "infra/chromium/bootstrapper/${platform}" cipd_version: "latest" @@ -72100,10 +72099,6 @@ seconds: 120 } caches { - name: "unused_builder_cache" - path: "builder" - } - caches { name: "win_toolchain" path: "win_toolchain" }
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star b/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star index f0ca6d65..a8ab2e7 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.mac.star
@@ -325,7 +325,11 @@ experiments = { "remove_src_checkout_experiment": 100, }, - use_orchestrator_pool = True, + # TODO (crbug.com/1372179): Move back to orchestrator bots once they can be + # properly rate limited + # use_orchestrator_pool = True, + cores = None, + os = None, ) try_.compilator_builder(
diff --git a/ios/chrome/app/application_delegate/BUILD.gn b/ios/chrome/app/application_delegate/BUILD.gn index 0e97b38..ba3b239 100644 --- a/ios/chrome/app/application_delegate/BUILD.gn +++ b/ios/chrome/app/application_delegate/BUILD.gn
@@ -78,6 +78,7 @@ "//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list:test_support", "//ios/chrome/common/app_group", + "//ios/chrome/common/crash_report", "//ios/chrome/common/intents", "//ios/chrome/test:test_support", "//ios/chrome/test/ocmock",
diff --git a/ios/chrome/app/application_delegate/app_state_unittest.mm b/ios/chrome/app/application_delegate/app_state_unittest.mm index c96d49e..5e5ddd05 100644 --- a/ios/chrome/app/application_delegate/app_state_unittest.mm +++ b/ios/chrome/app/application_delegate/app_state_unittest.mm
@@ -45,6 +45,7 @@ #import "ios/chrome/browser/ui/safe_mode/safe_mode_coordinator.h" #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" #import "ios/chrome/browser/url/chrome_url_constants.h" +#import "ios/chrome/common/crash_report/crash_helper.h" #import "ios/chrome/test/block_cleanup_test.h" #import "ios/chrome/test/providers/app_distribution/test_app_distribution.h" #import "ios/chrome/test/scoped_key_window.h" @@ -795,6 +796,10 @@ // Tests that -applicationDidEnterBackground calls the metrics mediator. TEST_F(AppStateTest, applicationDidEnterBackgroundIncognito) { + // This is a breakpad only test and can be deprecated once Breakpad is + // removed. + if (crash_helper::common::CanUseCrashpad()) + return; swizzleSafeModeShouldStart(NO); [[getStartupInformationMock() stub] setIsFirstRun:YES]; [[[getStartupInformationMock() stub] andReturnValue:@YES] isFirstRun];
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm index aeb89cb..4f1ca539 100644 --- a/ios/chrome/app/main_controller.mm +++ b/ios/chrome/app/main_controller.mm
@@ -1036,13 +1036,15 @@ }]; } -// Schedule a call to `saveFieldTrialValuesForExtensions` for deferred -// execution. -- (void)scheduleSaveFieldTrialValuesForExtensions { +// Schedule a call to `scheduleSaveFieldTrialValuesForExternals` for deferred +// execution. Externals can be extensions or 1st party apps. +- (void)scheduleSaveFieldTrialValuesForExternals { + __weak __typeof(self) weakSelf = self; [[DeferredInitializationRunner sharedInstance] enqueueBlockNamed:kSaveFieldTrialValues block:^{ - [self saveFieldTrialValuesForExtensions]; + [weakSelf saveFieldTrialValuesForExtensions]; + [weakSelf saveFieldTrialValuesForGroupApp]; }]; } @@ -1164,7 +1166,7 @@ [self startFreeMemoryMonitoring]; [self scheduleAppDistributionPings]; [self initializeMailtoHandling]; - [self scheduleSaveFieldTrialValuesForExtensions]; + [self scheduleSaveFieldTrialValuesForExternals]; [self scheduleEnterpriseManagedDeviceCheck]; [self scheduleFaviconsCleanup]; }
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb index 787f168f..1df43e8 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb
@@ -104,7 +104,7 @@ <translation id="7395825497086981028">আপোনাৰ পাছৱৰ্ডটো <ph name="EMAIL" />ৰ পাছৱৰ্ড পৰিচালকত ছেভ কৰা হ’ব।</translation> <translation id="7400689562045506105">সকলোতে Chromium ব্যৱহাৰ কৰক</translation> <translation id="766897673682622022">কোনো ডেটা উলংঘনৰ ফলত আপোনাৰ পাছৱৰ্ডটো ফাদিল হৈছে। Chromiumএ পাছৱৰ্ডটো এতিয়াই সলনি কৰাটো চুপাৰিছ কৰে।</translation> -<translation id="7674213385180944843">ছেটিংসমূহ > গোপনীয়তা > কেমেৰা > Chromium খোলক আৰু তাৰ পিছত কেমেৰাটো অন কৰক।</translation> +<translation id="7674213385180944843">ছেটিংসমূহ > গোপনীয়তা > কেমেৰা > Chromium খোলক আৰু তাৰ পাছত কেমেৰাটো অন কৰক।</translation> <translation id="7746854981345936341">Chromium ব্যৱহাৰৰ কীটিপ। উভতি যোৱা, ফ’ৰৱাৰ্ড কৰা আৰু সন্ধান কৰাৰ দৰে কাৰ্যৰ বাবে ব্যৱহাৰ কৰা কিছুমান বুটাম এতিয়া আপোনাৰ স্ক্ৰীণত আছে।</translation> <translation id="7763454117143368771">বিপজ্জনক ছাইটৰ পৰা সুৰক্ষিত হৈ থাকিবলৈ আৰু আপোনাৰ পাছৱৰ্ডসমূহ নিৰাপদে ৰাখিবলৈ Chromiumক আপোনাৰ ডিফ’ল্ট ব্ৰাউজাৰ হিচাপে ব্যৱহাৰ কৰক</translation> <translation id="7812317783196516890">আপুনি ছাইন ইন কৰিছে আৰু আপোনাৰ ডেটা <ph name="DOMAIN" />এ পৰিচালনা কৰা এটা একাউণ্টৰ জৰিয়তে ছিংক কৰি আছে, য’ত ইয়াৰ প্ৰশাসকে এতিয়া Chromimumৰ আচৰণ সলনি কৰিব পৰা কেৱল সেই একাউণ্টটোৰ ব্যৱহাৰকাৰীৰ নীতি ছেট কৰিব পাৰে।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb index 64d3a1123..e13f3e0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -672,7 +672,7 @@ আপোনাৰ ছিংক পাছফ্ৰেজৰ সৈতে নিজৰ ডেটা <ph name="TIME" />ত এনক্ৰিপ্ট কৰা হৈছিল। ছিংক আৰম্ভ কৰিবলৈ এইটো দিয়ক।</translation> <translation id="6418346271604475326">PDF সাজু কৰি থকা হৈছে</translation> -<translation id="6434591244308415567">আসোঁৱাহ হৈছে। পিছত আকৌ চেষ্টা কৰক।</translation> +<translation id="6434591244308415567">আসোঁৱাহ হৈছে। পাছত আকৌ চেষ্টা কৰক।</translation> <translation id="6439338047467462846">সকলোকে অনুমতি দিয়ক</translation> <translation id="6445051938772793705">দেশ</translation> <translation id="6445981559479772097">বাৰ্তা পঠিওৱা হ’ল৷</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index d0f28a3..a4f6e35 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -19,6 +19,7 @@ <translation id="1076421457278169141">কোড স্ক্যান করা হয়েছে</translation> <translation id="1076785341346483463">ম্যানেজ করা অ্যাকাউন্ট ব্যবহার করে সিঙ্ক করুন</translation> <translation id="1084365883616172403">Facebook পোষ্ট সম্পূর্ণ হয়েছে৷</translation> +<translation id="1085696779717592361">ডিফল্ট হিসেবে Chrome ব্যবহার করুন</translation> <translation id="1103523840287552314">সর্বদা অনুবাদ করুন <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">স্বীকার করুন ও চালিয়ে যান</translation> <translation id="110724200315609752">এই উইন্ডো থেকে পাল্টে খুলে রাখা উইন্ডোতে যান</translation> @@ -34,6 +35,7 @@ <translation id="1165039591588034296">ত্রুটি</translation> <translation id="1172898394251786223">পরবর্তী ফিল্ড</translation> <translation id="1176932207622159128">ছবি সেভ করা যায়নি</translation> +<translation id="1177414119866731261">Chrome মেনু খুলুন</translation> <translation id="1181037720776840403">সরান</translation> <translation id="1207113853726624428">নতুন সার্চ</translation> <translation id="1209206284964581585">এখনকার মতো লুকান</translation> @@ -110,6 +112,7 @@ <translation id="1740468249224277719">ইনস্টল করতে দুবার আলতো চাপুন।</translation> <translation id="1752547299766512813">পাসওয়ার্ডগুলি সেভ করুন</translation> <translation id="1753905327828125965">সর্বাধিক দেখা</translation> +<translation id="1789803444939621101"><ph name="USER_NAME" />, আপনাকে আবার স্বাগত জানাই</translation> <translation id="1803264062614276815">কার্ড হোল্ডারের নাম</translation> <translation id="1809939268435598390">ফোল্ডার মুছুন</translation> <translation id="1813414402673211292">ব্রাউজ করা ডেটা সাফ করুন</translation> @@ -163,6 +166,7 @@ <translation id="2302742851632557585">ওয়েবসাইটে গিয়ে পাসওয়ার্ড পরিবর্তন করুন</translation> <translation id="2316709634732130529">সাজেস্ট করা পাসওয়ার্ড ব্যবহার করুন</translation> <translation id="2320166752086256636">কীবোর্ড লুকান</translation> +<translation id="2328842561016935977">পাসওয়ার্ড ট্যাপ করুন তারপরে 'যোগ করুন' বিকল্পে ট্যাপ করুন</translation> <translation id="2351097562818989364">আপনার অনুবাদ সেটিংস রিসেট করা হয়েছে৷</translation> <translation id="235789365079050412">Google-এর গোপনীয়তা নীতি</translation> <translation id="2359043044084662842">অনুবাদ করুন</translation> @@ -221,6 +225,7 @@ <translation id="2781331604911854368">চালু করা আছে</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2783054063075604403">লিঙ্ক তৈরি করা যাচ্ছে না</translation> +<translation id="2786701870377699570">সমস্ত সিঙ্ক করা ডিভাইসে ট্যাব সার্চ করুন</translation> <translation id="2800683595868705743">ট্যাব পরিবর্তনকারী থেকে বেরিয়ে যান</translation> <translation id="2815198996063984598">২. 'ডিফল্ট ব্রাউজার অ্যাপ' বিকল্পে ট্যাপ করুন</translation> <translation id="2820289420301699633">আপনার অ্যাডমিনিস্ট্রেটরের কাছে Chrome-এর নিয়ন্ত্রণ আছে এবং তিনি এর ডেটা অ্যাক্সেস করতে পারবেন</translation> @@ -244,6 +249,7 @@ <translation id="2923448633003185837">পেস্ট করে শুরু করুন</translation> <translation id="292639812446257861">অপঠিত হিসেবে চিহ্নিত করুন</translation> <translation id="2932085390869194046">পাসওয়ার্ড প্রস্তাব করুন…</translation> +<translation id="2932765531295814441">ম্যানুয়ালি পাসওয়ার্ড যোগ করুন</translation> <translation id="2952581218264071393">১. Chrome সেটিংস খুলুন</translation> <translation id="2958718410589002129">পাসওয়ার্ড</translation> <translation id="2961210776189273067">সম্বোধন</translation> @@ -279,6 +285,7 @@ <translation id="3181954750937456830">নিরাপদ ব্রাউজিং (বিপজ্জনক সাইট থেকে আপনাকে এবং আপনার ডিভাইসকে রক্ষা করে)</translation> <translation id="3184767182050912705"><ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> দিয়ে আনলক করুন</translation> <translation id="3207960819495026254">বুকমার্ক করা হয়েছে</translation> +<translation id="3214379938835224220">আপনার iPad রিসেটের অংশ হিসেবে আপনি সাইন-আউট হয়ে গেছেন। সাইন-ইন করার জন্য নিচে 'চালিয়ে যান' বোতামে ট্যাপ করুন।</translation> <translation id="3224641773458703735">পাসওয়ার্ড এক্সপোর্ট করার জন্য আপনার ডিভাইসে আপনাকে অবশ্যই একটি পাসকোড সেট করতে হবে।</translation> <translation id="3227137524299004712">মাইক্রোফোন</translation> <translation id="3240426699337459095">লিঙ্ক কপি করা হয়েছে</translation> @@ -296,6 +303,7 @@ <translation id="3329904751041170572">সার্ভারের সাথে সংযোগ করা যাযনি৷</translation> <translation id="3335947283844343239">বন্ধ হওয়া ট্যাব আবার খুলুন</translation> <translation id="3371831930909698441">অনুবাদ পাওয়া যাচ্ছে। স্ক্রিনের একটু নিচের দিকে বিকল্পগুলি দেওয়া আছে।</translation> +<translation id="3377063233124932127">আপনার সেভ করা বুকমার্ক, পাসওয়ার্ড এবং আরও অনেক কিছু এখন উপরে থাকবে।</translation> <translation id="3393920035788932672">মঞ্জুরিপ্রাপ্ত পপ-আপ</translation> <translation id="3399930248910934354">Chrome সেটিংস খুলুন</translation> <translation id="3404744938087714423">সাইন-আউট করলে সিঙ্ক করা বন্ধ হয়ে যাবে।</translation> @@ -318,11 +326,13 @@ <translation id="3519193562722059437">ওয়েব ব্রাউজ করার জন্য একটি ট্যাব খুলুন।</translation> <translation id="3527085408025491307">ফোল্ডার</translation> <translation id="3529024052484145543">সুরক্ষিত নয়</translation> +<translation id="3530206579861815432">আপনার সমস্ত সিঙ্ক করা ডিভাইসে খোলা এবং সম্প্রতি বন্ধ হওয়া ট্যাব দ্রুত খুঁজুন।</translation> <translation id="3533202363250687977">সব ছদ্মবেশী ট্যাব বন্ধ করুন</translation> <translation id="3533436815740441613">নতুন ট্যাব খুলুন</translation> <translation id="3551320343578183772">ট্যাব বন্ধ করুন</translation> <translation id="3581564640715911333">অন্য ভাষাতে পৃষ্ঠা অনুবাদ করার প্রস্তাব দিন</translation> <translation id="3588820906588687999">নতুন ট্যাবে ছবি খুলুন</translation> +<translation id="3595252146048399851"><ph name="BEGIN_LINK" />সেটিংসে<ph name="END_LINK" /> কোন ধরনের ডেটা সিঙ্ক করা হবে তা আপনি সবসময় বেছে নিতে পারবেন। আপনার ইতিহাসের উপরে ভিত্তি করে, সার্চ ও অন্যান্য পরিষেবা পছন্দমতো করে তুলতে Google এই ডেটা ব্যবহার করতে পারে।</translation> <translation id="3603009562372709545">লিঙ্ক ইউআরএল কপি করুন</translation> <translation id="3607167657931203000">ডেটা স্বতঃপূর্ণ করুন</translation> <translation id="3609785682760573515">সিঙ্ক হচ্ছে...</translation> @@ -371,6 +381,7 @@ <translation id="4018310736049373830">অ্যাক্টিভিটি ম্যানেজ করুন</translation> <translation id="4038354071007134711">এই ডিভাইসের কোনো অ্যাপ্লিকেশান ফাইলটি খুলতে পারবে না।</translation> <translation id="4042870976416480368">পৃষ্ঠাতে খুঁজুন</translation> +<translation id="40433179647657191">আপনি হাইলাইট করেছেন এমন একটি পৃষ্ঠার অংশের সরাসরি লিঙ্ক তৈরি করে শেয়ার করুন।</translation> <translation id="4049507953662678203">আপনি একটি নেটওয়ার্ক সংযোগে আছেন কিনা তা নিশ্চিত করুন এবং আবার চেষ্টা করুন।</translation> <translation id="4063300985191096908">ফিডে যান</translation> <translation id="408404951701638773">সার্চ বারে কাজ করা এখন সহজ</translation> @@ -388,11 +399,13 @@ <translation id="4181841719683918333">ভাষাসমূহ</translation> <translation id="4187450337729239226">পেস্ট ও সার্চ করুন</translation> <translation id="4223967053752765281">আপনার প্রতিষ্ঠান সাইন-ইনের সুবিধা বন্ধ করে দিয়েছেন। এখনও এই ডিভাইসে আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্য সেটিংস দেখতে পাবেন। আপনি কোনও পরিবর্তন করলে, তা আপনার অ্যাকাউন্টে সিঙ্ক হবে না।</translation> +<translation id="4232900911558558076">নতুন মেনু দেখুন</translation> <translation id="4233831822770018312">অনুমতিতে পরিবর্তন করুন</translation> <translation id="4236584471598725073">দাম ট্র্যাক করা</translation> <translation id="4237377247299956313"><ph name="BEGIN_BOLD" />ডিফল্ট ব্রাউজার অ্যাপ<ph name="END_BOLD" /> বিকল্পে ট্যাপ করুন</translation> <translation id="424315890655130736">পাসফ্রেজ লিখুন</translation> <translation id="4249955472157341256">লেটেস্ট অনুযায়ী সাজান</translation> +<translation id="42618743927498729">কোনও সাইটে দাম কমলে সেই সম্পর্কে বিজ্ঞপ্তি পান।</translation> <translation id="4263576668337963058">পৃষ্ঠা সম্পর্কিত উপলভ্য অ্যাকশন দেখুন</translation> <translation id="4267380167363222949">পরের ট্যাব</translation> <translation id="4272631900155121838">একটি QR কোড স্ক্যান করতে, সেটিংস থেকে ক্যামেরা চালু করুন</translation> @@ -535,6 +548,7 @@ <translation id="5388358297987318779">ছবি খুলুন</translation> <translation id="5407969256130905701">পরিবর্তনগুলি বাতিল করুন</translation> <translation id="5416022985862681400">গত ৭ দিনে</translation> +<translation id="5423269318075950257">দাম ট্র্যাক করুন</translation> <translation id="543338862236136125">পাসওয়ার্ড এডিট করুন</translation> <translation id="5433691172869980887">ইউজারনেম কপি করা হয়েছে</translation> <translation id="5439599923922718668">প্রায়ই দেখা হয় এমন</translation> @@ -555,11 +569,15 @@ <translation id="5556459405103347317">রিলোড করুন</translation> <translation id="556042886152191864">বোতাম</translation> <translation id="5580834567471114021">পরে পড়ার জন্য পড়ার তালিকায় যোগ করতে চান?</translation> +<translation id="5597915316964418992">ট্যাব গ্রিড খুলুন</translation> <translation id="560322036295180549">আপনার সংস্থা বন্ধ করে দিয়েছে</translation> <translation id="5614553682702429503">পাসওয়ার্ড সেভ করবেন?</translation> <translation id="5626245204502895507">ফাইলটি এই সময়ে ডাউনলোড করা যাবে না৷</translation> <translation id="5631164295104953411">পেমেন্টের পদ্ধতি যোগ করুন</translation> +<translation id="5636282538000367086">Chrome-এ নতুন কী ফিচার আছে তা খুঁজুন</translation> +<translation id="5652623411397330904">আপনার ট্র্যাক করা প্রোডাক্ট এখানে দেখা যাবে।</translation> <translation id="5659593005791499971">ইমেল আইডি</translation> +<translation id="5669335982068190158">আপনার iPhone রিসেটের অংশ হিসেবে আপনি সাইন-আউট হয়ে গেছেন। সাইন-ইন করার জন্য নিচে 'চালিয়ে যান' বোতামে ট্যাপ করুন।</translation> <translation id="5669528293118408608">www</translation> <translation id="567881659373499783">ভার্সন <ph name="PRODUCT_VERSION" /></translation> <translation id="5690398455483874150">{count,plural, =1{এখন ১টি Chrome উইন্ডো দেখা যাচ্ছে}one{এখন {count}টি Chrome উইন্ডো দেখা যাচ্ছে}other{এখন {count}টি Chrome উইন্ডো দেখা যাচ্ছে}}</translation> @@ -570,6 +588,7 @@ <translation id="5724941645893276623">ব্যক্তিগতভাবে ওয়েব ব্রাউজ করতে, একটি নতুন ট্যাব যোগ করুন</translation> <translation id="5728700505257787410">দুঃখিত, আপনার অ্যাকাউন্টে সাইন-ইন করার সময় একটি সমস্যা হয়েছে৷</translation> <translation id="5731784586962650619">অন্যান্য অ্যাপে পাসওয়ার্ড</translation> +<translation id="5733084997078800044">Chrome সম্পর্কিত পরামর্শ</translation> <translation id="5737974891429562743">অ্যাকাউন্ট সাইন-ইনের বিশদ বিবরণ পুরনো হয়ে গেছে। সিঙ্ক শুরু করার জন্য আপডেট করুন।</translation> <translation id="5738385766833540397">আপনার ট্র্যাক করা প্রোডাক্টের দাম কমার বিজ্ঞপ্তি কীভাবে পাবেন তা ম্যানেজ করুন</translation> <translation id="5738887413654608789">এই আদেশটি আপনার পারিপার্শ্বিক পরিবেশের উপর নির্ভর করে ওয়েব পৃষ্ঠার খোঁজ করতে দেয়।</translation> @@ -583,6 +602,7 @@ <translation id="5812974770859303494">এতে যোগ করুন...</translation> <translation id="581659025233126501">সিঙ্ক চালু করুন</translation> <translation id="5819208479324046259"><ph name="MANAGER" /> এটি ম্যানেজ করে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> +<translation id="5833643789537100742">পরে আপনা-আপনি পূরণ হওয়ার জন্য Chrome-এ পাসওয়ার্ড, পেমেন্ট পদ্ধতি এবং অ্যাড্রেস সেভ করুন।</translation> <translation id="5846482154967366008">সার্চ ইঞ্জিন</translation> <translation id="5854790677617711513">৩০ দিনের বেশি পুরনো</translation> <translation id="5857090052475505287">নতুন ফোল্ডার</translation> @@ -598,6 +618,7 @@ <translation id="5913600720976431809">পৃষ্ঠা অনুবাদ করার বিকল্প</translation> <translation id="5938160824633642847">আপনার ডিভাইসে পর্যাপ্ত জায়গা নেই। জায়গা খালি করে আবার চেষ্টা করুন।</translation> <translation id="5948291296578561264">এর ফলে আপনি ফটো লাইব্রেরিতে ফটো সেভ করতে পারবেন।</translation> +<translation id="5951816930277761335">লিঙ্ক শেয়ার করুন</translation> <translation id="5955891643922670672">অফলাইন ভার্সন দেখছেন</translation> <translation id="5957613098218939406">আরও বিকল্পগুলি</translation> <translation id="5963939892571022323">হাইলাইট করা টেক্সটের লিঙ্ক তৈরি করা যায়নি।</translation> @@ -637,6 +658,7 @@ <translation id="6189413832092199491">অপঠিত</translation> <translation id="6196207969502475924">ভয়েস সার্চ</translation> <translation id="6202364442240589072">{COUNT,plural, =1{{COUNT}টি ট্যাব বন্ধ করুন}one{{COUNT}টি ট্যাব বন্ধ করুন}other{{COUNT}টি ট্যাব বন্ধ করুন}}</translation> +<translation id="6219550825416862075">আপনাকে আবার স্বাগত জানাই</translation> <translation id="6219688215832490856">কখনও অনুবাদ করবেন না</translation> <translation id="6223816392543092032">আপনার সবকটি ডিভাইসে বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংস পান।</translation> <translation id="6231782223312638214">সুপারিশকৃত</translation> @@ -724,6 +746,7 @@ ছদ্মবেশী মোডে থাকলে বিভিন্ন সাইট আপনার ব্রাউজিং অ্যাক্টিভিটি ট্র্যাক করার জন্য কুকি ব্যবহার করতে পারে না, যেমন পছন্দসই বিজ্ঞাপন দেখাতে।</translation> <translation id="6674571176963658787">সিঙ্ক শুরু করতে, আপনার পাসফ্রেজ লিখুন</translation> <translation id="667999046851023355">দস্তাবেজ</translation> +<translation id="6684906340059221832">দাম ট্র্যাক করা হচ্ছে</translation> <translation id="6710079714193676716">আপনার সংস্থা এটি ম্যানেজ করে। কিছু ফিচার হয়ত উপলভ্য নয়। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> <translation id="6713747756340119864">Google অ্যাপ্লিকেশানগুলি</translation> <translation id="6730682669179532099">পাসওয়ার্ড এক্সপোর্ট করা যাচ্ছে না</translation> @@ -757,6 +780,7 @@ <translation id="6945221475159498467">নির্বাচন</translation> <translation id="6965382102122355670">ঠিক আছে</translation> <translation id="6973630695168034713">ফোল্ডারগুলি</translation> +<translation id="6975148662438928529">আপনার iPad রিসেটের অংশ হিসেবে আপনার অ্যাকাউন্ট <ph name="USER_NAME" /> থেকে সাইন-আউট হয়ে গেছেন। সাইন-ইন করার জন্য নিচে 'চালিয়ে যান' বোতামে ট্যাপ করুন।</translation> <translation id="6979158407327259162">Google Drive</translation> <translation id="6988572888918530647">আপনার Google অ্যাকাউন্ট ম্যানেজ করুন</translation> <translation id="6989674195860388998">"সেটিংস"-এ যান…</translation> @@ -790,12 +814,16 @@ <translation id="7265758999917665941">এই সাইটের জন্য কখনই নয়</translation> <translation id="7272437679830969316">আপনার পরিচয় যাচাই করা যাবে না। পাসওয়ার্ড কপি করা হয়নি।</translation> <translation id="7291368939935408496">পাসওয়ার্ড তৈরি করা হচ্ছে...</translation> +<translation id="730958329302570991">Google Password Manager-এ যেকোনও সময় সহজেই সাইটের পাসওয়ার্ড যোগ করুন।</translation> <translation id="7313347584264171202">আপনি এখানে নিজের ছদ্মবেশী ট্যাবগুলি খুঁজে পাবেন</translation> +<translation id="7315813263062036945">সবচেয়ে উপরে বাঁদিকে, সার্চ আইকনে ট্যাপ করুন</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> শতাংশ ডাউনলোড হয়েছে</translation> <translation id="7340958967809483333">Discover-এর বিকল্প</translation> <translation id="7346909386216857016">ঠিক আছে, বুঝেছি</translation> <translation id="734758817008927353">কার্ড সেভ করার বিকল্প দেখার বোতাম</translation> +<translation id="7351537303876921605">সংশ্লিষ্ট মেনুতে 'লিঙ্ক তৈরি করুন' বিকল্পে ট্যাপ করুন</translation> <translation id="7353432112255316844">নিজের পরিচয় যাচাই করুন</translation> +<translation id="7356359962760467032">দাম ট্র্যাক করা বন্ধ করুন</translation> <translation id="7383797227493018512">পড়ার সূচি খুলুন</translation> <translation id="7398893703713203428">লিঙ্ক তৈরি করুন</translation> <translation id="739941347996872055">আগের ট্যাব</translation> @@ -816,6 +844,7 @@ <translation id="750493650310597496">০টি নির্বাচিত</translation> <translation id="7508728395076009983">আপনার 'ছদ্মবেশী' ট্যাব লক করতে 'টাচ আইডি', 'ফেস আইডি' বা 'পাসকোড' সেট করুন।</translation> <translation id="7514365320538308">ডাউনলোড করুন</translation> +<translation id="7531345132340165516">বর্তমান সাইট</translation> <translation id="7537586195939242955">দুঃখিত, এই সময়ে পাসবুকে আপনার পাস ইনস্টল করা যাবে না৷</translation> <translation id="7554791636758816595">নতুন ট্যাব</translation> <translation id="7561196759112975576">সবসময়</translation> @@ -826,6 +855,7 @@ <translation id="7638584964844754484">ত্রুটিপূর্ণ পাসফ্রেজ</translation> <translation id="7646263789464975852">মেনু → সেটিংস → নিরাপত্তা সংক্রান্ত পরীক্ষা</translation> <translation id="7646772052135772216">পাসওয়ার্ড সিঙ্ক ফিচার কাজ করছে না</translation> +<translation id="764827086632467055">'ডিফল্ট ব্রাউজার অ্যাপ' বিকল্পে ট্যাপ করুন</translation> <translation id="7649070708921625228">সহায়তা</translation> <translation id="7658239707568436148">বাতিল</translation> <translation id="7671141431838911305">ইনস্টল করুন</translation> @@ -848,6 +878,7 @@ <translation id="784551991304901159">কন্টেন্ট দেখার জন্য, 'মেনু থেকে চালু করুন' বিকল্প বেছে নিন</translation> <translation id="7853202427316060426">ক্রিয়াকলাপ</translation> <translation id="7856733331829174190">ডাউনলোড করা যায়নি</translation> +<translation id="785938070103630874">পাসওয়ার্ড, পেমেন্ট পদ্ধতি, অ্যাড্রেস এবং আরও অনেক কিছু খুলুন</translation> <translation id="7859704718976024901">ব্রাউজিং ইতিহাস</translation> <translation id="7884694604461143138">সার্চ ইতিহাস (<ph name="COUNT" />টি পাওয়া গেছে)</translation> <translation id="7887198238286927132">আপনার গোপনীয়তা রক্ষার জন্য, Chrome এই ক্ষেত্রটি নিজে থেকে পূরণ করবে না।</translation> @@ -867,6 +898,7 @@ <translation id="7971521879845308059">পপ-আপগুলি অবরুদ্ধ করুন</translation> <translation id="797413074872316787">ডিভাইস জুড়ে সিঙ্ক করতে এবং নিজের মতো সাজিয়ে নিতে সিঙ্ক বিকল্পটি চালু করুন।</translation> <translation id="7978018860671536736">৩. অটোফিল পাসওয়ার্ড বিকল্পে ট্যাপ করুন</translation> +<translation id="7981908678811807838">এই সাইটের জন্য দাম ট্র্যাক করার সুবিধা উপলভ্য নেই।</translation> <translation id="7982789257301363584">নেটওয়ার্ক</translation> <translation id="7987685713885608670">অতিরিক্ত নিরাপত্তার জন্য, Google পাসওয়ার্ড ম্যানেজারে সেভ করার আগে আপনার ডিভাইসে পাসওয়ার্ড এনক্রিপ্ট করুন।</translation> <translation id="7993619969781047893">কিছু কিছু সাইটের ফিচারগুলি কাজ নাও করতে পারে</translation> @@ -902,11 +934,13 @@ <translation id="8237382152611443140">অটোফিল পাসওয়ার্ড সেটিংস খুলুন</translation> <translation id="8261506727792406068">মুছুন</translation> <translation id="8271720166617117963">অ্যাক্সেপ্ট করে সাইন-ইন করুন</translation> +<translation id="8278938988428169257">শব্দ বা বাক্যাংশ লিখুন</translation> <translation id="8281781826761538115">ডিফল্ট - <ph name="DEFAULT_LOCALE" /></translation> <translation id="8281886186245836920">ছেড়ে যান</translation> <translation id="8283172974887967105">সেট করুন…</translation> <translation id="8299417921174340354">পাসওয়ার্ড ব্যবহার করার জন্য, আপনাকে ডিভাইসে প্রথমে একটি পাসকোড সেট করতে হবে।</translation> <translation id="8299613349954694191">গোপনে ওয়েব ব্রাউজ করতে ছদ্মবেশী ট্যাব খুলুন।</translation> +<translation id="8316944564970119719">সাইট এবং পাসওয়ার্ড লিখুন তারপরে সেভ করুন</translation> <translation id="8319076807703933069">নতুন ট্যাবে সার্চ করুন</translation> <translation id="8323906514956095947">আরও ট্যাবের বিকল্প দেখতে টাচ করে ধরে থাকুন</translation> <translation id="8328777765163860529">সমস্ত বন্ধ করুন</translation> @@ -934,6 +968,7 @@ <translation id="8533670235862049797">Safe Browsing চালু আছে</translation> <translation id="8534481786647257214">Google+ পোষ্ট সম্পূর্ণ হয়েছে৷</translation> <translation id="8548878600947630424">পৃষ্ঠাটি খুঁজুন...</translation> +<translation id="8558480467877843976">এখন থেকে আপনি চাইলে মেসেজ, ডকুমেন্ট এবং অন্যান্য অ্যাপে থাকা লিঙ্ক ব্রাউজ বা ট্যাপ করে তা যেকোনও সময় Chrome খুলতে পারেন।</translation> <translation id="8588404856427128947">বন্ধ করা আছে</translation> <translation id="8590913940444621808">আর কখনো দেখতে চাই না</translation> <translation id="8591976964826315682">'ছদ্মবেশী' মোডে থার্ড-পার্টি কুকি ব্লক করুন</translation> @@ -951,6 +986,8 @@ <translation id="8721297211384281569">টুল মেনু</translation> <translation id="8725066075913043281">আবার চেষ্টা করুন</translation> <translation id="8730621377337864115">হয়ে গেছে</translation> +<translation id="8731388423028622182">আপনার iPhone রিসেটের অংশ হিসেবে আপনার অ্যাকাউন্ট <ph name="USER_NAME" /> থেকে সাইন-আউট হয়ে গেছেন। সাইন-ইন করার জন্য নিচে 'চালিয়ে যান' বোতামে ট্যাপ করুন।</translation> +<translation id="87371078663613140">মেনু বারে বিকল্প দেখুন</translation> <translation id="8741995161408053644"><ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" />-এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিং ইতিহাস থাকতে পারে।</translation> <translation id="8750037785291841318">আপনি নিজের ট্যাবগুলি এখানে খুঁজে পাবেন</translation> <translation id="8756969031206844760">পাসওয়ার্ড আপডেট করবেন?</translation> @@ -968,10 +1005,13 @@ <translation id="8868471676553493380">{count,plural, =1{{count}টি ট্যাব}one{{count}টি ট্যাব}other{{count}টি ট্যাব}}</translation> <translation id="8870413625673593573">সম্প্রতি বন্ধ হয়েছে</translation> <translation id="8876882697946675716">আপনার ডিভাইস সিঙ্ক করে রাখুন</translation> +<translation id="8877287418679067891">সেটিংসে এটিকে ডিফল্ট হিসেবে সেট করুন…</translation> <translation id="8881801611828450202">এই ইমেজটির জন্য <ph name="SEARCH_ENGINE" />-এ খুঁজুন</translation> <translation id="8891935667620843985">Chrome-কে আপনার ডিফল্ট ব্রাউজার অ্যাপ হিসেবে সেট করে এতে অটোমেটিক লিঙ্ক খুলতে পারবেন।</translation> <translation id="8898822736010347272">আপনার দেখা কিছু পৃষ্ঠার ইউআরএল, সীমিত সিস্টেম সম্পর্কিত তথ্য এবং কিছু পৃষ্ঠার কন্টেন্ট Google-এর কাছে পাঠান যাতে নতুন ঝুঁকি চিহ্নিত করে ওয়েব ব্যবহারকারীর প্রত্যেককে সুরক্ষিত রাখা যায়।</translation> <translation id="8909135823018751308">শেয়ার করুন...</translation> +<translation id="8911759861431145525">'যোগ করুন' বিকল্পে ট্যাপ করে আপনার তথ্য লিখুন</translation> +<translation id="891658175948553296">সাইটে টেক্সট হাইলাইট করুন</translation> <translation id="8917490105272468696">হ্যাঁ, আমি রাজি</translation> <translation id="8928133177108699615">ডেস্কটপ</translation> <translation id="8952559610785099500">পাসওয়ার্ড যোগ করুন</translation> @@ -1009,6 +1049,7 @@ <translation id="9203116392574189331">Handoff</translation> <translation id="9223358826628549784">ক্র্যাশ রিপোর্ট পাঠানো হয়েছে৷</translation> <translation id="952704832371081537">বাতিল করুন</translation> +<translation id="953008885340860025">Chrome থেকে সাইন-আউট হয়ে গেছেন</translation> <translation id="959066944189734975">আপনি <ph name="CHANNEL_NAME" /> ফলো করছেন</translation> <translation id="981498610235328462">শুধুমাত্র নির্দিষ্ট অ্যাকাউন্টের মাধ্যমেই আপনার সংস্থা সাইন-ইন করার অনুমতি দেবে। অনুমোদন করা নেই এমন অ্যাকাউন্ট লুকানো আছে।</translation> <translation id="984509647832111802">সিঙ্ক কাজ করছে না।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index 79c42c0..64a19d6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -434,6 +434,7 @@ <translation id="4502566650163919158">Suriin Ngayon</translation> <translation id="4505980578794259603">Huling nasuri noong <ph name="TIME" />.</translation> <translation id="4508750114462689118">Isara ang promo sa pag-sign in</translation> +<translation id="4520798012560649652">Matuto pa tungkol sa Incognito mode</translation> <translation id="4526249700380860531">Tingnan at pamahalaan ang mga naka-save na password sa <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="452750746583162491">Suriin ang iyong naka-sync na data</translation> <translation id="4536418791685807335">Subukang mag-sign in muli.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index f4de927..b26418b8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -434,6 +434,7 @@ <translation id="4502566650163919158">ახლავე შემოწმება</translation> <translation id="4505980578794259603">ბოლო შემოწმება: <ph name="TIME" />.</translation> <translation id="4508750114462689118">შესვლის პრომო-ერთეულის დახურვა</translation> +<translation id="4520798012560649652">შეიტყვეთ მეტი ინკოგნიტო რეჟიმის შესახებ</translation> <translation id="4526249700380860531">შენახული პაროლების ნახვა და მართვა შეგიძლიათ აქ: <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="452750746583162491">სინქრონიზებული მონაცემების გადახედვა</translation> <translation id="4536418791685807335">ცადეთ სისტემაში ხელახლა შესვლა.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb index 6f9cb20..e68071f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -434,6 +434,7 @@ <translation id="4502566650163919158">Одоо шалгах</translation> <translation id="4505980578794259603">Сүүлд <ph name="TIME" /> шалгасан.</translation> <translation id="4508750114462689118">Нэвтрэх сурталчилгааг хаах</translation> +<translation id="4520798012560649652">Нууцлалын горимын талаар нэмэлт мэдээлэл авах</translation> <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" />-д хадгалсан нууц үгээ нээж, удирдах</translation> <translation id="452750746583162491">Синк хийсэн өгөгдлөө шалгах</translation> <translation id="4536418791685807335">Дахин нэвтрэхээр оролдоно уу.</translation>
diff --git a/ios/chrome/browser/DEPS b/ios/chrome/browser/DEPS index 4a2cba49..68e9054 100644 --- a/ios/chrome/browser/DEPS +++ b/ios/chrome/browser/DEPS
@@ -148,6 +148,7 @@ "+services/network/network_context.h", "+services/network/public/mojom", "+services/network/public/cpp", + "+third_party/crashpad/crashpad/client", "+third_party/breakpad/breakpad/src/client/ios", "+third_party/breakpad/breakpad/src/common", "+third_party/libaddressinput",
diff --git a/ios/chrome/browser/autofill/BUILD.gn b/ios/chrome/browser/autofill/BUILD.gn index affaf74c..4186ea4 100644 --- a/ios/chrome/browser/autofill/BUILD.gn +++ b/ios/chrome/browser/autofill/BUILD.gn
@@ -58,7 +58,6 @@ "//ios/chrome/browser/passwords:passwords_generation_utils", "//ios/chrome/browser/signin", "//ios/chrome/browser/ui/image_util", - "//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util:util_swift", "//ios/chrome/browser/webdata_services", "//ios/web/common", @@ -552,7 +551,6 @@ "//ios/chrome/browser/ui/bubble:features", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/settings:test_support", - "//ios/chrome/browser/ui/util", "//ios/chrome/browser/web:web_internal", "//ios/chrome/browser/webdata_services", "//ios/chrome/test:test_support",
diff --git a/ios/chrome/browser/autofill/form_structure_browsertest.mm b/ios/chrome/browser/autofill/form_structure_browsertest.mm index d999adc..8c6a9cb 100644 --- a/ios/chrome/browser/autofill/form_structure_browsertest.mm +++ b/ios/chrome/browser/autofill/form_structure_browsertest.mm
@@ -207,8 +207,6 @@ // TODO(crbug.com/1150895) Remove once launched. features::kAutofillParsingPatternProvider, features::kAutofillPageLanguageDetection, - // TODO(crbug.com/1277480): Remove once launched. - features::kAutofillEnableNameSurenameParsing, // TODO(crbug.com/1190334): Remove once launched. autofill::features::kAutofillParseMerchantPromoCodeFields, // TODO(crbug.com/1335549): Remove once launched.
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller.mm b/ios/chrome/browser/autofill/form_suggestion_controller.mm index bc887636..bdaa8b1 100644 --- a/ios/chrome/browser/autofill/form_suggestion_controller.mm +++ b/ios/chrome/browser/autofill/form_suggestion_controller.mm
@@ -16,7 +16,6 @@ #import "ios/chrome/browser/autofill/form_input_navigator.h" #import "ios/chrome/browser/autofill/form_input_suggestions_provider.h" #import "ios/chrome/browser/passwords/password_generation_utils.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/web/common/url_scheme_util.h" #import "ios/web/public/js_messaging/web_frames_manager.h" #import "ios/web/public/ui/crw_web_view_proxy.h"
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm b/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm index 27396c7..6858e68c 100644 --- a/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm +++ b/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm
@@ -20,7 +20,6 @@ #import "ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_mediator.h" #import "ios/chrome/browser/ui/autofill/form_input_accessory/form_suggestion_view.h" #import "ios/chrome/browser/ui/bubble/bubble_features.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/web/public/navigation/navigation_manager.h" #import "ios/web/public/test/fakes/fake_navigation_context.h" #import "ios/web/public/test/fakes/fake_web_frame.h"
diff --git a/ios/chrome/browser/bookmarks/managed_bookmark_service_factory.mm b/ios/chrome/browser/bookmarks/managed_bookmark_service_factory.mm index da1402d3..61b2c1a 100644 --- a/ios/chrome/browser/bookmarks/managed_bookmark_service_factory.mm +++ b/ios/chrome/browser/bookmarks/managed_bookmark_service_factory.mm
@@ -27,16 +27,16 @@ if (!auth_service) return std::string(); - ChromeIdentity* identity = - auth_service->GetPrimaryIdentity(signin::ConsentLevel::kSignin); - if (!identity) - return std::string(); - ios::ChromeIdentityService* identity_service = ios::GetChromeBrowserProvider().GetChromeIdentityService(); if (!identity_service) return std::string(); + id<SystemIdentity> identity = + auth_service->GetPrimaryIdentity(signin::ConsentLevel::kSignin); + if (!identity) + return std::string(); + return base::SysNSStringToUTF8( identity_service->GetCachedHostedDomainForIdentity(identity)); }
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_removal_controller.mm b/ios/chrome/browser/browser_state/chrome_browser_state_removal_controller.mm index 33fbb73..7661a8d 100644 --- a/ios/chrome/browser/browser_state/chrome_browser_state_removal_controller.mm +++ b/ios/chrome/browser/browser_state/chrome_browser_state_removal_controller.mm
@@ -66,13 +66,15 @@ const std::string& gaia_id) { ChromeAccountManagerService* account_manager_service = ChromeAccountManagerServiceFactory::GetForBrowserState(browser_state); - ChromeIdentity* identity = + id<SystemIdentity> identity = account_manager_service->GetIdentityWithGaiaID(gaia_id); - if (![identity userEmail]) + NSString* user_email = identity.userEmail; + if (!user_email.length) return std::string(); + return gaia::ExtractDomainName( - gaia::SanitizeEmail(base::SysNSStringToUTF8([identity userEmail]))); + gaia::SanitizeEmail(base::SysNSStringToUTF8(user_email))); } }
diff --git a/ios/chrome/browser/crash_report/BUILD.gn b/ios/chrome/browser/crash_report/BUILD.gn index 313ac01..b47fce3 100644 --- a/ios/chrome/browser/crash_report/BUILD.gn +++ b/ios/chrome/browser/crash_report/BUILD.gn
@@ -123,6 +123,7 @@ "//testing/gmock", "//testing/gtest", "//third_party/breakpad:client", + "//third_party/crashpad/crashpad/client:common", "//third_party/ocmock", ] }
diff --git a/ios/chrome/browser/crash_report/crash_helper_unittest.mm b/ios/chrome/browser/crash_report/crash_helper_unittest.mm index d25ad57..8e465a4b 100644 --- a/ios/chrome/browser/crash_report/crash_helper_unittest.mm +++ b/ios/chrome/browser/crash_report/crash_helper_unittest.mm
@@ -142,6 +142,10 @@ } TEST_F(BreakpadHelperTest, StartUploadingReportsInRecoveryMode) { + // This is a breakpad only test and can be deprecated once Breakpad is + // removed. + if (crash_helper::common::CanUseCrashpad()) + return; // Test when crash reporter is disabled. crash_helper::SetEnabled(false); crash_helper::StartUploadingReportsInRecoveryMode(); @@ -167,6 +171,11 @@ } TEST_F(BreakpadHelperTest, RestoreDefaultConfiguration) { + // This is a breakpad only test and can be deprecated once Breakpad is + // removed. + if (crash_helper::common::CanUseCrashpad()) + return; + // Test when crash reporter is disabled. crash_helper::SetEnabled(false); crash_helper::RestoreDefaultConfiguration();
diff --git a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm index 2854dae4..968b135 100644 --- a/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm +++ b/ios/chrome/browser/crash_report/crash_reporter_breadcrumb_observer_unittest.mm
@@ -13,12 +13,14 @@ #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #import "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_keyed_service_factory.h" #import "ios/chrome/browser/crash_report/crash_helper.h" +#import "ios/chrome/common/crash_report/crash_helper.h" #import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h" #import "ios/testing/scoped_block_swizzler.h" #import "testing/gtest/include/gtest/gtest.h" #import "testing/gtest_mac.h" #import "testing/platform_test.h" #import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h" +#import "third_party/crashpad/crashpad/client/annotation_list.h" #import "third_party/ocmock/OCMock/OCMock.h" #import "third_party/ocmock/gtest_support.h" @@ -92,6 +94,32 @@ PlatformTest::TearDown(); } + std::string BreadcrumbAnnotations() { + auto* annotations = crashpad::AnnotationList::Get(); + if (!annotations || annotations->begin() == annotations->end()) { + EXPECT_TRUE(false); + return ""; + } + + for (const crashpad::Annotation* annotation : *annotations) { + if (!annotation->is_set()) + continue; + + if (annotation->type() != crashpad::Annotation::Type::kString) + continue; + + const std::string kBreadcrumbs("breadcrumbs"); + if (annotation->name() != kBreadcrumbs) + continue; + + base::StringPiece cp_value(static_cast<const char*>(annotation->value()), + annotation->size()); + return std::string(cp_value); + } + EXPECT_TRUE(false); + return ""; + } + protected: id mock_breakpad_controller_; std::unique_ptr<ScopedBlockSwizzler> @@ -106,6 +134,21 @@ // are collected by the CrashReporterBreadcrumbObserver and attached to crash // reports. TEST_F(CrashReporterBreadcrumbObserverTest, EventsAttachedToCrashReport) { + if (crash_helper::common::CanUseCrashpad()) { + breadcrumbs::BreadcrumbManagerKeyedService* breadcrumb_service = + BreadcrumbManagerKeyedServiceFactory::GetForBrowserState( + chrome_browser_state_.get()); + breadcrumb_service->AddEvent("Breadcrumb Event"); + const std::list<std::string> events = + breadcrumbs::BreadcrumbManager::GetInstance().GetEvents(); + std::string expected_breadcrumbs; + for (const auto& event : events) { + expected_breadcrumbs += event + "\n"; + } + EXPECT_EQ(BreadcrumbAnnotations(), expected_breadcrumbs); + return; + } + [[mock_breakpad_controller_ expect] start:NO]; crash_helper::SetEnabled(true); @@ -151,6 +194,12 @@ [breadcrumbs appendString:@"12:01 Fake Breadcrumb Event/n"]; ASSERT_GT([breadcrumbs length], breadcrumbs::kMaxDataLength); + if (crash_helper::common::CanUseCrashpad()) { + breadcrumb_service->AddEvent(base::SysNSStringToUTF8(breadcrumbs)); + EXPECT_EQ(BreadcrumbAnnotations().size(), breadcrumbs::kMaxDataLength); + return; + } + id validation_block = [OCMArg checkWithBlock:^(id value) { EXPECT_EQ(breadcrumbs::kMaxDataLength, [value length]); return YES; @@ -207,5 +256,20 @@ breadcrumbs::kBreadcrumbsProductDataKey)]; breadcrumb_service_2->AddEvent(event); + if (crash_helper::common::CanUseCrashpad()) { + std::string breadcrumbs = BreadcrumbAnnotations(); + // 1 incognito + EXPECT_NE(breadcrumbs.find("I Breadcrumb Event"), std::string::npos); + // 3 total + auto iter = breadcrumbs.find(event); + int count = 0; + while (iter != std::string::npos) { + count++; + iter = breadcrumbs.find(event, iter + 1); + } + EXPECT_EQ(count, 3); + return; + } + EXPECT_OCMOCK_VERIFY(mock_breakpad_controller_); }
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service.mm b/ios/chrome/browser/credential_provider/credential_provider_service.mm index 1e3ba95..877d7abc 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service.mm +++ b/ios/chrome/browser/credential_provider/credential_provider_service.mm
@@ -285,7 +285,7 @@ } void CredentialProviderService::UpdateAccountId() { - ChromeIdentity* identity = authentication_service_->GetPrimaryIdentity( + id<SystemIdentity> identity = authentication_service_->GetPrimaryIdentity( signin::ConsentLevel::kSignin); if (authentication_service_->HasPrimaryIdentityManaged( signin::ConsentLevel::kSignin)) { @@ -299,15 +299,18 @@ } void CredentialProviderService::UpdateUserEmail() { - ChromeIdentity* identity = - authentication_service_->GetPrimaryIdentity(signin::ConsentLevel::kSync); - - bool sync_enabled = sync_service_->IsSyncFeatureEnabled(); - bool passwords_sync_enabled = + const bool sync_enabled = sync_service_->IsSyncFeatureEnabled(); + const bool passwords_sync_enabled = sync_service_->GetUserSettings()->GetSelectedTypes().Has( syncer::UserSelectableType::kPasswords); - NSString* user_email = - (sync_enabled && passwords_sync_enabled) ? identity.userEmail : nil; + + NSString* user_email = nil; + if (sync_enabled && passwords_sync_enabled) { + id<SystemIdentity> identity = authentication_service_->GetPrimaryIdentity( + signin::ConsentLevel::kSync); + user_email = identity.userEmail; + } + [app_group::GetGroupUserDefaults() setObject:user_email forKey:AppGroupUserDefaultsCredentialProviderUserEmail()];
diff --git a/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm b/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm index e593553b..6ac30b6 100644 --- a/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm +++ b/ios/chrome/browser/credential_provider/credential_provider_service_unittest.mm
@@ -217,7 +217,7 @@ ios::FakeChromeIdentityService* identity_service = ios::FakeChromeIdentityService::GetInstanceFromChromeProvider(); identity_service->AddManagedIdentities(@[ @"Name" ]); - ChromeIdentity* identity = account_manager_service_->GetDefaultIdentity(); + id<SystemIdentity> identity = account_manager_service_->GetDefaultIdentity(); auth_service_->SignIn(identity); ASSERT_TRUE(auth_service_->GetPrimaryIdentity(signin::ConsentLevel::kSignin));
diff --git a/ios/chrome/browser/metrics/BUILD.gn b/ios/chrome/browser/metrics/BUILD.gn index 5b7c132..9a327ac7 100644 --- a/ios/chrome/browser/metrics/BUILD.gn +++ b/ios/chrome/browser/metrics/BUILD.gn
@@ -218,7 +218,6 @@ "//components/google/core/common", "//ios/chrome/browser", "//ios/chrome/browser/browser_state", - "//ios/chrome/browser/ui/util", "//ios/chrome/browser/url:constants", "//ios/chrome/browser/web_state_list", "//ios/web", @@ -254,7 +253,6 @@ "//components/previous_session_info", "//ios/chrome/browser/browser_state:test_support", "//ios/chrome/browser/main:test_support", - "//ios/chrome/browser/ui/util", "//ios/chrome/browser/web_state_list", "//ios/testing:ocmock_support", "//ios/web",
diff --git a/ios/chrome/browser/metrics/user_interface_style_recorder.mm b/ios/chrome/browser/metrics/user_interface_style_recorder.mm index 93b8d79..d18dbc5 100644 --- a/ios/chrome/browser/metrics/user_interface_style_recorder.mm +++ b/ios/chrome/browser/metrics/user_interface_style_recorder.mm
@@ -5,7 +5,6 @@ #import "ios/chrome/browser/metrics/user_interface_style_recorder.h" #import "base/metrics/histogram_functions.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support."
diff --git a/ios/chrome/browser/omaha/BUILD.gn b/ios/chrome/browser/omaha/BUILD.gn index d518b1a..d3df9215 100644 --- a/ios/chrome/browser/omaha/BUILD.gn +++ b/ios/chrome/browser/omaha/BUILD.gn
@@ -20,7 +20,6 @@ "//ios/chrome/browser", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/browser_state_metrics", - "//ios/chrome/browser/ui/util", "//ios/chrome/browser/upgrade", "//ios/chrome/browser/upgrade:public", "//ios/chrome/common",
diff --git a/ios/chrome/browser/omaha/omaha_service.mm b/ios/chrome/browser/omaha/omaha_service.mm index adc3110..6020dc21 100644 --- a/ios/chrome/browser/omaha/omaha_service.mm +++ b/ios/chrome/browser/omaha/omaha_service.mm
@@ -30,7 +30,6 @@ #import "ios/chrome/browser/application_context/application_context.h" #import "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" #import "ios/chrome/browser/browser_state_metrics/browser_state_metrics.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/browser/upgrade/upgrade_constants.h" #import "ios/chrome/browser/upgrade/upgrade_recommended_details.h" #import "ios/chrome/common/channel_info.h"
diff --git a/ios/chrome/browser/passwords/password_controller.mm b/ios/chrome/browser/passwords/password_controller.mm index 80a317a3..fa96f03 100644 --- a/ios/chrome/browser/passwords/password_controller.mm +++ b/ios/chrome/browser/passwords/password_controller.mm
@@ -365,10 +365,10 @@ AuthenticationService* authService = AuthenticationServiceFactory::GetForBrowserState(self.browserState); - ChromeIdentity* authenticatedIdentity = + id<SystemIdentity> authenticatedIdentity = authService->GetPrimaryIdentity(signin::ConsentLevel::kSignin); - return [authenticatedIdentity userEmail]; + return authenticatedIdentity.userEmail; } // The dispatcher used for ApplicationCommands. @@ -451,13 +451,13 @@ AuthenticationService* authService = AuthenticationServiceFactory::GetForBrowserState(self.browserState); - ChromeIdentity* authenticatedIdentity = + id<SystemIdentity> authenticatedIdentity = authService->GetPrimaryIdentity(signin::ConsentLevel::kSignin); switch (type) { case PasswordInfoBarType::SAVE: { auto delegate = std::make_unique<IOSChromeSavePasswordInfoBarDelegate>( - [authenticatedIdentity userEmail], isSyncUser, + authenticatedIdentity.userEmail, isSyncUser, /*password_update*/ false, std::move(form)); delegate->set_handler(self.applicationCommandsHandler); @@ -486,7 +486,7 @@ } auto delegate = std::make_unique<IOSChromeSavePasswordInfoBarDelegate>( - [authenticatedIdentity userEmail], isSyncUser, + authenticatedIdentity.userEmail, isSyncUser, /*password_update*/ true, std::move(form)); delegate->set_handler(self.applicationCommandsHandler); // If manual save, skip showing banner.
diff --git a/ios/chrome/browser/policy/reporting/profile_report_generator_ios.mm b/ios/chrome/browser/policy/reporting/profile_report_generator_ios.mm index d3fc074..776ac4e 100644 --- a/ios/chrome/browser/policy/reporting/profile_report_generator_ios.mm +++ b/ios/chrome/browser/policy/reporting/profile_report_generator_ios.mm
@@ -44,7 +44,7 @@ return; } - ChromeIdentity* account_info = + id<SystemIdentity> account_info = AuthenticationServiceFactory::GetForBrowserState(browser_state_) ->GetPrimaryIdentity(signin::ConsentLevel::kSignin); auto* signed_in_user_info = report->mutable_chrome_signed_in_user();
diff --git a/ios/chrome/browser/policy/reporting/profile_report_generator_ios_unittest.mm b/ios/chrome/browser/policy/reporting/profile_report_generator_ios_unittest.mm index ae15928e..8ed24b9 100644 --- a/ios/chrome/browser/policy/reporting/profile_report_generator_ios_unittest.mm +++ b/ios/chrome/browser/policy/reporting/profile_report_generator_ios_unittest.mm
@@ -99,7 +99,8 @@ ios::FakeChromeIdentityService* identity_service = ios::FakeChromeIdentityService::GetInstanceFromChromeProvider(); identity_service->AddIdentities(@[ base::SysUTF8ToNSString(kAccount) ]); - ChromeIdentity* identity = account_manager_service_->GetDefaultIdentity(); + id<SystemIdentity> identity = + account_manager_service_->GetDefaultIdentity(); authentication_service_->SignIn(identity); }
diff --git a/ios/chrome/browser/signin/authentication_service.mm b/ios/chrome/browser/signin/authentication_service.mm index 071410b..1710600 100644 --- a/ios/chrome/browser/signin/authentication_service.mm +++ b/ios/chrome/browser/signin/authentication_service.mm
@@ -602,9 +602,10 @@ return; } - ChromeIdentity* authenticated_identity = + id<SystemIdentity> authenticated_identity = GetPrimaryIdentity(signin::ConsentLevel::kSignin); - if (authenticated_identity && authenticated_identity != invalid_identity) { + if (authenticated_identity && + ![authenticated_identity isEqual:invalid_identity]) { // `authenticated_identity` exists and is a valid identity. Nothing to do // here. return;
diff --git a/ios/chrome/browser/signin/chrome_account_manager_service_observer_bridge_unittest.mm b/ios/chrome/browser/signin/chrome_account_manager_service_observer_bridge_unittest.mm index 95ca587..d72e2eb 100644 --- a/ios/chrome/browser/signin/chrome_account_manager_service_observer_bridge_unittest.mm +++ b/ios/chrome/browser/signin/chrome_account_manager_service_observer_bridge_unittest.mm
@@ -7,6 +7,7 @@ #import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #import "ios/chrome/browser/signin/chrome_account_manager_service.h" #import "ios/chrome/browser/signin/chrome_account_manager_service_factory.h" +#import "ios/public/provider/chrome/browser/signin/fake_chrome_identity.h" #import "ios/web/public/test/web_task_environment.h" #import "testing/platform_test.h" #import "third_party/ocmock/OCMock/OCMock.h" @@ -55,7 +56,7 @@ // Tests that `onIdentityChanged` is forwarded. TEST_F(ChromeAccountManagerServiceObserverBridgeTest, onIdentityChanged) { - ChromeIdentity* identity = [[ChromeIdentity alloc] init]; + id<SystemIdentity> identity = [FakeChromeIdentity fakeIdentity1]; OCMExpect([test_observer_ identityChanged:identity]); observer_bridge_->OnIdentityChanged(identity);
diff --git a/ios/chrome/browser/signin/device_accounts_provider_impl.mm b/ios/chrome/browser/signin/device_accounts_provider_impl.mm index dd9c255..f32a18a 100644 --- a/ios/chrome/browser/signin/device_accounts_provider_impl.mm +++ b/ios/chrome/browser/signin/device_accounts_provider_impl.mm
@@ -79,7 +79,7 @@ ios::ChromeIdentityService* identity_service = ios::GetChromeBrowserProvider().GetChromeIdentityService(); NSArray* identities = account_manager_service_->GetAllIdentities(); - for (ChromeIdentity* identity in identities) { + for (id<SystemIdentity> identity in identities) { accounts.push_back(GetAccountInfo(identity, identity_service)); } return accounts;
diff --git a/ios/chrome/browser/signin/resized_avatar_cache_unittest.mm b/ios/chrome/browser/signin/resized_avatar_cache_unittest.mm index 3cbbc209..842fcc0 100644 --- a/ios/chrome/browser/signin/resized_avatar_cache_unittest.mm +++ b/ios/chrome/browser/signin/resized_avatar_cache_unittest.mm
@@ -34,8 +34,8 @@ ios::FakeChromeIdentityService* identity_service_ = nil; ResizedAvatarCache* resized_avatar_cache_ = nil; - ChromeIdentity* identity1_ = nil; - ChromeIdentity* identity2_ = nil; + id<SystemIdentity> identity1_ = nil; + id<SystemIdentity> identity2_ = nil; }; // Tests that the default avatar is the same between 2 identities.
diff --git a/ios/chrome/browser/sync/ios_trusted_vault_client.h b/ios/chrome/browser/sync/ios_trusted_vault_client.h index be6092e..02e8a56 100644 --- a/ios/chrome/browser/sync/ios_trusted_vault_client.h +++ b/ios/chrome/browser/sync/ios_trusted_vault_client.h
@@ -7,9 +7,9 @@ #include "components/sync/driver/trusted_vault_client.h" -@class ChromeIdentity; class ChromeAccountManagerService; class TrustedVaultClientBackend; +@protocol SystemIdentity; // iOS version of TrustedVaultClient. This class uses the Chrome trusted vault // service to store the shared keys. @@ -46,7 +46,7 @@ private: // Returns the identity for `account_info`. - ChromeIdentity* IdentityForAccount(const CoreAccountInfo& account_info); + id<SystemIdentity> IdentityForAccount(const CoreAccountInfo& account_info); ChromeAccountManagerService* const account_manager_service_ = nullptr; TrustedVaultClientBackend* const backend_ = nullptr;
diff --git a/ios/chrome/browser/sync/ios_trusted_vault_client.mm b/ios/chrome/browser/sync/ios_trusted_vault_client.mm index 5fa95fa..5bdc7fe 100644 --- a/ios/chrome/browser/sync/ios_trusted_vault_client.mm +++ b/ios/chrome/browser/sync/ios_trusted_vault_client.mm
@@ -78,7 +78,7 @@ // on iOS. } -ChromeIdentity* IOSTrustedVaultClient::IdentityForAccount( +id<SystemIdentity> IOSTrustedVaultClient::IdentityForAccount( const CoreAccountInfo& account_info) { return account_manager_service_->GetIdentityWithGaiaID(account_info.gaia); }
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm b/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm index f9708e7..8ca69e6 100644 --- a/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm +++ b/ios/chrome/browser/ui/activity_services/activity_service_histograms.mm
@@ -61,7 +61,9 @@ NativeSocialApp = 14, ThirdPartyMessagingApp = 15, ThirdPartyContentApp = 16, - kMaxValue = ThirdPartyContentApp + SaveFile = 17, + Markup = 18, + kMaxValue = Markup }; ShareActionType MapActionType(ActivityType type) { @@ -79,6 +81,12 @@ case activity_type_util::NATIVE_SAVE_IMAGE: return ShareActionType::SaveImage; + case activity_type_util::NATIVE_SAVE_FILE: + return ShareActionType::SaveFile; + + case activity_type_util::NATIVE_MARKUP: + return ShareActionType::Markup; + case activity_type_util::FIND_IN_PAGE: return ShareActionType::FindInPage;
diff --git a/ios/chrome/browser/ui/activity_services/activity_type_util.h b/ios/chrome/browser/ui/activity_services/activity_type_util.h index 9c90c9f8..a5f3642 100644 --- a/ios/chrome/browser/ui/activity_services/activity_type_util.h +++ b/ios/chrome/browser/ui/activity_services/activity_type_util.h
@@ -45,6 +45,8 @@ THIRD_PARTY_INSTAPAPER, SEND_TAB_TO_SELF, GENERATE_QR_CODE, + NATIVE_SAVE_FILE, + NATIVE_MARKUP, // UNKNOWN must be the last type. UNKNOWN, };
diff --git a/ios/chrome/browser/ui/activity_services/activity_type_util.mm b/ios/chrome/browser/ui/activity_services/activity_type_util.mm index 2d14feb..fb03080 100644 --- a/ios/chrome/browser/ui/activity_services/activity_type_util.mm +++ b/ios/chrome/browser/ui/activity_services/activity_type_util.mm
@@ -31,6 +31,8 @@ {NATIVE_WEIBO, @"com.apple.UIKit.activity.PostToWeibo", true}, {NATIVE_CLIPBOARD, @"com.apple.UIKit.activity.CopyToPasteboard", true}, {NATIVE_SAVE_IMAGE, @"com.apple.UIKit.activity.SaveToCameraRoll", true}, + {NATIVE_SAVE_FILE, @"com.apple.DocumentManagerUICore.SaveToFiles", true}, + {NATIVE_MARKUP, @"com.apple.UIKit.activity.MarkupAsPDF", true}, {NATIVE_PRINT, @"com.apple.UIKit.activity.Print", true}, {PRINT, @"com.google.chrome.printActivity", true}, {FIND_IN_PAGE, @"com.google.chrome.FindInPageActivityType", true}, @@ -93,6 +95,12 @@ case NATIVE_SAVE_IMAGE: base::RecordAction(base::UserMetricsAction("MobileShareMenuSaveImage")); break; + case NATIVE_SAVE_FILE: + base::RecordAction(base::UserMetricsAction("MobileShareMenuSaveFile")); + break; + case NATIVE_MARKUP: + base::RecordAction(base::UserMetricsAction("MobileShareMenuMarkupPDF")); + break; case FIND_IN_PAGE: base::RecordAction(base::UserMetricsAction("MobileShareMenuFindInPage")); break;
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow.h b/ios/chrome/browser/ui/authentication/authentication_flow.h index eb37029..a61f393 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow.h +++ b/ios/chrome/browser/ui/authentication/authentication_flow.h
@@ -13,8 +13,8 @@ @class AuthenticationFlowPerformer; class Browser; @protocol BrowsingDataCommands; -@class ChromeIdentity; @class UIViewController; +@protocol SystemIdentity; // Handles completion of AuthenticationFlow operations. @protocol AuthenticationFlowDelegate <NSObject> @@ -40,7 +40,7 @@ // signed in. // * `presentingViewController` is the top presented view controller. - (instancetype)initWithBrowser:(Browser*)browser - identity:(ChromeIdentity*)identity + identity:(id<SystemIdentity>)identity postSignInAction:(PostSignInAction)postSignInAction presentingViewController:(UIViewController*)presentingViewController NS_DESIGNATED_INITIALIZER; @@ -67,7 +67,7 @@ @property(nonatomic, weak) id<AuthenticationFlowDelegate> delegate; // Identity to sign-in. -@property(nonatomic, strong, readonly) ChromeIdentity* identity; +@property(nonatomic, strong, readonly) id<SystemIdentity> identity; @end
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow.mm b/ios/chrome/browser/ui/authentication/authentication_flow.mm index 25e9420e..6051dda0 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow.mm +++ b/ios/chrome/browser/ui/authentication/authentication_flow.mm
@@ -104,7 +104,7 @@ BOOL _shouldFetchUserPolicy; Browser* _browser; - ChromeIdentity* _identityToSignIn; + id<SystemIdentity> _identityToSignIn; NSString* _identityToSignInHostedDomain; // Token to have access to user policies from dmserver. @@ -120,11 +120,12 @@ @synthesize handlingError = _handlingError; @synthesize dispatcher = _dispatcher; +@synthesize identity = _identityToSignIn; #pragma mark - Public methods - (instancetype)initWithBrowser:(Browser*)browser - identity:(ChromeIdentity*)identity + identity:(id<SystemIdentity>)identity postSignInAction:(PostSignInAction)postSignInAction presentingViewController:(UIViewController*)presentingViewController { if ((self = [super init])) { @@ -174,10 +175,6 @@ _presentingViewController = presentingViewController; } -- (ChromeIdentity*)identity { - return _identityToSignIn; -} - #pragma mark - State machine management - (AuthenticationState)nextStateFailedOrCancelled { @@ -404,7 +401,7 @@ } - (void)checkSigninSteps { - ChromeIdentity* currentIdentity = + id<SystemIdentity> currentIdentity = AuthenticationServiceFactory::GetForBrowserState( _browser->GetBrowserState()) ->GetPrimaryIdentity(signin::ConsentLevel::kSignin); @@ -415,7 +412,7 @@ } } -- (void)signInIdentity:(ChromeIdentity*)identity { +- (void)signInIdentity:(id<SystemIdentity>)identity { ChromeBrowserState* browserState = _browser->GetBrowserState(); ChromeAccountManagerService* accountManagerService = ChromeAccountManagerServiceFactory::GetForBrowserState(browserState);
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.h b/ios/chrome/browser/ui/authentication/authentication_flow_performer.h index 7b0df39..eaa7e2fc 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.h +++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.h
@@ -13,7 +13,7 @@ class Browser; @protocol BrowsingDataCommands; class ChromeBrowserState; -@class ChromeIdentity; +@protocol SystemIdentity; // Performs the sign-in steps and user interactions as part of the sign-in flow. @interface AuthenticationFlowPerformer : NSObject @@ -34,10 +34,10 @@ // Fetches the managed status for `identity`. - (void)fetchManagedStatus:(ChromeBrowserState*)browserState - forIdentity:(ChromeIdentity*)identity; + forIdentity:(id<SystemIdentity>)identity; // Signs `identity` with `hostedDomain` into `browserState`. -- (void)signInIdentity:(ChromeIdentity*)identity +- (void)signInIdentity:(id<SystemIdentity>)identity withHostedDomain:(NSString*)hostedDomain toBrowserState:(ChromeBrowserState*)browserState; @@ -52,7 +52,7 @@ // that of `identity` or cancel sign-in, sending `didChooseClearDataPolicy:` // or `didChooseCancel` to the delegate when complete according to the user // action. -- (void)promptMergeCaseForIdentity:(ChromeIdentity*)identity +- (void)promptMergeCaseForIdentity:(id<SystemIdentity>)identity browser:(Browser*)browser viewController:(UIViewController*)viewController; @@ -64,7 +64,7 @@ // Determines whether the user must decide what to do with `identity`'s browsing // data before signing into `browserState`. -- (BOOL)shouldHandleMergeCaseForIdentity:(ChromeIdentity*)identity +- (BOOL)shouldHandleMergeCaseForIdentity:(id<SystemIdentity>)identity browserState:(ChromeBrowserState*)browserState; // Shows a confirmation dialog for signing in to an account managed by @@ -80,12 +80,12 @@ browser:(Browser*)browser; - (void)registerUserPolicy:(ChromeBrowserState*)browserState - forIdentity:(ChromeIdentity*)identity; + forIdentity:(id<SystemIdentity>)identity; - (void)fetchUserPolicy:(ChromeBrowserState*)browserState withDmToken:(NSString*)dmToken clientID:(NSString*)clientID - identity:(ChromeIdentity*)identity; + identity:(id<SystemIdentity>)identity; @property(nonatomic, weak, readonly) id<AuthenticationFlowPerformerDelegate> delegate;
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm index f8e8f521..7fccea08 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm +++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
@@ -100,7 +100,7 @@ } - (void)fetchManagedStatus:(ChromeBrowserState*)browserState - forIdentity:(ChromeIdentity*)identity { + forIdentity:(id<SystemIdentity>)identity { ios::ChromeIdentityService* identityService = ios::GetChromeBrowserProvider().GetChromeIdentityService(); NSString* hostedDomain = @@ -122,7 +122,7 @@ }); } -- (void)signInIdentity:(ChromeIdentity*)identity +- (void)signInIdentity:(id<SystemIdentity>)identity withHostedDomain:(NSString*)hostedDomain toBrowserState:(ChromeBrowserState*)browserState { AuthenticationServiceFactory::GetForBrowserState(browserState) @@ -144,7 +144,7 @@ /*force_clear_browsing_data=*/false, nil); } -- (void)promptMergeCaseForIdentity:(ChromeIdentity*)identity +- (void)promptMergeCaseForIdentity:(id<SystemIdentity>)identity browser:(Browser*)browser viewController:(UIViewController*)viewController { DCHECK(browser); @@ -175,7 +175,7 @@ base::SysUTF8ToNSString(primaryAccountInfo.hosted_domain); [self promptSwitchFromManagedEmail:lastSyncingEmail withHostedDomain:hostedDomain - toEmail:[identity userEmail] + toEmail:identity.userEmail viewController:viewController browser:browser]; return; @@ -185,7 +185,7 @@ delegate:self importDataDelegate:self fromEmail:lastSyncingEmail - toEmail:[identity userEmail]]; + toEmail:identity.userEmail]; [_delegate presentViewController:_navigationController animated:YES completion:nil]; @@ -241,15 +241,16 @@ }]; } -- (BOOL)shouldHandleMergeCaseForIdentity:(ChromeIdentity*)identity +- (BOOL)shouldHandleMergeCaseForIdentity:(id<SystemIdentity>)identity browserState:(ChromeBrowserState*)browserState { - CoreAccountId lastSignedInAccountId = CoreAccountId::FromString( + const std::string currentSignedInEmail = + base::SysNSStringToUTF8(identity.userEmail); + const CoreAccountId lastSignedInAccountId = CoreAccountId::FromString( browserState->GetPrefs()->GetString(prefs::kGoogleServicesLastAccountId)); - CoreAccountId currentSignedInAccountId = + const CoreAccountId currentSignedInAccountId = IdentityManagerFactory::GetForBrowserState(browserState) - ->PickAccountIdForAccount( - base::SysNSStringToUTF8([identity gaiaID]), - base::SysNSStringToUTF8([identity userEmail])); + ->PickAccountIdForAccount(base::SysNSStringToUTF8(identity.gaiaID), + currentSignedInEmail); if (!lastSignedInAccountId.empty()) { // Merge case exists if the id of the previously signed in account is // different from the one of the account being signed in. @@ -258,10 +259,8 @@ // kGoogleServicesLastAccountId pref might not have been populated yet, // check the old kGoogleServicesLastUsername pref. - std::string lastSignedInEmail = + const std::string lastSignedInEmail = browserState->GetPrefs()->GetString(prefs::kGoogleServicesLastUsername); - std::string currentSignedInEmail = - base::SysNSStringToUTF8([identity userEmail]); return !lastSignedInEmail.empty() && !gaia::AreEmailsSame(currentSignedInEmail, lastSignedInEmail); } @@ -358,14 +357,14 @@ } - (void)registerUserPolicy:(ChromeBrowserState*)browserState - forIdentity:(ChromeIdentity*)identity { + forIdentity:(id<SystemIdentity>)identity { // Should only fetch user policies when the feature is enabled. DCHECK(policy::IsUserPolicyEnabled()); - std::string userEmail = base::SysNSStringToUTF8([identity userEmail]); + std::string userEmail = base::SysNSStringToUTF8(identity.userEmail); CoreAccountId accountID = IdentityManagerFactory::GetForBrowserState(browserState) - ->PickAccountIdForAccount(base::SysNSStringToUTF8([identity gaiaID]), + ->PickAccountIdForAccount(base::SysNSStringToUTF8(identity.gaiaID), userEmail); policy::UserPolicySigninService* userPolicyService = @@ -392,7 +391,7 @@ - (void)fetchUserPolicy:(ChromeBrowserState*)browserState withDmToken:(NSString*)dmToken clientID:(NSString*)clientID - identity:(ChromeIdentity*)identity { + identity:(id<SystemIdentity>)identity { // Should only fetch user policies when the feature is enabled. DCHECK(policy::IsUserPolicyEnabled()); @@ -402,11 +401,11 @@ policy::UserPolicySigninService* policy_service = policy::UserPolicySigninServiceFactory::GetForBrowserState(browserState); - const std::string userEmail = base::SysNSStringToUTF8([identity userEmail]); + const std::string userEmail = base::SysNSStringToUTF8(identity.userEmail); - AccountId accountID = AccountId::FromUserEmailGaiaId( - gaia::CanonicalizeEmail(userEmail), - base::SysNSStringToUTF8([identity gaiaID])); + AccountId accountID = + AccountId::FromUserEmailGaiaId(gaia::CanonicalizeEmail(userEmail), + base::SysNSStringToUTF8(identity.gaiaID)); __weak __typeof(self) weakSelf = self;
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm b/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm index bf146c3e..9653c46 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm +++ b/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm
@@ -65,7 +65,7 @@ ChromeAccountManagerService* account_manager_service = ChromeAccountManagerServiceFactory::GetForBrowserState( browser_state_.get()); - NSArray<ChromeIdentity*>* identities = + NSArray<id<SystemIdentity>>* identities = account_manager_service->GetAllIdentities(); identity1_ = identities[0]; identity2_ = identities[1]; @@ -99,7 +99,7 @@ // Creates a new AuthenticationFlow with default values for fields that are // not directly useful. void CreateAuthenticationFlow(PostSignInAction postSignInAction, - ChromeIdentity* identity) { + id<SystemIdentity> identity) { view_controller_ = [OCMockObject niceMockForClass:[UIViewController class]]; authentication_flow_ = [[AuthenticationFlow alloc] initWithBrowser:browser_.get() @@ -123,7 +123,7 @@ [performer_ verify]; } - void SetSigninSuccessExpectations(ChromeIdentity* identity, + void SetSigninSuccessExpectations(id<SystemIdentity> identity, NSString* hosted_domain) { [[performer_ expect] signInIdentity:identity withHostedDomain:hosted_domain @@ -135,9 +135,9 @@ AuthenticationFlow* authentication_flow_ = nullptr; std::unique_ptr<TestChromeBrowserState> browser_state_; std::unique_ptr<Browser> browser_; - ChromeIdentity* identity1_ = nullptr; - ChromeIdentity* identity2_ = nullptr; - ChromeIdentity* managed_identity_ = nullptr; + id<SystemIdentity> identity1_ = nil; + id<SystemIdentity> identity2_ = nil; + id<SystemIdentity> managed_identity_ = nil; OCMockObject* performer_ = nil; signin_ui::CompletionCallback sign_in_completion_; UIViewController* view_controller_;
diff --git a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate_unittest.mm b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate_unittest.mm index b8650ce..67d83938 100644 --- a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate_unittest.mm +++ b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate_unittest.mm
@@ -51,7 +51,7 @@ void SetUpMainChromeBrowserStateWithSignedInUser() { SetUpMainChromeBrowserStateNotSignedIn(); - ChromeIdentity* chrome_identity = + id<SystemIdentity> chrome_identity = [FakeChromeIdentity identityWithEmail:@"john.appleseed@gmail.com" gaiaID:@"1234" name:@"John"];
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm index 9807ed1..046dfa3 100644 --- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm +++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
@@ -191,7 +191,7 @@ if (signinResult == SigninCoordinatorResultSuccess) { DCHECK(completionInfo); [self.consistencyPromoSigninMediator - chromeIdentityAdded:completionInfo.identity]; + systemIdentityAdded:completionInfo.identity]; } RecordConsistencyPromoUserAction( signin_metrics::AccountConsistencyPromoAction::ADD_ACCOUNT_COMPLETED);
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h index 61408a99..2d282d42 100644 --- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h +++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h
@@ -13,10 +13,10 @@ @class AuthenticationFlow; class AuthenticationService; class ChromeAccountManagerService; -@class ChromeIdentity; @class ConsistencyPromoSigninMediator; class PrefService; @class SigninCompletionInfo; +@protocol SystemIdentity; namespace signin { class IdentityManager; @@ -77,7 +77,7 @@ - (void)disconnectWithResult:(SigninCoordinatorResult)signinResult; // Records when an identity is added by a subscreen of the web sign-in dialogs. -- (void)chromeIdentityAdded:(ChromeIdentity*)identity; +- (void)systemIdentityAdded:(id<SystemIdentity>)identity; // Starts the sign-in flow. - (void)signinWithAuthenticationFlow:(AuthenticationFlow*)authenticationFlow;
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm index da65948..74d62ac 100644 --- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm +++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm
@@ -5,6 +5,7 @@ #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h" #import "base/cancelable_callback.h" +#import "base/mac/foundation_util.h" #import "base/threading/thread_task_runner_handle.h" #import "components/prefs/pref_service.h" #import "components/signin/ios/browser/features.h" @@ -50,7 +51,7 @@ @property(nonatomic, assign) PrefService* userPrefService; @property(nonatomic, assign, readonly) signin_metrics::AccessPoint accessPoint; // Identity for the sign-in in progress. -@property(nonatomic, assign) ChromeIdentity* signingIdentity; +@property(nonatomic, assign) id<SystemIdentity> signingIdentity; // Duration before sign-in timeout. The property is overwritten in unittests. @property(nonatomic, assign, readonly) NSInteger signinTimeoutDurationSeconds; @@ -93,15 +94,16 @@ switch (signinResult) { case SigninCoordinatorResultSuccess: { DCHECK(self.signingIdentity); - ChromeIdentity* defaultIdentity = + id<SystemIdentity> signingIdentity = self.signingIdentity; + id<SystemIdentity> defaultIdentity = self.accountManagerService->GetDefaultIdentity(); DCHECK(defaultIdentity); - if ([self.addedGaiaIDs containsObject:self.signingIdentity.gaiaID]) { + if ([self.addedGaiaIDs containsObject:signingIdentity.gaiaID]) { // Added identity. RecordConsistencyPromoUserAction( signin_metrics::AccountConsistencyPromoAction:: SIGNED_IN_WITH_ADDED_ACCOUNT); - } else if ([defaultIdentity isEqual:self.signingIdentity]) { + } else if ([defaultIdentity isEqual:signingIdentity]) { // Default identity. RecordConsistencyPromoUserAction( signin_metrics::AccountConsistencyPromoAction:: @@ -133,7 +135,7 @@ _identityManagerObserverBridge.reset(); } -- (void)chromeIdentityAdded:(ChromeIdentity*)identity { +- (void)systemIdentityAdded:(id<SystemIdentity>)identity { [self.addedGaiaIDs addObject:identity.gaiaID]; } @@ -217,7 +219,7 @@ // an account change event must come from the consistency sheet. // TODO(crbug.com/1081764): Update if sign-in UI becomes non-blocking. DCHECK(self.signingIdentity); - ChromeIdentity* signedInIdentity = + id<SystemIdentity> signedInIdentity = self.authenticationService->GetPrimaryIdentity( signin::ConsentLevel::kSignin); DCHECK([signedInIdentity isEqual:self.signingIdentity]); @@ -242,7 +244,8 @@ // sign-in. return; } - if (!self.signingIdentity) { + id<SystemIdentity> signingIdentity = self.signingIdentity; + if (!signingIdentity) { // TODO(crbug.com/1204528): This case should not happen, but // `onAccountsInCookieUpdated:error:` can be called twice when there is an // error. Once this bug is fixed, this `if` should be replaced with @@ -260,10 +263,10 @@ signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) { self.userPrefService->SetInteger(prefs::kSigninWebSignDismissalCount, 0); } - DCHECK(self.signingIdentity); - [self.delegate - consistencyPromoSigninMediatorSignInDone:self - withIdentity:self.signingIdentity]; + ChromeIdentity* chromeIdentity = + base::mac::ObjCCastStrict<ChromeIdentity>(signingIdentity); + [self.delegate consistencyPromoSigninMediatorSignInDone:self + withIdentity:chromeIdentity]; return; } [self cancelSigninWithError:ConsistencyPromoSigninMediatorErrorGeneric];
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm index d8fc5f3..af26e91 100644 --- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm +++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm
@@ -277,7 +277,7 @@ OCMExpect([mediator_delegate_mock_ consistencyPromoSigninMediatorSigninStarted:mediator]); SigninWithMediator(mediator, identity3, /*signin_success=*/YES); - [mediator chromeIdentityAdded:identity3]; + [mediator systemIdentityAdded:identity3]; SigninAndSimulateCookies(mediator, identity3); [mediator disconnectWithResult:SigninCoordinatorResultSuccess];
diff --git a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm index 44dd0e81..90d34d5 100644 --- a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm +++ b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm
@@ -58,7 +58,7 @@ AuthenticationService* auth_service = AuthenticationServiceFactory::GetForBrowserState(browser_state); DCHECK(auth_service); - ChromeIdentity* identity = + id<SystemIdentity> identity = auth_service->GetPrimaryIdentity(signin::ConsentLevel::kSignin); ChromeAccountManagerService* accountManagerService =
diff --git a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.h b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.h index 41735bd..544d6194 100644 --- a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.h +++ b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.h
@@ -12,11 +12,11 @@ class AuthenticationService; class ChromeAccountManagerService; -@class ChromeIdentity; class PrefService; @protocol SigninPresenter; @class SigninPromoViewConfigurator; @protocol SigninPromoViewConsumer; +@protocol SystemIdentity; namespace signin_metrics { enum class AccessPoint; @@ -58,7 +58,7 @@ // - SigninPromoViewModeSigninWithAccount // - SigninPromoViewModeSyncWithPrimaryAccount // Otherwise contains nil. -@property(nonatomic, strong, readonly) ChromeIdentity* identity; +@property(nonatomic, strong, readonly) id<SystemIdentity> identity; // Sign-in promo view state. @property(nonatomic, assign) ios::SigninPromoViewState signinPromoViewState;
diff --git a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.mm b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.mm index 32b4bcb..28e0e97 100644 --- a/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.mm +++ b/ios/chrome/browser/ui/authentication/signin_promo_view_mediator.mm
@@ -408,7 +408,7 @@ } // Redefined to be readwrite. -@property(nonatomic, strong, readwrite) ChromeIdentity* identity; +@property(nonatomic, strong, readwrite) id<SystemIdentity> identity; @property(nonatomic, assign, readwrite, getter=isSigninInProgress) BOOL signinInProgress; @@ -535,14 +535,14 @@ _accessPoint = accessPoint; _presenter = presenter; - ChromeIdentity* defaultIdentity = [self defaultIdentity]; - if (defaultIdentity) { - [self setIdentity:defaultIdentity]; - } - _accountManagerServiceObserver = std::make_unique<ChromeAccountManagerServiceObserverBridge>( self, _accountManagerService); + + id<SystemIdentity> defaultIdentity = [self defaultIdentity]; + if (defaultIdentity) { + self.identity = defaultIdentity; + } } return self; } @@ -662,7 +662,7 @@ // Returns the identity for the sync promo. This should be the signed in promo, // if the user is signed in. If not signed in, the default identity from // AccountManagerService. -- (ChromeIdentity*)defaultIdentity { +- (id<SystemIdentity>)defaultIdentity { if (self.authService->HasPrimaryIdentity(signin::ConsentLevel::kSignin)) { return self.authService->GetPrimaryIdentity(signin::ConsentLevel::kSignin); } @@ -671,14 +671,14 @@ } // Sets the Chrome identity to display in the sign-in promo. -- (void)setIdentity:(ChromeIdentity*)identity { +- (void)setIdentity:(id<SystemIdentity>)identity { _identity = identity; - if (!self.identity) { + if (!_identity) { self.identityAvatar = nil; } else { self.identityAvatar = self.accountManagerService->GetIdentityAvatarWithIdentity( - identity, IdentityAvatarSize::SmallSize); + _identity, IdentityAvatarSize::SmallSize); } } @@ -721,7 +721,7 @@ } // Starts sign-in process with the Chrome identity from `identity`. -- (void)showSigninWithIdentity:(ChromeIdentity*)identity +- (void)showSigninWithIdentity:(id<SystemIdentity>)identity promoAction:(signin_metrics::PromoAction)promoAction { self.signinPromoViewState = ios::SigninPromoViewState::UsedAtLeastOnce; self.signinInProgress = YES; @@ -787,9 +787,10 @@ #pragma mark - ChromeAccountManagerServiceObserver - (void)identityListChanged { - ChromeIdentity* newIdentity = [self defaultIdentity]; - if (![self.identity isEqual:newIdentity]) { - [self setIdentity:newIdentity]; + id<SystemIdentity> currentIdentity = self.identity; + id<SystemIdentity> defaultIdentity = [self defaultIdentity]; + if (![currentIdentity isEqual:defaultIdentity]) { + self.identity = defaultIdentity; [self sendConsumerNotificationWithIdentityChanged:YES]; } }
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_coordinator.mm b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_coordinator.mm index a1368129..b4b3ba2 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_coordinator.mm +++ b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_coordinator.mm
@@ -48,7 +48,6 @@ #import "ios/chrome/browser/ui/commands/security_alert_commands.h" #import "ios/chrome/browser/ui/main/layout_guide_util.h" #import "ios/chrome/browser/ui/util/layout_guide_names.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/ui/util/util_swift.h" #import "ios/chrome/browser/web_state_list/web_state_list.h"
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_mediator.mm b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_mediator.mm index f1b8e14..01c75b3 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_mediator.mm +++ b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_mediator.mm
@@ -34,7 +34,6 @@ #import "ios/chrome/browser/ui/default_promo/default_browser_utils.h" #import "ios/chrome/browser/ui/ui_feature_flags.h" #import "ios/chrome/browser/ui/util/keyboard_observer_helper.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/chrome/common/ui/elements/form_input_accessory_view.h"
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_view_controller.mm b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_view_controller.mm index a3dab8c..2b68256b 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_view_controller.mm +++ b/ios/chrome/browser/ui/autofill/form_input_accessory/form_input_accessory_view_controller.mm
@@ -13,7 +13,6 @@ #import "ios/chrome/browser/ui/autofill/form_input_accessory/branding_view_controller.h" #import "ios/chrome/browser/ui/autofill/form_input_accessory/form_suggestion_view.h" #import "ios/chrome/browser/ui/autofill/manual_fill/manual_fill_accessory_view_controller.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/common/ui/elements/form_input_accessory_view.h" #import "ios/chrome/common/ui/util/constraints_ui_util.h" #import "ui/base/device_form_factor.h"
diff --git a/ios/chrome/browser/ui/badges/badge_button_factory.mm b/ios/chrome/browser/ui/badges/badge_button_factory.mm index 77c2292..304f8185 100644 --- a/ios/chrome/browser/ui/badges/badge_button_factory.mm +++ b/ios/chrome/browser/ui/badges/badge_button_factory.mm
@@ -81,7 +81,7 @@ - (BadgeButton*)passwordsSaveBadgeButton { UIImage* image = UseSymbols() - ? DefaultSymbolWithPointSize(kPasswordSymbol, kSymbolImagePointSize) + ? CustomSymbolWithPointSize(kPasswordSymbol, kSymbolImagePointSize) : [UIImage imageNamed:[self passwordKeyAssetName]]; BadgeButton* button = [self createButtonForType:kBadgeTypePasswordSave @@ -100,7 +100,7 @@ - (BadgeButton*)passwordsUpdateBadgeButton { UIImage* image = UseSymbols() - ? DefaultSymbolWithPointSize(kPasswordSymbol, kSymbolImagePointSize) + ? CustomSymbolWithPointSize(kPasswordSymbol, kSymbolImagePointSize) : [UIImage imageNamed:[self passwordKeyAssetName]]; BadgeButton* button = [self createButtonForType:kBadgeTypePasswordUpdate
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm index 6ca661e..1f1ebf6 100644 --- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm +++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -76,6 +76,7 @@ #import "ios/chrome/browser/ui/commands/password_protection_commands.h" #import "ios/chrome/browser/ui/commands/password_suggestion_commands.h" #import "ios/chrome/browser/ui/commands/policy_change_commands.h" +#import "ios/chrome/browser/ui/commands/price_notifications_commands.h" #import "ios/chrome/browser/ui/commands/promos_manager_commands.h" #import "ios/chrome/browser/ui/commands/qr_generation_commands.h" #import "ios/chrome/browser/ui/commands/share_highlight_command.h" @@ -201,6 +202,7 @@ PasswordSettingsCoordinatorDelegate, PasswordSuggestionCommands, PasswordSuggestionCoordinatorDelegate, + PriceNotificationsCommands, PromosManagerCommands, PolicyChangeCommands, PreloadControllerDelegate, @@ -613,6 +615,7 @@ @protocol(PasswordProtectionCommands), @protocol(PasswordSuggestionCommands), @protocol(PolicyChangeCommands), + @protocol(PriceNotificationsCommands), @protocol(TextZoomCommands), ]; @@ -2005,6 +2008,18 @@ [self.passwordSuggestionCoordinator start]; } +#pragma mark - PriceNotificationsCommands + +- (void)hidePriceNotifications { + // TODO(crbug.com/1368700) Once the price notifications coordinator is + // created, add the code to invoke its shutdown code. +} + +- (void)showPriceNotifications { + // TODO(crbug.com/1368700) Once the price notifications coordinator is + // created, add the code to invoke its startup code. +} + #pragma mark - PolicyChangeCommands - (void)showForceSignedOutPrompt {
diff --git a/ios/chrome/browser/ui/collection_view/cells/BUILD.gn b/ios/chrome/browser/ui/collection_view/cells/BUILD.gn index 826eef5..073634c 100644 --- a/ios/chrome/browser/ui/collection_view/cells/BUILD.gn +++ b/ios/chrome/browser/ui/collection_view/cells/BUILD.gn
@@ -11,8 +11,6 @@ sources = [ "MDCCollectionViewCell+Chrome.h", "MDCCollectionViewCell+Chrome.mm", - "collection_view_account_item.h", - "collection_view_account_item.mm", "collection_view_cell_constants.h", "collection_view_item.h", "collection_view_item.mm", @@ -56,7 +54,6 @@ testonly = true sources = [ "MDCCollectionViewCell+Chrome_unittest.mm", - "collection_view_account_item_unittest.mm", "collection_view_item_unittest.mm", "collection_view_switch_item_unittest.mm", ]
diff --git a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h b/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h deleted file mode 100644 index df60c05..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h +++ /dev/null
@@ -1,50 +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. - -#ifndef IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_COLLECTION_VIEW_ACCOUNT_ITEM_H_ -#define IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_COLLECTION_VIEW_ACCOUNT_ITEM_H_ - -#import <UIKit/UIKit.h> - -#import <MaterialComponents/MaterialCollectionCells.h> - -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" - -@class ChromeIdentity; - -// Item for account avatar, used everywhere an account cell is shown. -@interface CollectionViewAccountItem : CollectionViewItem - -@property(nonatomic, strong) UIImage* image; -@property(nonatomic, copy) NSString* text; -@property(nonatomic, copy) NSString* detailText; -@property(nonatomic, assign) BOOL shouldDisplayError; -@property(nonatomic, strong) ChromeIdentity* chromeIdentity; -@property(nonatomic, assign, getter=isEnabled) BOOL enabled; - -// The accessory type for the represented cell. -@property(nonatomic) MDCCollectionViewCellAccessoryType accessoryType; - -@end - -// Cell for account avatar with a leading avatar imageView, title text label, -// and detail text label. This looks very similar to the -// MDCCollectionViewDetailCell, except that it applies a circular mask to the -// imageView. The imageView is vertical-centered and leading aligned. -// If item/cell is disabled the image and text alpha will be set to 0.5 and -// user interaction will be disabled. -@interface CollectionViewAccountCell : MDCCollectionViewCell - -// Rounded image used for the account user picture. -@property(nonatomic, readonly, strong) UIImageView* imageView; -// Cell title. -@property(nonatomic, readonly, strong) UILabel* textLabel; -// Cell subtitle. -@property(nonatomic, readonly, strong) UILabel* detailTextLabel; -// Error icon that will be displayed on the left side of the cell. -@property(nonatomic, readonly, strong) UIImageView* errorIcon; - -@end - -#endif // IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_COLLECTION_VIEW_ACCOUNT_ITEM_H_
diff --git a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.mm b/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.mm deleted file mode 100644 index e6e7b9b54..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.mm +++ /dev/null
@@ -1,266 +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. - -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h" - -#import "base/mac/foundation_util.h" -#import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h" -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h" -#import "ios/chrome/browser/ui/util/uikit_ui_util.h" -#import "ios/chrome/common/ui/colors/semantic_color_names.h" -#import "ui/base/l10n/l10n_util.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { -// Padding used on the leading and trailing edges of the cell. -const CGFloat kHorizontalPadding = 16; - -// Padding used between the image and text. -const CGFloat kHorizontalPaddingBetweenImageAndText = 10; - -// Padding used between the text and error icon. -const CGFloat kHorizontalPaddingBetweenTextAndError = 5; - -// Image fixed horizontal size. -const CGFloat kHorizontalImageFixedSize = 40; - -// Error icon fixed horizontal size. -const CGFloat kHorizontalErrorIconFixedSize = 25; -} - -@implementation CollectionViewAccountItem - -@synthesize image = _image; -@synthesize text = _text; -@synthesize detailText = _detailText; -@synthesize accessoryType = _accessoryType; -@synthesize shouldDisplayError = _shouldDisplayError; -@synthesize chromeIdentity = _chromeIdentity; -@synthesize enabled = _enabled; - -- (instancetype)initWithType:(NSInteger)type { - self = [super initWithType:type]; - if (self) { - self.cellClass = [CollectionViewAccountCell class]; - self.accessibilityTraits |= UIAccessibilityTraitButton; - _enabled = YES; - } - return self; -} - -#pragma mark - CollectionViewItem - -- (void)configureCell:(CollectionViewAccountCell*)cell { - [super configureCell:cell]; - - cell.imageView.image = self.image; - cell.textLabel.text = self.text; - cell.detailTextLabel.text = self.detailText; - [cell cr_setAccessoryType:self.accessoryType]; - if (self.shouldDisplayError) { - cell.errorIcon.image = [[UIImage imageNamed:@"settings_error"] - imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - cell.errorIcon.tintColor = [UIColor colorNamed:kRedColor]; - cell.detailTextLabel.textColor = [UIColor colorNamed:kRedColor]; - } else { - cell.errorIcon.image = nil; - cell.detailTextLabel.textColor = [UIColor colorNamed:kTextPrimaryColor]; - } - - if (self.isEnabled) { - cell.userInteractionEnabled = YES; - cell.contentView.alpha = 1; - UIImageView* accessoryImage = - base::mac::ObjCCastStrict<UIImageView>(cell.accessoryView); - accessoryImage.tintColor = - [accessoryImage.tintColor colorWithAlphaComponent:1]; - } else { - cell.userInteractionEnabled = NO; - cell.contentView.alpha = 0.5; - UIImageView* accessoryImage = - base::mac::ObjCCastStrict<UIImageView>(cell.accessoryView); - accessoryImage.tintColor = - [accessoryImage.tintColor colorWithAlphaComponent:0.5]; - } -} - -@end - -@interface CollectionViewAccountCell () { - // Constraint used to set padding between image and text when image exists. - NSLayoutConstraint* _textLeadingAnchorConstraint; - - // Constraint used to set the errorIcon width depending on it's existence. - NSLayoutConstraint* _errorIconWidthConstraint; -} -@end - -@implementation CollectionViewAccountCell - -@synthesize imageView = _imageView; -@synthesize textLabel = _textLabel; -@synthesize detailTextLabel = _detailTextLabel; -@synthesize errorIcon = _errorIcon; - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.isAccessibilityElement = YES; - [self addSubviews]; - [self setViewConstraints]; - } - return self; -} - -// Create and add subviews. -- (void)addSubviews { - UIView* contentView = self.contentView; - contentView.clipsToBounds = YES; - - _imageView = [[UIImageView alloc] init]; - _imageView.translatesAutoresizingMaskIntoConstraints = NO; - _imageView.contentMode = UIViewContentModeCenter; - _imageView.layer.masksToBounds = YES; - _imageView.contentMode = UIViewContentModeScaleAspectFit; - [contentView addSubview:_imageView]; - - _errorIcon = [[UIImageView alloc] init]; - _errorIcon.translatesAutoresizingMaskIntoConstraints = NO; - [contentView addSubview:_errorIcon]; - - _textLabel = [[UILabel alloc] init]; - _textLabel.translatesAutoresizingMaskIntoConstraints = NO; - _textLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; - _textLabel.textColor = [UIColor colorNamed:kTextPrimaryColor]; - [contentView addSubview:_textLabel]; - - _detailTextLabel = [[UILabel alloc] init]; - _detailTextLabel.translatesAutoresizingMaskIntoConstraints = NO; - _detailTextLabel.font = [UIFont systemFontOfSize:14 - weight:UIFontWeightRegular]; - _detailTextLabel.textColor = [UIColor colorNamed:kTextSecondaryColor]; - [contentView addSubview:_detailTextLabel]; -} - -// Set constraints on subviews. -- (void)setViewConstraints { - UIView* contentView = self.contentView; - - // This view is used to center the two leading textLabels. - UIView* verticalCenteringView = [[UIView alloc] init]; - verticalCenteringView.translatesAutoresizingMaskIntoConstraints = NO; - [contentView addSubview:verticalCenteringView]; - - _textLeadingAnchorConstraint = [_textLabel.leadingAnchor - constraintEqualToAnchor:_imageView.trailingAnchor]; - _errorIconWidthConstraint = [_errorIcon.widthAnchor - constraintEqualToConstant:kHorizontalErrorIconFixedSize]; - [NSLayoutConstraint activateConstraints:@[ - // Set leading anchors. - [_imageView.leadingAnchor constraintEqualToAnchor:contentView.leadingAnchor - constant:kHorizontalPadding], - [_detailTextLabel.leadingAnchor - constraintEqualToAnchor:_textLabel.leadingAnchor], - - // Fix image widths. - [_imageView.widthAnchor - constraintEqualToConstant:kHorizontalImageFixedSize], - _errorIconWidthConstraint, - - // Set vertical anchors. This approach assumes the cell height is set by - // the view controller. Contents are pinned to centerY, rather than pushing - // against the top/bottom boundaries. - [_imageView.centerYAnchor - constraintEqualToAnchor:contentView.centerYAnchor], - [_textLabel.topAnchor - constraintEqualToAnchor:verticalCenteringView.topAnchor], - [_textLabel.bottomAnchor - constraintEqualToAnchor:_detailTextLabel.topAnchor], - [_detailTextLabel.bottomAnchor - constraintEqualToAnchor:verticalCenteringView.bottomAnchor], - [verticalCenteringView.centerYAnchor - constraintEqualToAnchor:contentView.centerYAnchor], - [_errorIcon.centerYAnchor - constraintEqualToAnchor:contentView.centerYAnchor], - // Set trailing anchors. - [_errorIcon.trailingAnchor - constraintEqualToAnchor:contentView.trailingAnchor - constant:-kHorizontalPaddingBetweenImageAndText], - [_detailTextLabel.trailingAnchor - constraintEqualToAnchor:_errorIcon.leadingAnchor - constant:-kHorizontalPaddingBetweenTextAndError], - _textLeadingAnchorConstraint, - [_textLabel.trailingAnchor - constraintLessThanOrEqualToAnchor:_errorIcon.leadingAnchor - constant: - -kHorizontalPaddingBetweenTextAndError], - ]]; - - // This is needed so the image doesn't get pushed out if both text and detail - // are long. - [_textLabel - setContentCompressionResistancePriority:UILayoutPriorityDefaultLow - forAxis:UILayoutConstraintAxisHorizontal]; - [_detailTextLabel - setContentCompressionResistancePriority:UILayoutPriorityDefaultLow - forAxis:UILayoutConstraintAxisHorizontal]; -} - -#pragma mark - UIView - -- (void)layoutSubviews { - [super layoutSubviews]; - - // Creates the image rounded corners. - _imageView.layer.cornerRadius = _imageView.image.size.width / 2.0f; - - // Adjust the leading margin depending on existence of image. - if (_imageView.image) { - _textLeadingAnchorConstraint.constant = - kHorizontalPaddingBetweenImageAndText; - } else { - _textLeadingAnchorConstraint.constant = 0; - } - - if (_errorIcon.image) { - _errorIconWidthConstraint.constant = kHorizontalErrorIconFixedSize; - } else { - _errorIconWidthConstraint.constant = 0; - } -} - -#pragma mark - UICollectionReusableView - -- (void)prepareForReuse { - [super prepareForReuse]; - self.imageView.image = nil; - self.textLabel.text = nil; - self.detailTextLabel.text = nil; - self.textLabel.textColor = [UIColor colorNamed:kTextPrimaryColor]; - self.detailTextLabel.textColor = [UIColor colorNamed:kTextSecondaryColor]; - self.errorIcon.image = nil; - self.errorIcon.tintColor = nil; - self.accessoryType = MDCCollectionViewCellAccessoryNone; - self.userInteractionEnabled = YES; - self.contentView.alpha = 1; - UIImageView* accessoryImage = - base::mac::ObjCCastStrict<UIImageView>(self.accessoryView); - accessoryImage.tintColor = - [accessoryImage.tintColor colorWithAlphaComponent:1]; -} - -#pragma mark - NSObject(Accessibility) - -- (NSString*)accessibilityLabel { - return self.textLabel.text; -} - -- (NSString*)accessibilityValue { - return self.detailTextLabel.text; -} - -@end
diff --git a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item_unittest.mm b/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item_unittest.mm deleted file mode 100644 index 923420d2..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/collection_view_account_item_unittest.mm +++ /dev/null
@@ -1,45 +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. - -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h" - -#import <CoreGraphics/CoreGraphics.h> -#import <UIKit/UIKit.h> - -#import "testing/gtest/include/gtest/gtest.h" -#import "testing/gtest_mac.h" -#import "testing/platform_test.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -using AccountControlCollectionViewItemTest = PlatformTest; - -// Tests that the UIImageView and UILabels are set properly after a call to -// `configureCell:`. -TEST_F(AccountControlCollectionViewItemTest, ImageViewAndTextLabels) { - CollectionViewAccountItem* item = - [[CollectionViewAccountItem alloc] initWithType:0]; - UIImage* image = [[UIImage alloc] init]; - NSString* mainText = @"Main text"; - NSString* detailText = @"Detail text"; - - item.image = image; - item.text = mainText; - item.detailText = detailText; - - id cell = [[[item cellClass] alloc] init]; - ASSERT_TRUE([cell isMemberOfClass:[CollectionViewAccountCell class]]); - - CollectionViewAccountCell* accountCell = cell; - EXPECT_FALSE(accountCell.imageView.image); - EXPECT_FALSE(accountCell.textLabel.text); - EXPECT_FALSE(accountCell.detailTextLabel.text); - - [item configureCell:cell]; - EXPECT_NSEQ(image, accountCell.imageView.image); - EXPECT_NSEQ(mainText, accountCell.textLabel.text); - EXPECT_NSEQ(detailText, accountCell.detailTextLabel.text); -}
diff --git a/ios/chrome/browser/ui/collection_view/collection_view_controller_test.mm b/ios/chrome/browser/ui/collection_view/collection_view_controller_test.mm index aa5bcc9..8c56cf9 100644 --- a/ios/chrome/browser/ui/collection_view/collection_view_controller_test.mm +++ b/ios/chrome/browser/ui/collection_view/collection_view_controller_test.mm
@@ -4,9 +4,10 @@ #import "ios/chrome/browser/ui/collection_view/collection_view_controller_test.h" +#import <MaterialComponents/MaterialCollectionCells.h> + #import "base/check.h" #import "base/mac/foundation_util.h" -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_account_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" #import "ios/chrome/browser/ui/collection_view/cells/collection_view_switch_item.h" #import "ios/chrome/browser/ui/collection_view/collection_view_controller.h" @@ -19,6 +20,16 @@ #error "This file requires ARC support." #endif +// Dummy interface to allow using @selector(...) in the helper implementation. +@interface DummyCollectionViewItemForSelector : CollectionViewItem + +@property(nonatomic, copy) NSString* detailText; + +// The accessory type for the represented cell. +@property(nonatomic, assign) MDCCollectionViewCellAccessoryType accessoryType; + +@end + CollectionViewControllerTest::CollectionViewControllerTest() {} CollectionViewControllerTest::~CollectionViewControllerTest() {}
diff --git a/ios/chrome/browser/ui/commands/BUILD.gn b/ios/chrome/browser/ui/commands/BUILD.gn index b91e103..5a092dd1 100644 --- a/ios/chrome/browser/ui/commands/BUILD.gn +++ b/ios/chrome/browser/ui/commands/BUILD.gn
@@ -34,6 +34,7 @@ "password_suggestion_commands.h", "policy_change_commands.h", "popup_menu_commands.h", + "price_notifications_commands.h", "promos_manager_commands.h", "qr_generation_commands.h", "qr_scanner_commands.h",
diff --git a/ios/chrome/browser/ui/commands/price_notifications_commands.h b/ios/chrome/browser/ui/commands/price_notifications_commands.h new file mode 100644 index 0000000..de48edad --- /dev/null +++ b/ios/chrome/browser/ui/commands/price_notifications_commands.h
@@ -0,0 +1,19 @@ +// 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. + +#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_PRICE_NOTIFICATIONS_COMMANDS_H_ +#define IOS_CHROME_BROWSER_UI_COMMANDS_PRICE_NOTIFICATIONS_COMMANDS_H_ + +// Commands related to Price Notifications +@protocol PriceNotificationsCommands + +// Hides the price notifications UI. +- (void)hidePriceNotifications; + +// Shows the price notifications UI. +- (void)showPriceNotifications; + +@end + +#endif // IOS_CHROME_BROWSER_UI_COMMANDS_PRICE_NOTIFICATIONS_COMMANDS_H_
diff --git a/ios/chrome/browser/ui/icons/chrome_symbol.h b/ios/chrome/browser/ui/icons/chrome_symbol.h index 23ea5ea..e4033e4b 100644 --- a/ios/chrome/browser/ui/icons/chrome_symbol.h +++ b/ios/chrome/browser/ui/icons/chrome_symbol.h
@@ -58,6 +58,7 @@ extern NSString* const kWifiSymbol; extern NSString* const kBookmarksSymbol; extern NSString* const kSyncErrorSymbol; +extern NSString* const kMenuSymbol; // The corner radius of the symbol with a colorful background. extern const CGFloat kColorfulBackgroundSymbolCornerRadius;
diff --git a/ios/chrome/browser/ui/icons/chrome_symbol.mm b/ios/chrome/browser/ui/icons/chrome_symbol.mm index de78f68..fd9c435 100644 --- a/ios/chrome/browser/ui/icons/chrome_symbol.mm +++ b/ios/chrome/browser/ui/icons/chrome_symbol.mm
@@ -97,6 +97,7 @@ NSString* const kBookmarksSymbol = @"star.fill"; NSString* const kSyncErrorSymbol = @"exclamationmark.arrow.triangle.2.circlepath"; +NSString* const kMenuSymbol = @"ellipsis"; const CGFloat kColorfulBackgroundSymbolCornerRadius = 7;
diff --git a/ios/chrome/browser/ui/open_in/BUILD.gn b/ios/chrome/browser/ui/open_in/BUILD.gn index 4745cea6..656eb35 100644 --- a/ios/chrome/browser/ui/open_in/BUILD.gn +++ b/ios/chrome/browser/ui/open_in/BUILD.gn
@@ -22,6 +22,7 @@ "//ios/chrome/app/strings", "//ios/chrome/browser/main:public", "//ios/chrome/browser/open_in", + "//ios/chrome/browser/ui/activity_services", "//ios/chrome/browser/ui/alert_coordinator", "//ios/chrome/browser/ui/util", "//ios/chrome/common/ui/colors",
diff --git a/ios/chrome/browser/ui/open_in/open_in_activity_view_controller.mm b/ios/chrome/browser/ui/open_in/open_in_activity_view_controller.mm index 944e919d..89302ab 100644 --- a/ios/chrome/browser/ui/open_in/open_in_activity_view_controller.mm +++ b/ios/chrome/browser/ui/open_in/open_in_activity_view_controller.mm
@@ -4,6 +4,10 @@ #import "ios/chrome/browser/ui/open_in/open_in_activity_view_controller.h" +#import "base/metrics/user_metrics.h" +#import "base/metrics/user_metrics_action.h" +#import "ios/chrome/browser/ui/activity_services/activity_service_histograms.h" +#import "ios/chrome/browser/ui/activity_services/activity_type_util.h" #import "ios/chrome/browser/ui/open_in/open_in_activity_delegate.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -29,8 +33,21 @@ applicationActivities:activities]) { self.fileURL = fileURL; __weak __typeof__(self) weakSelf = self; - self.completionWithItemsHandler = ^(NSString*, BOOL, NSArray*, NSError*) { + self.completionWithItemsHandler = ^(NSString* activityType, BOOL completed, + NSArray* returnedItems, + NSError* activityError) { [weakSelf activityViewCompletionHandler]; + + if (activityType && completed) { + activity_type_util::ActivityType type = + activity_type_util::TypeFromString(activityType); + activity_type_util::RecordMetricForActivity(type); + RecordActivityForScenario(type, ActivityScenario::TabShareButton); + } else { + // Share action was cancelled. + base::RecordAction(base::UserMetricsAction("MobileShareMenuCancel")); + RecordCancelledScenario(ActivityScenario::TabShareButton); + } }; } return self;
diff --git a/ios/chrome/browser/ui/reading_list/text_badge_view.mm b/ios/chrome/browser/ui/reading_list/text_badge_view.mm index 1689ea9b9..bfb4ba6 100644 --- a/ios/chrome/browser/ui/reading_list/text_badge_view.mm +++ b/ios/chrome/browser/ui/reading_list/text_badge_view.mm
@@ -5,7 +5,6 @@ #import "ios/chrome/browser/ui/reading_list/text_badge_view.h" #import "base/check.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" #if !defined(__has_feature) || !__has_feature(objc_arc)
diff --git a/ios/chrome/browser/ui/safe_mode/BUILD.gn b/ios/chrome/browser/ui/safe_mode/BUILD.gn index 0564cbc..29cfcd8 100644 --- a/ios/chrome/browser/ui/safe_mode/BUILD.gn +++ b/ios/chrome/browser/ui/safe_mode/BUILD.gn
@@ -91,12 +91,15 @@ ":safe_mode", "//base", "//base/test:test_support", + "//components/crash/core/app", + "//components/crash/core/common:reporter_running_ios", "//ios/chrome/browser/crash_report", "//ios/chrome/common/crash_report", "//ios/chrome/test/ocmock", "//ios/testing:block_swizzler", "//testing/gtest", "//third_party/breakpad:client", + "//third_party/crashpad/crashpad/client", "//third_party/ocmock", ] frameworks = [ "UIKit.framework" ]
diff --git a/ios/chrome/browser/ui/safe_mode/safe_mode_view_controller_unittest.mm b/ios/chrome/browser/ui/safe_mode/safe_mode_view_controller_unittest.mm index df120e2..b2bb747 100644 --- a/ios/chrome/browser/ui/safe_mode/safe_mode_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/safe_mode/safe_mode_view_controller_unittest.mm
@@ -3,17 +3,21 @@ // found in the LICENSE file. #import "ios/chrome/browser/ui/safe_mode/safe_mode_view_controller.h" +#import "base/files/scoped_temp_dir.h" #import "base/strings/sys_string_conversions.h" #import "base/test/ios/wait_util.h" #import "base/test/task_environment.h" +#import "components/crash/core/app/crashpad.h" +#import "components/crash/core/common/reporter_running_ios.h" #import "ios/chrome/browser/crash_report/crash_helper.h" -#import "ios/chrome/browser/crash_report/main_thread_freeze_detector.h" #import "ios/chrome/common/crash_report/crash_helper.h" #import "ios/chrome/test/ocmock/OCMockObject+BreakpadControllerTesting.h" #import "ios/testing/scoped_block_swizzler.h" #import "testing/gtest/include/gtest/gtest.h" #import "testing/platform_test.h" #import "third_party/breakpad/breakpad/src/client/ios/BreakpadController.h" +#import "third_party/crashpad/crashpad/client/crash_report_database.h" +#import "third_party/crashpad/crashpad/client/crashpad_client.h" #import "third_party/ocmock/OCMock/OCMock.h" #import "third_party/ocmock/gtest_support.h" @@ -30,6 +34,22 @@ void SetUp() override { PlatformTest::SetUp(); + if (crash_helper::common::CanUseCrashpad()) { + ASSERT_FALSE(crash_reporter::internal::GetCrashReportDatabase()); + ASSERT_TRUE(database_dir_.CreateUniqueTempDir()); + database_dir_path_ = database_dir_.GetPath(); + ASSERT_TRUE(client_.StartCrashpadInProcessHandler( + database_dir_path_, "", {}, + crashpad::CrashpadClient:: + ProcessPendingReportsObservationCallback())); + database_ = crashpad::CrashReportDatabase::Initialize(database_dir_path_); + crash_reporter::internal::SetCrashReportDatabaseForTesting( + database_.get(), &database_dir_path_); + + crash_reporter::SetCrashpadRunning(true); + return; + } + mock_breakpad_controller_ = [OCMockObject mockForClass:[BreakpadController class]]; @@ -44,13 +64,22 @@ } void TearDown() override { - [[mock_breakpad_controller_ stub] stop]; - crash_helper::SetEnabled(false); + if (crash_helper::common::CanUseCrashpad()) { + client_.ResetForTesting(); + crash_reporter::SetCrashpadRunning(false); + } else { + [[mock_breakpad_controller_ stub] stop]; + crash_helper::SetEnabled(false); + } PlatformTest::TearDown(); } protected: + crashpad::CrashpadClient client_; + std::unique_ptr<crashpad::CrashReportDatabase> database_; + base::FilePath database_dir_path_; + base::ScopedTempDir database_dir_; base::test::TaskEnvironment task_environment; id mock_breakpad_controller_; std::unique_ptr<ScopedBlockSwizzler> @@ -63,6 +92,18 @@ // on the value of crash_helper::IsEnabled or // crash_helper::IsUploadingEnabled. TEST_F(SafeModeViewControllerTest, HasSuggestions) { + if (crash_helper::common::CanUseCrashpad()) { + crash_helper::common::SetUserEnabledUploading(false); + EXPECT_FALSE([SafeModeViewController hasSuggestions]); + + crash_reporter::DumpWithoutCrashing(); + crash_reporter::DumpWithoutCrashing(); + EXPECT_FALSE([SafeModeViewController hasSuggestions]); + + crash_helper::common::SetUserEnabledUploading(true); + EXPECT_TRUE([SafeModeViewController hasSuggestions]); + return; + } // Test when crash reporter is disabled. crash_helper::common::SetUserEnabledUploading(false); EXPECT_FALSE([SafeModeViewController hasSuggestions]);
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm index ec09d822..89c9519 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm +++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm
@@ -4,6 +4,7 @@ #import "ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.h" +#import "base/mac/foundation_util.h" #import "ios/chrome/browser/bookmarks/bookmark_model_factory.h" #import "ios/chrome/browser/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/main/browser.h" @@ -15,6 +16,7 @@ #import "ios/chrome/browser/ui/commands/find_in_page_commands.h" #import "ios/chrome/browser/ui/commands/omnibox_commands.h" #import "ios/chrome/browser/ui/commands/popup_menu_commands.h" +#import "ios/chrome/browser/ui/icons/chrome_symbol.h" #import "ios/chrome/browser/ui/main/layout_guide_util.h" #import "ios/chrome/browser/ui/menu/browser_action_factory.h" #import "ios/chrome/browser/ui/ntp/ntp_util.h" @@ -125,7 +127,13 @@ #pragma mark - ToolbarCommands - (void)triggerToolsMenuButtonAnimation { - [self.viewController.toolsMenuButton triggerAnimation]; + if (UseSymbols()) + return; + + ToolbarToolsMenuButton* toolsMenuButton = + base::mac::ObjCCastStrict<ToolbarToolsMenuButton>( + self.viewController.toolsMenuButton); + [toolsMenuButton triggerAnimation]; } #pragma mark - ToolbarCoordinatee
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view.h b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view.h index 050d03f..ff2cf5b7 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view.h +++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view.h
@@ -34,7 +34,7 @@ // Button to display the share menu. @property(nonatomic, strong, readonly) ToolbarButton* shareButton; // Button to display the tools menu. -@property(nonatomic, strong, readonly) ToolbarToolsMenuButton* toolsMenuButton; +@property(nonatomic, strong, readonly) ToolbarButton* toolsMenuButton; // Button to create a new tab. @property(nonatomic, strong, readonly) ToolbarButton* openNewTabButton; // Separator between the toolbar and the content.
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.h b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.h index 54fed9b3..51e9f3c 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.h +++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.h
@@ -19,8 +19,8 @@ @protocol OmniboxCommands; @protocol PopupMenuCommands; @protocol PopupMenuLongPressDelegate; +@class ToolbarButton; @class ToolbarButtonFactory; -@class ToolbarToolsMenuButton; // ViewController for the adaptive toolbar. This ViewController is the super // class of the different implementation (primary or secondary). @@ -47,7 +47,7 @@ @property(nonatomic, weak) id<AdaptiveToolbarMenusProvider> menuProvider; // Returns the tools menu button. -- (ToolbarToolsMenuButton*)toolsMenuButton; +- (ToolbarButton*)toolsMenuButton; // Updates the view so a snapshot can be taken. It needs to be adapted, // depending on if it is a snapshot displayed `onNTP` or not.
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.mm index 299f2c38..5063c6f 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.mm +++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_view_controller.mm
@@ -134,7 +134,7 @@ #pragma mark - Public -- (ToolbarToolsMenuButton*)toolsMenuButton { +- (ToolbarButton*)toolsMenuButton { return self.view.toolsMenuButton; }
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h index f9b3d57..a19e52c8 100644 --- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h +++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h
@@ -42,7 +42,7 @@ // Tab Grid ToolbarButton. - (ToolbarTabGridButton*)tabGridButton; // Tools Menu ToolbarButton. -- (ToolbarToolsMenuButton*)toolsMenuButton; +- (ToolbarButton*)toolsMenuButton; // Share ToolbarButton. - (ToolbarButton*)shareButton; // Reload ToolbarButton.
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm index 2a7f901..8dca851 100644 --- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm +++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm
@@ -109,9 +109,15 @@ return tabGridButton; } -- (ToolbarToolsMenuButton*)toolsMenuButton { - ToolbarToolsMenuButton* toolsMenuButton = - [[ToolbarToolsMenuButton alloc] initWithFrame:CGRectZero]; +- (ToolbarButton*)toolsMenuButton { + ToolbarButton* toolsMenuButton; + if (UseSymbols()) { + toolsMenuButton = [ToolbarButton + toolbarButtonWithImage:DefaultSymbolWithPointSize( + kMenuSymbol, kSymbolToolbarPointSize)]; + } else { + toolsMenuButton = [[ToolbarToolsMenuButton alloc] initWithFrame:CGRectZero]; + } SetA11yLabelAndUiAutomationName(toolsMenuButton, IDS_IOS_TOOLBAR_SETTINGS, kToolbarToolsMenuButtonIdentifier);
diff --git a/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm b/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm index 6b94296..7c3fa5c 100644 --- a/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm +++ b/ios/chrome/browser/ui/toolbar/primary_toolbar_view.mm
@@ -72,7 +72,7 @@ // Button to display the share menu, redefined as readwrite. @property(nonatomic, strong, readwrite) ToolbarButton* shareButton; // Button to display the tools menu, redefined as readwrite. -@property(nonatomic, strong, readwrite) ToolbarToolsMenuButton* toolsMenuButton; +@property(nonatomic, strong, readwrite) ToolbarButton* toolsMenuButton; // Button to cancel the edit of the location bar, redefined as readwrite. @property(nonatomic, strong, readwrite) UIButton* cancelButton;
diff --git a/ios/chrome/browser/ui/toolbar/secondary_toolbar_view.mm b/ios/chrome/browser/ui/toolbar/secondary_toolbar_view.mm index 97c695e..fb5d5650 100644 --- a/ios/chrome/browser/ui/toolbar/secondary_toolbar_view.mm +++ b/ios/chrome/browser/ui/toolbar/secondary_toolbar_view.mm
@@ -43,7 +43,7 @@ // Buttons to navigate forward, redefined as readwrite. @property(nonatomic, strong, readwrite) ToolbarButton* forwardButton; // Button to display the tools menu, redefined as readwrite. -@property(nonatomic, strong, readwrite) ToolbarToolsMenuButton* toolsMenuButton; +@property(nonatomic, strong, readwrite) ToolbarButton* toolsMenuButton; // Button to display the tab grid, redefined as readwrite. @property(nonatomic, strong, readwrite) ToolbarTabGridButton* tabGridButton; // Button to create a new tab, redefined as readwrite.
diff --git a/ios/chrome/browser/web/page_placeholder_tab_helper.mm b/ios/chrome/browser/web/page_placeholder_tab_helper.mm index 51c8278..9b316933 100644 --- a/ios/chrome/browser/web/page_placeholder_tab_helper.mm +++ b/ios/chrome/browser/web/page_placeholder_tab_helper.mm
@@ -7,6 +7,7 @@ #import "base/bind.h" #import "base/check_op.h" #import "base/threading/thread_task_runner_handle.h" +#import "base/time/time.h" #import "ios/chrome/browser/snapshots/snapshot_tab_helper.h" #import "ios/chrome/browser/ui/util/named_guide.h" #import "ios/chrome/common/ui/util/constraints_ui_util.h" @@ -18,7 +19,7 @@ namespace { // Placeholder will not be displayed longer than this time. -const double kPlaceholderMaxDisplayTimeInSeconds = 1.5; +constexpr base::TimeDelta kPlaceholderMaxDisplayTime = base::Seconds(1.5); // Placeholder removal will include a fade-out animation of this length. const NSTimeInterval kPlaceholderFadeOutAnimationLengthInSeconds = 0.5; @@ -126,7 +127,7 @@ FROM_HERE, base::BindOnce(&PagePlaceholderTabHelper::RemovePlaceholder, weak_factory_.GetWeakPtr()), - base::Seconds(kPlaceholderMaxDisplayTimeInSeconds)); + kPlaceholderMaxDisplayTime); } void PagePlaceholderTabHelper::DisplaySnapshotImage(UIImage* snapshot) {
diff --git a/ios/chrome/test/app/chrome_test_util.mm b/ios/chrome/test/app/chrome_test_util.mm index b25040c..c201be93 100644 --- a/ios/chrome/test/app/chrome_test_util.mm +++ b/ios/chrome/test/app/chrome_test_util.mm
@@ -31,7 +31,6 @@ #import "ios/chrome/browser/ui/main/scene_controller.h" #import "ios/chrome/browser/ui/main/scene_controller_testing.h" #import "ios/chrome/browser/ui/main/scene_state.h" -#import "ios/chrome/browser/ui/util/ui_util.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/test/app/tab_test_util.h" #import "ios/web/public/navigation/navigation_context.h"
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index b7e5300..1c1cb5a 100644 --- a/net/http/transport_security_state_static.pins +++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2022-10-09 12:54 UTC +# Last updated: 2022-10-10 12:55 UTC PinsListTimestamp -1665320099 +1665406522 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/remoting/resources/remoting_strings_as.xtb b/remoting/resources/remoting_strings_as.xtb index b7eee67..a063aa07 100644 --- a/remoting/resources/remoting_strings_as.xtb +++ b/remoting/resources/remoting_strings_as.xtb
@@ -64,7 +64,7 @@ <translation id="3950820424414687140">ছাইন ইন কৰক</translation> <translation id="405887016757208221">ৰিম’ট কম্পিউটাৰটোৱে ছেশ্বনটো আৰম্ভ কৰিব নোৱাৰিলে। যদি সমস্যাটো চলি থাকে অনুগ্ৰহ কৰি হ’ষ্টটো আকৌ কনফিগাৰ কৰাৰ চেষ্টা কৰক।</translation> <translation id="4060747889721220580">ফাইল ডাউনল’ড কৰক</translation> -<translation id="4126409073460786861">ছেটআপ সম্পূৰ্ণ হোৱাৰ পিছত পৃষ্ঠাটো ৰিফ্ৰেশ্ব কৰক, তাৰপিছত আপুনি নিজৰ ডিভাইচ বাছনি কৰি আৰু পিনটো দি কম্পিউটাৰ এক্সেছ কৰিব পাৰিব।</translation> +<translation id="4126409073460786861">ছেটআপ সম্পূৰ্ণ হোৱাৰ পাছত পৃষ্ঠাটো ৰিফ্ৰেশ্ব কৰক, তাৰপাছত আপুনি নিজৰ ডিভাইচ বাছনি কৰি আৰু পিনটো দি কম্পিউটাৰ এক্সেছ কৰিব পাৰিব।</translation> <translation id="4145029455188493639"><ph name="EMAIL_ADDRESS" /> হিচাপে ছাইন ইন কৰা হৈছে।</translation> <translation id="4155497795971509630">কিছুমান প্ৰয়োজনীয় সমল নাই। অনুগ্ৰহ কৰি আপুনি শেহতীয়া ছফ্টৱেৰটো ইনষ্টল কৰিছেনে নাই নিশ্চিত হৈ আকৌ চেষ্টা কৰক।</translation> <translation id="4176825807642096119">এক্সেছ ক’ড</translation>
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index 043ccce..166e805c 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -833,17 +833,6 @@ CheckOfflineCapabilityMode::kWarnOnly, &check_offline_capability_types}; -// The "BackForwardCacheABExperimentControl" feature indicates the state of the -// same-site BackForwardCache experiment. This information is used when sending -// the "Sec-bfcache-experiment" HTTP Header on resource requests. The header -// value is determined by the value of the "experiment_group_for_http_header" -// feature parameter. -BASE_FEATURE(kBackForwardCacheABExperimentControl, - "BackForwardCacheABExperimentControl", - base::FEATURE_DISABLED_BY_DEFAULT); -const char kBackForwardCacheABExperimentGroup[] = - "experiment_group_for_http_header"; - // Whether we should composite a PLSA (paint layer scrollable area) even if it // means losing lcd text. BASE_FEATURE(kPreferCompositingToLCDText,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 8b19ee8..827c842 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -362,10 +362,6 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam<CheckOfflineCapabilityMode> kCheckOfflineCapabilityParam; -BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackForwardCacheABExperimentControl); -BLINK_COMMON_EXPORT -extern const char kBackForwardCacheABExperimentGroup[]; - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPreferCompositingToLCDText); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
diff --git a/third_party/blink/public/strings/translations/blink_strings_as.xtb b/third_party/blink/public/strings/translations/blink_strings_as.xtb index d6bc5e0..89560df0 100644 --- a/third_party/blink/public/strings/translations/blink_strings_as.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_as.xtb
@@ -63,7 +63,7 @@ <translation id="4360991593054037559">অনুগ্ৰহ কৰি এক মান্য মান দিয়ক। নিকটৱর্তী মান্য মান দুটা হৈছে <ph name="VALID_VALUE_LOW" /> আৰু <ph name="VALID_VALUE_HIGHER" />।</translation> <translation id="4371899966896349864">প্লে’বেকৰ গতিৰ মেনু লুকুৱাওক</translation> <translation id="4522570452068850558">সবিশেষ</translation> -<translation id="4664250907885839816">'<ph name="ATSIGN" />'ৰ পিছত থকা অংশত '<ph name="INVALIDCHARACTER" />' চিহ্নটো থাকিব নালাগে।</translation> +<translation id="4664250907885839816">'<ph name="ATSIGN" />'ৰ পাছত থকা অংশত '<ph name="INVALIDCHARACTER" />' চিহ্নটো থাকিব নালাগে।</translation> <translation id="4718048029184481307">চিত্ৰৰ ভিতৰত চিত্ৰ ম'ড-ত প্লে 'কৰি থকা হৈছে</translation> <translation id="4748357248530471599">ডিছপ্লে' কাট আউটৰ সম্পূর্ণ স্ক্ৰীন টগ’ল কৰক</translation> <translation id="4763480195061959176">ভিডিঅ’</translation>
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc index 64a98c01..17e1dcf 100644 --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
@@ -713,27 +713,6 @@ return IsClientHintSentByDefault(type) || hints_preferences.ShouldSend(type); } -void BaseFetchContext::AddBackForwardCacheExperimentHTTPHeaderIfNeeded( - ResourceRequest& request) { - if (!RuntimeEnabledFeatures::BackForwardCacheExperimentHTTPHeaderEnabled( - GetExecutionContext())) { - return; - } - if (!base::FeatureList::IsEnabled( - blink::features::kBackForwardCacheABExperimentControl)) { - return; - } - // Send the 'Sec-bfcache-experiment' HTTP header to indicate which - // BackForwardCacheSameSite experiment group we're in currently. - UseCounter::Count(GetExecutionContext(), - WebFeature::kBackForwardCacheExperimentHTTPHeader); - auto experiment_group = base::GetFieldTrialParamValueByFeature( - features::kBackForwardCacheABExperimentControl, - features::kBackForwardCacheABExperimentGroup); - request.SetHttpHeaderField("Sec-bfcache-experiment", - experiment_group.c_str()); -} - void BaseFetchContext::Trace(Visitor* visitor) const { visitor->Trace(fetcher_properties_); FetchContext::Trace(visitor);
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h index eba47361..68397f2 100644 --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -142,9 +142,6 @@ // TODO(yhirano): Remove this. virtual void AddConsoleMessage(ConsoleMessage*) const = 0; - void AddBackForwardCacheExperimentHTTPHeaderIfNeeded( - ResourceRequest& request); - virtual ExecutionContext* GetExecutionContext() const = 0; private:
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc index 9a13768..0965f7dc 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -289,8 +289,6 @@ if (GetResourceFetcherProperties().IsDetached()) return; - - AddBackForwardCacheExperimentHTTPHeaderIfNeeded(request); } // TODO(toyoshim, arthursonzogni): PlzNavigate doesn't use this function to set
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc index cbe7d7c..84b3c36 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
@@ -1474,69 +1474,6 @@ EXPECT_EQ(origin, GetTopFrameOrigin()); } -// Verify the value of the sec-bfcache-experiment HTTP header varies according -// to whether BackForwardCacheExperimentHTTPHeader and BackForwardCacheSameSite -// is enabled or not. -TEST_F(FrameFetchContextTest, SameSiteBackForwardCache) { - base::FieldTrialParams params; - - { - ScopedBackForwardCacheExperimentHTTPHeaderForTest back_forward_cache(false); - params[features::kBackForwardCacheABExperimentGroup] = "foo"; - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeatureWithParameters( - features::kBackForwardCacheABExperimentControl, params); - - ResourceRequest resource_request("http://www.example.com"); - GetFetchContext()->AddAdditionalRequestHeaders(resource_request); - - // BackForwardCacheExperimentHTTPHeader is not enabled and - // BackForwardCacheSameSite's experiment group is "foo". - EXPECT_EQ(String(), - resource_request.HttpHeaderField("Sec-bfcache-experiment")); - } - - { - ScopedBackForwardCacheExperimentHTTPHeaderForTest back_forward_cache(true); - ResourceRequest resource_request("http://www.example.com"); - GetFetchContext()->AddAdditionalRequestHeaders(resource_request); - - // BackForwardCacheExperimentHTTPHeader is enabled and - // BackForwardCacheSameSite's experiment group is not set. - EXPECT_EQ(String(), - resource_request.HttpHeaderField("Sec-bfcache-experiment")); - } - - { - params[features::kBackForwardCacheABExperimentGroup] = "control"; - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeatureWithParameters( - features::kBackForwardCacheABExperimentControl, params); - - ResourceRequest resource_request("http://www.example.com"); - GetFetchContext()->AddAdditionalRequestHeaders(resource_request); - - // BackForwardCacheExperimentHTTPHeader is enabled and - // BackForwardCacheSameSite's experiment group is "control". - EXPECT_EQ("control", - resource_request.HttpHeaderField("Sec-bfcache-experiment")); - } - - { - params[features::kBackForwardCacheABExperimentGroup] = "enabled"; - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeatureWithParameters( - features::kBackForwardCacheABExperimentControl, params); - ResourceRequest resource_request("http://www.example.com"); - GetFetchContext()->AddAdditionalRequestHeaders(resource_request); - - // BackForwardCacheExperimentHTTPHeader is enabled and - // BackForwardCacheSameSite experiment group is "enabled". - EXPECT_EQ("enabled", - resource_request.HttpHeaderField("Sec-bfcache-experiment")); - } -} - // Tests that CanRequestCanRequestBasedOnSubresourceFilterOnly will block ads // or not correctly, depending on the FilterPolicy. TEST_F(FrameFetchContextSubresourceFilterTest,
diff --git a/third_party/blink/renderer/core/loader/mixed_content_checker.cc b/third_party/blink/renderer/core/loader/mixed_content_checker.cc index ba71a1c..1f0d86b 100644 --- a/third_party/blink/renderer/core/loader/mixed_content_checker.cc +++ b/third_party/blink/renderer/core/loader/mixed_content_checker.cc
@@ -268,7 +268,8 @@ // static bool MixedContentChecker::IsMixedContent(const SecurityOrigin* security_origin, const KURL& url) { - return IsMixedContent(security_origin->Protocol(), url); + return IsMixedContent( + security_origin->GetOriginOrPrecursorOriginIfOpaque()->Protocol(), url); } // static
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc index 1dcc0a3a..401868e 100644 --- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
@@ -215,8 +215,6 @@ // permissions policies for workers and/or deprecating this inclusion. if (save_data_enabled_) request.SetHttpHeaderField(http_names::kSaveData, "on"); - - AddBackForwardCacheExperimentHTTPHeaderIfNeeded(request); } void WorkerFetchContext::AddResourceTiming(const ResourceTimingInfo& info) {
diff --git a/third_party/blink/renderer/core/svg/svg_element.cc b/third_party/blink/renderer/core/svg/svg_element.cc index a525f22..59935fb 100644 --- a/third_party/blink/renderer/core/svg/svg_element.cc +++ b/third_party/blink/renderer/core/svg/svg_element.cc
@@ -584,7 +584,11 @@ void SVGElement::AddInstance(SVGElement* instance) { DCHECK(instance); - DCHECK(instance->InUseShadowTree()); + // Called during the <use> shadow tree building's post-processing step, just + // after the target<->instance association. + DCHECK(!instance->isConnected()); + DCHECK(instance->HasSVGRareData()); + DCHECK_EQ(instance->SvgRareData()->CorrespondingElement(), this); HeapHashSet<WeakMember<SVGElement>>& instances = EnsureSVGRareData()->ElementInstances(); @@ -595,8 +599,11 @@ void SVGElement::RemoveInstance(SVGElement* instance) { DCHECK(instance); - // Called during instance->RemovedFrom() after removal from shadow tree + // Called during instance->RemovedFrom() after removal from shadow tree, + // before the target<->instance association is severed. DCHECK(!instance->isConnected()); + DCHECK(instance->HasSVGRareData()); + DCHECK_EQ(instance->SvgRareData()->CorrespondingElement(), this); HeapHashSet<WeakMember<SVGElement>>& instances = SvgRareData()->ElementInstances();
diff --git a/third_party/blink/renderer/core/svg/svg_use_element.cc b/third_party/blink/renderer/core/svg/svg_use_element.cc index baaefa5..6798496 100644 --- a/third_party/blink/renderer/core/svg/svg_use_element.cc +++ b/third_party/blink/renderer/core/svg/svg_use_element.cc
@@ -368,13 +368,26 @@ return String(); } +static void PostProcessInstanceElement(SVGElement& target, + SVGElement& instance) { + // Transfer non-markup event listeners. + if (EventTargetData* data = target.GetEventTargetData()) { + data->event_listener_map.CopyEventListenersNotCreatedFromMarkupToTarget( + &instance); + } + // Set up the corresponding element association. + instance.SetCorrespondingElement(&target); + // Setup the mapping from the target element back to the instance. + target.AddInstance(&instance); +} + static void PostProcessInstanceTree(SVGElement& target_root, SVGElement& instance_root) { DCHECK(!instance_root.isConnected()); // We checked this before creating the cloned subtree. DCHECK(!IsDisallowedElement(instance_root)); - // Associate the roots. - instance_root.SetCorrespondingElement(&target_root); + // Handle the root(s). (Always allowed and SVGElements.) + PostProcessInstanceElement(target_root, instance_root); // The subtrees defined by |target_root| and |instance_root| should be // isomorphic at this point, so we can walk both trees simultaneously to be @@ -408,11 +421,10 @@ ElementTraversal::NextSkippingChildren(*target_element, &target_root); instance_element = instance_next; } else { - // Set up the corresponding element association. if (auto* svg_instance_element = DynamicTo<SVGElement>(instance_element)) { - svg_instance_element->SetCorrespondingElement( - To<SVGElement>(target_element)); + PostProcessInstanceElement(To<SVGElement>(*target_element), + *svg_instance_element); } target_element = ElementTraversal::Next(*target_element, &target_root); instance_element = @@ -453,7 +465,6 @@ instance_root = svg_element; } TransferUseWidthAndHeightIfNeeded(*this, *instance_root, target_root); - PostProcessInstanceTree(target_root, *instance_root); return instance_root; } @@ -465,28 +476,21 @@ if (IsDisallowedElement(target) || HasCycleUseReferencing(*this, target)) return; - // Set up root SVG element in shadow tree. - // Clone the target subtree into the shadow tree, not handling <use> and - // <symbol> yet. - UseShadowRoot().AppendChild(CreateInstanceTree(target)); + // Create the initial clone of the |target| subtree. Handles transformation + // of <symbol> to <svg>. + SVGElement* instance_root = CreateInstanceTree(target); + + // Remove disallowed elements, clone event handlers and set up the + // association with the corresponding/target element. + PostProcessInstanceTree(target, *instance_root); + + // Finally attach to the tree. + UseShadowRoot().AppendChild(instance_root); // Assure shadow tree building was successful. DCHECK(InstanceRoot()); DCHECK_EQ(InstanceRoot()->GeneratingUseElement(), this); DCHECK_EQ(InstanceRoot()->CorrespondingElement(), &target); - - for (SVGElement& instance : - Traversal<SVGElement>::DescendantsOf(UseShadowRoot())) { - SVGElement* corresponding_element = instance.CorrespondingElement(); - // Transfer non-markup event listeners. - if (EventTargetData* data = corresponding_element->GetEventTargetData()) { - data->event_listener_map.CopyEventListenersNotCreatedFromMarkupToTarget( - &instance); - } - // Setup the mapping from the corresponding (original) element back to the - // instance. - corresponding_element->AddInstance(&instance); - } } void SVGUseElement::DetachShadowTree() {
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.cc b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.cc index 2b7b46c..f0be17a 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_encoded_audio_stream_transformer.cc
@@ -32,7 +32,6 @@ : public webrtc::FrameTransformerInterface { public: RTCEncodedAudioStreamTransformerDelegate( - RTCEncodedAudioStreamTransformer* transformer, scoped_refptr<base::SingleThreadTaskRunner> realm_task_runner, scoped_refptr<RTCEncodedAudioStreamTransformer::Broker> transformer_broker) @@ -151,7 +150,6 @@ : broker_(base::AdoptRef(new Broker(this))), delegate_( new rtc::RefCountedObject<RTCEncodedAudioStreamTransformerDelegate>( - this, std::move(realm_task_runner), broker_)) {}
diff --git a/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py b/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py index 69f7b04..02a69c3 100644 --- a/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py +++ b/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py
@@ -327,7 +327,8 @@ def _collect_tests(self, args): return self._finder.find_tests( args, - filter_files=self._options.test_list, + test_lists=self._options.test_list, + filter_files=self._options.isolated_script_test_filter_file, fastest_percentile=self._options.fastest, filters=self._options.isolated_script_test_filter)
diff --git a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder.py b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder.py index 9afb1c4..ac3dfa0dd 100644 --- a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder.py +++ b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder.py
@@ -54,21 +54,21 @@ def find_tests( self, args, + test_lists=None, filter_files=None, fastest_percentile=None, filters=None, ): filters = filters or [] paths = self._strip_test_dir_prefixes(args) - positive_matches, negative_matches, positive_globs, negative_globs = [], [], [], [] - if filter_files: - file_filters = self._read_filter_files( - filter_files, self._port.TEST_PATH_SEPARATOR) - positive_matches, negative_matches, positive_globs, negative_globs = [ - self._strip_test_dir_prefixes(file_filter) - for file_filter in file_filters + if test_lists: + new_paths = self._read_test_list_files( + test_lists, self._port.TEST_PATH_SEPARATOR) + new_paths = [ + self._strip_test_dir_prefix(new_path) + for new_path in new_paths ] - paths += positive_matches + paths += new_paths all_tests = [] if not paths or fastest_percentile: @@ -98,12 +98,15 @@ test_files = all_tests running_all_tests = True - test_files = filter_tests(test_files, - [f.split('::') for f in filters] + - [positive_globs, negative_globs]) - if negative_matches: - test_files = filter_out_exact_negative_matches( - test_files, negative_matches) + all_filters = [] + if filters: + all_filters = [f.split('::') for f in filters] + if filter_files: + file_filters = self._read_filter_files( + filter_files, self._port.TEST_PATH_SEPARATOR) + all_filters = all_filters + file_filters + + test_files = filter_tests(test_files, all_filters) # de-dupe the test list and paths here before running them. test_files = list(OrderedDict.fromkeys(test_files)) @@ -162,18 +165,31 @@ return path def _read_filter_files(self, filenames, test_path_separator): - # TODO(crbug.com/794783) - # https://bit.ly/chromium-test-runner-api says "A test should be run - # only if it would be RUN when EVERY flag is evaluated individually. - # A test should be SKIPPED if it would be skipped if ANY flag was - # evaluated individually." - # The current logic here unions the positive flags, while it should - # intersect them. + fs = self._filesystem + filters = [] + for filename in filenames: + file_lines = [] + try: + if test_path_separator != fs.sep: + filename = filename.replace(test_path_separator, fs.sep) + file_contents = fs.read_text_file(filename).split('\n') + for line in file_contents: + line = self._strip_comments(line) + if not line: + continue + file_lines.append(line) + filters.append(file_lines) + except IOError as error: + if error.errno == errno.ENOENT: + _log.critical('') + _log.critical('--test-launcher-filter-file "%s" not found', + filename) + raise + return filters + + def _read_test_list_files(self, filenames, test_path_separator): fs = self._filesystem positive_matches = [] - negative_matches = [] - positive_globs = [] - negative_globs = [] for filename in filenames: try: if test_path_separator != fs.sep: @@ -183,23 +199,17 @@ line = self._strip_comments(line) if not line: continue - is_glob = line[-1] == '*' and (len(line) == 1 - or line[-2] != '\\') if line[0] == '-': - if is_glob: - negative_globs.append(line) - else: - negative_matches.append(line) - elif is_glob: - positive_globs.append(line) - else: - positive_matches.append(line) + _log.debug( + 'test-list %s contains a negative filter %s' % + (filename, line)) + positive_matches.append(line) except IOError as error: if error.errno == errno.ENOENT: _log.critical('') _log.critical('--test-list file "%s" not found', filename) raise - return positive_matches, negative_matches, positive_globs, negative_globs + return positive_matches @staticmethod def _strip_comments(line): @@ -327,19 +337,6 @@ return tests_to_run -def filter_out_exact_negative_matches(tests, negative_matches): - """Similar to filter_tests, but filters only negative match filters for more speed - - With globbing disallowed, we can use sets, which have O(1) lookup time in - CPython. This allows for larger filter lists. - - negative_filters is a list of lists of filters (because the user can pass the flag - multiple times - """ - filter_set = set(fil[1:] for fil in negative_matches) - return [test for test in tests if test not in filter_set] - - def filter_tests(tests, filters): """Returns a filtered list of tests to run. @@ -347,17 +344,22 @@ https://bit.ly/chromium-test-runner-api and https://bit.ly/chromium-test-list-format, but are as follows: - Each filter is a list of glob expressions, with each expression optionally - prefixed by a "-". If the glob starts with a "-", it is a negative glob, - otherwise it is a positive glob. + A test should be run only if it would be run when every flag (ie filter) is + evaluated individually. A test should be skipped if it would be skipped if + any flag (filter) was evaluated individually. - A test passes the filter if and only if it is explicitly matched by at - least one positive glob and no negative globs, or if there are no - positive globs and it is not matched by any negative globs. + Each filter is a list of potentially glob expressions, with each expression + optionally prefixed by a "-" or "+". If the glob starts with a "-", it is a + negative term, otherwise it is a positive term. - Globbing is fairly limited; "?" is not allowed, and "*" must only appear - at the end of the glob. If multiple globs match a test, the longest match - wins. If both globs are the same length, an error is raised. + If multiple filter terms in a flag (filter) match a given test name, the + longest match takes priority (longest match wins). The order of the filters + should not matter. It is an error to have multiple expressions of the same + length that conflict. + + Globbing is fairly limited; "?" is not allowed, and unescaped "*" must only + appear at the end of the glob. If multiple globs match a test, the longest + match wins. If both globs are the same length, an error is raised. A test will be run only if it passes every filter. """ @@ -365,30 +367,79 @@ def glob_sort_key(k): if k and k[0] == '-': return (len(k[1:]), k[1:]) + elif k and k[0] == '+': + return (len(k[1:]), k[1:]) else: return (len(k), k) - for globs in filters: - include_by_default = all(glob.startswith('-') for glob in globs) + for filter in filters: + # Validate the filter + for term in filter: + if (term.startswith('-') and not term[1:]) or not term: + raise ValueError('Empty filter entry "%s"' % (term, )) + for i, c in enumerate(term): + if i == len(term) - 1: + continue + if c == '*' and (i == 0 or term[i - 1] != '\\'): + raise ValueError('Bad test filter "%s" specified; ' + 'unescaped wildcards are only allowed at ' + 'the end' % (term, )) + if term.startswith('-') and term[1:] in filter: + raise ValueError('Both "%s" and "%s" specified in test ' + 'filter' % (term, term[1:])) + + # Separate the negative/positive globless terms and glob terms + include_by_default = all(term.startswith('-') for term in filter) + exact_neg_terms, exact_pos_terms, glob_terms = _extract_terms(filter) + filtered_tests = [] for test in tests: + # Check for the exact test name + if test in exact_neg_terms: + continue + if test in exact_pos_terms: + filtered_tests.append(test) + continue + + # Check globs, this could be done with a trie to avoid this loop + # but glob terms should be lower volume than exact terms include = include_by_default - for glob in sorted(globs, key=glob_sort_key): - if (glob.startswith('-') and not glob[1:]) or not glob: - raise ValueError('Empty glob filter "%s"' % (glob, )) - if '*' in glob[:-1]: - raise ValueError( - 'Bad test filter "%s" specified; ' - 'wildcards are only allowed at the end' % (glob, )) - if glob.startswith('-') and glob[1:] in globs: - raise ValueError('Both "%s" and "%s" specified in test ' - 'filter' % (glob, glob[1:])) + for glob in sorted(glob_terms, key=glob_sort_key): if glob.startswith('-'): include = include and not fnmatch.fnmatch(test, glob[1:]) else: - include = include or fnmatch.fnmatch(test, glob) + include = include or fnmatch.fnmatch( + test, glob[1:] if glob[0] == '+' else glob) if include: filtered_tests.append(test) tests = filtered_tests return tests + + +def _extract_terms(filter): + """Extract terms of the filter into exact +/- terms and glob terms. + + The +/- prefix char for exact terms will also be stripped as they are no + longer needed to identify the term as a positive or negative filter. Any + prefix in globbed terms (terms with a *) will preserve the sign. + """ + exact_negative_terms = set() + exact_positive_terms = set() + glob_terms = set() + for term in filter: + is_glob = False + for i, c in enumerate(term): + if c == '*' and (i == 0 or term[i - 1] != '\\'): + glob_terms.add(term) + is_glob = True + break + if is_glob: + continue + elif term[0] == '-': + exact_negative_terms.add(term[1:]) + elif term[0] == '+': + exact_positive_terms.add(term[1:]) + else: + exact_positive_terms.add(term) + return exact_negative_terms, exact_positive_terms, list(glob_terms)
diff --git a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder_unittest.py b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder_unittest.py index fa9826e3..40ef611 100644 --- a/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder_unittest.py +++ b/third_party/blink/tools/blinkpy/web_tests/controllers/web_test_finder_unittest.py
@@ -9,6 +9,7 @@ from blinkpy.common import path_finder from blinkpy.common.host_mock import MockHost +from blinkpy.common.system.filesystem_mock import MockFileSystem from blinkpy.web_tests.controllers import web_test_finder from blinkpy.web_tests.models import test_expectations @@ -287,6 +288,28 @@ self.assertEqual(['5', '6'], split(tests, 1, 3)) self.assertEqual(['3'], split(tests, 2, 3)) + def test_test_list_find_tests(self): + host = MockHost() + port = host.port_factory.get('test-win-win7', None) + mock_files = {'test-list.txt': \ + 'path/test.html\n'\ + 'virtual/path/test.html'} + host.filesystem = MockFileSystem(files=mock_files) + + port_tests = [ + 'path/test.html', + 'not/in/test/list.html', + ] + + port.tests = lambda paths: paths or port_tests + + finder = web_test_finder.WebTestFinder(port, {}) + + tests = finder.find_tests(args=[], test_lists=['test-list.txt']) + self.assertEqual( + set(tests[1]), + set(['path/test.html','virtual/path/test.html',])) + class FilterTestsTests(unittest.TestCase): simple_test_list = ['a/a1.html', 'a/a2.html', 'b/b1.html'] @@ -306,13 +329,23 @@ def test_one_all_positive_filter(self): self.check(self.simple_test_list, [['a*']], ['a/a1.html', 'a/a2.html']) + self.check(self.simple_test_list, [['+a*']], + ['a/a1.html', 'a/a2.html']) self.check(self.simple_test_list, [['a*', 'b*']], self.simple_test_list) + def test_one_exact_positive_filter(self): + self.check(self.simple_test_list, [['a/a1.html']], ['a/a1.html']) + self.check(self.simple_test_list, [['+a/a1.html']], ['a/a1.html']) + def test_one_all_negative_filter(self): self.check(self.simple_test_list, [['-c*']], self.simple_test_list) + def test_one_exact_negative_filter(self): + self.check(self.simple_test_list, [['-a/a1.html']], + ['a/a2.html', 'b/b1.html']) + def test_one_mixed_filter(self): self.check(self.simple_test_list, [['a*', '-c*']], ['a/a1.html', 'a/a2.html']) @@ -343,9 +376,8 @@ # would be run by every filter individually). self.check(self.simple_test_list, [['-a/a*'], ['a/a2*']], []) - def test_only_trailing_globs_work(self): + def test_only_trailing_unescaped_globs_work(self): self.check(self.simple_test_list, [['a*']], ['a/a1.html', 'a/a2.html']) - # These test that if you have a glob that contains a "*" that isn't # at the end, it is rejected; only globs at the end should work. self.assertRaises(ValueError, self.check, self.simple_test_list, @@ -353,18 +385,6 @@ self.assertRaises(ValueError, self.check, self.simple_test_list, [['a*.html']], []) - -class NegativeFilterTestsNoGlobTests(unittest.TestCase): - simple_test_list = ['a/a1.html', 'a/a2.html', 'b/b1.html'] - - def check(self, tests, filters, expected_tests): - self.assertEqual( - expected_tests, - web_test_finder.filter_out_exact_negative_matches(tests, filters)) - - def test_no_filters(self): - self.check(self.simple_test_list, [], self.simple_test_list) - - def test_one_all_negative_filter(self): - self.check(self.simple_test_list, ['-' + self.simple_test_list[0]], - self.simple_test_list[1:]) + def test_escaped_globs_allowed(self): + self.check(self.simple_test_list + ['a\\*1'], [['-a\\*1']], + self.simple_test_list)
diff --git a/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py b/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py index fb6eba0..baad6ad7 100644 --- a/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py +++ b/third_party/blink/tools/blinkpy/web_tests/run_web_tests.py
@@ -535,14 +535,17 @@ help= 'Run the N% fastest tests as well as any tests listed on the command line' ), + optparse.make_option('--test-list', + action='append', + metavar='FILE', + help='read filters for tests to run'), optparse.make_option( - '--test-list', '--isolated-script-test-filter-file', '--test-launcher-filter-file', action='append', metavar='FILE', help= - 'read list of tests to run from file, as if they were specified on the command line' + 'read filters for tests to not run as if they were specified on the command line' ), optparse.make_option( '--isolated-script-test-filter',
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 4ba2a7d9..64ddca94 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -5580,7 +5580,6 @@ # Sheriff 2021-04-21 crbug.com/1201225 external/wpt/pointerevents/pointerlock/pointerevent_pointerrawupdate_in_pointerlock.html [ Failure Pass Timeout ] -crbug.com/1201346 http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial.php [ Failure Pass ] crbug.com/1201365 virtual/portals/http/tests/inspector-protocol/portals/device-emulation-portals.js [ Pass Timeout ] # Sheriff 2021-04-22 @@ -7198,6 +7197,7 @@ crbug.com/1159586 virtual/post-message-different-partition-same-origin-blocked/external/wpt/html/browsers/windows/post-message/third-party-to-third-party-cross-partition-same-origin.sub.html [ Timeout ] # Sheriff 2022-10-03 +crbug.com/1368767 wpt_internal/webmidi/requestmidiaccess-basic.https.html [ Failure Pass ] crbug.com/1362405 css3/filters/effect-reference-hidpi.html [ Skip ] # These tests are optional and not reliably supported in Chrome.
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites index e77786c..5974493 100644 --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -778,12 +778,6 @@ "args": [ "--enable-features=RestrictGamepadAccess" ] }, { - "prefix": "bfcache-experiment-control", - "platforms": ["Linux", "Mac", "Win"], - "bases": [ "http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial.php" ], - "args": [ "--enable-features=BackForwardCacheABExperimentControl" ] - }, - { "prefix": "third-party-storage-partitioning", "platforms": ["Linux", "Mac", "Win"], "bases": [
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 87aadbf..b7042a8 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -274947,6 +274947,10 @@ "b2c06f72be49fb1e9ecd45b0fa3b209882e13cbd", [] ], + "font-palette-vs-shorthand-expected.txt": [ + "b9913eda83a45350b9a28884869a8fe5dcbe31b7", + [] + ], "font-size-adjust-001-ref.html": [ "609e8d1d4bfd7429bcfbc971c9d765b56f497b7c", [] @@ -314380,12 +314384,12 @@ "49ce6bd52a5a829799078823c8f3b7a450a28233", [] ], - "executor.html": [ - "9aec26345177df1859a48426dd6169c0d2d2cefa", + "executor.sub.html": [ + "38f4429d91e4ee9f203fe312043cec23298c205a", [] ], "remote-context-helper.js": [ - "300eded282e098b2b338e3b6c22e3178da39e7ec", + "7a4b399af885780f81fc9c4934123598705fdaa0", [] ] } @@ -334764,7 +334768,7 @@ }, "mime-types": { "README.md": [ - "4b3c81386697d51451b666bc434e042d4949341e", + "eb5fba0ef00504e17aef47a725e55bb934a15e39", [] ], "charset-parameter.window-expected.txt": [ @@ -334772,11 +334776,11 @@ [] ], "parsing.any-expected.txt": [ - "08508ea98985defa40ef86a62e6935406f7e863c", + "cb0045038362f60d60bf92584cf2712fc5b95dab", [] ], "parsing.any.worker-expected.txt": [ - "08508ea98985defa40ef86a62e6935406f7e863c", + "cb0045038362f60d60bf92584cf2712fc5b95dab", [] ], "resources": { @@ -457380,6 +457384,13 @@ {} ] ], + "document-state.tentative.https.html": [ + "d0e629f63124579a2f4360403119dcd9fcb31190", + [ + null, + {} + ] + ], "event-order": { "after-load-hash-twice.html": [ "75889ef5175fa6b44281a4d5a138f8a02064baff", @@ -514368,14 +514379,14 @@ }, "mime-types": { "charset-parameter.window.js": [ - "ddac81b74d3b41652e28d39c299d4f8ebf0c118c", + "5dc46562543bf8557c2e0f0a3f4c5396e6ea71d8", [ "mimesniff/mime-types/charset-parameter.window.html", {} ] ], "parsing.any.js": [ - "ae396c4f095b6a6d190a25fe2a0231c53f19b29a", + "93be6bfb1394f672abcbe82491a559564ec85cf9", [ "mimesniff/mime-types/parsing.any.html", {
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt similarity index 100% rename from third_party/blink/web_tests/platform/linux/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt rename to third_party/blink/web_tests/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/README.md b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/README.md index 4b3c81386..eb5fba0e 100644 --- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/README.md +++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/README.md
@@ -13,6 +13,11 @@ ```js function isByteCompatible(str) { + // see https://fetch.spec.whatwg.org/#concept-header-value-normalize + if(/^[\u0009\u0020\u000A\u000D]+|[\u0009\u0020\u000A\u000D]+$/.test(str)) { + return "header-value-incompatible"; + } + for(let i = 0; i < str.length; i++) { const charCode = str.charCodeAt(i); // See https://fetch.spec.whatwg.org/#concept-header-value
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/charset-parameter.window.js b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/charset-parameter.window.js index ddac81b7..5dc46562 100644 --- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/charset-parameter.window.js +++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/charset-parameter.window.js
@@ -4,13 +4,18 @@ }, "Loading data…"); function isByteCompatible(str) { + // see https://fetch.spec.whatwg.org/#concept-header-value-normalize + if(/^[\u0009\u0020\u000A\u000D]+|[\u0009\u0020\u000A\u000D]+$/.test(str)) { + return "header-value-incompatible"; + } + for(let i = 0; i < str.length; i++) { const charCode = str.charCodeAt(i); // See https://fetch.spec.whatwg.org/#concept-header-value if(charCode > 0xFF) { return "incompatible"; } else if(charCode === 0x00 || charCode === 0x0A || charCode === 0x0D) { - return "header-value-incompatible"; + return "header-value-error"; } } return "compatible";
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt index 08508ea..cb00450 100644 --- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 1911 tests; 713 PASS, 1198 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1898 tests; 712 PASS, 1186 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Loading data… PASS text/html;charset=gbk (Blob/File) PASS text/html;charset=gbk (Request/Response) @@ -96,9 +96,7 @@ FAIL x/x;test="\ (Blob/File) assert_equals: Blob expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\" FAIL x/x;test="\ (Request/Response) assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\" FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got "x/x;x= " -FAIL x/x;x= (Request/Response) assert_equals: expected "x/x" but got "x/x;x=" FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got "" -FAIL x/x;x= (Request/Response) assert_equals: expected "x/x" but got "x/x;x=" FAIL x/x \r ;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" PASS x/x @@ -106,9 +104,6 @@ FAIL \r x/x;x=x \r (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" -FAIL -\r x/x;x=x -\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x; \r x=x \r ;x=y (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" @@ -130,7 +125,6 @@ PASS (Blob/File) PASS (Request/Response) PASS (Blob/File) -PASS (Request/Response) FAIL / (Blob/File) assert_equals: Blob expected "" but got "/" FAIL / (Request/Response) assert_equals: expected "" but got "/" FAIL bogus (Blob/File) assert_equals: Blob expected "" but got "bogus" @@ -138,7 +132,6 @@ FAIL bogus/ (Blob/File) assert_equals: Blob expected "" but got "bogus/" FAIL bogus/ (Request/Response) assert_equals: expected "" but got "bogus/" FAIL bogus/ (Blob/File) assert_equals: Blob expected "" but got "bogus/ " -FAIL bogus/ (Request/Response) assert_equals: expected "" but got "bogus/" FAIL bogus/bogus/; (Blob/File) assert_equals: Blob expected "" but got "bogus/bogus/;" FAIL bogus/bogus/; (Request/Response) assert_equals: expected "" but got "bogus/bogus/;" FAIL </> (Blob/File) assert_equals: Blob expected "" but got "</>" @@ -250,19 +243,13 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS /x (Blob/File) -FAIL /x (Request/Response) assert_equals: expected "" but got "/x" PASS x/ (Blob/File) -FAIL x/ (Request/Response) assert_equals: expected "" but got "x/" FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x; =x;bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS /x (Blob/File) -FAIL -/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw PASS x/ (Blob/File) -FAIL x/ - (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" PASS x/x; @@ -296,9 +283,7 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS \r/x (Blob/File) -FAIL \r/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw PASS x/\r (Blob/File) -FAIL x/\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x;\r=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" PASS x/x;\r=x;bonus=x (Request/Response) FAIL x/x;x=\r;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" @@ -486,9 +471,7 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" FAIL /x (Blob/File) assert_equals: Blob expected "" but got " /x" -FAIL /x (Request/Response) assert_equals: expected "" but got "/x" FAIL x/ (Blob/File) assert_equals: Blob expected "" but got "x/ " -FAIL x/ (Request/Response) assert_equals: expected "" but got "x/" FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "x/x; =x;bonus=x" FAIL x/x; =x;bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "x/x; =x;bonus=x" FAIL "/x (Blob/File) assert_equals: Blob expected "" but got "\"/x"
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.js b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.js index ae396c4..93be6bf 100644 --- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.js +++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.js
@@ -8,13 +8,18 @@ }, "Loading data…"); function isByteCompatible(str) { + // see https://fetch.spec.whatwg.org/#concept-header-value-normalize + if(/^[\u0009\u0020\u000A\u000D]+|[\u0009\u0020\u000A\u000D]+$/.test(str)) { + return "header-value-incompatible"; + } + for(let i = 0; i < str.length; i++) { const charCode = str.charCodeAt(i); // See https://fetch.spec.whatwg.org/#concept-header-value if(charCode > 0xFF) { return "incompatible"; } else if(charCode === 0x00 || charCode === 0x0A || charCode === 0x0D) { - return "header-value-incompatible"; + return "header-value-error"; } } return "compatible"; @@ -31,9 +36,13 @@ assert_equals(new File([], "noname", { type: val.input}).type, output, "File"); }, val.input + " (Blob/File)"); + const compatibleNess = isByteCompatible(val.input); + if(compatibleNess === "header-value-incompatible") { + return; + } + promise_test(() => { - const compatibleNess = isByteCompatible(val.input); - if(compatibleNess === "incompatible" || compatibleNess === "header-value-incompatible") { + if(compatibleNess === "incompatible" || compatibleNess === "header-value-error") { assert_throws_js(TypeError, () => new Request("about:blank", { headers: [["Content-Type", val.input]] })); assert_throws_js(TypeError, () => new Response(null, { headers: [["Content-Type", val.input]] })); return Promise.resolve();
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt index 08508ea..cb00450 100644 --- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 1911 tests; 713 PASS, 1198 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1898 tests; 712 PASS, 1186 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Loading data… PASS text/html;charset=gbk (Blob/File) PASS text/html;charset=gbk (Request/Response) @@ -96,9 +96,7 @@ FAIL x/x;test="\ (Blob/File) assert_equals: Blob expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\" FAIL x/x;test="\ (Request/Response) assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\" FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got "x/x;x= " -FAIL x/x;x= (Request/Response) assert_equals: expected "x/x" but got "x/x;x=" FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got "" -FAIL x/x;x= (Request/Response) assert_equals: expected "x/x" but got "x/x;x=" FAIL x/x \r ;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" PASS x/x @@ -106,9 +104,6 @@ FAIL \r x/x;x=x \r (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" -FAIL -\r x/x;x=x -\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x; \r x=x \r ;x=y (Blob/File) assert_equals: Blob expected "x/x;x=x" but got "" @@ -130,7 +125,6 @@ PASS (Blob/File) PASS (Request/Response) PASS (Blob/File) -PASS (Request/Response) FAIL / (Blob/File) assert_equals: Blob expected "" but got "/" FAIL / (Request/Response) assert_equals: expected "" but got "/" FAIL bogus (Blob/File) assert_equals: Blob expected "" but got "bogus" @@ -138,7 +132,6 @@ FAIL bogus/ (Blob/File) assert_equals: Blob expected "" but got "bogus/" FAIL bogus/ (Request/Response) assert_equals: expected "" but got "bogus/" FAIL bogus/ (Blob/File) assert_equals: Blob expected "" but got "bogus/ " -FAIL bogus/ (Request/Response) assert_equals: expected "" but got "bogus/" FAIL bogus/bogus/; (Blob/File) assert_equals: Blob expected "" but got "bogus/bogus/;" FAIL bogus/bogus/; (Request/Response) assert_equals: expected "" but got "bogus/bogus/;" FAIL </> (Blob/File) assert_equals: Blob expected "" but got "</>" @@ -250,19 +243,13 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS /x (Blob/File) -FAIL /x (Request/Response) assert_equals: expected "" but got "/x" PASS x/ (Blob/File) -FAIL x/ (Request/Response) assert_equals: expected "" but got "x/" FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x; =x;bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS /x (Blob/File) -FAIL -/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw PASS x/ (Blob/File) -FAIL x/ - (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" PASS x/x; @@ -296,9 +283,7 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" PASS \r/x (Blob/File) -FAIL \r/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw PASS x/\r (Blob/File) -FAIL x/\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw FAIL x/x;\r=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" PASS x/x;\r=x;bonus=x (Request/Response) FAIL x/x;x=\r;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" @@ -486,9 +471,7 @@ FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "" FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "" FAIL /x (Blob/File) assert_equals: Blob expected "" but got " /x" -FAIL /x (Request/Response) assert_equals: expected "" but got "/x" FAIL x/ (Blob/File) assert_equals: Blob expected "" but got "x/ " -FAIL x/ (Request/Response) assert_equals: expected "" but got "x/" FAIL x/x; =x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got "x/x; =x;bonus=x" FAIL x/x; =x;bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "x/x; =x;bonus=x" FAIL "/x (Blob/File) assert_equals: Blob expected "" but got "\"/x"
diff --git a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt b/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt deleted file mode 100644 index 1a74bc32..0000000 --- a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt +++ /dev/null
@@ -1 +0,0 @@ -Sec-bfcache-experiment: <missing>
diff --git a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial.php b/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial.php deleted file mode 100644 index 4094564..0000000 --- a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial.php +++ /dev/null
@@ -1,23 +0,0 @@ -<title>BackForwardCacheExperimentHTTPHeader - enabled by origin trial</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<body> -<div id="status"></div> -<script> -test(t => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', 'resources/echo-request-sec-bfcache-experiment.php'); - xhr.onload = function (e) { - document.getElementById('status').innerText = xhr.responseText; - if (window.testRunner) - testRunner.notifyDone(); - }; - xhr.onerror = function (e) { - document.getElementById('status').innerText = "FAIL"; - if (window.testRunner) - testRunner.notifyDone(); - }; - xhr.send(); -}, 'Sec-bfcache-experiment must be set.'); -</script> -</body>
diff --git a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/resources/echo-request-sec-bfcache-experiment.php b/third_party/blink/web_tests/http/tests/origin_trials/webexposed/resources/echo-request-sec-bfcache-experiment.php deleted file mode 100644 index a0100d47..0000000 --- a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/resources/echo-request-sec-bfcache-experiment.php +++ /dev/null
@@ -1,7 +0,0 @@ -<?php -header('Content-Type: text/plain'); -if (isset($_SERVER['HTTP_SEC_BFCACHE_EXPERIMENT'])) - echo 'Sec-bfcache-experiment: ' . $_SERVER['HTTP_SEC_BFCACHE_EXPERIMENT']; -else - echo 'Sec-bfcache-experiment: <missing>'; -?>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt deleted file mode 100644 index b9913eda..0000000 --- a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt +++ /dev/null
@@ -1,7 +0,0 @@ -This is a testharness.js-based test. -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand assert_equals: expected "" but got "50px colr" -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand 1 assert_equals: expected "normal" but got "dark" -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand 2 assert_equals: expected "" but got "50px colr" -PASS CSS Fonts Module Level 4: interaction of font-palette and font shorthand 3 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt b/third_party/blink/web_tests/platform/win10/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt deleted file mode 100644 index b9913eda..0000000 --- a/third_party/blink/web_tests/platform/win10/external/wpt/css/css-fonts/font-palette-vs-shorthand-expected.txt +++ /dev/null
@@ -1,7 +0,0 @@ -This is a testharness.js-based test. -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand assert_equals: expected "" but got "50px colr" -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand 1 assert_equals: expected "normal" but got "dark" -FAIL CSS Fonts Module Level 4: interaction of font-palette and font shorthand 2 assert_equals: expected "" but got "50px colr" -PASS CSS Fonts Module Level 4: interaction of font-palette and font shorthand 3 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/virtual/bfcache-experiment-control/README.md b/third_party/blink/web_tests/virtual/bfcache-experiment-control/README.md deleted file mode 100644 index 3fb33e70..0000000 --- a/third_party/blink/web_tests/virtual/bfcache-experiment-control/README.md +++ /dev/null
@@ -1,2 +0,0 @@ -*This suite runs the tests with** -`--enable-features=BackForwardCacheABExperimentControl`
diff --git a/third_party/blink/web_tests/virtual/bfcache-experiment-control/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt b/third_party/blink/web_tests/virtual/bfcache-experiment-control/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt deleted file mode 100644 index db8bc8f..0000000 --- a/third_party/blink/web_tests/virtual/bfcache-experiment-control/http/tests/origin_trials/webexposed/bfcache-experiment-http-header-origin-trial-expected.txt +++ /dev/null
@@ -1 +0,0 @@ -Sec-bfcache-experiment:
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium index a7db65a..fb4d128 100644 --- a/third_party/freetype/README.chromium +++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@ Name: FreeType URL: http://www.freetype.org/ -Version: VER-2-12-1-102-g15f687349 -Revision: 15f687349528fb0d7cba1ee7a8becf0af29116ec +Version: VER-2-12-1-103-g141d979af +Revision: 141d979af74e09bd01f6956b5cc8dfa73047c779 CPEPrefix: cpe:/a:freetype:freetype:2.11.1 License: Custom license "inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses"
diff --git a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h index 0417a8c..a542ad3 100644 --- a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h +++ b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
@@ -586,12 +586,12 @@ /************************************************************************** * * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to - * load and enumerate the glyph Postscript names in a TrueType or OpenType + * load and enumerate Postscript names of glyphs in a TrueType or OpenType * file. * - * Note that when you do not compile the 'psnames' module by undefining the - * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will - * contain additional code used to read the PS Names table from a font. + * Note that if you do not compile the 'psnames' module by undefining the + * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` macro, the 'sfnt' module will + * contain additional code to read the PostScript name table from a font. * * (By default, the module uses 'psnames' to extract glyph names.) */
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 2e01872..3f68611 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -19737,6 +19737,14 @@ </description> </action> +<action name="MobileShareMenuMarkupPDF"> + <owner>alionadangla@chromium.org</owner> + <owner>gambard@chromium.org</owner> + <description> + User pressed "Markup" from the share action menu. + </description> +</action> + <action name="MobileShareMenuPrint"> <owner>gambard@chromium.org</owner> <owner>seblalancette@chromium.org</owner> @@ -19758,6 +19766,12 @@ </description> </action> +<action name="MobileShareMenuSaveFile"> + <owner>alionadangla@chromium.org</owner> + <owner>gambard@chromium.org</owner> + <description>User saved a file from share action menu.</description> +</action> + <action name="MobileShareMenuSaveImage"> <owner>gambard@chromium.org</owner> <owner>seblalancette@chromium.org</owner>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 2a85ae21..f917f43 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -52632,6 +52632,8 @@ <int value="14" label="Native Social App"/> <int value="15" label="Third-party Messaging App"/> <int value="16" label="Third-party Content App"/> + <int value="17" label="Save to Files"/> + <int value="18" label="Markup"/> </enum> <enum name="IOSShareExtensionReceivedEntrySource"> @@ -63027,7 +63029,6 @@ <int value="1807088829" label="JourneysOnDeviceClusteringContentClustering:disabled"/> <int value="1807374811" label="CCTModuleCache:enabled"/> - <int value="1808936313" label="AutofillEnableNameSurenameParsing:enabled"/> <int value="1809704744" label="SyncAndroidPromosWithAlternativeTitle:disabled"/> <int value="1809940714" label="SpeculativeLaunchServiceWorker:disabled"/> @@ -63349,7 +63350,6 @@ <int value="1990873642" label="AutofillEnableSurfacingServerCardNickname:disabled"/> <int value="1991461704" label="SubframeShutdownDelay:enabled"/> - <int value="1991751157" label="AutofillEnableNameSurenameParsing:disabled"/> <int value="1991771852" label="LeftToRightUrls:enabled"/> <int value="1991912338" label="ModuleScriptsDynamicImport:enabled"/> <int value="1992466116" label="enable-passive-event-listeners-due-to-fling"/> @@ -75567,6 +75567,14 @@ </int> </enum> +<enum name="PageInfoDialogAccessType"> + <int value="0" label="Click on lock without confirmation chip context"/> + <int value="1" label="Click on lock while confirmation chip is displayed"/> + <int value="2" label="Click on confirmation chip"/> + <int value="3" + label="Click on lock within 20 seconds after confirmation chip collapse"/> +</enum> + <enum name="PageLoadBackForwardCacheEvent"> <int value="0" label="Enter back-forward cache"/> <int value="1" label="Restore from back-forward cache"/> @@ -88164,6 +88172,17 @@ <int value="2" label="Network error"/> </enum> +<enum name="SecondaryGoogleAccountUsagePolicyFetchStatus"> + <int value="0" label="UnknownError"/> + <int value="1" label="Success"/> + <int value="2" label="NetworkError"/> + <int value="3" label="HttpError"/> + <int value="4" label="ParsingResponseError"/> + <int value="5" label="UnsupportedAccountTypeError"/> + <int value="6" label="GetTokenError"/> + <int value="7" label="GetUserInfoError"/> +</enum> + <enum name="SecureChannelConnectionAttemptFailureReason"> <int value="0" label="Authentication error"/> <int value="1" label="Could not generate advertisement"/>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml index 7941e7bc..45a81ad 100644 --- a/tools/metrics/histograms/metadata/enterprise/histograms.xml +++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -2246,6 +2246,32 @@ </summary> </histogram> +<histogram + name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.ResponseLatency" + units="ms" expires_after="2023-10-04"> + <owner>rodmartin@google.com</owner> + <owner>chromeos-commercial-identity@google.com</owner> + <summary> + Latency of a SecondaryGoogleAccountUsage policy fetch request. This measures + the amount of time required to fetch the policy value of + SecondaryGoogleAccountUsage from the Secure Connect API. This is recorded + when a user account is added as a secondary account (in-session). + </summary> +</histogram> + +<histogram name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status" + enum="SecondaryGoogleAccountUsagePolicyFetchStatus" + expires_after="2023-10-04"> + <owner>rodmartin@google.com</owner> + <owner>chromeos-commercial-identity@google.com</owner> + <summary> + Tracks the result of + UserCloudSigninRestrictionPolicyFetcherChromeOS::GetSecondaryGoogleAccountUsage. + This is recorded when a user account is added as a secondary account + (in-session). + </summary> +</histogram> + <histogram name="Enterprise.SystemFeaturesDisableList" enum="SystemFeature" expires_after="2023-06-01"> <owner>ayaelattar@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml index 07e84944..5f4baf11 100644 --- a/tools/metrics/histograms/metadata/others/histograms.xml +++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -8148,59 +8148,60 @@ </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.ErrorOrResponseCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="M89"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="M112"> <owner>carlosil@chromium.org</owner> <summary> The net error or HTTP response code of a mixed content resource request that - was autoupgraded to HTTPS + was autoupgraded to HTTPS. This histogram was expired from M80 to M108. </summary> </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.Failure.IsAd" enum="Boolean" - expires_after="M89"> + expires_after="M112"> <owner>carlosil@chromium.org</owner> <summary> Whether or not an autoupgrade mixed content request was for a resource we - know to be an ad + know to be an ad. This histogram was expired from M80 to M108. </summary> </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.Failure.Type" - enum="ResourceType" expires_after="M89"> + enum="ResourceType" expires_after="M112"> <owner>carlosil@chromium.org</owner> <owner>estark@chromium.org</owner> <summary> Logs the type of each resource request that is autoupgraded to HTTPS and - fails to load. + fails to load. This histogram was expired from M80 to M108. </summary> </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.Response.Type" - enum="ResourceType" expires_after="M89"> + enum="ResourceType" expires_after="M112"> <owner>carlosil@chromium.org</owner> <owner>estark@chromium.org</owner> <summary> Logs the type of each resource request that was autoupgraded to HTTPS and - resulted in a response. + resulted in a response. This histogram was expired from M80 to M108. </summary> </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.Start.Type" - enum="ResourceType" expires_after="M89"> + enum="ResourceType" expires_after="M112"> <owner>carlosil@chromium.org</owner> <owner>estark@chromium.org</owner> <summary> Logs the type of each resource request that is autoupgraded to HTTPS. This - is logged when the request is started. + is logged when the request is started. This histogram was expired from M80 + to M108. </summary> </histogram> <histogram name="MixedAutoupgrade.ResourceRequest.Status" - enum="MixedContentAutoupgradeStatus" expires_after="M89"> + enum="MixedContentAutoupgradeStatus" expires_after="M112"> <owner>carlosil@chromium.org</owner> <summary> The status of a mixed content resource request that was autoupgraded to - HTTPS + HTTPS. This histogram was expired from M80 to M108. </summary> </histogram>
diff --git a/tools/metrics/histograms/metadata/permissions/histograms.xml b/tools/metrics/histograms/metadata/permissions/histograms.xml index 8a059872..cf5e31e 100644 --- a/tools/metrics/histograms/metadata/permissions/histograms.xml +++ b/tools/metrics/histograms/metadata/permissions/histograms.xml
@@ -240,6 +240,17 @@ </summary> </histogram> +<histogram name="Permissions.ConfirmationChip.PageInfoDialogAccessType" + enum="PageInfoDialogAccessType" expires_after="2023-10-31"> + <owner>fjacky@chromium.org</owner> + <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> + <summary> + Record each time the page info bubble is opened through either the lock icon + or the confirmation chip, how it was opened and how the opening related to + the confirmation chip. + </summary> +</histogram> + <histogram name="Permissions.CrowdDeny.DidHoldbackQuietUi" enum="Boolean" expires_after="2022-12-11"> <owner>andypaicu@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/signin/histograms.xml b/tools/metrics/histograms/metadata/signin/histograms.xml index 950d3cd..d4192ce 100644 --- a/tools/metrics/histograms/metadata/signin/histograms.xml +++ b/tools/metrics/histograms/metadata/signin/histograms.xml
@@ -959,6 +959,16 @@ </summary> </histogram> +<histogram name="Signin.SigninAbortedAccessPoint" enum="SigninAccessPoint" + expires_after="2023-10-06"> + <owner>bsazonov@chromium.org</owner> + <owner>chrome-signin-team@google.com</owner> + <summary> + Logs the original access point of each aborted sign in. Only logged on + Android. + </summary> +</histogram> + <histogram name="Signin.SigninAllowed" enum="BooleanEnabled" expires_after="never"> <!-- expires-never: used to monitor the health of the signin feature. -->
diff --git a/tools/metrics/histograms/metadata/webauthn/histograms.xml b/tools/metrics/histograms/metadata/webauthn/histograms.xml index 60a005c..1a8e11f 100644 --- a/tools/metrics/histograms/metadata/webauthn/histograms.xml +++ b/tools/metrics/histograms/metadata/webauthn/histograms.xml
@@ -42,7 +42,7 @@ </histogram> <histogram name="WebAuthentication.CableV2.AOADiscoveryEvent" - enum="WebAuthenticationAOADiscoveryEvent" expires_after="2022-08-14"> + enum="WebAuthenticationAOADiscoveryEvent" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary> @@ -51,7 +51,7 @@ </histogram> <histogram name="WebAuthentication.CableV2.DiscoveryEvent" - enum="WebAuthenticationCableV2DiscoveryEvent" expires_after="2023-03-19"> + enum="WebAuthenticationCableV2DiscoveryEvent" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary> @@ -71,7 +71,7 @@ </histogram> <histogram name="WebAuthentication.CableV2.MobileEvent" - enum="WebAuthenticationCableV2MobileEvent" expires_after="2023-02-12"> + enum="WebAuthenticationCableV2MobileEvent" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary> @@ -81,14 +81,14 @@ </histogram> <histogram name="WebAuthentication.CableV2.MobileResult" - enum="WebAuthenticationCableV2MobileResult" expires_after="2022-10-09"> + enum="WebAuthenticationCableV2MobileResult" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary>Records the outcome of caBLEv2 transactions.</summary> </histogram> <histogram name="WebAuthentication.CableV2.RendezvousTime" units="ms" - expires_after="2022-10-16"> + expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary> @@ -99,7 +99,7 @@ </histogram> <histogram name="WebAuthentication.CableV2.TunnelEvent" - enum="WebAuthenticationCableV2TunnelEvent" expires_after="2023-03-19"> + enum="WebAuthenticationCableV2TunnelEvent" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary> @@ -108,7 +108,7 @@ </histogram> <histogram name="WebAuthentication.CableV2.TunnelServerError" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2022-12-25"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2023-06-01"> <owner>agl@chromium.org</owner> <owner>martinkr@google.com</owner> <summary>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 74b0ba1..fcc5ab4 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,7 +6,7 @@ }, "win": { "hash": "1323c769a4f9a4f54ffbee56c44e7583a160bad3", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/fec36b962880a07fc589185bab8b2f0cc3f9c9ff/trace_processor_shell.exe" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/9e3155013cd72ac43b4e07e47823e6d00cef48e9/trace_processor_shell.exe" }, "linux_arm": { "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893", @@ -14,7 +14,7 @@ }, "mac": { "hash": "1b5478e8c595694b89b1f55051e78750c6ca7fc8", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/fec36b962880a07fc589185bab8b2f0cc3f9c9ff/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/5b62a0322d701997f2ccaefb0725c95595c84b9f/trace_processor_shell" }, "mac_arm64": { "hash": "e1ad4861384b06d911a65f035317914b8cc975c6", @@ -22,7 +22,7 @@ }, "linux": { "hash": "5c275de3a0ece764faa6d5c93c91485f1d950b82", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/fec36b962880a07fc589185bab8b2f0cc3f9c9ff/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/5b62a0322d701997f2ccaefb0725c95595c84b9f/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/accessibility/ax_table_info.cc b/ui/accessibility/ax_table_info.cc index be254ec..704666e 100644 --- a/ui/accessibility/ax_table_info.cc +++ b/ui/accessibility/ax_table_info.cc
@@ -370,9 +370,22 @@ DCHECK_LT(c, col_count); AXNode* cell = cell_data.cell; if (cell->GetRole() == ax::mojom::Role::kColumnHeader) { + // If this is a column header spanning vertically, we'll encounter + // this cell multiple times as we scan down the column. Don't add it + // twice just because it takes up more than one space in the table. + if (!col_headers[c].empty() && col_headers[c].back() == cell->id()) { + continue; + } col_headers[c].push_back(cell->id()); all_headers.push_back(cell->id()); } else if (cell->GetRole() == ax::mojom::Role::kRowHeader) { + // If this is a row header spanning horizontally, we'll encounter this + // cell multiple times as we scan across the row. + // Don't add it twice just because it takes up more than one space in + // the table. + if (!row_headers[r].empty() && row_headers[r].back() == cell->id()) { + continue; + } row_headers[r].push_back(cell->id()); all_headers.push_back(cell->id()); }
diff --git a/ui/accessibility/ax_table_info_unittest.cc b/ui/accessibility/ax_table_info_unittest.cc index 031c517..fe73469 100644 --- a/ui/accessibility/ax_table_info_unittest.cc +++ b/ui/accessibility/ax_table_info_unittest.cc
@@ -433,32 +433,34 @@ EXPECT_EQ(8, table_info->row_nodes[1]->id()); } -TEST_F(AXTableInfoTest, HeadersWithSpans) { - // Row and column headers spanning multiple cells. - // In the figure below, 5 and 6 are headers. +TEST_F(AXTableInfoTest, RowHeadersWithSpans) { + // Row headers spanning vertically and horizontally. + // In the figure below, 5 and 6 are both row headers. // - // +---+---+ - // | 5 | + // +---+---+---+ + // | 5 | 9 | // +---+---+---+ // | | 7 | // + 6 +---+---+ // | | | 8 | // +---+ +---+ + AXTreeUpdate initial_state; initial_state.root_id = 1; - initial_state.nodes.resize(8); + initial_state.nodes.resize(9); MakeTable(&initial_state.nodes[0], 1, 0, 0); initial_state.nodes[0].child_ids = {2, 3, 4}; MakeRow(&initial_state.nodes[1], 2, 0); - initial_state.nodes[1].child_ids = {5}; + initial_state.nodes[1].child_ids = {5, 9}; MakeRow(&initial_state.nodes[2], 3, 1); initial_state.nodes[2].child_ids = {6, 7}; MakeRow(&initial_state.nodes[3], 4, 2); initial_state.nodes[3].child_ids = {8}; - MakeColumnHeader(&initial_state.nodes[4], 5, 0, 1, 1, 2); + MakeRowHeader(&initial_state.nodes[4], 5, 0, 0, 1, 2); MakeRowHeader(&initial_state.nodes[5], 6, 1, 0, 2, 1); MakeCell(&initial_state.nodes[6], 7, 1, 1); MakeCell(&initial_state.nodes[7], 8, 2, 2); + MakeCell(&initial_state.nodes[8], 9, 0, 2); AXTree tree(initial_state); AXTableInfo* table_info = GetTableInfo(&tree, tree.root()->children()[0]); @@ -468,22 +470,16 @@ EXPECT_TRUE(table_info); EXPECT_EQ(3U, table_info->row_headers.size()); - EXPECT_EQ(0U, table_info->row_headers[0].size()); + EXPECT_EQ(1U, table_info->row_headers[0].size()); + EXPECT_EQ(5, table_info->row_headers[0][0]); EXPECT_EQ(1U, table_info->row_headers[1].size()); EXPECT_EQ(6, table_info->row_headers[1][0]); EXPECT_EQ(1U, table_info->row_headers[1].size()); EXPECT_EQ(6, table_info->row_headers[2][0]); - EXPECT_EQ(3U, table_info->col_headers.size()); - EXPECT_EQ(0U, table_info->col_headers[0].size()); - EXPECT_EQ(1U, table_info->col_headers[1].size()); - EXPECT_EQ(5, table_info->col_headers[1][0]); - EXPECT_EQ(1U, table_info->col_headers[2].size()); - EXPECT_EQ(5, table_info->col_headers[2][0]); - - EXPECT_EQ(0, table_info->cell_ids[0][0]); + EXPECT_EQ(5, table_info->cell_ids[0][0]); EXPECT_EQ(5, table_info->cell_ids[0][1]); - EXPECT_EQ(5, table_info->cell_ids[0][2]); + EXPECT_EQ(9, table_info->cell_ids[0][2]); EXPECT_EQ(6, table_info->cell_ids[1][0]); EXPECT_EQ(7, table_info->cell_ids[1][1]); EXPECT_EQ(0, table_info->cell_ids[1][2]); @@ -497,6 +493,161 @@ EXPECT_EQ(4, table_info->row_nodes[2]->id()); } +TEST_F(AXTableInfoTest, MultipleRowHeadersInSameRow) { + // In the figure below, 3 and 4 are both row headers. + // Row header 3 spans two columns. + // + // +---+---+---+---+ + // | 3 | 4 | 5 | + // +---+---+---+---+ + + AXTreeUpdate initial_state; + initial_state.root_id = 1; + initial_state.nodes.resize(5); + MakeTable(&initial_state.nodes[0], 1, 0, 0); + initial_state.nodes[0].child_ids = {2}; + MakeRow(&initial_state.nodes[1], 2, 0); + initial_state.nodes[1].child_ids = {3, 4, 5}; + MakeRowHeader(&initial_state.nodes[2], 3, 0, 0, 1, 2); + MakeRowHeader(&initial_state.nodes[3], 4, 0, 2, 1, 1); + MakeCell(&initial_state.nodes[4], 5, 0, 3); + AXTree tree(initial_state); + + AXTableInfo* table_info = GetTableInfo(&tree, tree.root()->children()[0]); + EXPECT_FALSE(table_info); + + table_info = GetTableInfo(&tree, tree.root()); + EXPECT_TRUE(table_info); + + EXPECT_EQ(1U, table_info->row_headers.size()); + EXPECT_EQ(2U, table_info->row_headers[0].size()); + EXPECT_EQ(3, table_info->row_headers[0][0]); + EXPECT_EQ(4, table_info->row_headers[0][1]); + + EXPECT_EQ(3, table_info->cell_ids[0][0]); + EXPECT_EQ(3, table_info->cell_ids[0][1]); + EXPECT_EQ(4, table_info->cell_ids[0][2]); + EXPECT_EQ(5, table_info->cell_ids[0][3]); + + EXPECT_EQ(1u, table_info->row_nodes.size()); + EXPECT_EQ(2, table_info->row_nodes[0]->id()); +} + +TEST_F(AXTableInfoTest, ColumnHeadersWithSpans) { + // Column headers spanning vertically and horizontally. + // In the figure below, 5 and 6 are both column headers. + // + // +---+---+---+ + // | 5 | | + // +---+---+ 6 + + // | 7 | | + // +---+---+---+ + // | 8 | | 9 | + // +---+ +---+ + + AXTreeUpdate initial_state; + initial_state.root_id = 1; + initial_state.nodes.resize(9); + MakeTable(&initial_state.nodes[0], 1, 0, 0); + initial_state.nodes[0].child_ids = {2, 3, 4}; + MakeRow(&initial_state.nodes[1], 2, 0); + initial_state.nodes[1].child_ids = {5, 6}; + MakeRow(&initial_state.nodes[2], 3, 1); + initial_state.nodes[2].child_ids = {7}; + MakeRow(&initial_state.nodes[3], 4, 2); + initial_state.nodes[3].child_ids = {8, 9}; + MakeColumnHeader(&initial_state.nodes[4], 5, 0, 0, 1, 2); + MakeColumnHeader(&initial_state.nodes[5], 6, 0, 2, 2, 1); + MakeCell(&initial_state.nodes[6], 7, 1, 1); + MakeCell(&initial_state.nodes[7], 8, 2, 0); + MakeCell(&initial_state.nodes[8], 9, 2, 2); + AXTree tree(initial_state); + + AXTableInfo* table_info = GetTableInfo(&tree, tree.root()->children()[0]); + EXPECT_FALSE(table_info); + + table_info = GetTableInfo(&tree, tree.root()); + EXPECT_TRUE(table_info); + + EXPECT_EQ(3U, table_info->col_headers.size()); + EXPECT_EQ(1U, table_info->col_headers[0].size()); + EXPECT_EQ(5, table_info->col_headers[0][0]); + EXPECT_EQ(1U, table_info->col_headers[1].size()); + EXPECT_EQ(5, table_info->col_headers[1][0]); + EXPECT_EQ(1U, table_info->col_headers[2].size()); + EXPECT_EQ(6, table_info->col_headers[2][0]); + + EXPECT_EQ(5, table_info->cell_ids[0][0]); + EXPECT_EQ(5, table_info->cell_ids[0][1]); + EXPECT_EQ(6, table_info->cell_ids[0][2]); + EXPECT_EQ(0, table_info->cell_ids[1][0]); + EXPECT_EQ(7, table_info->cell_ids[1][1]); + EXPECT_EQ(6, table_info->cell_ids[1][2]); + EXPECT_EQ(8, table_info->cell_ids[2][0]); + EXPECT_EQ(0, table_info->cell_ids[2][1]); + EXPECT_EQ(9, table_info->cell_ids[2][2]); + + EXPECT_EQ(3u, table_info->row_nodes.size()); + EXPECT_EQ(2, table_info->row_nodes[0]->id()); + EXPECT_EQ(3, table_info->row_nodes[1]->id()); + EXPECT_EQ(4, table_info->row_nodes[2]->id()); +} + +TEST_F(AXTableInfoTest, MultipleColumnHeadersInSameColumn) { + // In the figure below, 6 and 7 are both column headers. + // Column header 6 spans two rows. + // + // +---+ + // | | + // + 6 + + // | | + // +---+ + // | 7 | + // +---+ + // | 8 | + // +---+ + + AXTreeUpdate initial_state; + initial_state.root_id = 1; + initial_state.nodes.resize(8); + MakeTable(&initial_state.nodes[0], 1, 0, 0); + initial_state.nodes[0].child_ids = {2, 3, 4, 5}; + MakeRow(&initial_state.nodes[1], 2, 0); + initial_state.nodes[1].child_ids = {6}; + MakeRow(&initial_state.nodes[2], 3, 1); + initial_state.nodes[2].child_ids = {}; + MakeRow(&initial_state.nodes[3], 4, 2); + initial_state.nodes[3].child_ids = {7}; + MakeRow(&initial_state.nodes[4], 5, 3); + initial_state.nodes[4].child_ids = {8}; + MakeColumnHeader(&initial_state.nodes[5], 6, 0, 0, 2, 1); + MakeColumnHeader(&initial_state.nodes[6], 7, 2, 0, 1, 1); + MakeCell(&initial_state.nodes[7], 8, 3, 0); + AXTree tree(initial_state); + + AXTableInfo* table_info = GetTableInfo(&tree, tree.root()->children()[0]); + EXPECT_FALSE(table_info); + + table_info = GetTableInfo(&tree, tree.root()); + EXPECT_TRUE(table_info); + + EXPECT_EQ(1U, table_info->col_headers.size()); + EXPECT_EQ(2U, table_info->col_headers[0].size()); + EXPECT_EQ(6, table_info->col_headers[0][0]); + EXPECT_EQ(7, table_info->col_headers[0][1]); + + EXPECT_EQ(6, table_info->cell_ids[0][0]); + EXPECT_EQ(6, table_info->cell_ids[1][0]); + EXPECT_EQ(7, table_info->cell_ids[2][0]); + EXPECT_EQ(8, table_info->cell_ids[3][0]); + + EXPECT_EQ(4u, table_info->row_nodes.size()); + EXPECT_EQ(2, table_info->row_nodes[0]->id()); + EXPECT_EQ(3, table_info->row_nodes[1]->id()); + EXPECT_EQ(4, table_info->row_nodes[2]->id()); + EXPECT_EQ(5, table_info->row_nodes[3]->id()); +} + #if BUILDFLAG(IS_MAC) TEST_F(AXTableInfoTest, ExtraMacNodes) {
diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_as.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_as.xtb index 5285dcc..75516ae 100644 --- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_as.xtb +++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_as.xtb
@@ -19,7 +19,7 @@ <translation id="2648340354586434750">শব্দ অনুসৰি আঁতৰাবলৈ <span class=’key’>Option</span> ধৰি থাকক।</translation> <translation id="2795227192542594043">এই এক্সটেনশ্বনটোৱে আপোনাক ৱেব পৃষ্ঠাত এটা স্থানান্তৰযোগ্য কাৰ্ছৰ প্ৰদান কৰে যি আপোনাক কীব’ৰ্ডৰ দ্বাৰা পাঠ বাছনি কৰাৰ সুবিধা প্ৰদান কৰে।</translation> <translation id="2808027189040546825">১ম প্ৰদক্ষেপ: আটাইতকৈ বেছি ধূসৰ তৰাযুক্ত শাৰীটো বাছনি কৰক:</translation> -<translation id="2965611304828530558"><p>আপুনি যেতিয়া কোনো লিংক বা নিয়ন্ত্ৰণ গৈ পায় তেতিয়া তাত স্বয়ংক্ৰিয়ভাৱে ফ’কাছ কৰা হয়। কোনো লিংক বা বুটামত ক্লিক কৰিবলৈ <span class=’key’>Enter</span> টিপক। </p> <p> যেতিয়া কোনো ফ’কাছ কৰি ৰখা নিয়ন্ত্ৰণে (যেনে পাঠ বাকচ বা সূচীৰ বাকচ) কাঁড় কী কেপচাৰ কৰি থাকে তেতিয়া , কাৰেট ব্ৰাউজিং অব্যাহত ৰাখিবলৈ বাওঁ বা সোঁ কাঁড়ৰ পিছত <span class=’key’>Esc</span>টিপক। </p> <p> ইয়াৰ পৰিৱৰ্তে পৰৱৰ্তী ফ’কাছ কৰিবপৰা নিয়ন্ত্ৰণলৈ যাবলৈ <span class=’key’>Tab</span> টিপক। </p></translation> +<translation id="2965611304828530558"><p>আপুনি যেতিয়া কোনো লিংক বা নিয়ন্ত্ৰণ গৈ পায় তেতিয়া তাত স্বয়ংক্ৰিয়ভাৱে ফ’কাছ কৰা হয়। কোনো লিংক বা বুটামত ক্লিক কৰিবলৈ <span class=’key’>Enter</span> টিপক। </p> <p> যেতিয়া কোনো ফ’কাছ কৰি ৰখা নিয়ন্ত্ৰণে (যেনে পাঠ বাকচ বা সূচীৰ বাকচ) কাঁড় কী কেপচাৰ কৰি থাকে তেতিয়া , কাৰেট ব্ৰাউজিং অব্যাহত ৰাখিবলৈ বাওঁ বা সোঁ কাঁড়ৰ পাছত <span class=’key’>Esc</span>টিপক। </p> <p> ইয়াৰ পৰিৱৰ্তে পৰৱৰ্তী ফ’কাছ কৰিবপৰা নিয়ন্ত্ৰণলৈ যাবলৈ <span class=’key’>Tab</span> টিপক। </p></translation> <translation id="3252573918265662711">ছেট আপ</translation> <translation id="3410969471888629217">ছাইট কাষ্টমাইজেশ্বনৰ সুবিধাটো পাহৰি যাওক</translation> <translation id="3435896845095436175">সক্ষম কৰক</translation>
diff --git a/ui/base/cocoa/nsmenuitem_additions.h b/ui/base/cocoa/nsmenuitem_additions.h index 1fd09b9a..4aed5cc8 100644 --- a/ui/base/cocoa/nsmenuitem_additions.h +++ b/ui/base/cocoa/nsmenuitem_additions.h
@@ -26,6 +26,9 @@ void COMPONENT_EXPORT(UI_BASE) SetIsInputSourceCommandQwertyForTesting(bool is_command_qwerty); +void COMPONENT_EXPORT(UI_BASE) + SetIsInputSourceDvorakRightOrLeftForTesting(bool is_dvorak_right_or_left); + // Returns whether the named keyboard layout has the command-qwerty behavior, // meaning that the layout acts as though it was QWERTY when the command key is // held.
diff --git a/ui/base/cocoa/nsmenuitem_additions.mm b/ui/base/cocoa/nsmenuitem_additions.mm index 76280f9..e299617 100644 --- a/ui/base/cocoa/nsmenuitem_additions.mm +++ b/ui/base/cocoa/nsmenuitem_additions.mm
@@ -15,17 +15,27 @@ namespace { bool g_is_input_source_command_qwerty = false; +bool g_is_input_source_dvorak_right_or_left = false; } // namespace void SetIsInputSourceCommandQwertyForTesting(bool is_command_qwerty) { g_is_input_source_command_qwerty = is_command_qwerty; } +void SetIsInputSourceDvorakRightOrLeftForTesting(bool is_dvorak_right_or_left) { + g_is_input_source_dvorak_right_or_left = is_dvorak_right_or_left; +} + bool IsKeyboardLayoutCommandQwerty(NSString* layout_id) { return [layout_id isEqualToString:@"com.apple.keylayout.DVORAK-QWERTYCMD"] || [layout_id isEqualToString:@"com.apple.keylayout.Dhivehi-QWERTY"]; } +bool IsKeyboardLayoutDvorakRightOrLeft(NSString* layout_id) { + return [layout_id isEqualToString:@"com.apple.keylayout.Dvorak-Right"] || + [layout_id isEqualToString:@"com.apple.keylayout.Dvorak-Left"]; +} + NSUInteger ModifierMaskForKeyEvent(NSEvent* event) { NSUInteger eventModifierMask = NSEventModifierFlagCommand | NSEventModifierFlagControl | @@ -86,6 +96,8 @@ inputSource.get(), kTISPropertyInputSourceID); ui::cocoa::g_is_input_source_command_qwerty = ui::cocoa::IsKeyboardLayoutCommandQwerty(layoutId); + ui::cocoa::g_is_input_source_dvorak_right_or_left = + ui::cocoa::IsKeyboardLayoutDvorakRightOrLeft(layoutId); } - (void)inputSourceDidChange:(NSNotification*)notification { @@ -185,12 +197,14 @@ eventString = [NSString stringWithFormat:@"%C", shifted_character]; } - // On all keyboards, treat cmd + <number key> as the equivalent numerical key. - // This is technically incorrect, since the actual character produced may not - // be a number key, but this causes Chrome to match platform behavior. For - // example, on the Czech keyboard, we want to interpret cmd + '+' as cmd + - // '1', even though the '1' character normally requires cmd + shift + '+'. - if (eventModifiers == NSEventModifierFlagCommand) { + // On all keyboards except Dvorak-Right/Left, treat cmd + <number key> as the + // equivalent numerical key. This is technically incorrect, since the actual + // character produced may not be a number key, but this causes Chrome to match + // platform behavior. For example, on the Czech keyboard, we want to interpret + // cmd + '+' as cmd + '1', even though the '1' character normally requires + // cmd + shift + '+'. + if (!ui::cocoa::g_is_input_source_dvorak_right_or_left && + eventModifiers == NSEventModifierFlagCommand) { ui::KeyboardCode windows_keycode = ui::KeyboardCodeFromKeyCode(event.keyCode); if (windows_keycode >= ui::VKEY_0 && windows_keycode <= ui::VKEY_9) {
diff --git a/ui/base/cocoa/nsmenuitem_additions_unittest.mm b/ui/base/cocoa/nsmenuitem_additions_unittest.mm index 1d8a27b4..16bb7c4 100644 --- a/ui/base/cocoa/nsmenuitem_additions_unittest.mm +++ b/ui/base/cocoa/nsmenuitem_additions_unittest.mm
@@ -359,6 +359,70 @@ // Change away from Command-QWERTY SetIsInputSourceCommandQwertyForTesting(false); + // With Dvorak Right or Left, some of the number row keys produce + // letters. Ensure that we ignore the key code when taking input + // from Dvorak RL. + + const NSUInteger keyCodeForEightKey = 28; + key = KeyEvent(0x100110, @"8", @"8", keyCodeForEightKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"8", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + const NSUInteger keyCodeForNumericKeypadEightKey = 91; + key = KeyEvent(0x100110, @"8", @"8", keyCodeForNumericKeypadEightKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"8", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + const NSUInteger keyCodeForFiveKey = 23; + key = KeyEvent(0x100110, @"5", @"5", keyCodeForFiveKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"5", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + const NSUInteger keyCodeForNumericKeypadFiveKey = 87; + key = KeyEvent(0x100110, @"5", @"5", keyCodeForNumericKeypadFiveKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"5", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + SetIsInputSourceDvorakRightOrLeftForTesting(true); + + // Under Dvorak Right, the eight key is the letter "f". + key = KeyEvent(0x100110, @"f", @"f", keyCodeForEightKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + item = MenuItem(@"8", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + + // Pressing the eight key on the numeric keypad should switch tabs. + key = KeyEvent(0x100110, @"8", @"8", keyCodeForNumericKeypadEightKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"8", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + // Under Dvorak Left, the five key is the letter "f". + key = KeyEvent(0x100110, @"f", @"f", keyCodeForFiveKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + item = MenuItem(@"5", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + + // Pressing the five key on the numeric keypad should switch tabs. + key = KeyEvent(0x100110, @"5", @"5", keyCodeForNumericKeypadFiveKey); + item = MenuItem(@"f", NSEventModifierFlagCommand); + ExpectKeyDoesntFireItem(key, item); + item = MenuItem(@"5", NSEventModifierFlagCommand); + ExpectKeyFiresItem(key, item); + + SetIsInputSourceDvorakRightOrLeftForTesting(false); + // cmd-shift-z on dvorak layout (so that we get a ':') key = KeyEvent(0x12010a, @";", @":", 6); ExpectKeyFiresItem(key, MenuItem(@":", NSEventModifierFlagCommand));
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb index 925c60d..eb181b7 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -365,6 +365,7 @@ <translation id="4290535918735525311">Linuxৰ মাধ্যমেৰে ১টা ফল্ডা’ৰ শ্বেয়াৰ কৰা হৈছে</translation> <translation id="4299729908419173967">ব্ৰাজিলিয়ান</translation> <translation id="4302605047395093221">এই ডিভাইচটো ব্যৱহাৰ কৰি থকা যিকোনো লোকে এই ম’বাইল নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ পিনটো দিব লাগিব</translation> +<translation id="4303531889494116116">এই নেটৱৰ্কটো ব্যস্ত হৈ আছে। পাছত পুনৰ চেষ্টা কৰক।</translation> <translation id="4309915981827077375">সাধাৰণ তথ্য</translation> <translation id="432252891123397018">Standard কীব’ৰ্ডৰ সৈতে ৰোমানিয়ান</translation> <translation id="4325128273762811722">শ্ল’ভেনিয়া</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb index 187afad..161eeda 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -162,6 +162,7 @@ <translation id="2389832672041313158">বার্মিজ/মায়ানমার</translation> <translation id="2392369802118427583">সক্রিয় করুন</translation> <translation id="240770291734945588"><ph name="SPACE_AVAILABLE" /> বাকি রয়েছে</translation> +<translation id="2417486498593892439">নেটওয়ার্কে সাইন-ইন করুন</translation> <translation id="2425665904502185219">ফাইলের মোট আকার</translation> <translation id="2428749644083375155"><ph name="FOLDER_NAME" /> ফোল্ডারে <ph name="NUMBER_OF_ITEMS" />টি আইটেম কপি করা হচ্ছে</translation> <translation id="2448312741937722512">প্রকার</translation> @@ -326,6 +327,7 @@ <translation id="3830674330436234648">কোনো প্লেব্যাক উপলব্ধ নেই</translation> <translation id="383652340667548381">সার্বিয়</translation> <translation id="385051799172605136">ফিরুন</translation> +<translation id="3851491607336266896">কানেক্ট করা হয়েছে, কানেক্টিভিটি সীমিত করা আছে</translation> <translation id="3855472144336161447">জার্মান নিও ২</translation> <translation id="3858860766373142691">নাম</translation> <translation id="3866249974567520381">বর্ণনা</translation> @@ -937,6 +939,7 @@ <translation id="8903931173357132290">স্নাতক</translation> <translation id="8912078710089354287">কুকুরের লেজ নাড়ানোর ছবি</translation> <translation id="8919081441417203123">ডেনিশ</translation> +<translation id="8949925099261528566">কানেক্ট করা আছে, ইন্টারনেট নেই</translation> <translation id="8965697826696209160">সেখানে যথেষ্ট স্থান নেই৷</translation> <translation id="8997962250644902079">চীনা (ঐতিহ্যবাহী) পিনইন</translation> <translation id="8998871447376656508">আপলোড সম্পূর্ণ করার জন্য আপনার Google Drive-এ পর্যাপ্ত ফ্রি স্পেস নেই।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb index faa1a60..6551d5d 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">S'ha compartit 1 carpeta amb Linux</translation> <translation id="4299729908419173967">Brasiler</translation> <translation id="4302605047395093221">Qualsevol persona que faci servir aquest dispositiu haurà d'introduir el PIN per connectar-se a aquesta xarxa mòbil</translation> +<translation id="4303531889494116116">Aquesta xarxa està ocupada. Torna-ho a provar més tard.</translation> <translation id="4309915981827077375">Informació general</translation> <translation id="432252891123397018">Romanès amb teclat estàndard</translation> <translation id="4325128273762811722">Eslovè</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb index 87ead20..8b29a15 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 složka je sdílena se systémem Linux</translation> <translation id="4299729908419173967">portugalština (Brazílie)</translation> <translation id="4302605047395093221">K připojení k této mobilní síti budou muset všichni uživatelé tohoto zařízení zadat PIN.</translation> +<translation id="4303531889494116116">Tato síť je zaneprázdněná. Zkuste to později.</translation> <translation id="4309915981827077375">Obecné informace</translation> <translation id="432252891123397018">rumunština se standardní klávesnicí</translation> <translation id="4325128273762811722">slovinština</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb index 4a36fef4..e978a06 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Mae 1 ffolder wedi'i rannu â Linux</translation> <translation id="4299729908419173967">Brasilaidd</translation> <translation id="4302605047395093221">Bydd angen i unrhyw un sy'n defnyddio'r ddyfais hon nodi'r PIN i gysylltu â'r rhwydwaith symudol hwn</translation> +<translation id="4303531889494116116">Mae'r rhwydwaith hwn yn brysur. Rhowch gynnig arall arni'n nes ymlaen.</translation> <translation id="4309915981827077375">Gwybodaeth gyffredinol</translation> <translation id="432252891123397018">Rwmaneg gyda bysellfwrdd safonol</translation> <translation id="4325128273762811722">Slofeneg</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb index 6d8b4aa..4590780a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 mappe er delt med Linux</translation> <translation id="4299729908419173967">Brasiliansk</translation> <translation id="4302605047395093221">Alle, der bruger denne enhed, skal angive pinkoden for at oprette forbindelse til mobilnetværket.</translation> +<translation id="4303531889494116116">Dette netværk er optaget. Prøv igen senere.</translation> <translation id="4309915981827077375">Generelle oplysninger</translation> <translation id="432252891123397018">Rumænsk med standardtastatur</translation> <translation id="4325128273762811722">Slovensk</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_el.xtb b/ui/chromeos/translations/ui_chromeos_strings_el.xtb index c217fd47..8b5a2b1 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_el.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
@@ -375,6 +375,7 @@ <translation id="4290535918735525311">1 φάκελος που κοινοποιήθηκε με Linux</translation> <translation id="4299729908419173967">Βραζιλιάνικα</translation> <translation id="4302605047395093221">Όποιος χρησιμοποιεί αυτήν τη συσκευή θα πρέπει να εισαγάγει το PIN για να συνδεθεί σε αυτό το δίκτυο κινητής τηλεφωνίας.</translation> +<translation id="4303531889494116116">Αυτό το δίκτυο είναι απασχολημένο. Δοκιμάστε ξανά αργότερα.</translation> <translation id="4309915981827077375">Γενικές πληροφορίες</translation> <translation id="432252891123397018">Ρουμανικά με βασικό πληκτρολόγιο</translation> <translation id="4325128273762811722">Σλοβενικά</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb index e116df1b..0ab4012 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Se compartió 1 carpeta con Linux</translation> <translation id="4299729908419173967">Brasileño</translation> <translation id="4302605047395093221">La persona que use este dispositivo deberá ingresar el PIN para conectarse a esta red móvil.</translation> +<translation id="4303531889494116116">Esta red está ocupada. Vuelve a intentarlo más tarde.</translation> <translation id="4309915981827077375">Información general</translation> <translation id="432252891123397018">Rumano con teclado estándar</translation> <translation id="4325128273762811722">Esloveno</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb index 79bbcd5..7613dd0e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 carpeta compartida con Linux</translation> <translation id="4299729908419173967">brasileño</translation> <translation id="4302605047395093221">Cualquiera que use este dispositivo deberá escribir el PIN para conectarse a esta red móvil.</translation> +<translation id="4303531889494116116">Esta red está ocupada. Inténtalo de nuevo más tarde.</translation> <translation id="4309915981827077375">Información general</translation> <translation id="432252891123397018">Rumano con teclado estándar</translation> <translation id="4325128273762811722">Esloveno</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb index 8b97f1f..702604ff 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">۱ پوشه با Linux همرسانی شد</translation> <translation id="4299729908419173967">برزیلی</translation> <translation id="4302605047395093221">افرادی که از این دستگاه استفاده میکنند برای اتصال به این شبکه تلفن همراه باید پین را وارد کنند</translation> +<translation id="4303531889494116116">این شبکه شلوغ است. بعداً دوباره امتحان کنید.</translation> <translation id="4309915981827077375">اطلاعات عمومی</translation> <translation id="432252891123397018">رومانیایی با صفحهکلید استاندارد</translation> <translation id="4325128273762811722">اسلوونیایی</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb index ed69549..ebee9e2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 folder ang naibahagi sa Linux</translation> <translation id="4299729908419173967">Brazilian</translation> <translation id="4302605047395093221">Kakailanganin ng sinumang gumagamit ng device na ito na ilagay ang PIN para makakonekta sa mobile network na ito</translation> +<translation id="4303531889494116116">Busy ang network na ito. Subukan ulit sa ibang pagkakataon.</translation> <translation id="4309915981827077375">Pangkalahatang impormasyon</translation> <translation id="432252891123397018">Romanian na may Standard keyboard</translation> <translation id="4325128273762811722">Slovenian</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb index 34cb69c..db781e5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linux વડે શેર કરેલું 1 ફોલ્ડર</translation> <translation id="4299729908419173967">બ્રાઝિલિયન</translation> <translation id="4302605047395093221">આ ડિવાઇસનો ઉપયોગ કરનાર કોઈપણ વ્યક્તિએ આ મોબાઇલ નેટવર્કથી કનેક્ટ થવા માટે પિન દાખલ કરવો જરૂરી રહેશે</translation> +<translation id="4303531889494116116">આ નેટવર્ક વ્યસ્ત છે. થોડા સમય પછી ફરી પ્રયાસ કરો.</translation> <translation id="4309915981827077375">સામાન્ય માહિતી</translation> <translation id="432252891123397018">રોમાનિયન, માનક કીબોર્ડ સાથે</translation> <translation id="4325128273762811722">સ્લોવેનિયન</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb index 59664395..0eccc5d2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 folder dibagikan dengan Linux</translation> <translation id="4299729908419173967">Brasil</translation> <translation id="4302605047395093221">Siapa pun yang menggunakan perangkat ini perlu memasukkan PIN untuk terhubung ke jaringan seluler ini</translation> +<translation id="4303531889494116116">Jaringan ini sibuk. Coba lagi nanti.</translation> <translation id="4309915981827077375">Info umum</translation> <translation id="432252891123397018">Rumania dengan keyboard Standar</translation> <translation id="4325128273762811722">Slovenia</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb index 7e2e4ae..bd58a40 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linux ಮೂಲಕ 1 ಫೋಲ್ಡರ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ</translation> <translation id="4299729908419173967">ಬ್ರೆಜಿಲಿಯನ್</translation> <translation id="4302605047395093221">ಈ ಸಾಧನವನ್ನು ಬಳಸುತ್ತಿರುವ ಯಾರಾದರೂ ಈ ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ಗೆ ಕನೆಕ್ಟ್ ಆಗಲು ಪಿನ್ ಅನ್ನು ನಮೂದಿಸಬೇಕಾಗುತ್ತದೆ</translation> +<translation id="4303531889494116116">ಈ ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="4309915981827077375">ಸಾಮಾನ್ಯ ಮಾಹಿತಿ</translation> <translation id="432252891123397018">ಸ್ಡ್ಯಾಂಡರ್ಡ್ ಕೀಬೋರ್ಡ್ನಲ್ಲಿ ರೊಮೇನಿಯನ್</translation> <translation id="4325128273762811722">ಸ್ಲೋವೇನಿಯನ್</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb index ae3bc891..aa67093b 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linux ഉപയോഗിച്ച് ഒരു ഫോൾഡർ പങ്കിട്ടു</translation> <translation id="4299729908419173967">ബ്രസീലിയന്</translation> <translation id="4302605047395093221">ഈ ഉപകരണം ഉപയോഗിക്കുന്ന ഏതൊരാളും ഈ മൊബൈൽ നെറ്റ്വര്ക്കിലേക്ക് കണക്റ്റ് ചെയ്യാൻ പിൻ നൽകേണ്ടതുണ്ട്</translation> +<translation id="4303531889494116116">ഈ നെറ്റ്വർക്ക് തിരക്കിലാണ്. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="4309915981827077375">പൊതുവായ വിവരം</translation> <translation id="432252891123397018">സാധാരണ കീബോർഡ് ഉള്ള റൊമേനിയൻ</translation> <translation id="4325128273762811722">സ്ലോവേനിയൻ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb index 83f87c0..9f96178 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linux सह एक फोल्डर शेअर केला</translation> <translation id="4299729908419173967">ब्राझिलियन</translation> <translation id="4302605047395093221">या मोबाइल नेटवर्कशी कनेक्ट करण्यासाठी, हे डिव्हाइस वापरणाऱ्या कोणालाही पासवर्ड एंटर करण्याची आवश्यकता असेल</translation> +<translation id="4303531889494116116">हे नेटवर्क व्यस्त आहे. नंतर पुन्हा प्रयत्न करा.</translation> <translation id="4309915981827077375">सामान्य माहिती</translation> <translation id="432252891123397018">मानक कीबोर्डसह रोमानियन</translation> <translation id="4325128273762811722">स्लोव्हेनियन</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb index 65c2e91..00ceb6a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -365,6 +365,7 @@ <translation id="4290535918735525311">Linux सँग १ फोल्डर आदान प्रदान गरियो</translation> <translation id="4299729908419173967">ब्राजिलियन</translation> <translation id="4302605047395093221">यो मोबाइल नेटवर्कमा कनेक्ट गर्न यो डिभाइस प्रयोग गर्ने व्यक्तिले PIN हाल्नु पर्ने हुन्छ</translation> +<translation id="4303531889494116116">यो नेटवर्क व्यस्त छ। पछि फेरि प्रयास गर्नुहोस्।</translation> <translation id="4309915981827077375">सामान्य जानकारी</translation> <translation id="432252891123397018">रोमानियाली स्टान्डर्ड किबोर्ड</translation> <translation id="4325128273762811722">स्लोभेनियाली</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb index ef78d2d..69fb5a2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">1 dosje e ndarë me Linux</translation> <translation id="4299729908419173967">Braziliane</translation> <translation id="4302605047395093221">Çdo person që përdor këtë pajisje do të duhet të futë kodin PIN për t'u lidhur me këtë rrjet celular</translation> +<translation id="4303531889494116116">Ky rrjet është i zënë. Provo përsëri më vonë.</translation> <translation id="4309915981827077375">Informacione të përgjithshme</translation> <translation id="432252891123397018">Rumanisht me tastierë standarde</translation> <translation id="4325128273762811722">Sllovenisht</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb index e39729f..eb7cb08 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linuxஸுடன் 1 ஃபோல்டர் பகிரப்பட்டது</translation> <translation id="4299729908419173967">பிரேசிலியன்</translation> <translation id="4302605047395093221">இந்த மொபைல் நெட்வொர்க்குடன் இணைக்க இந்தச் சாதனத்தைப் பயன்படுத்தும் எவரும் பின்னை (PIN) உள்ளிட வேண்டும்</translation> +<translation id="4303531889494116116">நெட்வொர்க் பிஸியாக உள்ளது. பிறகு மீண்டும் முயலவும்.</translation> <translation id="4309915981827077375">பொதுவான தகவல்</translation> <translation id="432252891123397018">ரோமானியன் - வழக்கமான கீபோர்டு</translation> <translation id="4325128273762811722">ஸ்லோவேனியன்</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb index 98eda778..c54c5ce 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Linux ile 1 klasör paylaşılıyor</translation> <translation id="4299729908419173967">Brezilya Dili</translation> <translation id="4302605047395093221">Bu cihazı kullanan herkesin bu mobil ağa bağlanmak için PIN'i girmesi gerekir.</translation> +<translation id="4303531889494116116">Bu ağ meşgul. Daha sonra tekrar deneyin.</translation> <translation id="4309915981827077375">Genel bilgiler</translation> <translation id="432252891123397018">Standart klavye ile Romence</translation> <translation id="4325128273762811722">Slovence</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb index c6eb42e5..5eb9c9a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">Đã chia sẻ 1 thư mục với Linux</translation> <translation id="4299729908419173967">Tiếng Braxin</translation> <translation id="4302605047395093221">Bất kỳ ai sử dụng thiết bị này đều cần nhập mã PIN để kết nối với mạng di động này</translation> +<translation id="4303531889494116116">Mạng này hiện không thể đáp ứng. Hãy thử lại sau.</translation> <translation id="4309915981827077375">Thông tin chung</translation> <translation id="432252891123397018">Tiếng Rumani bằng bàn phím chuẩn</translation> <translation id="4325128273762811722">Tiếng Sloven</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb index 6072daa..b39db91 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">與 Linux 分享一個資料夾</translation> <translation id="4299729908419173967">巴西文</translation> <translation id="4302605047395093221">任何使用此裝置的人都需要輸入 PIN 才能連線至此流動網絡</translation> +<translation id="4303531889494116116">這個網路忙碌中,請稍後再試。</translation> <translation id="4309915981827077375">一般資料</translation> <translation id="432252891123397018">羅馬尼亞文 (標準鍵盤)</translation> <translation id="4325128273762811722">斯洛文尼亞文</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb index 449f46a..46403fc 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -367,6 +367,7 @@ <translation id="4290535918735525311">已與 Linux 共用 1 個資料夾</translation> <translation id="4299729908419173967">巴西語系</translation> <translation id="4302605047395093221">使用這部裝置的所有使用者都必須輸入 PIN 碼才能連上行動網路</translation> +<translation id="4303531889494116116">這個網路忙碌中,請稍後再試。</translation> <translation id="4309915981827077375">一般資訊</translation> <translation id="432252891123397018">羅馬尼亞文搭配標準鍵盤</translation> <translation id="4325128273762811722">斯洛維尼亞文</translation>
diff --git a/ui/gfx/color_conversions.cc b/ui/gfx/color_conversions.cc index fc2eff30..34a032f 100644 --- a/ui/gfx/color_conversions.cc +++ b/ui/gfx/color_conversions.cc
@@ -180,7 +180,7 @@ } std::tuple<float, float, float> LabToLCH(float l, float a, float b) { return std::make_tuple(l, std::sqrt(a * a + b * b), - gfx::RadToDeg(std::atan2f(b, a))); + gfx::RadToDeg(atan2f(b, a))); } std::tuple<float, float, float> LabToXYZD50(float l, float a, float b) {
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerOriginVerificationScheduler.java b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerOriginVerificationScheduler.java index cbea9bd..cb11ecb 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerOriginVerificationScheduler.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerOriginVerificationScheduler.java
@@ -42,6 +42,9 @@ private static final String STATEMENT_NAMESPACE_KEY = "namespace"; private static final String STATEMENT_SITE_KEY = "site"; + private static final String HTTP_SCHEME = "http"; + private static final String HTTPS_SCHEME = "https"; + private static WebLayerOriginVerificationScheduler sInstance; private WebLayerOriginVerifier mOriginVerifier; @@ -93,6 +96,12 @@ return; } + String urlScheme = origin.uri().getScheme(); + if (!urlScheme.equals(HTTPS_SCHEME) && !urlScheme.equals(HTTP_SCHEME)) { + listener.onResult(true); + return; + } + if (mPendingOrigins.contains(origin)) { mOriginVerifier.start((packageName, unused, verified, online) -> { mPendingOrigins.remove(origin);