diff --git a/DEPS b/DEPS index a385eb1..83bb2f79 100644 --- a/DEPS +++ b/DEPS
@@ -144,6 +144,12 @@ # tools/clang/OWNERS before depending on it. 'checkout_clang_libs': 'use_rust', + # Fetch Crubit support libraries in order to build ..._rs_api.rs and + # ..._rs_api_impl.cc that are generated by prebuilt (see + # tools/rust/build_crubit.py) Crubit tools during Chromium build (see + # also //build/rust/rs_bindings_from_cc.gni). + 'checkout_crubit': 'use_rust', + # By default checkout the OpenXR loader library only on Windows. The OpenXR # backend for VR in Chromium is currently only supported for Windows, but # support for other platforms may be added in the future. @@ -184,6 +190,11 @@ # qemu on linux-arm64 machines. 'checkout_fuchsia_for_arm64_host': False, + # Revision of Crubit (trunk on 2022-07-13). This should typically be the + # same as the revision specified in CRUBIT_REVISION in + # tools/rust/update_rust.py. + 'crubit_revision': '07b3390a62412543c80226db44eecc317bbfcee0', + # Run 'vpython_common' hook if this is set. # TODO(crbug.com/1329052): remove this when we remove .vpython. 'enable_vpython_common_crbug_1329052': True, @@ -283,11 +294,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'ccb8d5a61b78b966aa12f00c7e6cc36bc66f9a7f', + 'skia_revision': '3e2c3b98e53dd8a76e3196c383d6692c9a661a73', # 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': 'ca2939143b4a84937de998f7592f6787d13d16b5', + 'v8_revision': '7340824e150b71e6946823947d31d2299cd9c3e1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. @@ -362,7 +373,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'c5f30714b53b2d5638b49b6a117f4ca9099062c2', + 'devtools_frontend_revision': 'f6f2e8b7643a7fe996b031968052c9c775611333', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -398,7 +409,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'd4e0bc4495aab3cfbd1f84f0e00e81207e3ca4dd', + 'dawn_revision': 'fc85619d770e00e72ca541cd2957a9e3ac6c016b', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -426,7 +437,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling nearby # and whatever else without interference from each other. - 'nearby_revision': '0a7f68f382ff32d0c28d207a728c5c15611ce888', + 'nearby_revision': '591ef0922ecae79789e89bb417f59e5fbf1d42d5', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling securemessage # and whatever else without interference from each other. @@ -870,7 +881,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'llEKHacpCZWiQAmEN6QCXjo3fRz5GvFm8h9YpvU8UmwC', + 'version': '7cmfSplQnwmja5BGZYeiH69C4fbOkE2ghOoPNOfVwBoC', }, ], 'dep_type': 'cipd', @@ -1164,6 +1175,11 @@ 'condition': 'checkout_linux', }, + 'src/third_party/crubit/src': { + 'url': Var('chromium_git') + '/external/github.com/google/crubit.git' + '@' + Var('crubit_revision'), + 'condition': 'checkout_crubit', + }, + 'src/third_party/depot_tools': Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '26bc518eaef421d8ef3cadb1be19c1255d5b51ea', @@ -1565,7 +1581,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'ed613a2e0f3cef06eef18baf8f5a908da89fcbad', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'da6e55d8b227cff3a88c26db23781790fad56c49', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1808,7 +1824,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@0a74eaee7727946dd243bcf31292452698bdb1ef', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@d7b362b78b293f8868e14e0721ea681b4ec07c58', 'condition': 'checkout_src_internal', }, @@ -1860,7 +1876,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'DY9lOCryfGl10_cqr1Hi2tl5-AmSX5Zv0fyixOlvNUUC', + 'version': 'fWslfNfWDX-DAdVmMw2JMlKVHFzEdhkYyPlXA8sETIUC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/PRESUBMIT.py b/android_webview/PRESUBMIT.py new file mode 100644 index 0000000..045454e --- /dev/null +++ b/android_webview/PRESUBMIT.py
@@ -0,0 +1,56 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Presubmit tests for //android_webview/ + +Gates against using Context#bindService API before upload. +""" + +USE_PYTHON3 = True + + +def CheckChangeOnCommit(input_api, output_api): + results = [] + results.extend(_CheckNo_Context_bindService_Added(input_api, output_api)) + return results + +def CheckChangeOnUpload(input_api, output_api): + results = [] + results.extend(_CheckNo_Context_bindService_Added(input_api, output_api)) + return results + + +def _CheckNo_Context_bindService_Added(input_api, output_api): + """Checks that new no files under //android_webview directly use the + Context#bindService. This is because Android platform disallows calling + Context#bindService() from within a BroadcastReceiver context. + """ + errors = [] + run_with_pattern_part_api = input_api.re.compile( + r'.*bindService.*') + + def _FilterFile(affected_file): + skipFiles = (input_api.DEFAULT_FILES_TO_SKIP + + (r'.*android_webview[\\\/]js_sandbox[\\\/].*',)) + return input_api.FilterSourceFile( + affected_file, + files_to_skip=skipFiles, + files_to_check=[r'.+\.java$']) + + for f in input_api.AffectedSourceFiles(_FilterFile): + for line_num, line in f.ChangedContents(): + match = run_with_pattern_part_api.search(line) + if match: + if "ServiceHelper.bindService" not in line: + errors.append("%s:%d:%s" % (f.LocalPath(), line_num, line)) + + results = [] + + if errors: + results.append(output_api.PresubmitPromptWarning(""" +New code in //android_webview should not use \ +android.content.Context#bindService. Instead use \ +android_webview.common.services.ServiceHelper#bindService. +""", errors)) + + return results
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index 496d9d63..931a8f2 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc
@@ -641,7 +641,7 @@ const std::string& request_method, bool has_user_gesture, bool is_redirect, - bool is_main_frame, + bool is_outermost_main_frame, ui::PageTransition transition, bool* ignore_navigation) { *ignore_navigation = false; @@ -664,7 +664,7 @@ // Note: about:blank navigations are not received in this path at the moment, // they use the old SYNC IPC path as they are not handled by network stack. // However, the old path should be removed in future. - if (!is_main_frame && + if (!is_outermost_main_frame && (gurl.SchemeIs(url::kHttpScheme) || gurl.SchemeIs(url::kHttpsScheme) || gurl.SchemeIs(url::kAboutScheme))) return true; @@ -693,7 +693,8 @@ } return client_bridge->ShouldOverrideUrlLoading( - url, has_user_gesture, is_redirect, is_main_frame, ignore_navigation); + url, has_user_gesture, is_redirect, is_outermost_main_frame, + ignore_navigation); } bool AwContentBrowserClient::
diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h index b76d7427..9a8d25e 100644 --- a/android_webview/browser/aw_content_browser_client.h +++ b/android_webview/browser/aw_content_browser_client.h
@@ -163,7 +163,7 @@ const std::string& request_method, bool has_user_gesture, bool is_redirect, - bool is_main_frame, + bool is_outermost_main_frame, ui::PageTransition transition, bool* ignore_navigation) override; bool
diff --git a/android_webview/browser/enterprise_authentication_app_link_policy_handler.cc b/android_webview/browser/enterprise_authentication_app_link_policy_handler.cc index 1421c8102..449d0f8 100644 --- a/android_webview/browser/enterprise_authentication_app_link_policy_handler.cc +++ b/android_webview/browser/enterprise_authentication_app_link_policy_handler.cc
@@ -43,8 +43,13 @@ std::vector<std::string> invalid_policies; for (const auto& entry : value->GetList()) { - if (!ValidatePolicyEntry(entry.FindStringKey("url"))) - invalid_policies.push_back(entry.GetString()); + const std::string* url = entry.FindStringKey("url"); + if (!url) { + invalid_policies.push_back( + "Invalid policy: Required key 'url' does not exists"); + } else if (!ValidatePolicyEntry(url)) { + invalid_policies.push_back("Invalid url: " + *url); + } } if (!invalid_policies.empty()) {
diff --git a/android_webview/browser/enterprise_authentication_app_link_policy_handler_unittest.cc b/android_webview/browser/enterprise_authentication_app_link_policy_handler_unittest.cc index 87b8d20d..518425c 100644 --- a/android_webview/browser/enterprise_authentication_app_link_policy_handler_unittest.cc +++ b/android_webview/browser/enterprise_authentication_app_link_policy_handler_unittest.cc
@@ -52,4 +52,23 @@ ASSERT_TRUE(pref_value); EXPECT_EQ(expected, *pref_value); } + +TEST_F(EnterpriseAuthenticationAppLinkPolicyHandlerTest, InvalidPolicy) { + PolicyMap policy; + policy.Set(policy::key::kEnterpriseAuthenticationAppLinkPolicy, + POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM, + base::JSONReader::Read( + "[" + " {" + " \"abc\": \"https://www.testserver1.com/login\"" + " }," + "]"), + nullptr); + this->UpdateProviderPolicy(policy); + const base::Value* pref_value = nullptr; + + EXPECT_FALSE(store_->GetValue( + android_webview::prefs::kEnterpriseAuthAppLinkPolicy, &pref_value)); + ASSERT_FALSE(pref_value); +} } // namespace policy \ No newline at end of file
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsClientBridge.java b/android_webview/java/src/org/chromium/android_webview/AwContentsClientBridge.java index 6d65d11..21780919 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContentsClientBridge.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContentsClientBridge.java
@@ -423,6 +423,7 @@ try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); + intent.addCategory(Intent.CATEGORY_DEFAULT); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { intent.setFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER | Intent.FLAG_ACTIVITY_REQUIRE_DEFAULT);
diff --git a/android_webview/test/components/run_webview_component_smoketest.py b/android_webview/test/components/run_webview_component_smoketest.py index 0189aec..40b3f3d6 100755 --- a/android_webview/test/components/run_webview_component_smoketest.py +++ b/android_webview/test/components/run_webview_component_smoketest.py
@@ -1,4 +1,4 @@ -#!/usr/bin/env vpython +#!/usr/bin/env vpython3 # Copyright 2021 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc index 84a5e95..cfb6cfd 100644 --- a/ash/accelerators/accelerator_controller_impl.cc +++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -892,9 +892,9 @@ } } - const WMEvent event(action == WINDOW_CYCLE_SNAP_LEFT - ? WM_EVENT_CYCLE_SNAP_PRIMARY - : WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent event(action == WINDOW_CYCLE_SNAP_LEFT + ? WM_EVENT_CYCLE_SNAP_PRIMARY + : WM_EVENT_CYCLE_SNAP_SECONDARY); aura::Window* active_window = window_util::GetActiveWindow(); DCHECK(active_window);
diff --git a/ash/clipboard/clipboard_history_controller_impl.cc b/ash/clipboard/clipboard_history_controller_impl.cc index 2015244..6c71ac7 100644 --- a/ash/clipboard/clipboard_history_controller_impl.cc +++ b/ash/clipboard/clipboard_history_controller_impl.cc
@@ -1001,6 +1001,9 @@ void ClipboardHistoryControllerImpl::OnMenuClosed() { accelerator_target_->OnMenuClosed(); + if (on_menu_closed_callback_for_test_) + std::move(on_menu_closed_callback_for_test_).Run(); + // Reset `context_menu_` in the asynchronous way. Because the menu may be // accessed after `OnMenuClosed()` is called. menu_task_timer_.Start(
diff --git a/ash/clipboard/clipboard_history_controller_impl.h b/ash/clipboard/clipboard_history_controller_impl.h index 6865da5..25e94b6 100644 --- a/ash/clipboard/clipboard_history_controller_impl.h +++ b/ash/clipboard/clipboard_history_controller_impl.h
@@ -136,6 +136,10 @@ confirmed_operation_callback_for_test_ = new_callback; } + void set_on_menu_closed_callback_for_test(base::OnceClosure new_closure) { + on_menu_closed_callback_for_test_ = std::move(new_closure); + } + void set_new_bitmap_to_write_while_encoding_for_test(const SkBitmap& bitmap) { new_bitmap_to_write_while_encoding_for_test_ = bitmap; } @@ -258,6 +262,9 @@ // argument. base::RepeatingCallback<void(bool)> confirmed_operation_callback_for_test_; + // Called when the clipboard history menu is closed. + base::OnceClosure on_menu_closed_callback_for_test_; + // A new bitmap to be written to the clipboard while existing images are being // encoded during `GetHistoryValues()`, which will force `GetHistoryValues()` // to re-run in order to encode this new bitmap. This member is marked mutable
diff --git a/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.cc b/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.cc index f0b6b935..7b5a880 100644 --- a/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.cc +++ b/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.cc
@@ -121,6 +121,13 @@ // Sends MountEvents of all existing MountPoints in cros-disks. void ArcVolumeMounterBridge::SendAllMountEvents() { + DCHECK(delegate_); + if (!delegate_->IsWatchingFileSystemChanges()) { + DVLOG(1) << "Skipping SendAllMountEvents because file system changes are " + << "not watched by watchers"; + return; + } + SendMountEventForMyFiles(); for (const auto& keyValue : DiskMountManager::GetInstance()->mount_points()) { @@ -202,6 +209,13 @@ return; } + if (event == DiskMountManager::MountEvent::MOUNTING && + !delegate_->IsWatchingFileSystemChanges()) { + DVLOG(1) << "Skipping OnMountEvent because file system changes are not " + << "watched by watchers"; + return; + } + // Get disks information that are needed by Android MountService. const ash::disks::Disk* disk = DiskMountManager::GetInstance()->FindDiskBySourcePath(
diff --git a/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.h b/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.h index 2ad5ef57..1d89e479 100644 --- a/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.h +++ b/ash/components/arc/volume_mounter/arc_volume_mounter_bridge.h
@@ -34,8 +34,14 @@ public: class Delegate { public: + // Returns true if file system changes are watched by file system watchers. + // Mounting events should be sent to Android only when this returns true so + // that every file in MyFiles and removable media is indexed in Android's + // MediaStore. + virtual bool IsWatchingFileSystemChanges() = 0; + // To be called by ArcVolumeMounter when a removable media is mounted. This - // create a watcher for the removable media. + // creates a watcher for the removable media if it's not created yet. virtual void StartWatchingRemovableMedia(const std::string& fs_uuid, const std::string& mount_path, base::OnceClosure callback) = 0;
diff --git a/ash/constants/ash_pref_names.cc b/ash/constants/ash_pref_names.cc index f458f26..d19c7d5 100644 --- a/ash/constants/ash_pref_names.cc +++ b/ash/constants/ash_pref_names.cc
@@ -127,6 +127,36 @@ // possible to check sync state to see if the user enabled it. const char kSyncOobeCompleted[] = "sync.oobe_completed"; +// A string representing the last version of Chrome that System Web Apps were +// updated for. +const char kSystemWebAppLastUpdateVersion[] = + "web_apps.system_web_app_last_update"; + +// A string representing the last locale that System Web Apps were installed in. +// This is used to refresh System Web Apps i18n when the locale is changed. +const char kSystemWebAppLastInstalledLocale[] = + "web_apps.system_web_app_last_installed_language"; + +// An int representing the number of failures to install SWAs for a given +// version & locale pair. After 3 failures, we'll abandon this version to avoid +// bootlooping, and wait for a new version to come along. +const char kSystemWebAppInstallFailureCount[] = + "web_apps.system_web_app_failure_count"; + +// A string representing the latest Chrome version where an attempt was made +// to install. In the case of success, this and LastUpdateVersion will be the +// same. If there is an installation failure, they will diverge until a +// successful installation is made. +extern const char kSystemWebAppLastAttemptedVersion[] = + "web_apps.system_web_app_last_attempted_update"; + +// A string representing the most recent locale that was attempted to be +// installed. In the case of success, this and LastUpdateVersion will be the +// same. If there is an installation failure, they will diverge until a +// successful installation is made. +extern const char kSystemWebAppLastAttemptedLocale[] = + "web_apps.system_web_app_last_attempted_language"; + // Boolean pref indicating whether a user has enabled the display password // button on the login/lock screen. const char kLoginDisplayPasswordButtonEnabled[] =
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h index d0f41519..e9535cf4 100644 --- a/ash/constants/ash_pref_names.h +++ b/ash/constants/ash_pref_names.h
@@ -57,6 +57,16 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kSyncOobeCompleted[]; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSystemWebAppLastUpdateVersion[]; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSystemWebAppLastInstalledLocale[]; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSystemWebAppInstallFailureCount[]; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSystemWebAppLastAttemptedVersion[]; +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSystemWebAppLastAttemptedLocale[]; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kLoginDisplayPasswordButtonEnabled[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kSuggestedContentEnabled[];
diff --git a/ash/display/display_move_window_util_unittest.cc b/ash/display/display_move_window_util_unittest.cc index a338b5d..9bc6f5b 100644 --- a/ash/display/display_move_window_util_unittest.cc +++ b/ash/display/display_move_window_util_unittest.cc
@@ -131,7 +131,7 @@ // Set window to left snapped state. PerformMoveWindowAccel(); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_left); EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), screen->GetDisplayNearestWindow(window).id());
diff --git a/ash/display/persistent_window_controller_unittest.cc b/ash/display/persistent_window_controller_unittest.cc index d278c81..ff8eb7a 100644 --- a/ash/display/persistent_window_controller_unittest.cc +++ b/ash/display/persistent_window_controller_unittest.cc
@@ -826,7 +826,7 @@ SplitViewController::Get(Shell::GetPrimaryRootWindow()); // Snap the unique window in clamshell mode will not enter split view mode. - WMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); + WindowSnapWMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); auto* window_state = WindowState::Get(w1); window_state->OnWMEvent(&wm_left_snap_event); EXPECT_FALSE(split_view_controller->InSplitViewMode());
diff --git a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc index adac06e8..8936dc4 100644 --- a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc +++ b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
@@ -354,7 +354,7 @@ EXPECT_TRUE(window_state->IsNormalStateType()); // Snap the window. - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); // Check the window is now snapped. EXPECT_TRUE(window_state->IsSnapped());
diff --git a/ash/frame/snap_controller_impl.cc b/ash/frame/snap_controller_impl.cc index 79080ad..148433da 100644 --- a/ash/frame/snap_controller_impl.cc +++ b/ash/frame/snap_controller_impl.cc
@@ -67,9 +67,9 @@ window_state->set_snap_action_source( WindowSnapActionSource::kUseCaptionButtonToSnap); - const WMEvent snap_event(snap == chromeos::SnapDirection::kPrimary - ? WM_EVENT_SNAP_PRIMARY - : WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent snap_event(snap == chromeos::SnapDirection::kPrimary + ? WM_EVENT_SNAP_PRIMARY + : WM_EVENT_SNAP_SECONDARY); window_state->OnWMEvent(&snap_event); }
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.cc b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.cc index c29336c..aa04a47f 100644 --- a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.cc +++ b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.cc
@@ -374,6 +374,23 @@ QP_LOG(INFO) << __func__ << ": Saving Account Key locally for subsequent pair"; FastPairRepository::Get()->AssociateAccountKeyLocally(device_); + + // If the Saved Devices feature is enabled and we are utilizing a "loose" + // interpretation of a user's opt-in status, then we will opt-in the user + // whenever they pair a Fast Pair device to saving devices to their account. + // Although we don't surface the user's opt-in status in the Settings' + // sub-page, this will surface on Android, and show devices saved to the + // user's account. For subsequent pairing, we opt in the user after they + // elect to pair with a device already saved to their account. + if (features::IsFastPairSavedDevicesEnabled() && + !features::IsFastPairSavedDevicesStrictOptInEnabled()) { + QP_LOG(VERBOSE) << __func__ << ": attempting to opt-in the user"; + FastPairRepository::Get()->UpdateOptInStatus( + nearby::fastpair::OptInStatus::STATUS_OPTED_IN, + base::BindOnce(&FastPairPairerImpl::OnUpdateOptInStatus, + weak_ptr_factory_.GetWeakPtr())); + } + std::move(pairing_procedure_complete_).Run(device_); return; } @@ -448,12 +465,37 @@ FastPairRepository::Get()->AssociateAccountKey( device_, std::vector<uint8_t>(account_key.begin(), account_key.end())); + // If the Saved Devices feature is enabled and we are utilizing a "loose" + // interpretation of a user's opt-in status, then we will opt-in the user + // whenever they pair a Fast Pair device to saving devices to their account. + // Although we don't surface the user's opt-in status in the Settings' + // sub-page, this will surface on Android, and show devices saved to the + // user's account. For initial pairing and retroactive pairing, we opt in the + // user after after we successfully save an account key to their account. + if (features::IsFastPairSavedDevicesEnabled() && + !features::IsFastPairSavedDevicesStrictOptInEnabled()) { + QP_LOG(VERBOSE) << __func__ << ": attempting to opt-in the user"; + FastPairRepository::Get()->UpdateOptInStatus( + nearby::fastpair::OptInStatus::STATUS_OPTED_IN, + base::BindOnce(&FastPairPairerImpl::OnUpdateOptInStatus, + weak_ptr_factory_.GetWeakPtr())); + } + QP_LOG(INFO) << __func__ << ": Account key written to device. Pairing procedure complete."; std::move(pairing_procedure_complete_).Run(device_); } +void FastPairPairerImpl::OnUpdateOptInStatus(bool success) { + if (!success) { + QP_LOG(WARNING) << __func__ << ": failure"; + return; + } + + QP_LOG(VERBOSE) << __func__ << ": success"; +} + void FastPairPairerImpl::RequestPinCode(device::BluetoothDevice* device) { NOTREACHED(); }
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.h b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.h index 11ba0b78..17ddaaa 100644 --- a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.h +++ b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl.h
@@ -124,6 +124,9 @@ // FastPairRepository::CheckOptInStatus callback void OnCheckOptInStatus(nearby::fastpair::OptInStatus status); + // FastPairRepository::UpdateOptInStatus callback + void OnUpdateOptInStatus(bool success); + // Creates a 16-byte array of random bytes with a first byte of 0x04 to // signal Fast Pair account key, and then writes to the device. void AttemptSendAccountKey();
diff --git a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc index 5545aab4..4ecddc50 100644 --- a/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc +++ b/ash/quick_pair/pairing/fast_pair/fast_pair_pairer_impl_unittest.cc
@@ -1981,5 +1981,105 @@ kWriteAccountKeyCharacteristicResultMetric, 1); } +TEST_F(FastPairPairerImplTest, UpdateOptInStatus_InitialPairing) { + Login(user_manager::UserType::USER_TYPE_REGULAR); + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/{features::kFastPairSavedDevices}, + /*disabled_features=*/{features::kFastPairSavedDevicesStrictOptIn}); + + // Start opted out. + fast_pair_repository_.SetOptInStatus( + nearby::fastpair::OptInStatus::STATUS_OPTED_OUT); + base::RunLoop().RunUntilIdle(); + + // Pair the device via Initial Pairing protocol. + histogram_tester().ExpectTotalCount( + kWriteAccountKeyCharacteristicResultMetric, 0); + SuccessfulDataEncryptorSetUp(/*fast_pair_v1=*/false, + /*protocol=*/Protocol::kFastPairInitial); + SetPublicKey(); + SetGetDeviceConnectFailure(); + CreatePairer(); + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(GetPairFailure(), absl::nullopt); + EXPECT_CALL(paired_callback_, Run); + SetDecryptPasskeyForSuccess(); + SetGetDeviceInitialSuccess(); + NotifyConfirmPasskey(); + base::RunLoop().RunUntilIdle(); + RunWritePasskeyCallback(kResponseBytes); + EXPECT_EQ(GetPairFailure(), absl::nullopt); + EXPECT_TRUE(IsDevicePaired()); + EXPECT_CALL(pairing_procedure_complete_, Run); + RunWriteAccountKeyCallback(); + + // Expect that the user is now opted in. + EXPECT_EQ(nearby::fastpair::OptInStatus::STATUS_OPTED_IN, + fast_pair_repository_.GetOptInStatus()); +} + +TEST_F(FastPairPairerImplTest, UpdateOptInStatus_RetroactivePairing) { + Login(user_manager::UserType::USER_TYPE_REGULAR); + + // Start opted out + fast_pair_repository_.SetOptInStatus( + nearby::fastpair::OptInStatus::STATUS_OPTED_OUT); + + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/{features::kFastPairSavedDevices}, + /*disabled_features=*/{features::kFastPairSavedDevicesStrictOptIn}); + base::RunLoop().RunUntilIdle(); + + // Retroactive pair + histogram_tester().ExpectTotalCount( + kWriteAccountKeyCharacteristicResultMetric, 0); + SuccessfulDataEncryptorSetUp(/*fast_pair_v1=*/false, + /*protocol=*/Protocol::kFastPairRetroactive); + SetGetDeviceConnectFailure(); + CreatePairer(); + base::RunLoop().RunUntilIdle(); + EXPECT_CALL(pairing_procedure_complete_, Run); + RunWriteAccountKeyCallback(); + + // Expect that the user is now opted in + EXPECT_EQ(nearby::fastpair::OptInStatus::STATUS_OPTED_IN, + fast_pair_repository_.GetOptInStatus()); +} + +TEST_F(FastPairPairerImplTest, UpdateOptInStatus_SubsequentPairing) { + Login(user_manager::UserType::USER_TYPE_REGULAR); + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/{features::kFastPairSavedDevices}, + /*disabled_features=*/{features::kFastPairSavedDevicesStrictOptIn}); + + // Start opted out + fast_pair_repository_.SetOptInStatus( + nearby::fastpair::OptInStatus::STATUS_OPTED_OUT); + + // Subsequent pair + SuccessfulDataEncryptorSetUp(/*fast_pair_v1=*/false, + /*protocol=*/Protocol::kFastPairSubsequent); + SetGetDeviceConnectFailure(); + CreatePairer(); + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(GetPairFailure(), absl::nullopt); + EXPECT_CALL(paired_callback_, Run); + SetDecryptPasskeyForSuccess(); + SetGetDeviceInitialSuccess(); + NotifyConfirmPasskey(); + base::RunLoop().RunUntilIdle(); + EXPECT_CALL(pairing_procedure_complete_, Run); + RunWritePasskeyCallback(kResponseBytes); + EXPECT_EQ(GetPairFailure(), absl::nullopt); + EXPECT_TRUE(IsDevicePaired()); + + // Expect that the user is opted in now + EXPECT_EQ(nearby::fastpair::OptInStatus::STATUS_OPTED_IN, + fast_pair_repository_.GetOptInStatus()); +} + } // namespace quick_pair } // namespace ash
diff --git a/ash/quick_pair/repository/fake_fast_pair_repository.cc b/ash/quick_pair/repository/fake_fast_pair_repository.cc index efc1d207..f277064 100644 --- a/ash/quick_pair/repository/fake_fast_pair_repository.cc +++ b/ash/quick_pair/repository/fake_fast_pair_repository.cc
@@ -91,6 +91,10 @@ status_ = status; } +nearby::fastpair::OptInStatus FakeFastPairRepository::GetOptInStatus() { + return status_; +} + // Unimplemented. void FakeFastPairRepository::CheckOptInStatus( CheckOptInStatusCallback callback) { @@ -113,10 +117,12 @@ std::move(callback).Run(/*success=*/false); } -// Unimplemented. void FakeFastPairRepository::UpdateOptInStatus( nearby::fastpair::OptInStatus opt_in_status, - UpdateOptInStatusCallback callback) {} + UpdateOptInStatusCallback callback) { + status_ = opt_in_status; + std::move(callback).Run(/*success=*/true); +} // Unimplemented. void FakeFastPairRepository::FetchDeviceImages(scoped_refptr<Device> device) {
diff --git a/ash/quick_pair/repository/fake_fast_pair_repository.h b/ash/quick_pair/repository/fake_fast_pair_repository.h index 113edca..abe4b33 100644 --- a/ash/quick_pair/repository/fake_fast_pair_repository.h +++ b/ash/quick_pair/repository/fake_fast_pair_repository.h
@@ -54,6 +54,7 @@ } void SetOptInStatus(nearby::fastpair::OptInStatus status); + nearby::fastpair::OptInStatus GetOptInStatus(); void SetSavedDevices(nearby::fastpair::OptInStatus status, std::vector<nearby::fastpair::FastPairDevice> devices);
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index 62d5436..edb54e8 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Weerspieëling na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Ontsluit met vingerafdruk</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> steun nie <ph name="SPECIFIED_RESOLUTION" /> nie (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Die resolusie is verander na <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Klik bevestig om veranderinge te hou. Die vorige instellings sal oor <ph name="TIMEOUT_SECONDS" /> teruggestel word.</translation> +<translation id="1908992311423394684">Nuwe installasie</translation> <translation id="1915307458270490472">Sit neer</translation> <translation id="1918022425394817322">Kamera is geglip na hoek bo regs</translation> <translation id="1919743966458266018">Die kortpad om die taakbestuurder oop te maak, het verander. Gebruik asseblief <ph name="NEW_SHORTCUT" /> pleks van <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index 7c016ab..0230941d 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Выконваецца адлюстраванне на дысплэй <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Разблакіроўка па адбітку пальца</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> не падтрымлівае раздзяляльнасць <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Гц). Зададзена раздзяляльнасць <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Каб захаваць змяненні, націсніце "Пацвердзіць". Папярэднія налады будуць адноўлены праз <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Усталявана нядаўна</translation> <translation id="1915307458270490472">Закрыць</translation> <translation id="1918022425394817322">Акно перадпрагляду камеры прывязана да правага верхняга вугла</translation> <translation id="1919743966458266018">Спалучэнне клавіш для адкрыцця менеджара заданняў змянілася. Замест <ph name="OLD_SHORTCUT" /> выкарыстоўвайце <ph name="NEW_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index e0ee80c..816c32c 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Дублира се на „<ph name="DISPLAY_NAME" />“</translation> <translation id="1885785240814121742">Отключване с отпечатък</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> не поддържа <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Хц). Разделителната способност бе променена на <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Кликнете върху бутона за потвърждаване, за да запазите промените. Предишните настройки ще бъдат възстановени след <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Наскоро инсталирано</translation> <translation id="1915307458270490472">Затваряне</translation> <translation id="1918022425394817322">Картината от камерата е прилепена към горния десен ъгъл</translation> <translation id="1919743966458266018">Комбинацията за отваряне на диспечера на задачите е променена. Моля, използвайте „<ph name="NEW_SHORTCUT" />“ вместо „<ph name="OLD_SHORTCUT" />“.</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index f4caf0d..56a27274 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Wird auf <ph name="DISPLAY_NAME" /> gespiegelt...</translation> <translation id="1885785240814121742">Mit Fingerabdruck entsperren</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> unterstützt <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz) nicht. Die Auflösung wurde zu <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" /> Hz) geändert. Bitte bestätigen, um die Änderungen beizubehalten. Die vorherigen Einstellungen werden in <ph name="TIMEOUT_SECONDS" /> wiederhergestellt.</translation> +<translation id="1908992311423394684">Neuinstallation</translation> <translation id="1915307458270490472">Auflegen</translation> <translation id="1918022425394817322">Kamera ist an der oberen rechten Ecke angepinnt</translation> <translation id="1919743966458266018">Die Tastenkombination zum Öffnen des Task-Managers hat sich geändert. Bitte drücke <ph name="NEW_SHORTCUT" /> statt <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index b95d2d7b..d01c010 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Duplicando en <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloquear con huella dactilar</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> no admite el valor de resolución <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz), por lo que se cambió a <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Para mantener este cambio, haz clic en Confirmar. En <ph name="TIMEOUT_SECONDS" /> se restablecerá la configuración anterior.</translation> +<translation id="1908992311423394684">Nueva instalación</translation> <translation id="1915307458270490472">Colgar</translation> <translation id="1918022425394817322">Se ajustó la cámara a la esquina superior derecha</translation> <translation id="1919743966458266018">Se modificó el acceso directo para abrir el administrador de tareas. Utiliza <ph name="NEW_SHORTCUT" /> en vez de <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 4129c48..5473991 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -360,7 +360,7 @@ <translation id="3105917916468784889">Hacer una captura de pantalla</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> <translation id="3120421559657122717">¿Apagar el dispositivo?</translation> -<translation id="3126069444801937830">Reinicia el sistema para actualizarlo.</translation> +<translation id="3126069444801937830">Reiniciar para actualizar</translation> <translation id="3139942575505304791">Escritorio 1</translation> <translation id="315116470104423982">Redes móviles</translation> <translation id="3151786313568798007">Orientación</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index cc4faabe..dcc39ef 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">بازتاب به <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">باز کردن قفل با اثر انگشت</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> از <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> هرتز) پشتیبانی نمیکند. وضوح به <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />) تغییر کرده است. برای حفظ تغییرات، روی تأیید کلیک کنید. تنظیمات قبلی <ph name="TIMEOUT_SECONDS" /> دیگر بازیابی خواهد شد.</translation> +<translation id="1908992311423394684">نصب جدید</translation> <translation id="1915307458270490472">قطع تماس</translation> <translation id="1918022425394817322">دوربین به گوشه بالا سمت راست چسبید</translation> <translation id="1919743966458266018">کلیدهای میانبر باز کردن مدیر وظایف تغییر کرده است. لطفاً از <ph name="NEW_SHORTCUT" /> بهجای <ph name="OLD_SHORTCUT" /> استفاده کنید.</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 0095337..72f7a50 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Mise en miroir pour <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Déverrouillage avec empreinte</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> n'est pas compatible avec la résolution <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). La résolution <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />) sera utilisée à la place. Cliquez sur "Confirmer" pour valider cette modification. Les paramètres précédents seront restaurés dans <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Nouvelle installation</translation> <translation id="1915307458270490472">Raccrocher</translation> <translation id="1918022425394817322">Appareil photo aligné sur l'angle supérieur droit</translation> <translation id="1919743966458266018">Le raccourci permettant d'ouvrir le gestionnaire de tâches a été modifié. Utilisez "<ph name="NEW_SHORTCUT" />" au lieu de "<ph name="OLD_SHORTCUT" />".</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index a255412..a1bb4e8 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Proxectando en <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloquear coa impresión dixital</translation> <translation id="1888656773939766144">O dispositivo (<ph name="DISPLAY_NAME" />) non é compatible cunha resolución de <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). A resolución cambiouse a <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Para conservar este cambio, fai clic en Confirmar. A configuración anterior restaurarase en <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Instalada recentemente</translation> <translation id="1915307458270490472">Deter</translation> <translation id="1918022425394817322">Cámara axustada á esquina superior dereita</translation> <translation id="1919743966458266018">Cambiou o atallo que abre o xestor de tarefas. Utiliza <ph name="NEW_SHORTCUT" /> en lugar de <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 98c1b6b..cbea0be 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> पर स्क्रीन शेयर कर रहा है</translation> <translation id="1885785240814121742">फ़िंगरप्रिंट से अनलॉक करें</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> हर्ट्ज़) के साथ काम नहीं करता है. इस रिज़ॉल्यूशन को <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />) में बदला गया. बदलावों को सेव करने के लिए 'पुष्टि करें' पर क्लिक करें. सेटिंग को <ph name="TIMEOUT_SECONDS" /> में पहले जैसा किया जाएगा.</translation> +<translation id="1908992311423394684">अभी इंस्टॉल किया गया है</translation> <translation id="1915307458270490472">कॉल खत्म करें</translation> <translation id="1918022425394817322">कैमरा इनपुट की झलक, अब ऊपर दाएं कोने में दिखेगी</translation> <translation id="1919743966458266018">काम के मैनेजर को खोलने का शॉर्टकट बदल गया है. कृपया <ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index 2b23313..1925f72b 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Speglar á <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Opna með fingrafari</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> styður ekki <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Upplausninni var breytt í <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Smelltu til að staðfesta þessa breytingu. Fyrri stillingar verða endurheimtar eftir <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Ný uppsetning</translation> <translation id="1915307458270490472">Leggja á</translation> <translation id="1918022425394817322">Myndavél fest við efra horn hægra megin</translation> <translation id="1919743966458266018">Flýtileiðinni til að opna verkstjórn hefur verið breytt. Notaðu <ph name="NEW_SHORTCUT" /> í staðinn fyrir <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 0ed9585a..e222589 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Mirroring su <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Sblocca con l'impronta digitale</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> non supporta <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). È stata impostata la risoluzione <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Fai clic su Conferma per mantenere le modifiche. Le impostazioni precedenti verranno ripristinate tra <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Nuova installazione</translation> <translation id="1915307458270490472">Chiudi</translation> <translation id="1918022425394817322">Fotocamera allineata all'angolo in alto a destra</translation> <translation id="1919743966458266018">La scorciatoia per aprire Task Manager è cambiata. Utilizza <ph name="NEW_SHORTCUT" /> invece di <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index c0a8af2..53cb2e6 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">משקף אל <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">ביטול נעילה עם טביעת אצבע</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> לא תומך ברזולוציה של <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" />Hz). הרזולוציה הוחלפה ל-<ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). עליך ללחוץ על 'אישור' כדי לשמור את השינויים. ההגדרות הקודמות ישוחזרו בעוד <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">התקנה חדשה</translation> <translation id="1915307458270490472">ניתוק</translation> <translation id="1918022425394817322">המצלמה מוצמדת לפינה השמאלית העליונה</translation> <translation id="1919743966458266018">מקש הקיצור לפתיחת מנהל המשימות השתנה. יש להשתמש ב-<ph name="NEW_SHORTCUT" /> במקום ב-<ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 2f115a6..d1be072 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">កំពុងឆ្លុះទៅ <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">ដោះសោដោយប្រើស្នាមម្រាមដៃ</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> មិនអាចប្រើ <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz) បានទេ។ កម្រិតច្បាស់ត្រូវបានប្ដូរទៅ <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />)។ សូមចុច "បញ្ជាក់" ដើម្បីរក្សាការផ្លាស់ប្ដូរ។ ការកំណត់មុននឹងត្រូវបានស្ដារក្នុងរយៈពេល <ph name="TIMEOUT_SECONDS" />។</translation> +<translation id="1908992311423394684">ការដំឡើងថ្មី</translation> <translation id="1915307458270490472">បញ្ចប់ការសន្ទនា</translation> <translation id="1918022425394817322">បានតម្រៀបកាមេរ៉ាទៅជ្រុងខាងស្ដាំផ្នែកខាងលើ</translation> <translation id="1919743966458266018">ផ្លូវកាត់សម្រាប់បើកកម្មវិធីគ្រប់គ្រងភារកិច្ចត្រូវបានផ្លាស់ប្តូរ។ សូមប្រើ <ph name="NEW_SHORTCUT" /> ជំនួសឲ្យ <ph name="OLD_SHORTCUT" />។</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index d2a3699c..53b49e61 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -715,7 +715,7 @@ <translation id="5107522548814527560">Интернет</translation> <translation id="5117590920725113268">Кийинки айды көрсөтүү</translation> <translation id="5136175204352732067">Башка баскычтоп туташтырылды</translation> -<translation id="5147567197700016471">Кулпусу ачык</translation> +<translation id="5147567197700016471">Бекилген жок</translation> <translation id="5150070631291639005">Купуялык параметрлери</translation> <translation id="5155897006997040331">Окуу ылдамдыгы</translation> <translation id="5166007464919321363">Иш тактаны үлгү катары сактоо</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 327078b9..152fd67f 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Dubliuojama <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Atrakinimas piršto antspaudu</translation> <translation id="1888656773939766144">„<ph name="DISPLAY_NAME" />“ nepalaiko <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Skyra pakeista į <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Spustelėkite patvirtinimo mygtuką, kad išsaugotumėte pakeitimus. Ankstesni nustatymai bus atkurti po <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Naujas įdiegimas</translation> <translation id="1915307458270490472">Baigti</translation> <translation id="1918022425394817322">Fotoaparato peržiūra pridėta viršutiniame dešiniajame kampe</translation> <translation id="1919743966458266018">Pakeistas užduočių tvarkytuvės atidarymo spartusis klavišas. Naudokite <ph name="NEW_SHORTCUT" /> vietoje <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index 988c708..11f7822 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Spoguļo šeit: <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Atbloķēšana ar pirksta nospiedumu</translation> <translation id="1888656773939766144">Displejā “<ph name="DISPLAY_NAME" />” netiek atbalstīta izšķirtspēja <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Izšķirtspēja tika mainīta uz <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Lai saglabātu izmaiņas, noklikšķiniet uz “Apstiprināt”. Iepriekšējie iestatījumi tiks atjaunoti pēc šāda laika: <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Jauna instalācija</translation> <translation id="1915307458270490472">Pārtraukt</translation> <translation id="1918022425394817322">Kamera pārnesta uz labo augšējo stūri</translation> <translation id="1919743966458266018">Tika mainīti īsinājumtaustiņi, ar kuriem var atvērt uzdevumu pārvaldnieku. Lūdzu, turpmāk izmantojiet <ph name="NEW_SHORTCUT" />, nevis <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 5b6925a1..1e87a90 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> वर मिरर करत आहे</translation> <translation id="1885785240814121742">फिंगरप्रिंटने अनलॉक करा</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz) ला सपोर्ट करत नाही. रिझोल्युशन बदलून <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />) केले गेले. बदल राखण्यासाठी निश्चित करा वर क्लिक करा. मागील सेटिंग्ज <ph name="TIMEOUT_SECONDS" /> मध्ये रिस्टोअर केली जातील.</translation> +<translation id="1908992311423394684">नवीन इंस्टॉल केले आहे</translation> <translation id="1915307458270490472">बंद करा</translation> <translation id="1918022425394817322">कॅमेरा सर्वात वरच्या उजव्या कोपर्यात स्नॅप केला आहे</translation> <translation id="1919743966458266018">टास्क मॅनेजर उघडण्याचा शॉर्टकट बदलला आहे. कृपया <ph name="OLD_SHORTCUT" /> ऐवजी <ph name="NEW_SHORTCUT" /> वापरा.</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index eaddc44..50c7f561 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Po pasqyron në <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Shkyçe me gjurmën e gishtit</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> nuk e mbështet <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Rezolucioni ndryshoi në <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Kliko "Konfirmo" për të ruajtur ndryshimet. Cilësimet e mëparshme do të restaurohen për <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Instalim i ri</translation> <translation id="1915307458270490472">Mbyll</translation> <translation id="1918022425394817322">Pamja paraprake e kamerës ka kaluar në këndin e sipërm djathtas</translation> <translation id="1919743966458266018">Shkurtorja për të hapur menaxherin e detyrave ka ndryshuar. Përdor <ph name="NEW_SHORTCUT" /> në vend të <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index c0da44b..0950f5f 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Spegling av <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Lås upp med fingeravtryck</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> har inte stöd för <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Upplösningen har ändrats till <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Klicka på bekräfta om du vill behålla ändringarna. De gamla inställningarna återställs om <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Nyligen installerad</translation> <translation id="1915307458270490472">Lägg på</translation> <translation id="1918022425394817322">Kameran har fästs i det övre högra hörnet</translation> <translation id="1919743966458266018">Kortkommandot för att öppna aktivitetshanteraren har ändrats. Använd <ph name="NEW_SHORTCUT" /> i stället för <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 8453d961..104d6d9 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Inaakisi kwenye <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Tumia alama ya kidole kufungua</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" /> haitumii <ph name="SPECIFIED_RESOLUTION" /> (Hz <ph name="SPECIFIED_REFRESH_RATE" />). Ubora umebadilishwa kuwa <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Bofya 'thibitisha' ili uhifadhi mabadiliko. Mipangilio ya awali itarejeshwa baada ya <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Imesakinishwa hivi karibuni</translation> <translation id="1915307458270490472">Kata simu</translation> <translation id="1918022425394817322">Onyesho la kukagua kamera limelinganishwa kwenye kona ya juu kulia</translation> <translation id="1919743966458266018">Njia ya mkato ya kufungua kidhibiti cha shughuli kwenye Chrome imebadilika. Tafadhali tumia <ph name="NEW_SHORTCUT" /> badala ya <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index e543736..110f5f62 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Şuraya yansıtılıyor: <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Parmak iziyle kilit açın</translation> <translation id="1888656773939766144"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz) çözünürlüğü desteklemiyor. Çözünürlük, <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />) olarak değiştirildi. Değişiklikleri korumak için Onayla'yı tıklayın. Önceki ayarlar <ph name="TIMEOUT_SECONDS" /> saniye içinde geri yüklenecek.</translation> +<translation id="1908992311423394684">Yeni yükleme</translation> <translation id="1915307458270490472">Kapat</translation> <translation id="1918022425394817322">Kamera sağ üst köşeye tutturuldu</translation> <translation id="1919743966458266018">Görev yöneticisini açma kısayolu değişti. Lütfen <ph name="OLD_SHORTCUT" /> yerine <ph name="NEW_SHORTCUT" /> kısayolunu kullanın.</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index f24d188..b2379e64 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Дзеркалювання на <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Розблоковуйте відбитком пальця</translation> <translation id="1888656773939766144">Дисплей "<ph name="DISPLAY_NAME" />" не підтримує роздільну здатність <ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Гц), тому вибрано <ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Щоб зберегти зміни, натисніть "Підтвердити". Попередні налаштування відновляться через <ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Нещодавно встановлений додаток</translation> <translation id="1915307458270490472">Закрити</translation> <translation id="1918022425394817322">Зображення з камери закріплено у верхньому правому куті</translation> <translation id="1919743966458266018">Комбінація клавіш для запуску Диспетчера завдань змінилася. Тепер це <ph name="NEW_SHORTCUT" />, а не <ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index 017f387..2575d304 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -165,6 +165,7 @@ <translation id="1882897271359938046">Yenza isibuko ku-<ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Vula ngezigxivizo zeminwe</translation> <translation id="1888656773939766144">I-<ph name="DISPLAY_NAME" /> ayisekeli i-<ph name="SPECIFIED_RESOLUTION" /> (<ph name="SPECIFIED_REFRESH_RATE" /> Hz). Ukulungiswa kuye kwashintshelwa ku-<ph name="FALLBACK_RESOLUTION" /> (<ph name="FALLBACK_REFRESH_RATE" />). Chofoza okuthi qinisekisa ukuze ugcine izinguquko. Amasethingi angaphambilini azobuyiselwa ku-<ph name="TIMEOUT_SECONDS" />.</translation> +<translation id="1908992311423394684">Ukufaka okusha</translation> <translation id="1915307458270490472">Vala ikholi</translation> <translation id="1918022425394817322">Ikhamera iqondaniswe ekhoneni elingaphezulu ngakwesokudla</translation> <translation id="1919743966458266018">Isinqamuleli sokuvula isiphathi somsebenzi sishintshile. Sicela usebenzise i-<ph name="NEW_SHORTCUT" /> esikhundleni se-<ph name="OLD_SHORTCUT" />.</translation>
diff --git a/ash/system/network/managed_sim_lock_notifier.cc b/ash/system/network/managed_sim_lock_notifier.cc index 0b3b1ee3..7535c65d 100644 --- a/ash/system/network/managed_sim_lock_notifier.cc +++ b/ash/system/network/managed_sim_lock_notifier.cc
@@ -13,6 +13,7 @@ #include "ash/system/model/system_tray_model.h" #include "ash/system/tray/tray_popup_utils.h" #include "base/bind.h" +#include "chromeos/ash/components/network/cellular_metrics_logger.h" #include "components/onc/onc_constants.h" #include "components/session_manager/session_manager_types.h" #include "ui/base/l10n/l10n_util.h" @@ -148,27 +149,34 @@ RemoveNotification(); } -void ManagedSimLockNotifier::ShowNotification() { - scoped_refptr<message_center::NotificationDelegate> delegate = - base::MakeRefCounted<message_center::HandleNotificationClickDelegate>( - base::BindRepeating([](absl::optional<int> button_index) { - // When clicked, open the SIM Unlock dialog in Cellular settings if - // we can open WebUI settings, otherwise do nothing. - if (TrayPopupUtils::CanOpenWebUISettings()) { - // TODO(b/228093904): Using GUID of network, take user to cellular - // details page with dialog open. Change dialog logic so that if - // the SIM is currently locked, entering the PIN will unlock the - // SIM and disable the PIN lock setting. - Shell::Get() - ->system_tray_model() - ->client() - ->ShowSettingsSimUnlock(); - } else { - LOG(WARNING) << "Cannot open Cellular settings since it's not " - "possible to open OS Settings"; - } - })); +void ManagedSimLockNotifier::Close(bool by_user) { + if (by_user) { + chromeos::CellularMetricsLogger::RecordSimLockNotificationEvent( + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kDismissed); + } +} +void ManagedSimLockNotifier::Click( + const absl::optional<int>& button_index, + const absl::optional<std::u16string>& reply) { + chromeos::CellularMetricsLogger::RecordSimLockNotificationEvent( + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kClicked); + + // When clicked, open the SIM Unlock dialog in Cellular settings if + // we can open WebUI settings, otherwise do nothing. + if (TrayPopupUtils::CanOpenWebUISettings()) { + // TODO(b/228093904): Using GUID of network, take user to cellular + // details page with dialog open. Change dialog logic so that if + // the SIM is currently locked, entering the PIN will unlock the + // SIM and disable the PIN lock setting. + Shell::Get()->system_tray_model()->client()->ShowSettingsSimUnlock(); + } else { + LOG(WARNING) << "Cannot open Cellular settings since it's not " + "possible to open OS Settings"; + } +} + +void ManagedSimLockNotifier::ShowNotification() { std::unique_ptr<message_center::Notification> notification = ash::CreateSystemNotification( message_center::NOTIFICATION_TYPE_SIMPLE, @@ -182,13 +190,17 @@ message_center::NotifierType::SYSTEM_COMPONENT, kNotifierManagedSimLock, NotificationCatalogName::kManagedSimLock), - message_center::RichNotificationData(), std::move(delegate), + message_center::RichNotificationData(), + base::MakeRefCounted<message_center::ThunkNotificationDelegate>( + weak_ptr_factory_.GetWeakPtr()), /*small_image=*/gfx::VectorIcon(), message_center::SystemNotificationWarningLevel::WARNING); message_center::MessageCenter* message_center = message_center::MessageCenter::Get(); message_center->AddNotification(std::move(notification)); + chromeos::CellularMetricsLogger::RecordSimLockNotificationEvent( + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kShown); } void ManagedSimLockNotifier::RemoveNotification() {
diff --git a/ash/system/network/managed_sim_lock_notifier.h b/ash/system/network/managed_sim_lock_notifier.h index bde31e3..8723d2b 100644 --- a/ash/system/network/managed_sim_lock_notifier.h +++ b/ash/system/network/managed_sim_lock_notifier.h
@@ -11,6 +11,7 @@ #include "base/memory/weak_ptr.h" #include "chromeos/services/network_config/public/cpp/cros_network_config_observer.h" #include "mojo/public/cpp/bindings/remote.h" +#include "ui/message_center/public/cpp/notification.h" namespace ash { @@ -18,7 +19,8 @@ // restrict cellular SIM lock Global Network Configuration is set to true. class ASH_EXPORT ManagedSimLockNotifier : public SessionObserver, - public chromeos::network_config::CrosNetworkConfigObserver { + public chromeos::network_config::CrosNetworkConfigObserver, + public message_center::NotificationObserver { public: ManagedSimLockNotifier(); ManagedSimLockNotifier(const ManagedSimLockNotifier&) = delete; @@ -31,6 +33,11 @@ // SessionObserver: void OnSessionStateChanged(session_manager::SessionState state) override; + // message_center::NotificationObserver: + void Close(bool by_user) override; + void Click(const absl::optional<int>& button_index, + const absl::optional<std::u16string>& reply) override; + // CrosNetworkConfigObserver: void OnDeviceStateListChanged() override; void OnPoliciesApplied(const std::string& userhash) override;
diff --git a/ash/system/network/managed_sim_lock_notifier_unittest.cc b/ash/system/network/managed_sim_lock_notifier_unittest.cc index 973c87c8..3968c741 100644 --- a/ash/system/network/managed_sim_lock_notifier_unittest.cc +++ b/ash/system/network/managed_sim_lock_notifier_unittest.cc
@@ -9,7 +9,9 @@ #include "ash/test/ash_test_base.h" #include "base/bind.h" #include "base/run_loop.h" +#include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" +#include "chromeos/ash/components/network/cellular_metrics_logger.h" #include "chromeos/ash/components/network/network_handler.h" #include "chromeos/ash/components/network/network_handler_test_helper.h" #include "chromeos/ash/components/network/network_state_handler.h" @@ -137,9 +139,14 @@ base::RunLoop().RunUntilIdle(); } - void RemoveNotification() { + void ClickOnNotification() { + message_center::MessageCenter::Get()->ClickOnNotification( + ManagedSimLockNotifier::kManagedSimLockNotificationId); + } + + void RemoveNotification(bool by_user) { message_center::MessageCenter::Get()->RemoveNotification( - ManagedSimLockNotifier::kManagedSimLockNotificationId, false); + ManagedSimLockNotifier::kManagedSimLockNotificationId, by_user); } // Returns the managed SIM lock notification if it is shown, and null if it is @@ -153,6 +160,7 @@ std::unique_ptr<chromeos::network_config::CrosNetworkConfigTestHelper> network_config_helper_; std::unique_ptr<NetworkHandlerTestHelper> network_handler_test_helper_; + base::HistogramTester histogram_tester_; }; TEST_F(ManagedSimLockNotifierTest, PolicyChanged) { @@ -178,7 +186,7 @@ // Notification should be shown; proceed to remove it. EXPECT_TRUE(GetManagedSimLockNotification()); - RemoveNotification(); + RemoveNotification(/*by_user=*/false); EXPECT_FALSE(GetManagedSimLockNotification()); LogOut(); @@ -189,7 +197,7 @@ // locked and policy is true. EXPECT_TRUE(GetManagedSimLockNotification()); - RemoveNotification(); + RemoveNotification(/*by_user=*/false); SetAllowCellularSimLock(true); LogOut(); @@ -242,7 +250,7 @@ SetAllowCellularSimLock(false); EXPECT_TRUE(GetManagedSimLockNotification()); - RemoveNotification(); + RemoveNotification(/*by_user=*/false); EXPECT_FALSE(GetManagedSimLockNotification()); // Simulate primary ICCID changed. Notification should be shown after. @@ -269,12 +277,17 @@ } TEST_F(ManagedSimLockNotifierTest, NotificationOnCellularOnOrOff) { + base::HistogramTester histograms; + AddCellularDevice(); AddCellularService(); SetCellularSimLockEnabled(true); SetAllowCellularSimLock(false); EXPECT_TRUE(GetManagedSimLockNotification()); + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kShown, 1); // Notification will disappear if user turns off Cellular. SetCellularEnabled(false); @@ -285,4 +298,52 @@ EXPECT_TRUE(GetManagedSimLockNotification()); } +TEST_F(ManagedSimLockNotifierTest, NotificationClicked) { + base::HistogramTester histograms; + + AddCellularDevice(); + AddCellularService(); + SetCellularSimLockEnabled(true); + SetAllowCellularSimLock(false); + + ClickOnNotification(); + + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kShown, 1); + + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kClicked, 1); + + // Notification will be dismissed by the system, in which case we shouldn't + // be emitting the dismissed by user metric. + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kDismissed, 0); +} + +TEST_F(ManagedSimLockNotifierTest, NotificationDismissedByUser) { + base::HistogramTester histograms; + + AddCellularDevice(); + AddCellularService(); + SetCellularSimLockEnabled(true); + SetAllowCellularSimLock(false); + + RemoveNotification(/*by_user=*/true); + + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kShown, 1); + + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kClicked, 0); + + histograms.ExpectBucketCount( + chromeos::CellularMetricsLogger::kSimLockNotificationEventHistogram, + chromeos::CellularMetricsLogger::SimLockNotificationEvent::kDismissed, 1); +} + } // namespace ash
diff --git a/ash/wm/base_state.cc b/ash/wm/base_state.cc index d0766a4e..3af5ca27 100644 --- a/ash/wm/base_state.cc +++ b/ash/wm/base_state.cc
@@ -14,6 +14,7 @@ #include "ash/wm/splitview/split_view_utils.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/window_positioning_utils.h" +#include "ash/wm/window_state.h" #include "ash/wm/wm_event.h" #include "chromeos/ui/base/window_state_type.h" #include "ui/aura/client/aura_constants.h" @@ -157,8 +158,9 @@ window, is_desired_primary_snapped ? SplitViewController::LEFT : SplitViewController::RIGHT); } else { - const WMEvent event(is_desired_primary_snapped ? WM_EVENT_SNAP_PRIMARY - : WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent event(is_desired_primary_snapped + ? WM_EVENT_SNAP_PRIMARY + : WM_EVENT_SNAP_SECONDARY); window_state->OnWMEvent(&event); } window_state->ReadOutWindowCycleSnapAction(
diff --git a/ash/wm/client_controlled_state_unittest.cc b/ash/wm/client_controlled_state_unittest.cc index 6d2fb8d..34727e0 100644 --- a/ash/wm/client_controlled_state_unittest.cc +++ b/ash/wm/client_controlled_state_unittest.cc
@@ -339,12 +339,12 @@ ASSERT_FALSE(window_state()->CanSnap()); // The event should be ignored. - const WMEvent snap_left_event(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left_event(WM_EVENT_CYCLE_SNAP_PRIMARY); window_state()->OnWMEvent(&snap_left_event); EXPECT_FALSE(window_state()->IsSnapped()); EXPECT_TRUE(delegate()->requested_bounds().IsEmpty()); - const WMEvent snap_right_event(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent snap_right_event(WM_EVENT_CYCLE_SNAP_SECONDARY); window_state()->OnWMEvent(&snap_right_event); EXPECT_FALSE(window_state()->IsSnapped()); EXPECT_TRUE(delegate()->requested_bounds().IsEmpty()); @@ -386,7 +386,7 @@ widget_delegate()->EnableSnap(); // Make sure the requested bounds for snapped window is local to display. - const WMEvent snap_left_event(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left_event(WM_EVENT_CYCLE_SNAP_PRIMARY); window_state()->OnWMEvent(&snap_left_event); EXPECT_EQ(second_display_id, delegate()->display_id());
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc index 7d07e28..e88d0a1 100644 --- a/ash/wm/desks/desks_unittests.cc +++ b/ash/wm/desks/desks_unittests.cc
@@ -3190,7 +3190,7 @@ auto win0 = CreateAppWindow(gfx::Rect(0, 0, 250, 100)); auto win1 = CreateAppWindow(gfx::Rect(50, 50, 200, 200)); WindowState* win0_state = WindowState::Get(win0.get()); - WMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); + WindowSnapWMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); win0_state->OnWMEvent(&snap_to_left); EXPECT_EQ(chromeos::WindowStateType::kPrimarySnapped, win0_state->GetStateType());
diff --git a/ash/wm/desks/templates/saved_desk_unittest.cc b/ash/wm/desks/templates/saved_desk_unittest.cc index 1513e35..7cbe6c3 100644 --- a/ash/wm/desks/templates/saved_desk_unittest.cc +++ b/ash/wm/desks/templates/saved_desk_unittest.cc
@@ -3270,7 +3270,7 @@ auto test_window = CreateAppWindow(); WindowState* window_state = WindowState::Get(test_window.get()); - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); EXPECT_EQ(chromeos::WindowStateType::kPrimarySnapped, window_state->GetStateType());
diff --git a/ash/wm/lock_state_controller.cc b/ash/wm/lock_state_controller.cc index 8a5836931..42fe3f1 100644 --- a/ash/wm/lock_state_controller.cc +++ b/ash/wm/lock_state_controller.cc
@@ -27,6 +27,7 @@ #include "base/bind.h" #include "base/callback_helpers.h" #include "base/command_line.h" +#include "base/debug/dump_without_crashing.h" #include "base/json/values_util.h" #include "base/location.h" #include "base/logging.h" @@ -49,6 +50,10 @@ UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, base::Milliseconds(1), \ base::Seconds(50), 100) +// TODO(b/228873153): Remove after figuring out the root cause of the bug +#undef ENABLED_VLOG_LEVEL +#define ENABLED_VLOG_LEVEL 1 + namespace ash { namespace { @@ -318,7 +323,12 @@ lock_duration_timer_.reset(); DCHECK(!system_is_locked_); - LOG(FATAL) << "Screen lock took too long; crashing intentionally"; + // b/228873153: Here we use `LOG(ERROR)` instead of `LOG(FATAL)` because it + // seems like certain users are hitting this timeout causing chrome to crash + // and be restarted from session manager without `--login-manager` + LOG(ERROR) << "Screen lock took too long; Signing out"; + base::debug::DumpWithoutCrashing(); + Shell::Get()->session_controller()->RequestSignOut(); } void LockStateController::StartPreShutdownAnimationTimer() { @@ -481,6 +491,7 @@ Shell::Get()->session_controller()->LockScreen(); } + VLOG(1) << "b/228873153 : Starting lock fail timer"; lock_fail_timer_.Start(FROM_HERE, kLockFailTimeout, this, &LockStateController::OnLockFailTimeout);
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc index 4bad69f..8c1c3e67 100644 --- a/ash/wm/overview/overview_session_unittest.cc +++ b/ash/wm/overview/overview_session_unittest.cc
@@ -4914,7 +4914,7 @@ EXPECT_EQ(SplitViewController::State::kNoSnap, split_view_controller()->state()); EXPECT_FALSE(InOverviewSession()); - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); snapped_window_state->OnWMEvent(&alt_left_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(snapped_window.get())); EXPECT_EQ(WindowStateType::kPrimarySnapped, @@ -4935,7 +4935,8 @@ EXPECT_EQ(SplitViewController::State::kNoSnap, split_view_controller()->state()); EXPECT_FALSE(InOverviewSession()); - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); snapped_window_state->OnWMEvent(&alt_right_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(snapped_window.get())); EXPECT_EQ(WindowStateType::kSecondarySnapped, @@ -4962,10 +4963,11 @@ EXPECT_FALSE(InOverviewSession()); }; expect_unsnappable_window_is_active_and_maximized(); - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); unsnappable_window_state->OnWMEvent(&alt_left_square_bracket); expect_unsnappable_window_is_active_and_maximized(); - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); unsnappable_window_state->OnWMEvent(&alt_right_square_bracket); expect_unsnappable_window_is_active_and_maximized(); } @@ -4979,7 +4981,7 @@ &window1](WMEventType event_type) { wm::ActivateWindow(window1.get()); WindowState* window1_state = WindowState::Get(window1.get()); - const WMEvent event(event_type); + const WindowSnapWMEvent event(event_type); window1_state->OnWMEvent(&event); EXPECT_TRUE(wm::IsActiveWindow(window1.get())); EXPECT_EQ(WindowStateType::kMaximized, window1_state->GetStateType()); @@ -5030,7 +5032,8 @@ const auto test_left_snapping_window1 = [this, &window1, &window2]() { wm::ActivateWindow(window1.get()); WindowState* window1_state = WindowState::Get(window1.get()); - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket( + WM_EVENT_CYCLE_SNAP_PRIMARY); window1_state->OnWMEvent(&alt_left_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(window1.get())); EXPECT_EQ(WindowStateType::kPrimarySnapped, window1_state->GetStateType()); @@ -5043,7 +5046,8 @@ const auto test_right_snapping_window1 = [this, &window1, &window2]() { wm::ActivateWindow(window1.get()); WindowState* window1_state = WindowState::Get(window1.get()); - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); window1_state->OnWMEvent(&alt_right_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(window1.get())); EXPECT_EQ(WindowStateType::kSecondarySnapped, @@ -7090,14 +7094,15 @@ EXPECT_FALSE(split_view_controller()->InSplitViewMode()); EXPECT_FALSE(InOverviewSession()); // Alt+[ - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); WindowState* window1_state = WindowState::Get(window1.get()); window1_state->OnWMEvent(&alt_left_square_bracket); EXPECT_EQ(WindowStateType::kPrimarySnapped, window1_state->GetStateType()); EXPECT_FALSE(split_view_controller()->InSplitViewMode()); EXPECT_FALSE(InOverviewSession()); // Alt+] - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); window1_state->OnWMEvent(&alt_right_square_bracket); EXPECT_EQ(WindowStateType::kSecondarySnapped, window1_state->GetStateType()); EXPECT_FALSE(split_view_controller()->InSplitViewMode()); @@ -7117,7 +7122,7 @@ snapped_window_state->GetStateType()); EXPECT_TRUE(split_view_controller()->InSplitViewMode()); EXPECT_TRUE(InOverviewSession()); - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); snapped_window_state->OnWMEvent(&alt_left_square_bracket); EXPECT_EQ(WindowStateType::kNormal, snapped_window_state->GetStateType()); EXPECT_FALSE(split_view_controller()->InSplitViewMode()); @@ -7137,7 +7142,8 @@ snapped_window_state->GetStateType()); EXPECT_TRUE(split_view_controller()->InSplitViewMode()); EXPECT_TRUE(InOverviewSession()); - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); snapped_window_state->OnWMEvent(&alt_right_square_bracket); EXPECT_EQ(WindowStateType::kNormal, snapped_window_state->GetStateType()); EXPECT_FALSE(split_view_controller()->InSplitViewMode()); @@ -7163,7 +7169,7 @@ EXPECT_EQ(snapped_window.get(), split_view_controller()->right_window()); EXPECT_TRUE(InOverviewSession()); // Test using Alt+[ to put |snapped_window| on the left. - const WMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent alt_left_square_bracket(WM_EVENT_CYCLE_SNAP_PRIMARY); snapped_window_state->OnWMEvent(&alt_left_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(snapped_window.get())); EXPECT_EQ(WindowStateType::kPrimarySnapped, @@ -7173,7 +7179,8 @@ EXPECT_EQ(snapped_window.get(), split_view_controller()->left_window()); EXPECT_TRUE(InOverviewSession()); // Test using Alt+] to put |snapped_window| on the right. - const WMEvent alt_right_square_bracket(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent alt_right_square_bracket( + WM_EVENT_CYCLE_SNAP_SECONDARY); snapped_window_state->OnWMEvent(&alt_right_square_bracket); EXPECT_TRUE(wm::IsActiveWindow(snapped_window.get())); EXPECT_EQ(WindowStateType::kSecondarySnapped,
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc index 7633d34..ac6dda3 100644 --- a/ash/wm/splitview/split_view_controller.cc +++ b/ash/wm/splitview/split_view_controller.cc
@@ -850,8 +850,8 @@ .id()); } - const WMEvent event(snap_position == LEFT ? WM_EVENT_SNAP_PRIMARY - : WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent event( + snap_position == LEFT ? WM_EVENT_SNAP_PRIMARY : WM_EVENT_SNAP_SECONDARY); WindowState::Get(window)->OnWMEvent(&event); base::RecordAction(base::UserMetricsAction("SplitView_SnapWindow")); @@ -2185,11 +2185,11 @@ void SplitViewController::UpdateSnappedWindowsAndDividerBounds() { // Update the snapped windows' bounds. if (IsSnapped(left_window_)) { - const WMEvent left_window_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent left_window_event(WM_EVENT_SNAP_PRIMARY); WindowState::Get(left_window_)->OnWMEvent(&left_window_event); } if (IsSnapped(right_window_)) { - const WMEvent right_window_event(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent right_window_event(WM_EVENT_SNAP_SECONDARY); WindowState::Get(right_window_)->OnWMEvent(&right_window_event); }
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc index f392f3e..fff60ed 100644 --- a/ash/wm/splitview/split_view_controller_unittest.cc +++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -3085,7 +3085,7 @@ // Test the functionalities in tablet mode. // Sending WM_EVENT_SNAP_SECONDARY to |window1| will snap to left. - WMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); + WindowSnapWMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); WindowState::Get(window1.get())->OnWMEvent(&wm_left_snap_event); EXPECT_TRUE(split_view_controller()->InSplitViewMode()); EXPECT_EQ(split_view_controller()->left_window(), window1.get()); @@ -3096,7 +3096,7 @@ EXPECT_TRUE(overview_session->IsWindowInOverview(window2.get())); // Sending WM_EVENT_SNAP_SECONDARY to |window1| will snap to right. - WMEvent wm_right_snap_event(WM_EVENT_SNAP_SECONDARY); + WindowSnapWMEvent wm_right_snap_event(WM_EVENT_SNAP_SECONDARY); WindowState::Get(window1.get())->OnWMEvent(&wm_right_snap_event); EXPECT_TRUE(split_view_controller()->InSplitViewMode()); EXPECT_EQ(split_view_controller()->right_window(), window1.get()); @@ -3214,7 +3214,7 @@ // 1. Test landscape orientation. // Snap |window1| to the left to enter split view overview in tablet mode. - WMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); + WindowSnapWMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); WindowState::Get(window1.get())->OnWMEvent(&wm_left_snap_event); EXPECT_TRUE(split_view_controller()->InSplitViewMode()); OverviewController* overview_controller = Shell::Get()->overview_controller(); @@ -3257,8 +3257,8 @@ wm::ActivateWindow(window1.get()); EXPECT_FALSE(split_view_controller()->InSplitViewMode()); - const WMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); - const WMEvent wm_right_snap_event(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent wm_left_snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent wm_right_snap_event(WM_EVENT_SNAP_SECONDARY); const WMEvent fullscreen_event(WM_EVENT_TOGGLE_FULLSCREEN); // 1. Test portrait orientation.
diff --git a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc index 7dc3b16..ab9f5f7 100644 --- a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
@@ -208,7 +208,7 @@ std::unique_ptr<aura::Window> CreateDesktopWindowSnappedLeft( const gfx::Rect& bounds = gfx::Rect()) { std::unique_ptr<aura::Window> window = CreateTestWindow(bounds); - WMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); + WindowSnapWMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); WindowState::Get(window.get())->OnWMEvent(&snap_to_left); return window; } @@ -217,7 +217,7 @@ std::unique_ptr<aura::Window> CreateDesktopWindowSnappedRight( const gfx::Rect& bounds = gfx::Rect()) { std::unique_ptr<aura::Window> window = CreateTestWindow(bounds); - WMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); + WindowSnapWMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); WindowState::Get(window.get())->OnWMEvent(&snap_to_right); return window; } @@ -1362,7 +1362,7 @@ WindowState* left_window_state = WindowState::Get(left_window.get()); ASSERT_TRUE(left_window_state->CanSnap()); ASSERT_FALSE(split_view_controller()->CanSnapWindow(left_window.get())); - WMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); + WindowSnapWMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); left_window_state->OnWMEvent(&snap_to_left); std::unique_ptr<aura::Window> right_window = CreateDesktopWindowSnappedRight(); @@ -1392,7 +1392,7 @@ WindowState* right_window_state = WindowState::Get(right_window.get()); ASSERT_TRUE(right_window_state->CanSnap()); ASSERT_FALSE(split_view_controller()->CanSnapWindow(right_window.get())); - WMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); + WindowSnapWMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); right_window_state->OnWMEvent(&snap_to_right); wm::ActivateWindow(right_window.get()); tablet_mode_controller()->SetEnabledForTest(true); @@ -1421,7 +1421,7 @@ WindowState* right_window_state = WindowState::Get(right_window.get()); ASSERT_TRUE(right_window_state->CanSnap()); ASSERT_FALSE(split_view_controller()->CanSnapWindow(right_window.get())); - WMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); + WindowSnapWMEvent snap_to_right(WM_EVENT_CYCLE_SNAP_SECONDARY); right_window_state->OnWMEvent(&snap_to_right); ASSERT_EQ(left_window.get(), window_util::GetActiveWindow()); tablet_mode_controller()->SetEnabledForTest(true); @@ -1449,7 +1449,7 @@ WindowState* left_window_state = WindowState::Get(left_window.get()); ASSERT_TRUE(left_window_state->CanSnap()); ASSERT_FALSE(split_view_controller()->CanSnapWindow(left_window.get())); - WMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); + WindowSnapWMEvent snap_to_left(WM_EVENT_CYCLE_SNAP_PRIMARY); left_window_state->OnWMEvent(&snap_to_left); std::unique_ptr<aura::Window> right_window = CreateDesktopWindowSnappedRight(); @@ -1740,7 +1740,7 @@ EXPECT_TRUE(window_state->CanSnap()); // Snap the window and check that `ShouldAutoHideTitlebars()` is true. - WMEvent snap_to_left(WM_EVENT_SNAP_PRIMARY); + WindowSnapWMEvent snap_to_left(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_to_left); EXPECT_TRUE(window_state->IsSnapped()); EXPECT_TRUE(Shell::Get()->tablet_mode_controller()->ShouldAutoHideTitlebars(
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc index 31ae604b..d6c7d72 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -1652,7 +1652,7 @@ // 5. Clamshell -> Tablet. If the window is snapped, it will be carried over // to splitview in tablet mode. - const WMEvent event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent event(WM_EVENT_SNAP_PRIMARY); WindowState::Get(window.get())->OnWMEvent(&event); EXPECT_TRUE(WindowState::Get(window.get())->IsSnapped()); // After transition, we should be in single split screen. @@ -1724,7 +1724,7 @@ OverviewController* overview_controller = Shell::Get()->overview_controller(); // First test 1 window case. - const WMEvent left_snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent left_snap_event(WM_EVENT_SNAP_PRIMARY); WindowState::Get(window.get())->OnWMEvent(&left_snap_event); const gfx::Rect left_snapped_bounds = gfx::Rect(1200 / 2, 800 - ShelfConfig::Get()->shelf_size()); @@ -1746,7 +1746,7 @@ std::unique_ptr<aura::Window> window2( CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect)); WindowState::Get(window.get())->OnWMEvent(&left_snap_event); - const WMEvent right_snap_event(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent right_snap_event(WM_EVENT_SNAP_SECONDARY); WindowState::Get(window2.get())->OnWMEvent(&right_snap_event); // Change their bounds horizontally and then enter tablet mode. window->SetBounds(gfx::Rect(400, left_snapped_bounds.height())); @@ -1826,7 +1826,7 @@ EXPECT_TRUE(window_state->IsMaximized()); // Transition to kPrimarySnapped window state. - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_left); // Restoring a snapped window in tablet mode will change the window back to // maximized window state.
diff --git a/ash/wm/toplevel_window_event_handler_unittest.cc b/ash/wm/toplevel_window_event_handler_unittest.cc index 7cdefee..16796322 100644 --- a/ash/wm/toplevel_window_event_handler_unittest.cc +++ b/ash/wm/toplevel_window_event_handler_unittest.cc
@@ -1085,7 +1085,7 @@ // Snap the window to the right. WindowState* window_state = WindowState::Get(w1.get()); ASSERT_TRUE(window_state->CanSnap()); - const WMEvent event(WM_EVENT_CYCLE_SNAP_SECONDARY); + const WindowSnapWMEvent event(WM_EVENT_CYCLE_SNAP_SECONDARY); window_state->OnWMEvent(&event); ASSERT_TRUE(window_state->IsSnapped());
diff --git a/ash/wm/window_restore/window_restore_controller.cc b/ash/wm/window_restore/window_restore_controller.cc index 37dfcbf..79a9a29 100644 --- a/ash/wm/window_restore/window_restore_controller.cc +++ b/ash/wm/window_restore/window_restore_controller.cc
@@ -528,7 +528,7 @@ *state_type == chromeos::WindowStateType::kSecondarySnapped) { base::AutoReset<aura::Window*> auto_reset_to_be_snapped( &to_be_snapped_window_, window); - const WMEvent snap_event( + const WindowSnapWMEvent snap_event( *state_type == chromeos::WindowStateType::kPrimarySnapped ? WM_EVENT_SNAP_PRIMARY : WM_EVENT_SNAP_SECONDARY); @@ -543,15 +543,16 @@ // is quite common for some widgets to explicitly call Show() after // initialized. // TODO(sammiequon): Instead of disabling activation when creating the widget - // and enabling it here, use ShowInactive() instead of Show() when the widget - // is created. + // and enabling it here, use `ShowInactive()` instead of `Show()` when the + // widget is created. restore_property_clear_callbacks_.emplace( window, base::BindOnce(&WindowRestoreController::ClearLaunchedKey, weak_ptr_factory_.GetWeakPtr(), window)); // Also, for some ARC and chrome apps, the client can request activation after // showing. We cannot detect this, so we use a timeout to keep the window not - // activatable for a while longer. + // activatable for a while longer. Classic browser and lacros windows are + // expected to call `ShowInactive()` where the browser is created. const AppType app_type = static_cast<AppType>(window->GetProperty(aura::client::kAppType)); // Prevent apply activation delay on ARC ghost window. It should be only apply
diff --git a/ash/wm/window_state.cc b/ash/wm/window_state.cc index 83a845a..00a1839 100644 --- a/ash/wm/window_state.cc +++ b/ash/wm/window_state.cc
@@ -451,6 +451,11 @@ } void WindowState::OnWMEvent(const WMEvent* event) { + if (event->IsSnapEvent()) { + // Snap events should be created as WindowSnapWMEvent. + DCHECK(event->IsSnapInfoAvailable()); + } + current_state_->OnWMEvent(this, event); MaybeUpdateSnapRatio(event);
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc index 3e2a57f3..ff7ade7 100644 --- a/ash/wm/window_state_unittest.cc +++ b/ash/wm/window_state_unittest.cc
@@ -91,23 +91,23 @@ std::unique_ptr<aura::Window> window( CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100))); WindowState* window_state = WindowState::Get(window.get()); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); gfx::Rect expected = gfx::Rect(kPrimaryDisplayWorkAreaBounds.x(), kPrimaryDisplayWorkAreaBounds.y(), kPrimaryDisplayWorkAreaBounds.width() / 2, kPrimaryDisplayWorkAreaBounds.height()); EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); expected.set_x(kPrimaryDisplayWorkAreaBounds.right() - expected.width()); EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); // Move the window to the secondary display. window->SetBoundsInScreen(gfx::Rect(600, 0, 100, 100), GetSecondaryDisplay()); - window_state->OnWMEvent(&snap_right); + window_state->OnWMEvent(&snap_secondary); expected = gfx::Rect(kSecondaryDisplayWorkAreaBounds.x() + kSecondaryDisplayWorkAreaBounds.width() / 2, kSecondaryDisplayWorkAreaBounds.y(), @@ -115,7 +115,7 @@ kSecondaryDisplayWorkAreaBounds.height()); EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); - window_state->OnWMEvent(&snap_left); + window_state->OnWMEvent(&snap_primary); expected.set_x(kSecondaryDisplayWorkAreaBounds.x()); EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); } @@ -136,8 +136,8 @@ delegate.set_minimum_size(gfx::Size(kMinimumWidth, 0)); WindowState* window_state = WindowState::Get(window.get()); EXPECT_TRUE(window_state->CanSnap()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); // Expect right snap with the minimum width. const gfx::Rect expected_right_snap(kWorkAreaBounds.width() - kMinimumWidth, kWorkAreaBounds.y(), kMinimumWidth, @@ -472,8 +472,8 @@ &delegate, -1, gfx::Rect(100, 100, 100, 100))); delegate.set_window_component(HTRIGHT); WindowState* window_state = WindowState::Get(window.get()); - const WMEvent cycle_snap_left(WM_EVENT_CYCLE_SNAP_PRIMARY); - window_state->OnWMEvent(&cycle_snap_left); + const WindowSnapWMEvent cycle_snap_primary(WM_EVENT_CYCLE_SNAP_PRIMARY); + window_state->OnWMEvent(&cycle_snap_primary); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); gfx::Rect expected = gfx::Rect(kWorkAreaBounds.x(), kWorkAreaBounds.y(), @@ -495,13 +495,13 @@ EXPECT_EQ(0.75f, *window_state->snap_ratio()); // Another cycle snap left event will restore window state to normal. - window_state->OnWMEvent(&cycle_snap_left); + window_state->OnWMEvent(&cycle_snap_primary); EXPECT_EQ(WindowStateType::kNormal, window_state->GetStateType()); EXPECT_FALSE(window_state->snap_ratio()); // Another cycle snap left event will snap window and reset snapped width // ratio. - window_state->OnWMEvent(&cycle_snap_left); + window_state->OnWMEvent(&cycle_snap_primary); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); EXPECT_EQ(0.5f, *window_state->snap_ratio()); } @@ -524,7 +524,7 @@ .Build(); delegate.set_window_component(HTCAPTION); WindowState* window_state = WindowState::Get(window.get()); - const WMEvent cycle_snap_primary(WM_EVENT_CYCLE_SNAP_PRIMARY); + const WindowSnapWMEvent cycle_snap_primary(WM_EVENT_CYCLE_SNAP_PRIMARY); window_state->OnWMEvent(&cycle_snap_primary); // Snap window to primary position (left). @@ -537,7 +537,9 @@ window->layer()->GetAnimator()->Step(base::TimeTicks::Now() + base::Seconds(1)); EXPECT_EQ(expected, window->GetBoundsInScreen()); + LOG(ERROR) << "pass here"; EXPECT_EQ(0.5f, *window_state->snap_ratio()); + LOG(ERROR) << "pass here2"; // Drag the window to unsnap but do not release. ui::test::EventGenerator* generator = GetEventGenerator(); @@ -547,6 +549,7 @@ // While dragged, the window size should restore to its normal bound. EXPECT_EQ(window_normal_size, window->bounds().size()); EXPECT_EQ(1.0f, *window_state->snap_ratio()); + LOG(ERROR) << "pass here3"; // Continue dragging the window and snap it back to the same position. generator->MoveMouseBy(-405, 0); @@ -569,10 +572,10 @@ gfx::Rect restore_bounds = window->GetBoundsInScreen(); restore_bounds.set_width(restore_bounds.width() + 1); window_state->SetRestoreBoundsInScreen(restore_bounds); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); EXPECT_NE(restore_bounds.ToString(), window->GetBoundsInScreen().ToString()); EXPECT_EQ(restore_bounds.ToString(), window_state->GetRestoreBoundsInScreen().ToString()); @@ -586,7 +589,7 @@ EXPECT_EQ(restore_bounds.ToString(), window_state->GetRestoreBoundsInScreen().ToString()); - window_state->OnWMEvent(&snap_left); + window_state->OnWMEvent(&snap_primary); EXPECT_NE(restore_bounds.ToString(), window->GetBoundsInScreen().ToString()); EXPECT_NE(maximized_bounds.ToString(), window->GetBoundsInScreen().ToString()); @@ -608,8 +611,8 @@ window->Show(); window_state->Maximize(); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); const gfx::Rect kWorkAreaBounds = display::Screen::GetScreen()->GetPrimaryDisplay().work_area(); @@ -973,18 +976,18 @@ EXPECT_TRUE(window_state->IsNormalStateType()); EXPECT_TRUE(window->GetTransparent()); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); EXPECT_FALSE(window->GetTransparent()); window_state->Restore(); EXPECT_TRUE(window->GetTransparent()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_primary); EXPECT_FALSE(window->GetTransparent()); - window_state->OnWMEvent(&snap_left); + window_state->OnWMEvent(&snap_primary); EXPECT_FALSE(window->GetTransparent()); } @@ -1001,8 +1004,8 @@ EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); // Transition to kPrimarySnapped window state. - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); EXPECT_EQ(restore_stack.size(), 1u); EXPECT_EQ(restore_stack[0], WindowStateType::kDefault); EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); @@ -1090,8 +1093,8 @@ EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); // Transition to kPrimarySnapped window state. - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); // Then transition to kMaximized window state. const WMEvent maximize_event(WM_EVENT_MAXIMIZE); @@ -1108,7 +1111,7 @@ // Now transition back to kPrimarySnapped window state. It should have erased // any restore history after kPrimarySnapped. - window_state->OnWMEvent(&snap_left); + window_state->OnWMEvent(&snap_primary); EXPECT_EQ(restore_stack.size(), 1u); EXPECT_EQ(restore_stack[0], WindowStateType::kDefault); EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); @@ -1138,8 +1141,8 @@ // Test kPrimarySnapped & kSecondarySnapped. // Transition to kPrimarySnapped window state. - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); EXPECT_EQ(restore_stack.size(), 1u); EXPECT_EQ(restore_stack[0], WindowStateType::kNormal); EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); @@ -1147,8 +1150,8 @@ // Transition to kSecondarySnapped window state. Since it's on the same layer // as kPrimarySnapped, kPrimarySnapped won't be pushed into the restore // history stack. - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); EXPECT_EQ(restore_stack.size(), 1u); EXPECT_EQ(restore_stack[0], WindowStateType::kNormal); EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); @@ -1188,8 +1191,8 @@ EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); // Transition to kPrimarySnapped window state. - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); // Then transition to kMaximized window state. const WMEvent maximize_event(WM_EVENT_MAXIMIZE); @@ -1214,7 +1217,7 @@ EXPECT_EQ(window_state->GetRestoreWindowState(), WindowStateType::kNormal); // Same should happen for kTrustedPinned as well. - window_state->OnWMEvent(&snap_left); + window_state->OnWMEvent(&snap_primary); window_state->OnWMEvent(&maximize_event); EXPECT_EQ(restore_stack.size(), 2u); EXPECT_EQ(window_state->GetRestoreWindowState(), @@ -1318,8 +1321,8 @@ WindowState* window_state = WindowState::Get(window.get()); // Use WMEvent to directly snap the window. - WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); - window_state->OnWMEvent(&snap_left); + WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY); + window_state->OnWMEvent(&snap_primary); histograms.ExpectBucketCount(kWindowSnapActionSourceHistogram, WindowSnapActionSource::kOthers, 1); window_state->Maximize(); @@ -1465,8 +1468,8 @@ delegate.set_minimum_size(kMinimumSize); WindowState* window_state = WindowState::Get(window.get()); EXPECT_TRUE(window_state->CanSnap()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); - window_state->OnWMEvent(&snap_right); + const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY); + window_state->OnWMEvent(&snap_secondary); // Expect right snap for horizontal snap layout with the minimum width and // bottom snap for vertical snap layout with the minimum height. const gfx::Rect expected_snap =
diff --git a/ash/wm/wm_event.cc b/ash/wm/wm_event.cc index 1fb408f7..d4a543a4 100644 --- a/ash/wm/wm_event.cc +++ b/ash/wm/wm_event.cc
@@ -85,6 +85,23 @@ return false; } +bool WMEvent::IsSnapEvent() const { + switch (type_) { + case WM_EVENT_SNAP_PRIMARY: + case WM_EVENT_SNAP_SECONDARY: + case WM_EVENT_CYCLE_SNAP_PRIMARY: + case WM_EVENT_CYCLE_SNAP_SECONDARY: + return true; + default: + break; + } + return false; +} + +bool WMEvent::IsSnapInfoAvailable() const { + return false; +} + const DisplayMetricsChangedWMEvent* WMEvent::AsDisplayMetricsChangedWMEvent() const { DCHECK_EQ(type(), WM_EVENT_DISPLAY_BOUNDS_CHANGED); @@ -108,6 +125,22 @@ SetBoundsWMEvent::~SetBoundsWMEvent() = default; +WindowSnapWMEvent::WindowSnapWMEvent(WMEventType type) : WMEvent(type) { + DCHECK(IsSnapEvent()); +} + +WindowSnapWMEvent::WindowSnapWMEvent(WMEventType type, + WindowSnapWMEvent::SnapRatio snap_ratio) + : WMEvent(type), snap_ratio_(snap_ratio) { + DCHECK(IsSnapEvent()); +} + +WindowSnapWMEvent::~WindowSnapWMEvent() = default; + +bool WindowSnapWMEvent::IsSnapInfoAvailable() const { + return true; +} + DisplayMetricsChangedWMEvent::DisplayMetricsChangedWMEvent(int changed_metrics) : WMEvent(WM_EVENT_DISPLAY_BOUNDS_CHANGED), changed_metrics_(changed_metrics) {}
diff --git a/ash/wm/wm_event.h b/ash/wm/wm_event.h index 7f77c4f5..636fd2b 100644 --- a/ash/wm/wm_event.h +++ b/ash/wm/wm_event.h
@@ -155,6 +155,14 @@ // e.g. WM_EVENT_MAXIMIZED. bool IsTransitionEvent() const; + // True if the event is a window snap event. + bool IsSnapEvent() const; + + // True if the event has |snap_ratio| value, which is only available for + // WindowSnapWMEvent types. Checks that snap events are created with valid + // |snap_ratio| to pass ASan tests. + virtual bool IsSnapInfoAvailable() const; + // Utility methods to downcast to specific WMEvent types. const DisplayMetricsChangedWMEvent* AsDisplayMetricsChangedWMEvent() const; @@ -191,6 +199,32 @@ const base::TimeDelta duration_; }; +// An WMEvent to snap a window. +class ASH_EXPORT WindowSnapWMEvent : public WMEvent { + public: + enum class SnapRatio { + kOneThirdSnapRatio, + kDefaultSnapRatio, + kTwoThirdSnapRatio + }; + + explicit WindowSnapWMEvent(WMEventType type); + WindowSnapWMEvent(WMEventType type, SnapRatio snap_ratio); + + WindowSnapWMEvent(const WindowSnapWMEvent&) = delete; + WindowSnapWMEvent& operator=(const WindowSnapWMEvent&) = delete; + + ~WindowSnapWMEvent() override; + + // WMEvent: + bool IsSnapInfoAvailable() const override; + + SnapRatio snap_ratio() const { return snap_ratio_; } + + private: + const SnapRatio snap_ratio_ = SnapRatio::kDefaultSnapRatio; +}; + // A WMEvent sent when display metrics have changed. // TODO(oshima): Consolidate with WM_EVENT_WORKAREA_BOUNDS_CHANGED. class ASH_EXPORT DisplayMetricsChangedWMEvent : public WMEvent {
diff --git a/ash/wm/workspace/multi_window_resize_controller_unittest.cc b/ash/wm/workspace/multi_window_resize_controller_unittest.cc index 3e54bcd3..766049e 100644 --- a/ash/wm/workspace/multi_window_resize_controller_unittest.cc +++ b/ash/wm/workspace/multi_window_resize_controller_unittest.cc
@@ -616,7 +616,7 @@ &delegate1, -1, gfx::Rect(100, 100, 100, 100))); delegate1.set_window_component(HTRIGHT); WindowState* w1_state = WindowState::Get(w1.get()); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); w1_state->OnWMEvent(&snap_left); EXPECT_EQ(WindowStateType::kPrimarySnapped, w1_state->GetStateType()); aura::test::TestWindowDelegate delegate2; @@ -624,7 +624,7 @@ &delegate2, -2, gfx::Rect(100, 100, 100, 100))); delegate2.set_window_component(HTRIGHT); WindowState* w2_state = WindowState::Get(w2.get()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent snap_right(WM_EVENT_SNAP_SECONDARY); w2_state->OnWMEvent(&snap_right); EXPECT_EQ(WindowStateType::kSecondarySnapped, w2_state->GetStateType()); EXPECT_EQ(0.5f, *w1_state->snap_ratio());
diff --git a/ash/wm/workspace/workspace_event_handler_unittest.cc b/ash/wm/workspace/workspace_event_handler_unittest.cc index 843a0f6..daaeff8 100644 --- a/ash/wm/workspace/workspace_event_handler_unittest.cc +++ b/ash/wm/workspace/workspace_event_handler_unittest.cc
@@ -221,7 +221,7 @@ .work_area(); WindowState* window_state = WindowState::Get(window.get()); - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); gfx::Rect snapped_bounds_in_screen = window->GetBoundsInScreen(); @@ -370,7 +370,7 @@ EXPECT_EQ(restore_bounds.ToString(), window->bounds().ToString()); // 3) Double clicking a snapped window should maximize. - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); EXPECT_TRUE(window_state->IsSnapped()); generator.MoveMouseTo(window->GetBoundsInRootWindow().CenterPoint());
diff --git a/ash/wm/workspace/workspace_layout_manager_unittest.cc b/ash/wm/workspace/workspace_layout_manager_unittest.cc index 0b4d0a40..d7d5147 100644 --- a/ash/wm/workspace/workspace_layout_manager_unittest.cc +++ b/ash/wm/workspace/workspace_layout_manager_unittest.cc
@@ -584,7 +584,7 @@ auto insets = gfx::Insets::TLBR(0, 0, 56, 0); WorkAreaInsets::ForWindow(window.get()) ->UpdateWorkAreaInsetsForTest(window.get(), gfx::Rect(), insets, insets); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_left); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); const gfx::Rect kWorkAreaBounds = GetPrimaryDisplay().work_area(); @@ -619,7 +619,7 @@ std::unique_ptr<aura::Window> window1( CreateTestWindow(gfx::Rect(10, 20, 100, 200))); WindowState* window1_state = WindowState::Get(window1.get()); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); window1_state->OnWMEvent(&snap_left); const gfx::Rect work_area = display::Screen::GetScreen()->GetPrimaryDisplay().work_area(); @@ -630,7 +630,7 @@ std::unique_ptr<aura::Window> window2( CreateTestWindow(gfx::Rect(10, 20, 100, 200))); WindowState* window2_state = WindowState::Get(window2.get()); - const WMEvent snap_right(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent snap_right(WM_EVENT_SNAP_SECONDARY); window2_state->OnWMEvent(&snap_right); const gfx::Rect expected_right_snapped_bounds = gfx::Rect(work_area.right() - work_area.width() / 2, work_area.y(),
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc index 4988e8c..d8bc1e81 100644 --- a/ash/wm/workspace/workspace_window_resizer.cc +++ b/ash/wm/workspace/workspace_window_resizer.cc
@@ -886,19 +886,24 @@ // TODO(oshima): Add event source type to WMEvent and move // metrics recording inside WindowState::OnWMEvent. WMEventType type; + // bool is_snap_event = false; switch (snap_type_) { - case SnapType::kPrimary: - type = WM_EVENT_SNAP_PRIMARY; + case SnapType::kPrimary: { window_state()->set_snap_action_source( WindowSnapActionSource::kDragWindowToEdgeToSnap); base::RecordAction(base::UserMetricsAction("WindowDrag_MaximizeLeft")); - break; - case SnapType::kSecondary: - type = WM_EVENT_SNAP_SECONDARY; + const WindowSnapWMEvent snap_primary_event(WM_EVENT_SNAP_PRIMARY); + window_state()->OnWMEvent(&snap_primary_event); + return; + } + case SnapType::kSecondary: { window_state()->set_snap_action_source( WindowSnapActionSource::kDragWindowToEdgeToSnap); base::RecordAction(base::UserMetricsAction("WindowDrag_MaximizeRight")); - break; + const WindowSnapWMEvent snap_secondary_event(WM_EVENT_SNAP_SECONDARY); + window_state()->OnWMEvent(&snap_secondary_event); + return; + } case SnapType::kMaximize: type = WM_EVENT_MAXIMIZE; base::RecordAction(base::UserMetricsAction("WindowDrag_Maximize")); @@ -1696,7 +1701,7 @@ window_state->set_snap_action_source( WindowSnapActionSource::kDragWindowToEdgeToSnap); - const WMEvent event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&event); } break; @@ -1706,7 +1711,7 @@ window_state->set_snap_action_source( WindowSnapActionSource::kDragWindowToEdgeToSnap); - const WMEvent event(WM_EVENT_SNAP_SECONDARY); + const WindowSnapWMEvent event(WM_EVENT_SNAP_SECONDARY); window_state->OnWMEvent(&event); } break;
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc index aac083d2..a76ca6d 100644 --- a/ash/wm/workspace/workspace_window_resizer_unittest.cc +++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -656,7 +656,7 @@ window_->Show(); AllowSnap(window_.get()); - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); gfx::Rect snapped_bounds = window_->bounds(); @@ -681,7 +681,7 @@ window_->SetBounds(kInitialBounds); window_->Show(); - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); gfx::Rect snapped_bounds = window_->bounds(); @@ -2152,7 +2152,7 @@ EXPECT_EQ(window_size, touch_resize_window_->bounds().size()); // Snap a window and do the same test. - const WMEvent snap_event(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_event(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_event); ASSERT_TRUE(window_state->IsSnapped()); const gfx::Rect snapped_bounds = window_state->window()->bounds(); @@ -2570,7 +2570,7 @@ const gfx::Rect work_area = screen_util::GetDisplayWorkAreaBoundsInParent(window_.get()); - const WMEvent snap_top(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_top(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_top); EXPECT_EQ(WindowStateType::kPrimarySnapped, window_state->GetStateType()); gfx::Rect expected_snap_bounds =
diff --git a/ash/wm/workspace_controller_unittest.cc b/ash/wm/workspace_controller_unittest.cc index ade730f..501188f 100644 --- a/ash/wm/workspace_controller_unittest.cc +++ b/ash/wm/workspace_controller_unittest.cc
@@ -1280,7 +1280,7 @@ // Left snap |window|. EXPECT_FALSE(window_state->bounds_changed_by_user()); - const WMEvent snap_left(WM_EVENT_SNAP_PRIMARY); + const WindowSnapWMEvent snap_left(WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&snap_left); const gfx::Rect work_area = display::Screen::GetScreen()
diff --git a/base/BUILD.gn b/base/BUILD.gn index 31c38ef..69ece5b 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -508,7 +508,6 @@ "native_library.cc", "native_library.h", "no_destructor.h", - "notreached.cc", "notreached.h", "observer_list.h", "observer_list_internal.cc",
diff --git a/base/allocator/partition_allocator/partition_address_space.cc b/base/allocator/partition_allocator/partition_address_space.cc index b23ce5a..49d061a9 100644 --- a/base/allocator/partition_allocator/partition_address_space.cc +++ b/base/allocator/partition_allocator/partition_address_space.cc
@@ -17,7 +17,6 @@ #include "base/allocator/partition_allocator/partition_alloc_check.h" #include "base/allocator/partition_allocator/partition_alloc_config.h" #include "base/allocator/partition_allocator/partition_alloc_constants.h" -#include "base/allocator/partition_allocator/tagging.h" #include "build/build_config.h" #if BUILDFLAG(IS_IOS) @@ -137,7 +136,7 @@ if (!setup_.regular_pool_base_address_) HandleGigaCageAllocFailure(); #if defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE) - setup_.regular_pool_base_mask_ = ~(regular_pool_size - 1) & kMemTagUnmask; + setup_.regular_pool_base_mask_ = ~(regular_pool_size - 1); #endif PA_DCHECK(!(setup_.regular_pool_base_address_ & (regular_pool_size - 1))); setup_.regular_pool_ = AddressPoolManager::GetInstance().Add( @@ -164,7 +163,7 @@ HandleGigaCageAllocFailure(); setup_.brp_pool_base_address_ = base_address + kForbiddenZoneSize; #if defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE) - setup_.brp_pool_base_mask_ = ~(brp_pool_size - 1) & kMemTagUnmask; + setup_.brp_pool_base_mask_ = ~(brp_pool_size - 1); #endif PA_DCHECK(!(setup_.brp_pool_base_address_ & (brp_pool_size - 1))); setup_.brp_pool_ = AddressPoolManager::GetInstance().Add(
diff --git a/base/allocator/partition_allocator/partition_address_space.h b/base/allocator/partition_allocator/partition_address_space.h index 33a2d85d..473136d 100644 --- a/base/allocator/partition_allocator/partition_address_space.h +++ b/base/allocator/partition_allocator/partition_address_space.h
@@ -61,7 +61,6 @@ static PA_ALWAYS_INLINE std::pair<pool_handle, uintptr_t> GetPoolAndOffset( uintptr_t address) { - address = ::partition_alloc::internal::UnmaskPtr(address); // When USE_BACKUP_REF_PTR is off, BRP pool isn't used. #if !BUILDFLAG(USE_BACKUP_REF_PTR) PA_DCHECK(!IsInBRPPool(address)); @@ -155,8 +154,7 @@ static PA_ALWAYS_INLINE uintptr_t OffsetInBRPPool(uintptr_t address) { PA_DCHECK(IsInBRPPool(address)); - return ::partition_alloc::internal::UnmaskPtr(address) - - setup_.brp_pool_base_address_; + return address - setup_.brp_pool_base_address_; } // PartitionAddressSpace is static_only class. @@ -227,19 +225,12 @@ #if !defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE) // Masks used to easy determine belonging to a pool. - // On Arm, the top byte of each pointer is ignored (meaning there are - // effectively 256 versions of each valid pointer). 4 bits are used to store - // tags for Arm's Memory Tagging Extension (MTE). To ensure that tagged - // pointers are recognized as being in the pool, mask off the top byte with - // kMemTagUnmask. static constexpr uintptr_t kRegularPoolOffsetMask = static_cast<uintptr_t>(kRegularPoolSize) - 1; - static constexpr uintptr_t kRegularPoolBaseMask = - ~kRegularPoolOffsetMask & kMemTagUnmask; + static constexpr uintptr_t kRegularPoolBaseMask = ~kRegularPoolOffsetMask; static constexpr uintptr_t kBRPPoolOffsetMask = static_cast<uintptr_t>(kBRPPoolSize) - 1; - static constexpr uintptr_t kBRPPoolBaseMask = - ~kBRPPoolOffsetMask & kMemTagUnmask; + static constexpr uintptr_t kBRPPoolBaseMask = ~kBRPPoolOffsetMask; #endif // !defined(PA_USE_DYNAMICALLY_SIZED_GIGA_CAGE) // This must be set to such a value that IsIn*Pool() always returns false when
diff --git a/base/allocator/partition_allocator/partition_alloc-inl.h b/base/allocator/partition_allocator/partition_alloc-inl.h index be21026..c90fa75 100644 --- a/base/allocator/partition_allocator/partition_alloc-inl.h +++ b/base/allocator/partition_allocator/partition_alloc-inl.h
@@ -12,6 +12,7 @@ #include "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h" #include "base/allocator/partition_allocator/partition_ref_count.h" #include "base/allocator/partition_allocator/random.h" +#include "base/allocator/partition_allocator/tagging.h" #include "build/build_config.h" // Prefetch *x into memory. @@ -53,7 +54,7 @@ static thread_local uint8_t counter = 0; if (PA_UNLIKELY(counter == 0)) { // It's OK to truncate this value. - counter = static_cast<uint8_t>(::partition_alloc::internal::RandomValue()); + counter = static_cast<uint8_t>(RandomValue()); } // If `counter` is 0, this will wrap. That is intentional and OK. counter--; @@ -61,6 +62,22 @@ } #endif // !BUILDFLAG(PA_DCHECK_IS_ON) +PA_ALWAYS_INLINE uintptr_t ObjectInnerPtr2Addr(const void* ptr) { + return UntagPtr(ptr); +} +PA_ALWAYS_INLINE uintptr_t ObjectPtr2Addr(const void* object) { + // TODO(bartekn): Check that |object| is indeed an object start. + return ObjectInnerPtr2Addr(object); +} +PA_ALWAYS_INLINE void* SlotStartAddr2Ptr(uintptr_t slot_start) { + // TODO(bartekn): Check that |slot_start| is indeed a slot start. + return TagAddr(slot_start); +} +PA_ALWAYS_INLINE uintptr_t SlotStartPtr2Addr(const void* slot_start) { + // TODO(bartekn): Check that |slot_start| is indeed a slot start. + return UntagPtr(slot_start); +} + } // namespace partition_alloc::internal #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_ALLOC_INL_H_
diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h index a6006919..496fdbcf 100644 --- a/base/allocator/partition_allocator/partition_alloc.h +++ b/base/allocator/partition_allocator/partition_alloc.h
@@ -11,6 +11,36 @@ #include "base/allocator/partition_allocator/partition_oom.h" #include "base/allocator/partition_allocator/partition_root.h" +// *** HOUSEKEEPING RULES *** +// +// Throughout PartitionAlloc code, we avoid using generic variable names like +// |ptr| or |address|, and prefer names like |object|, |slot_start|, instead. +// This helps emphasize that terms like "object" and "slot" represent two +// different worlds. "Slot" is an indivisible allocation unit, internal to +// PartitionAlloc. It is generally represented as an address (uintptr_t), since +// arithmetic operations on it aren't uncommon, and for that reason it isn't +// MTE-tagged either. "Object" is the allocated memory that the app is given via +// interfaces like Alloc(), Free(), etc. An object is fully contained within a +// slot, and may be surrounded by internal PartitionAlloc structures or empty +// space. Is is generally represented as a pointer to its beginning (most +// commonly void*), and is MTE-tagged so it's safe to access. +// +// The best way to transition between these to worlds is via +// PartitionRoot::ObjectToSlotStart() and ::SlotStartToObject(). These take care +// of shifting between slot/object start, MTE-tagging/untagging and the cast for +// you. There are cases where these functions are insufficient. Internal +// PartitionAlloc structures, like free-list pointers, BRP ref-count, cookie, +// etc. are located in-slot thus accessing them requires an MTE tag. +// SlotStartPtr2Addr() and SlotStartAddr2Ptr() take care of this. +// There are cases where we have to do pointer arithmetic on an object pointer +// (like check belonging to a pool, etc.), in which case we want to strip MTE +// tag. ObjectInnerPtr2Addr() and ObjectPtr2Addr() take care of that. +// +// Avoid using UntagPtr/Addr() and TagPtr/Addr() directly, if possible. And +// definitely avoid using reinterpret_cast between uintptr_t and pointer worlds. +// When you do, add a comment explaining why it's safe from the point of MTE +// tagging. + namespace partition_alloc { PA_COMPONENT_EXPORT(PARTITION_ALLOC)
diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h index f3b7339..0d0cab20 100644 --- a/base/allocator/partition_allocator/partition_alloc_constants.h +++ b/base/allocator/partition_allocator/partition_alloc_constants.h
@@ -240,7 +240,7 @@ constexpr size_t kSuperPageSize = 1 << kSuperPageShift; constexpr size_t kSuperPageAlignment = kSuperPageSize; constexpr size_t kSuperPageOffsetMask = kSuperPageAlignment - 1; -constexpr size_t kSuperPageBaseMask = ~kSuperPageOffsetMask & kMemTagUnmask; +constexpr size_t kSuperPageBaseMask = ~kSuperPageOffsetMask; // GigaCage is split into two pools, one which supports BackupRefPtr (BRP) and // one that doesn't. @@ -278,14 +278,14 @@ constexpr size_t kMaxMemoryTaggingSize = 1024; #if defined(PA_HAS_MEMORY_TAGGING) -// Returns whether the tag of |object| overflowed and the containing slot needs -// to be moved to quarantine. +// Returns whether the tag of |object| overflowed, meaning the containing slot +// needs to be moved to quarantine. PA_ALWAYS_INLINE bool HasOverflowTag(void* object) { // The tag with which the slot is put to quarantine. constexpr uintptr_t kOverflowTag = 0x0f00000000000000uLL; - static_assert((kOverflowTag & ~kMemTagUnmask) != 0, + static_assert((kOverflowTag & kPtrTagMask) != 0, "Overflow tag must be in tag bits"); - return (reinterpret_cast<uintptr_t>(object) & ~kMemTagUnmask) == kOverflowTag; + return (reinterpret_cast<uintptr_t>(object) & kPtrTagMask) == kOverflowTag; } #endif // defined(PA_HAS_MEMORY_TAGGING)
diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc index 41bcd6e20..d7998fe8 100644 --- a/base/allocator/partition_allocator/partition_alloc_unittest.cc +++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
@@ -65,26 +65,10 @@ // In the MTE world, the upper bits of a pointer can be decorated with a tag, // thus allowing many versions of the same pointer to exist. These macros take // that into account when comparing. -#define PA_EXPECT_PTR_EQ(ptr1, ptr2) \ - { \ - EXPECT_EQ(::partition_alloc::internal::UnmaskPtr(ptr1), \ - ::partition_alloc::internal::UnmaskPtr(ptr2)); \ - } -#define PA_EXPECT_PTR_NE(ptr1, ptr2) \ - { \ - EXPECT_NE(::partition_alloc::internal::UnmaskPtr(ptr1), \ - ::partition_alloc::internal::UnmaskPtr(ptr2)); \ - } -#define PA_EXPECT_ADDR_EQ(addr1, addr2) \ - { \ - EXPECT_EQ(::partition_alloc::internal::UnmaskPtr(addr1), \ - ::partition_alloc::internal::UnmaskPtr(addr2)); \ - } -#define PA_EXPECT_ADDR_NE(addr1, addr2) \ - { \ - EXPECT_NE(::partition_alloc::internal::UnmaskPtr(addr1), \ - ::partition_alloc::internal::UnmaskPtr(addr2)); \ - } +#define PA_EXPECT_PTR_EQ(ptr1, ptr2) \ + { EXPECT_EQ(UntagPtr(ptr1), UntagPtr(ptr2)); } +#define PA_EXPECT_PTR_NE(ptr1, ptr2) \ + { EXPECT_NE(UntagPtr(ptr1), UntagPtr(ptr2)); } #if !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) @@ -240,7 +224,7 @@ base::CheckedNumeric<size_t> npages) : allocator_(allocator), npages_(npages), - ptr_(reinterpret_cast<char*>(allocator_.root()->Alloc( + ptr_(static_cast<char*>(allocator_.root()->Alloc( (npages * SystemPageSize() - kExtraAllocSize).ValueOrDie(), type_name))) {} @@ -355,15 +339,11 @@ else if (i == num_slots - 1) last = allocator.root()->ObjectToSlotStart(ptr); } - EXPECT_EQ( - SlotSpan::FromSlotStart(::partition_alloc::internal::UnmaskPtr(first)), - SlotSpan::FromSlotStart(::partition_alloc::internal::UnmaskPtr(last))); + EXPECT_EQ(SlotSpan::FromSlotStart(first), SlotSpan::FromSlotStart(last)); if (bucket->num_system_pages_per_slot_span == NumSystemPagesPerPartitionPage()) - EXPECT_EQ(::partition_alloc::internal::UnmaskPtr(first) & - PartitionPageBaseMask(), - ::partition_alloc::internal::UnmaskPtr(last) & - PartitionPageBaseMask()); + EXPECT_EQ(first & PartitionPageBaseMask(), + last & PartitionPageBaseMask()); EXPECT_EQ(num_slots, bucket->active_slot_spans_head->num_allocated_slots); EXPECT_EQ(nullptr, bucket->active_slot_spans_head->get_freelist_head()); EXPECT_TRUE(bucket->is_valid()); @@ -409,7 +389,7 @@ // Work out the number of allocations for 6 GB of memory. const int num_allocations = (6 * 1024 * 1024) / (alloc_size / 1024); - void** ptrs = reinterpret_cast<void**>( + void** ptrs = static_cast<void**>( allocator.root()->Alloc(num_allocations * sizeof(void*), type_name)); int i; @@ -493,9 +473,7 @@ uintptr_t address = SlotSpan::ToSlotSpanStart(slot_span); size_t i; for (i = 0; i < num_slots; ++i) { - // Remask is needed here because each slot can have a different tag. - root->Free(reinterpret_cast<void*>( - ::partition_alloc::internal::RemaskPtr(address + kPointerOffset))); + root->Free(root->SlotStartToObject(address)); address += size; } EXPECT_TRUE(slot_span->is_empty()); @@ -579,13 +557,12 @@ void* ptr = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr); - EXPECT_EQ(kPointerOffset, - reinterpret_cast<size_t>(ptr) & PartitionPageOffsetMask()); + EXPECT_EQ(kPointerOffset, UntagPtr(ptr) & PartitionPageOffsetMask()); // Check that the offset appears to include a guard page. EXPECT_EQ(PartitionPageSize() + partition_alloc::internal::ReservedTagBitmapSize() + kPointerOffset, - reinterpret_cast<size_t>(ptr) & kSuperPageOffsetMask); + UntagPtr(ptr) & kSuperPageOffsetMask); allocator.root()->Free(ptr); // Expect that the last active slot span gets noticed as empty but doesn't get @@ -596,38 +573,28 @@ // Test multiple allocations, and freelist handling. TEST_P(PartitionAllocTest, MultiAlloc) { - char* ptr1 = reinterpret_cast<char*>( - allocator.root()->Alloc(kTestAllocSize, type_name)); - char* ptr2 = reinterpret_cast<char*>( - allocator.root()->Alloc(kTestAllocSize, type_name)); + void* ptr1 = allocator.root()->Alloc(kTestAllocSize, type_name); + void* ptr2 = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr1); EXPECT_TRUE(ptr2); - ptrdiff_t diff = - reinterpret_cast<char*>(::partition_alloc::internal::UnmaskPtr(ptr2)) - - reinterpret_cast<char*>(::partition_alloc::internal::UnmaskPtr(ptr1)); + ptrdiff_t diff = UntagPtr(ptr2) - UntagPtr(ptr1); EXPECT_EQ(static_cast<ptrdiff_t>(kRealAllocSize), diff); // Check that we re-use the just-freed slot. allocator.root()->Free(ptr2); - ptr2 = reinterpret_cast<char*>( - allocator.root()->Alloc(kTestAllocSize, type_name)); + ptr2 = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr2); - diff = ::partition_alloc::internal::UnmaskPtr(ptr2) - - ::partition_alloc::internal::UnmaskPtr(ptr1); + diff = UntagPtr(ptr2) - UntagPtr(ptr1); EXPECT_EQ(static_cast<ptrdiff_t>(kRealAllocSize), diff); allocator.root()->Free(ptr1); - ptr1 = reinterpret_cast<char*>( - allocator.root()->Alloc(kTestAllocSize, type_name)); + ptr1 = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr1); - diff = ::partition_alloc::internal::UnmaskPtr(ptr2) - - ::partition_alloc::internal::UnmaskPtr(ptr1); + diff = UntagPtr(ptr2) - UntagPtr(ptr1); EXPECT_EQ(static_cast<ptrdiff_t>(kRealAllocSize), diff); - char* ptr3 = reinterpret_cast<char*>( - allocator.root()->Alloc(kTestAllocSize, type_name)); + void* ptr3 = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr3); - diff = ::partition_alloc::internal::UnmaskPtr(ptr3) - - ::partition_alloc::internal::UnmaskPtr(ptr1); + diff = UntagPtr(ptr3) - UntagPtr(ptr1); EXPECT_EQ(static_cast<ptrdiff_t>(kRealAllocSize * 2), diff); allocator.root()->Free(ptr1); @@ -689,9 +656,9 @@ EXPECT_EQ(nullptr, slot_span2->next_slot_span); // Bounce slot_span1 back into the non-full list then fill it up again. - uintptr_t address = ::partition_alloc::internal::RemaskPtr( - SlotSpan::ToSlotSpanStart(slot_span1) + kPointerOffset); - allocator.root()->Free(reinterpret_cast<void*>(address)); + void* ptr = allocator.root()->SlotStartToObject( + SlotSpan::ToSlotSpanStart(slot_span1)); + allocator.root()->Free(ptr); EXPECT_EQ(slot_span1, bucket->active_slot_spans_head); std::ignore = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_EQ(slot_span1, bucket->active_slot_spans_head); @@ -706,24 +673,24 @@ EXPECT_EQ(nullptr, slot_span3->next_slot_span); // Work out a pointer into slot_span2 and free it. - address = ::partition_alloc::internal::RemaskPtr( - SlotSpan::ToSlotSpanStart(slot_span2) + kPointerOffset); - allocator.root()->Free(reinterpret_cast<void*>(address)); + ptr = allocator.root()->SlotStartToObject( + SlotSpan::ToSlotSpanStart(slot_span2)); + allocator.root()->Free(ptr); // Trying to allocate at this time should cause us to cycle around to // slot_span2 and find the recently freed slot. - void* ptr = allocator.root()->Alloc(kTestAllocSize, type_name); - PA_EXPECT_PTR_EQ(reinterpret_cast<void*>(address), ptr); + void* ptr2 = allocator.root()->Alloc(kTestAllocSize, type_name); + PA_EXPECT_PTR_EQ(ptr, ptr2); EXPECT_EQ(slot_span2, bucket->active_slot_spans_head); EXPECT_EQ(slot_span3, slot_span2->next_slot_span); // Work out a pointer into slot_span1 and free it. This should pull the slot // span back into the list of available slot spans. - address = ::partition_alloc::internal::RemaskPtr( - SlotSpan::ToSlotSpanStart(slot_span1) + kPointerOffset); - allocator.root()->Free(reinterpret_cast<void*>(address)); + ptr = allocator.root()->SlotStartToObject( + SlotSpan::ToSlotSpanStart(slot_span1)); + allocator.root()->Free(ptr); // This allocation should be satisfied by slot_span1. - ptr = allocator.root()->Alloc(kTestAllocSize, type_name); - PA_EXPECT_PTR_EQ(reinterpret_cast<void*>(address), ptr); + ptr2 = allocator.root()->Alloc(kTestAllocSize, type_name); + PA_EXPECT_PTR_EQ(ptr, ptr2); EXPECT_EQ(slot_span1, bucket->active_slot_spans_head); EXPECT_EQ(slot_span2, slot_span1->next_slot_span); @@ -1061,7 +1028,7 @@ // |SlotSpanMetadata::Free| must poison the slot's contents with // |kFreedByte|. EXPECT_EQ(kFreedByte, - *(reinterpret_cast<unsigned char*>(new_ptr_1) + (size - 1))); + *(static_cast<unsigned char*>(new_ptr_1) + (size - 1))); #endif } @@ -1082,7 +1049,7 @@ size -= SystemPageSize(); size -= 1; void* ptr = allocator.root()->Alloc(size, type_name); - char* char_ptr = reinterpret_cast<char*>(ptr); + char* char_ptr = static_cast<char*>(ptr); *(char_ptr + (size - 1)) = 'A'; allocator.root()->Free(ptr); @@ -1111,10 +1078,10 @@ EXPECT_EQ(predicted_capacity, actual_capacity); EXPECT_LT(requested_size, actual_capacity); #if BUILDFLAG(USE_BACKUP_REF_PTR) - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = UntagPtr(ptr); for (size_t offset = 0; offset < requested_size; ++offset) { - PA_EXPECT_ADDR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } #endif // BUILDFLAG(USE_BACKUP_REF_PTR) allocator.root()->Free(ptr); @@ -1130,10 +1097,10 @@ EXPECT_EQ(predicted_capacity, actual_capacity); EXPECT_EQ(requested_size, actual_capacity); #if BUILDFLAG(USE_BACKUP_REF_PTR) - address = reinterpret_cast<uintptr_t>(ptr); + address = UntagPtr(ptr); for (size_t offset = 0; offset < requested_size; offset += 877) { - PA_EXPECT_PTR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } #endif // BUILDFLAG(USE_BACKUP_REF_PTR) allocator.root()->Free(ptr); @@ -1154,10 +1121,10 @@ EXPECT_EQ(predicted_capacity, actual_capacity); EXPECT_EQ(requested_size + SystemPageSize(), actual_capacity); #if BUILDFLAG(USE_BACKUP_REF_PTR) - address = reinterpret_cast<uintptr_t>(ptr); + address = UntagPtr(ptr); for (size_t offset = 0; offset < requested_size; offset += 4999) { - PA_EXPECT_PTR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } #endif // BUILDFLAG(USE_BACKUP_REF_PTR) @@ -1171,15 +1138,15 @@ EXPECT_EQ(predicted_capacity, actual_capacity); EXPECT_EQ(requested_size, actual_capacity); #if BUILDFLAG(USE_BACKUP_REF_PTR) - address = reinterpret_cast<uintptr_t>(ptr); + address = UntagPtr(ptr); for (size_t offset = 0; offset < requested_size; offset += 4999) { - PA_EXPECT_PTR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } #endif // BUILDFLAG(USE_BACKUP_REF_PTR) // Check that we can write at the end of the reported size too. - char* char_ptr = reinterpret_cast<char*>(ptr); + char* char_ptr = static_cast<char*>(ptr); *(char_ptr + (actual_capacity - 1)) = 'A'; allocator.root()->Free(ptr); @@ -1194,10 +1161,10 @@ EXPECT_EQ(predicted_capacity, actual_capacity); EXPECT_LT(requested_size, actual_capacity); #if BUILDFLAG(USE_BACKUP_REF_PTR) - address = reinterpret_cast<uintptr_t>(ptr); + address = UntagPtr(ptr); for (size_t offset = 0; offset < requested_size; offset += 16111) { - PA_EXPECT_PTR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } #endif // BUILDFLAG(USE_BACKUP_REF_PTR) allocator.root()->Free(ptr); @@ -1256,7 +1223,7 @@ allocator.root()->AllocationCapacityFromPtr(ptr)); } - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = UntagPtr(ptr); EXPECT_FALSE(PartitionAllocIsValidPtrDelta(address, -kFarFarAwayDelta)); EXPECT_FALSE(PartitionAllocIsValidPtrDelta(address, -kSuperPageSize)); EXPECT_FALSE(PartitionAllocIsValidPtrDelta(address, -1)); @@ -1331,11 +1298,11 @@ ptrs.push_back(allocator.root()->Alloc(requested_size, type_name)); } for (void* ptr : ptrs) { - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = UntagPtr(ptr); EXPECT_EQ(allocator.root()->AllocationCapacityFromPtr(ptr), requested_size); for (size_t offset = 0; offset < requested_size; offset += 13) { - PA_EXPECT_PTR_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), - allocator.root()->ObjectToSlotStart(ptr)); + EXPECT_EQ(PartitionAllocGetSlotStartInBRPPool(address + offset), + allocator.root()->ObjectToSlotStart(ptr)); } allocator.root()->Free(ptr); } @@ -1352,8 +1319,8 @@ // realloc(ptr, 0) should be equivalent to free(). void* ptr2 = allocator.root()->Realloc(ptr, 0, type_name); EXPECT_EQ(nullptr, ptr2); - PA_EXPECT_PTR_EQ(allocator.root()->ObjectToSlotStart(ptr), - reinterpret_cast<uintptr_t>(slot_span->get_freelist_head())); + EXPECT_EQ(allocator.root()->ObjectToSlotStart(ptr), + UntagPtr(slot_span->get_freelist_head())); // Test that growing an allocation with realloc() copies everything from the // old allocation. @@ -1765,10 +1732,12 @@ // Work out a pointer into slot_span2 and free it; and then slot_span1 and // free it. - uintptr_t ptr2 = SlotSpan::ToSlotSpanStart(slot_span1) + kPointerOffset; - allocator.root()->Free(reinterpret_cast<void*>(ptr2)); - ptr2 = SlotSpan::ToSlotSpanStart(slot_span2) + kPointerOffset; - allocator.root()->Free(reinterpret_cast<void*>(ptr2)); + void* ptr2 = allocator.root()->SlotStartToObject( + SlotSpan::ToSlotSpanStart(slot_span1)); + allocator.root()->Free(ptr2); + ptr2 = allocator.root()->SlotStartToObject( + SlotSpan::ToSlotSpanStart(slot_span2)); + allocator.root()->Free(ptr2); // If we perform two allocations from the same bucket now, we expect to // refill both the nearly full slot spans. @@ -1856,7 +1825,7 @@ super_page = SlotSpan::ToSlotSpanStart(second_super_page_pages[0]); EXPECT_EQ( PartitionPageSize() + partition_alloc::internal::ReservedTagBitmapSize(), - reinterpret_cast<uintptr_t>(super_page) & kSuperPageOffsetMask); + super_page & kSuperPageOffsetMask); super_page -= PartitionPageSize() - partition_alloc::internal::ReservedTagBitmapSize(); // Map a single system page either side of the mapping for our allocations, @@ -2209,7 +2178,7 @@ void* ptr = allocator.root()->Alloc(size, type_name); EXPECT_TRUE(ptr); - char* char_ptr = reinterpret_cast<char*>(ptr) - kPointerOffset; + char* char_ptr = static_cast<char*>(ptr) - kPointerOffset; EXPECT_DEATH(*(char_ptr - 1) = 'A', ""); EXPECT_DEATH(*(char_ptr + partition_alloc::internal::base::bits::AlignUp( @@ -2234,8 +2203,8 @@ constexpr uint64_t kQuarantined = 0xEFEFEFEFEFEFEFEF; size_t alloc_size = 64 - kExtraAllocSize; - uint64_t* ptr1 = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(alloc_size, type_name)); + uint64_t* ptr1 = + static_cast<uint64_t*>(allocator.root()->Alloc(alloc_size, type_name)); EXPECT_TRUE(ptr1); // Write to the pointer whilst it's live @@ -2613,7 +2582,7 @@ // Tests the API to purge freeable memory. TEST_P(PartitionAllocTest, Purge) { - char* ptr = reinterpret_cast<char*>( + char* ptr = static_cast<char*>( allocator.root()->Alloc(2048 - kExtraAllocSize, type_name)); allocator.root()->Free(ptr); { @@ -2649,8 +2618,8 @@ size_t single_slot_size = 512 * 1024; ASSERT_GT(single_slot_size, MaxRegularSlotSpanSize()); ASSERT_LE(single_slot_size, kMaxBucketed); - char* big_ptr = reinterpret_cast<char*>( - allocator.root()->Alloc(single_slot_size, type_name)); + char* big_ptr = + static_cast<char*>(allocator.root()->Alloc(single_slot_size, type_name)); allocator.root()->Free(big_ptr); allocator.root()->PurgeMemory(PurgeFlags::kDecommitEmptySlotSpans); @@ -2717,7 +2686,7 @@ // Free the second of two 4096 byte allocations and then purge. void* ptr1 = allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name); - char* ptr2 = reinterpret_cast<char*>( + char* ptr2 = static_cast<char*>( allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name)); allocator.root()->Free(ptr2); SlotSpanMetadata<internal::ThreadSafe>* slot_span = @@ -2749,7 +2718,7 @@ TEST_P(PartitionAllocTest, PurgeDiscardableFirstPage) { // Free the first of two 4096 byte allocations and then purge. - char* ptr1 = reinterpret_cast<char*>( + char* ptr1 = static_cast<char*>( allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name)); void* ptr2 = allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name); @@ -2782,7 +2751,7 @@ TEST_P(PartitionAllocTest, PurgeDiscardableNonPageSizedAlloc) { const size_t requested_size = 2.5 * SystemPageSize(); - char* ptr1 = reinterpret_cast<char*>( + char* ptr1 = static_cast<char*>( allocator.root()->Alloc(requested_size - kExtraAllocSize, type_name)); void* ptr2 = allocator.root()->Alloc(requested_size - kExtraAllocSize, type_name); @@ -2874,7 +2843,7 @@ // This sub-test tests truncation of the provisioned slots in a trickier // case where the freelist is rewritten. allocator.root()->PurgeMemory(PurgeFlags::kDecommitEmptySlotSpans); - char* ptr1 = reinterpret_cast<char*>( + char* ptr1 = static_cast<char*>( allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name)); void* ptr2 = allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name); @@ -2941,7 +2910,7 @@ TEST_P(PartitionAllocTest, PurgeDiscardableDoubleTruncateFreeList) { // This sub-test is similar, but tests a double-truncation. allocator.root()->PurgeMemory(PurgeFlags::kDecommitEmptySlotSpans); - char* ptr1 = reinterpret_cast<char*>( + char* ptr1 = static_cast<char*>( allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name)); void* ptr2 = allocator.root()->Alloc(SystemPageSize() - kExtraAllocSize, type_name); @@ -3194,8 +3163,8 @@ for (int index = 0; index < 3; index++) { void* ptr = allocator.root()->Alloc(requested_size, ""); allocated_ptrs.push_back(ptr); - EXPECT_EQ(0u, (reinterpret_cast<uintptr_t>(ptr) - kPointerOffset) % - expected_alignment) + EXPECT_EQ(0u, + allocator.root()->ObjectToSlotStart(ptr) % expected_alignment) << (index + 1) << "-th allocation of size=" << size; } } @@ -3216,9 +3185,9 @@ void* ptr2 = allocator.root()->Alloc(size, ""); void* ptr3 = allocator.root()->Alloc(size, ""); - EXPECT_EQ(reinterpret_cast<uintptr_t>(ptr) % fundamental_alignment, 0u); - EXPECT_EQ(reinterpret_cast<uintptr_t>(ptr2) % fundamental_alignment, 0u); - EXPECT_EQ(reinterpret_cast<uintptr_t>(ptr3) % fundamental_alignment, 0u); + EXPECT_EQ(UntagPtr(ptr) % fundamental_alignment, 0u); + EXPECT_EQ(UntagPtr(ptr2) % fundamental_alignment, 0u); + EXPECT_EQ(UntagPtr(ptr3) % fundamental_alignment, 0u); #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) // The capacity(C) is slot size - kExtraAllocSize. @@ -3252,7 +3221,7 @@ void* ptr = root->AlignedAllocWithFlags(0, alignment, size); ASSERT_TRUE(ptr); allocated_ptrs.push_back(ptr); - EXPECT_EQ(0ull, reinterpret_cast<uintptr_t>(ptr) % alignment) + EXPECT_EQ(0ull, UntagPtr(ptr) % alignment) << (index + 1) << "-th allocation of size=" << size << ", alignment=" << alignment; } @@ -3574,14 +3543,14 @@ constexpr uint64_t kQuarantined = 0xEFEFEFEFEFEFEFEF; size_t alloc_size = 64 - kExtraAllocSize; - uint64_t* ptr1 = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(alloc_size, type_name)); + uint64_t* ptr1 = + static_cast<uint64_t*>(allocator.root()->Alloc(alloc_size, type_name)); EXPECT_TRUE(ptr1); *ptr1 = kCookie; - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr1) - - kPointerOffset); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr1)); EXPECT_TRUE(ref_count->IsAliveWithNoKnownRefs()); ref_count->Acquire(); @@ -3594,26 +3563,25 @@ allocator.root()->Free(ptr1); // The allocation shouldn't be reclaimed, and its contents should be zapped. - // Remask ptr1 to get its correct MTE tag. - ptr1 = ::partition_alloc::internal::RemaskPtr(ptr1); + // Retag ptr1 to get its correct MTE tag. + ptr1 = TagPtr(ptr1); EXPECT_NE(*ptr1, kCookie); EXPECT_EQ(*ptr1, kQuarantined); // The allocator should not reuse the original slot since its reference count // doesn't equal zero. - uint64_t* ptr2 = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(alloc_size, type_name)); + uint64_t* ptr2 = + static_cast<uint64_t*>(allocator.root()->Alloc(alloc_size, type_name)); EXPECT_NE(ptr1, ptr2); allocator.root()->Free(ptr2); // When the last reference is released, the slot should become reusable. - // Remask ref_count because PartitionAlloc retags ptr to enforce quarantine. - ref_count = ::partition_alloc::internal::RemaskPtr(ref_count); + // Retag ref_count because PartitionAlloc retags ptr to enforce quarantine. + ref_count = TagPtr(ref_count); EXPECT_TRUE(ref_count->Release()); - PartitionAllocFreeForRefCounting(reinterpret_cast<uintptr_t>(ptr1) - - kPointerOffset); - uint64_t* ptr3 = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(alloc_size, type_name)); + PartitionAllocFreeForRefCounting(allocator.root()->ObjectToSlotStart(ptr1)); + uint64_t* ptr3 = + static_cast<uint64_t*>(allocator.root()->Alloc(alloc_size, type_name)); EXPECT_EQ(ptr1, ptr3); allocator.root()->Free(ptr3); } @@ -3623,8 +3591,8 @@ void* ptr1 = allocator.root()->Alloc(orig_size, type_name); EXPECT_TRUE(ptr1); - auto* ref_count1 = PartitionRefCountPointer( - reinterpret_cast<uintptr_t>(ptr1) - kPointerOffset); + auto* ref_count1 = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr1)); EXPECT_TRUE(ref_count1->IsAliveWithNoKnownRefs()); ref_count1->Acquire(); @@ -3635,14 +3603,13 @@ // PartitionAlloc may retag memory areas on realloc (even if they // do not move), so recover the true tag here. - ref_count1 = ::partition_alloc::internal::RemaskPtr(ref_count1); + ref_count1 = TagPtr(ref_count1); // Re-query ref-count. It may have moved if Realloc changed the slot. - auto* ref_count2 = PartitionRefCountPointer( - reinterpret_cast<uintptr_t>(ptr2) - kPointerOffset); + auto* ref_count2 = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr2)); - if (::partition_alloc::internal::UnmaskPtr(ptr1) == - ::partition_alloc::internal::UnmaskPtr(ptr2)) { + if (UntagPtr(ptr1) == UntagPtr(ptr2)) { // If the slot didn't change, ref-count should stay the same. EXPECT_EQ(ref_count1, ref_count2); EXPECT_FALSE(ref_count2->IsAliveWithNoKnownRefs()); @@ -3685,10 +3652,10 @@ CountDanglingRawPtr dangling_checks; // Allocate memory, and reference it from 3 raw_ptr. - uint64_t* ptr = reinterpret_cast<uint64_t*>( + uint64_t* ptr = static_cast<uint64_t*>( allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); ref_count->Acquire(); ref_count->Acquire(); ref_count->Acquire(); @@ -3724,10 +3691,10 @@ CountDanglingRawPtr dangling_checks; // Allocate memory, and reference it from 3 raw_ptr. - uint64_t* ptr = reinterpret_cast<uint64_t*>( + uint64_t* ptr = static_cast<uint64_t*>( allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); ref_count->AcquireFromUnprotectedPtr(); ref_count->AcquireFromUnprotectedPtr(); ref_count->AcquireFromUnprotectedPtr(); @@ -3762,10 +3729,10 @@ TEST_P(PartitionAllocTest, DanglingMixedReleaseRawPtrFirst) { CountDanglingRawPtr dangling_checks; - uint64_t* ptr = reinterpret_cast<uint64_t*>( + uint64_t* ptr = static_cast<uint64_t*>( allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); // Acquire a raw_ptr<T, DisableDanglingPtrDetection> and a raw_ptr<>. ref_count->AcquireFromUnprotectedPtr(); ref_count->Acquire(); @@ -3795,10 +3762,9 @@ TEST_P(PartitionAllocTest, DanglingMixedReleaseDanglingPtrFirst) { CountDanglingRawPtr dangling_checks; - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); // Acquire a raw_ptr<T, DisableDanglingPtrDetection> and a raw_ptr<>. ref_count->AcquireFromUnprotectedPtr(); ref_count->Acquire(); @@ -3827,10 +3793,9 @@ TEST_P(PartitionAllocTest, DanglingPtrUsedToAcquireNewRawPtr) { CountDanglingRawPtr dangling_checks; - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); // Acquire a raw_ptr<T, DisableDanglingPtrDetection>. ref_count->AcquireFromUnprotectedPtr(); EXPECT_EQ(g_dangling_raw_ptr_detected_count, 0); @@ -3862,10 +3827,9 @@ TEST_P(PartitionAllocTest, DanglingPtrUsedToAcquireNewRawPtrVariant) { CountDanglingRawPtr dangling_checks; - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); // Acquire a raw_ptr<T, DisableDanglingPtrDetection>. ref_count->AcquireFromUnprotectedPtr(); EXPECT_EQ(g_dangling_raw_ptr_detected_count, 0); @@ -3898,10 +3862,9 @@ TEST_P(PartitionAllocTest, RawPtrReleasedBeforeFree) { CountDanglingRawPtr dangling_checks; - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->ObjectToSlotStart(ptr)); // Acquire a raw_ptr<T, DisableDanglingPtrDetection> and a raw_ptr<>. ref_count->Acquire(); ref_count->AcquireFromUnprotectedPtr(); @@ -3926,10 +3889,9 @@ // Acquire() once, Release() twice => CRASH TEST_P(PartitionAllocDeathTest, ReleaseUnderflowRawPtr) { - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->Object2SlotStart(ptr)); ref_count->Acquire(); EXPECT_FALSE(ref_count->Release()); EXPECT_DEATH(ref_count->Release(), ""); @@ -3938,10 +3900,9 @@ // AcquireFromUnprotectedPtr() once, ReleaseFromUnprotectedPtr() twice => CRASH TEST_P(PartitionAllocDeathTest, ReleaseUnderflowDanglingPtr) { - uint64_t* ptr = reinterpret_cast<uint64_t*>( - allocator.root()->Alloc(64 - kExtraAllocSize, type_name)); - auto* ref_count = PartitionRefCountPointer(reinterpret_cast<uintptr_t>(ptr) - - kPointerOffset); + void* ptr = allocator.root()->Alloc(64 - kExtraAllocSize, type_name); + auto* ref_count = + PartitionRefCountPointer(allocator.root()->Object2SlotStart(ptr)); ref_count->AcquireFromUnprotectedPtr(); EXPECT_FALSE(ref_count->ReleaseFromUnprotectedPtr()); EXPECT_DEATH(ref_count->ReleaseFromUnprotectedPtr(), ""); @@ -3954,8 +3915,8 @@ // For normal buckets, offset should be kOffsetTagNormalBuckets. void* ptr = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr); - uintptr_t ptr_as_uintptr = reinterpret_cast<uintptr_t>(ptr); - EXPECT_EQ(kOffsetTagNormalBuckets, *ReservationOffsetPointer(ptr_as_uintptr)); + uintptr_t address = UntagPtr(ptr); + EXPECT_EQ(kOffsetTagNormalBuckets, *ReservationOffsetPointer(address)); allocator.root()->Free(ptr); // For direct-map, @@ -3963,37 +3924,37 @@ ASSERT_GT(large_size, kMaxBucketed); ptr = allocator.root()->Alloc(large_size, type_name); EXPECT_TRUE(ptr); - ptr_as_uintptr = reinterpret_cast<uintptr_t>(ptr); - EXPECT_EQ(0U, *ReservationOffsetPointer(ptr_as_uintptr)); - EXPECT_EQ(1U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize)); - EXPECT_EQ(2U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 2)); - EXPECT_EQ(3U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 3)); - EXPECT_EQ(4U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 4)); - EXPECT_EQ(5U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 5)); + address = UntagPtr(ptr); + EXPECT_EQ(0U, *ReservationOffsetPointer(address)); + EXPECT_EQ(1U, *ReservationOffsetPointer(address + kSuperPageSize)); + EXPECT_EQ(2U, *ReservationOffsetPointer(address + kSuperPageSize * 2)); + EXPECT_EQ(3U, *ReservationOffsetPointer(address + kSuperPageSize * 3)); + EXPECT_EQ(4U, *ReservationOffsetPointer(address + kSuperPageSize * 4)); + EXPECT_EQ(5U, *ReservationOffsetPointer(address + kSuperPageSize * 5)); // In-place realloc doesn't affect the offsets. void* new_ptr = allocator.root()->Realloc(ptr, large_size * .8, type_name); EXPECT_EQ(new_ptr, ptr); - EXPECT_EQ(0U, *ReservationOffsetPointer(ptr_as_uintptr)); - EXPECT_EQ(1U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize)); - EXPECT_EQ(2U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 2)); - EXPECT_EQ(3U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 3)); - EXPECT_EQ(4U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 4)); - EXPECT_EQ(5U, *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 5)); + EXPECT_EQ(0U, *ReservationOffsetPointer(address)); + EXPECT_EQ(1U, *ReservationOffsetPointer(address + kSuperPageSize)); + EXPECT_EQ(2U, *ReservationOffsetPointer(address + kSuperPageSize * 2)); + EXPECT_EQ(3U, *ReservationOffsetPointer(address + kSuperPageSize * 3)); + EXPECT_EQ(4U, *ReservationOffsetPointer(address + kSuperPageSize * 4)); + EXPECT_EQ(5U, *ReservationOffsetPointer(address + kSuperPageSize * 5)); allocator.root()->Free(ptr); // After free, the offsets must be kOffsetTagNotAllocated. - EXPECT_EQ(kOffsetTagNotAllocated, *ReservationOffsetPointer(ptr_as_uintptr)); + EXPECT_EQ(kOffsetTagNotAllocated, *ReservationOffsetPointer(address)); EXPECT_EQ(kOffsetTagNotAllocated, - *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize)); + *ReservationOffsetPointer(address + kSuperPageSize)); EXPECT_EQ(kOffsetTagNotAllocated, - *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 2)); + *ReservationOffsetPointer(address + kSuperPageSize * 2)); EXPECT_EQ(kOffsetTagNotAllocated, - *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 3)); + *ReservationOffsetPointer(address + kSuperPageSize * 3)); EXPECT_EQ(kOffsetTagNotAllocated, - *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 4)); + *ReservationOffsetPointer(address + kSuperPageSize * 4)); EXPECT_EQ(kOffsetTagNotAllocated, - *ReservationOffsetPointer(ptr_as_uintptr + kSuperPageSize * 5)); + *ReservationOffsetPointer(address + kSuperPageSize * 5)); } TEST_P(PartitionAllocTest, GetReservationStart) { @@ -4005,14 +3966,13 @@ uintptr_t reservation_start = slot_start - PartitionPageSize(); EXPECT_EQ(0U, reservation_start & DirectMapAllocationGranularityOffsetMask()); - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = UntagPtr(ptr); for (uintptr_t a = address; a < address + large_size; ++a) { uintptr_t address2 = GetDirectMapReservationStart(a) + PartitionPageSize(); EXPECT_EQ(slot_start, address2); } - EXPECT_EQ(reservation_start, GetDirectMapReservationStart( - reinterpret_cast<uintptr_t>(slot_start))); + EXPECT_EQ(reservation_start, GetDirectMapReservationStart(slot_start)); allocator.root()->Free(ptr); } @@ -4020,7 +3980,7 @@ TEST_P(PartitionAllocTest, CheckReservationType) { void* ptr = allocator.root()->Alloc(kTestAllocSize, type_name); EXPECT_TRUE(ptr); - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = UntagPtr(ptr); uintptr_t address_to_check = address; EXPECT_FALSE(IsReservationStart(address_to_check)); EXPECT_TRUE(IsManagedByNormalBuckets(address_to_check)); @@ -4050,7 +4010,7 @@ ASSERT_GT(large_size, kMaxBucketed); ptr = allocator.root()->Alloc(large_size, type_name); EXPECT_TRUE(ptr); - address = reinterpret_cast<uintptr_t>(ptr); + address = UntagPtr(ptr); address_to_check = address; EXPECT_FALSE(IsReservationStart(address_to_check)); EXPECT_FALSE(IsManagedByNormalBuckets(address_to_check)); @@ -4320,8 +4280,7 @@ const size_t size = kTestSizes[base::RandGenerator(kTestSizesCount)]; allocations[i] = root->Alloc(size, nullptr); EXPECT_NE(nullptr, allocations[i]); - uintptr_t allocation_base = ::partition_alloc::internal::UnmaskPtr( - reinterpret_cast<uintptr_t>(allocations[i])); + uintptr_t allocation_base = UntagPtr(allocations[i]); EXPECT_TRUE(allocation_base >= pool_base && allocation_base < pool_base + pool_size); } @@ -4473,9 +4432,9 @@ auto* slot_span = SlotSpan::FromObject(ptr1); EXPECT_TRUE(slot_span); - char* char_ptr1 = reinterpret_cast<char*>(ptr1); - char* char_ptr2 = reinterpret_cast<char*>(ptr2); - char* char_ptr3 = reinterpret_cast<char*>(ptr3); + char* char_ptr1 = static_cast<char*>(ptr1); + char* char_ptr2 = static_cast<char*>(ptr2); + char* char_ptr3 = static_cast<char*>(ptr3); EXPECT_LT(kTestAllocSize, slot_span->bucket->slot_size); EXPECT_EQ(char_ptr1 + slot_span->bucket->slot_size, char_ptr2); EXPECT_EQ(char_ptr2 + slot_span->bucket->slot_size, char_ptr3); @@ -4576,10 +4535,7 @@ // Check that it is sorted. for (size_t i = 1; i < allocations.size(); i++) { - EXPECT_LT(reinterpret_cast<uintptr_t>( - ::partition_alloc::internal::UnmaskPtr(allocations[i - 1])), - reinterpret_cast<uintptr_t>( - ::partition_alloc::internal::UnmaskPtr(allocations[i]))); + EXPECT_LT(UntagPtr(allocations[i - 1]), UntagPtr(allocations[i])); } for (void* ptr : allocations) { @@ -4598,8 +4554,7 @@ defined(ARCH_CPU_64_BITS) TEST_P(PartitionAllocTest, CrashOnUnknownPointer) { int not_a_heap_object = 42; - EXPECT_DEATH( - allocator.root()->Free(reinterpret_cast<void*>(¬_a_heap_object)), ""); + EXPECT_DEATH(allocator.root()->Free(¬_a_heap_object), ""); } #endif // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_LINUX) && // defined(ARCH_CPU_64_BITS)
diff --git a/base/allocator/partition_allocator/partition_bucket.cc b/base/allocator/partition_allocator/partition_bucket.cc index 13efed6..4da33e2 100644 --- a/base/allocator/partition_allocator/partition_bucket.cc +++ b/base/allocator/partition_allocator/partition_bucket.cc
@@ -883,9 +883,8 @@ } if (PA_LIKELY(size <= kMaxMemoryTaggingSize)) { - // Ensure the memory tag of the return_slot is unguessable. - return_slot = - ::partition_alloc::internal::TagMemoryRangeRandomly(return_slot, size); + // Ensure the MTE-tag of the memory pointed by |return_slot| is unguessable. + TagMemoryRangeRandomly(return_slot, size); } #if defined(PA_USE_MTE_CHECKED_PTR_WITH_64_BITS_POINTERS) PartitionTagSetValue(return_slot, size, root->GetNewPartitionTag()); @@ -896,14 +895,20 @@ uintptr_t next_slot_end = next_slot + size; size_t free_list_entries_added = 0; while (next_slot_end <= commit_end) { + void* next_slot_ptr; if (PA_LIKELY(size <= kMaxMemoryTaggingSize)) { - next_slot = - ::partition_alloc::internal::TagMemoryRangeRandomly(next_slot, size); + // Ensure the MTE-tag of the memory pointed by other provisioned slot is + // unguessable. They will be returned to the app as is, and the MTE-tag + // will only change upon calling Free(). + next_slot_ptr = TagMemoryRangeRandomly(next_slot, size); + } else { + // No MTE-tagging for larger slots, just cast. + next_slot_ptr = reinterpret_cast<void*>(next_slot); } #if defined(PA_USE_MTE_CHECKED_PTR_WITH_64_BITS_POINTERS) PartitionTagSetValue(next_slot, size, root->GetNewPartitionTag()); #endif // defined(PA_USE_MTE_CHECKED_PTR_WITH_64_BITS_POINTERS) - auto* entry = PartitionFreelistEntry::EmplaceAndInitNull(next_slot); + auto* entry = PartitionFreelistEntry::EmplaceAndInitNull(next_slot_ptr); if (!slot_span->get_freelist_head()) { PA_DCHECK(!prev_entry); PA_DCHECK(!free_list_entries_added);
diff --git a/base/allocator/partition_allocator/partition_freelist_entry.h b/base/allocator/partition_allocator/partition_freelist_entry.h index 57af17b9..993a642 100644 --- a/base/allocator/partition_allocator/partition_freelist_entry.h +++ b/base/allocator/partition_allocator/partition_freelist_entry.h
@@ -41,6 +41,7 @@ std::nullptr_t) : encoded_(Transform(0)) {} explicit PA_ALWAYS_INLINE EncodedPartitionFreelistEntryPtr(void* ptr) + // The encoded pointer stays MTE-tagged. : encoded_(Transform(reinterpret_cast<uintptr_t>(ptr))) {} PA_ALWAYS_INLINE PartitionFreelistEntry* Decode() const { @@ -117,11 +118,15 @@ // Emplaces the freelist entry at the beginning of the given slot span, and // initializes it as null-terminated. static PA_ALWAYS_INLINE PartitionFreelistEntry* EmplaceAndInitNull( - uintptr_t slot_start) { - auto* entry = new (reinterpret_cast<void*>(slot_start)) - PartitionFreelistEntry(nullptr); + void* slot_start_tagged) { + // |slot_start_tagged| is MTE-tagged. + auto* entry = new (slot_start_tagged) PartitionFreelistEntry(nullptr); return entry; } + static PA_ALWAYS_INLINE PartitionFreelistEntry* EmplaceAndInitNull( + uintptr_t slot_start) { + return EmplaceAndInitNull(SlotStartAddr2Ptr(slot_start)); + } // Emplaces the freelist entry at the beginning of the given slot span, and // initializes it with the given |next| pointer, but encoded. @@ -133,7 +138,7 @@ uintptr_t slot_start, PartitionFreelistEntry* next) { auto* entry = - new (reinterpret_cast<void*>(slot_start)) PartitionFreelistEntry(next); + new (SlotStartAddr2Ptr(slot_start)) PartitionFreelistEntry(next); return entry; } @@ -145,7 +150,7 @@ static PA_ALWAYS_INLINE void EmplaceAndInitForTest(uintptr_t slot_start, void* next, bool make_shadow_match) { - new (reinterpret_cast<void*>(slot_start)) + new (SlotStartAddr2Ptr(slot_start)) PartitionFreelistEntry(next, make_shadow_match); } @@ -174,7 +179,7 @@ } } - PA_ALWAYS_INLINE void SetNext(PartitionFreelistEntry* ptr) { + PA_ALWAYS_INLINE void SetNext(PartitionFreelistEntry* entry) { // SetNext() is either called on the freelist head, when provisioning new // slots, or when GetNext() has been called before, no need to pass the // size. @@ -182,15 +187,14 @@ // Regular freelists always point to an entry within the same super page. // // This is most likely a PartitionAlloc bug if this triggers. - if (PA_UNLIKELY( - ptr && - (reinterpret_cast<uintptr_t>(this) & kSuperPageBaseMask) != - (reinterpret_cast<uintptr_t>(ptr) & kSuperPageBaseMask))) { + if (PA_UNLIKELY(entry && + (SlotStartPtr2Addr(this) & kSuperPageBaseMask) != + (SlotStartPtr2Addr(entry) & kSuperPageBaseMask))) { FreelistCorruptionDetected(0); } #endif // BUILDFLAG(PA_DCHECK_IS_ON) - encoded_next_ = EncodedPartitionFreelistEntryPtr(ptr); + encoded_next_ = EncodedPartitionFreelistEntryPtr(entry); #if defined(PA_HAS_FREELIST_SHADOW_ENTRY) shadow_ = encoded_next_.Inverted(); #endif @@ -204,8 +208,7 @@ #if defined(PA_HAS_FREELIST_SHADOW_ENTRY) shadow_ = 0; #endif - uintptr_t slot_start = reinterpret_cast<uintptr_t>(this); - return slot_start; + return SlotStartPtr2Addr(this); } PA_ALWAYS_INLINE constexpr bool IsEncodedNextPtrZero() const { @@ -229,8 +232,8 @@ // // Also, the lightweight UaF detection (pointer shadow) is checked. - uintptr_t here_address = reinterpret_cast<uintptr_t>(here); - uintptr_t next_address = reinterpret_cast<uintptr_t>(next); + uintptr_t here_address = SlotStartPtr2Addr(here); + uintptr_t next_address = SlotStartPtr2Addr(next); #if defined(PA_HAS_FREELIST_SHADOW_ENTRY) bool shadow_ptr_ok = here->encoded_next_.Inverted() == here->shadow_;
diff --git a/base/allocator/partition_allocator/partition_page.cc b/base/allocator/partition_allocator/partition_page.cc index 3f11d6dc..a02eb9db 100644 --- a/base/allocator/partition_allocator/partition_page.cc +++ b/base/allocator/partition_allocator/partition_page.cc
@@ -263,9 +263,7 @@ for (PartitionFreelistEntry* head = freelist_head; head; head = head->GetNext(slot_size)) { ++num_free_slots; - size_t offset_in_slot_span = ::partition_alloc::internal::UnmaskPtr( - reinterpret_cast<uintptr_t>(head)) - - slot_span_start; + size_t offset_in_slot_span = SlotStartPtr2Addr(head) - slot_span_start; size_t slot_number = bucket->GetSlotNumber(offset_in_slot_span); PA_DCHECK(slot_number < num_provisioned_slots); free_slots[slot_number] = true; @@ -280,9 +278,8 @@ for (size_t slot_number = 0; slot_number < num_provisioned_slots; slot_number++) { if (free_slots[slot_number]) { - uintptr_t slot_address = ::partition_alloc::internal::RemaskPtr( - slot_span_start + (slot_size * slot_number)); - auto* entry = PartitionFreelistEntry::EmplaceAndInitNull(slot_address); + uintptr_t slot_start = slot_span_start + (slot_size * slot_number); + auto* entry = PartitionFreelistEntry::EmplaceAndInitNull(slot_start); if (!head) head = entry;
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h index ea21b108..26b0f6f 100644 --- a/base/allocator/partition_allocator/partition_page.h +++ b/base/allocator/partition_allocator/partition_page.h
@@ -502,7 +502,6 @@ // surely never contain user data. PA_ALWAYS_INLINE bool IsWithinSuperPagePayload(uintptr_t address, bool with_quarantine) { - address = ::partition_alloc::internal::UnmaskPtr(address); // Quarantine can only be enabled for normal buckets in the current code. PA_DCHECK(!with_quarantine || IsManagedByNormalBuckets(address)); uintptr_t super_page = address & kSuperPageBaseMask; @@ -581,7 +580,6 @@ template <bool thread_safe> PA_ALWAYS_INLINE SlotSpanMetadata<thread_safe>* SlotSpanMetadata<thread_safe>::FromAddr(uintptr_t address) { - address = ::partition_alloc::internal::UnmaskPtr(address); auto* page = PartitionPage<thread_safe>::FromAddr(address); PA_DCHECK(page->is_valid); // Partition pages in the same slot span share the same SlotSpanMetadata @@ -611,9 +609,7 @@ #if BUILDFLAG(PA_DCHECK_IS_ON) // Checks that the pointer is a multiple of slot size. uintptr_t slot_span_start = ToSlotSpanStart(slot_span); - PA_DCHECK(!((::partition_alloc::internal::UnmaskPtr(slot_start) - - ::partition_alloc::internal::UnmaskPtr(slot_span_start)) % - slot_span->bucket->slot_size)); + PA_DCHECK(!((slot_start - slot_span_start) % slot_span->bucket->slot_size)); #endif // BUILDFLAG(PA_DCHECK_IS_ON) return slot_span; } @@ -625,16 +621,14 @@ template <bool thread_safe> PA_ALWAYS_INLINE SlotSpanMetadata<thread_safe>* SlotSpanMetadata<thread_safe>::FromObject(void* object) { - uintptr_t object_addr = PartitionRoot<thread_safe>::ObjectPtr2Addr(object); + uintptr_t object_addr = ObjectPtr2Addr(object); auto* slot_span = FromAddr(object_addr); #if BUILDFLAG(PA_DCHECK_IS_ON) // Checks that the object is exactly |extras_offset| away from a multiple of // slot size (i.e. from a slot start). uintptr_t slot_span_start = ToSlotSpanStart(slot_span); auto* root = PartitionRoot<thread_safe>::FromSlotSpan(slot_span); - PA_DCHECK((::partition_alloc::internal::UnmaskPtr(object_addr) - - ::partition_alloc::internal::UnmaskPtr(slot_span_start)) % - slot_span->bucket->slot_size == + PA_DCHECK((object_addr - slot_span_start) % slot_span->bucket->slot_size == root->flags.extras_offset); #endif // BUILDFLAG(PA_DCHECK_IS_ON) return slot_span; @@ -665,8 +659,7 @@ template <bool thread_safe> PA_ALWAYS_INLINE SlotSpanMetadata<thread_safe>* SlotSpanMetadata<thread_safe>::FromObjectInnerPtr(void* ptr) { - return FromObjectInnerAddr( - PartitionRoot<thread_safe>::ObjectInnerPtr2Addr(ptr)); + return FromObjectInnerAddr(ObjectInnerPtr2Addr(ptr)); } template <bool thread_safe> @@ -688,9 +681,14 @@ template <bool thread_safe> PA_ALWAYS_INLINE void SlotSpanMetadata<thread_safe>::SetFreelistHead( PartitionFreelistEntry* new_head) { +#if BUILDFLAG(PA_DCHECK_IS_ON) + // |this| is in the metadata region, hence isn't MTE-tagged. Untag |new_head| + // as well. + uintptr_t new_head_untagged = UntagPtr(new_head); PA_DCHECK(!new_head || (reinterpret_cast<uintptr_t>(this) & kSuperPageBaseMask) == - (reinterpret_cast<uintptr_t>(new_head) & kSuperPageBaseMask)); + (new_head_untagged & kSuperPageBaseMask)); +#endif freelist_head = new_head; // Inserted something new in the freelist, assume that it is not sorted // anymore. @@ -720,7 +718,8 @@ root->lock_.AssertAcquired(); #endif - auto* entry = reinterpret_cast<internal::PartitionFreelistEntry*>(slot_start); + auto* entry = static_cast<internal::PartitionFreelistEntry*>( + SlotStartAddr2Ptr(slot_start)); // Catches an immediate double free. PA_CHECK(entry != freelist_head); // Look for double free one level deeper in debug. @@ -762,11 +761,10 @@ size_t number_of_entries = 0; for (auto* entry = head; entry; entry = entry->GetNext(bucket->slot_size), ++number_of_entries) { - uintptr_t unmasked_entry = ::partition_alloc::internal::UnmaskPtr( - reinterpret_cast<uintptr_t>(entry)); + uintptr_t untagged_entry = UntagPtr(entry); // Check that all entries belong to this slot span. - PA_DCHECK(ToSlotSpanStart(this) <= unmasked_entry); - PA_DCHECK(unmasked_entry < + PA_DCHECK(ToSlotSpanStart(this) <= untagged_entry); + PA_DCHECK(untagged_entry < ToSlotSpanStart(this) + bucket->get_bytes_per_span()); } PA_DCHECK(number_of_entries == number_of_freed);
diff --git a/base/allocator/partition_allocator/partition_ref_count.h b/base/allocator/partition_allocator/partition_ref_count.h index c589ef9..9126d9dcd 100644 --- a/base/allocator/partition_allocator/partition_ref_count.h +++ b/base/allocator/partition_allocator/partition_ref_count.h
@@ -331,7 +331,6 @@ PA_ALWAYS_INLINE PartitionRefCount* PartitionRefCountPointer( uintptr_t slot_start) { - PA_DCHECK(slot_start == ::partition_alloc::internal::RemaskPtr(slot_start)); #if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) CheckThatSlotOffsetIsZero(slot_start); #endif @@ -340,13 +339,16 @@ #if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) PA_CHECK(refcount_address % alignof(PartitionRefCount) == 0); #endif - // Have to remask because the previous pointer's tag is unpredictable. There - // could be a race condition though if the previous slot is freed/retagged - // concurrently, so ideally the ref count should occupy its own MTE granule. + // Have to MTE-tag, because the address is untagged, but lies within a slot + // area, which is protected by MTE. + // + // There could be a race condition though if the previous slot is + // freed/retagged concurrently, so ideally the ref count should occupy its + // own MTE granule. // TODO(richard.townsend@arm.com): improve this. - return ::partition_alloc::internal::RemaskPtr( - reinterpret_cast<PartitionRefCount*>(refcount_address)); + return static_cast<PartitionRefCount*>(TagAddr(refcount_address)); } else { + // No need to tag, as the metadata region isn't protected by MTE. PartitionRefCount* bitmap_base = reinterpret_cast<PartitionRefCount*>( (slot_start & kSuperPageBaseMask) + SystemPageSize() * 2); size_t index = ((slot_start & kSuperPageOffsetMask) >> SystemPageShift()) * @@ -375,7 +377,9 @@ #if BUILDFLAG(PA_DCHECK_IS_ON) || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) CheckThatSlotOffsetIsZero(slot_start); #endif - return reinterpret_cast<PartitionRefCount*>(slot_start); + // Have to MTE-tag, because the address is untagged, but lies within a slot + // area, which is protected by MTE. + return static_cast<PartitionRefCount*>(TagAddr(slot_start)); } #endif // BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)
diff --git a/base/allocator/partition_allocator/partition_root.cc b/base/allocator/partition_allocator/partition_root.cc index 9db86d7..3d4fff4 100644 --- a/base/allocator/partition_allocator/partition_root.cc +++ b/base/allocator/partition_allocator/partition_root.cc
@@ -337,10 +337,8 @@ // slots are not in use. for (PartitionFreelistEntry* entry = slot_span->get_freelist_head(); entry; /**/) { - size_t slot_index = (::partition_alloc::internal::UnmaskPtr( - reinterpret_cast<uintptr_t>(entry)) - - slot_span_start) / - slot_size; + size_t slot_index = + (SlotStartPtr2Addr(entry) - slot_span_start) / slot_size; PA_DCHECK(slot_index < num_slots); slot_usage[slot_index] = 0; #if !BUILDFLAG(IS_WIN) @@ -831,6 +829,7 @@ internal::SlotSpanMetadata<thread_safe>* slot_span, size_t requested_size) { PA_DCHECK(slot_span->bucket->is_direct_mapped()); + // Slot-span metadata isn't MTE-tagged. PA_DCHECK( internal::IsManagedByDirectMap(reinterpret_cast<uintptr_t>(slot_span))); @@ -924,8 +923,7 @@ #if BUILDFLAG(PA_DCHECK_IS_ON) // Write a new trailing cookie. if (flags.allow_cookie) { - auto* object = - reinterpret_cast<unsigned char*>(SlotStartToObject(slot_start)); + auto* object = static_cast<unsigned char*>(SlotStartToObject(slot_start)); internal::PartitionCookieWriteValue(object + slot_span->GetUsableSize(this)); } @@ -936,17 +934,17 @@ template <bool thread_safe> bool PartitionRoot<thread_safe>::TryReallocInPlaceForNormalBuckets( - void* ptr, + void* object, SlotSpan* slot_span, size_t new_size) { - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); - PA_DCHECK(internal::IsManagedByNormalBuckets(address)); + uintptr_t slot_start = ObjectToSlotStart(object); + PA_DCHECK(internal::IsManagedByNormalBuckets(slot_start)); // TODO: note that tcmalloc will "ignore" a downsizing realloc() unless the // new size is a significant percentage smaller. We could do the same if we // determine it is a win. if (AllocationCapacityFromRequestedSize(new_size) != - AllocationCapacityFromPtr(ptr)) + AllocationCapacityFromPtr(object)) return false; // Trying to allocate |new_size| would use the same amount of underlying @@ -954,7 +952,6 @@ // statistics (and cookie, if present). if (slot_span->CanStoreRawSize()) { #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && BUILDFLAG(PA_DCHECK_IS_ON) - uintptr_t slot_start = ObjectToSlotStart(ptr); internal::PartitionRefCount* old_ref_count; if (brp_enabled()) { old_ref_count = internal::PartitionRefCountPointer(slot_start); @@ -975,13 +972,12 @@ // Write a new trailing cookie only when it is possible to keep track // raw size (otherwise we wouldn't know where to look for it later). if (flags.allow_cookie) { - internal::PartitionCookieWriteValue( - reinterpret_cast<unsigned char*>(address) + - slot_span->GetUsableSize(this)); + internal::PartitionCookieWriteValue(static_cast<unsigned char*>(object) + + slot_span->GetUsableSize(this)); } #endif // BUILDFLAG(PA_DCHECK_IS_ON) } - return ptr; + return object; } template <bool thread_safe>
diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h index e445436..74b955c 100644 --- a/base/allocator/partition_allocator/partition_root.h +++ b/base/allocator/partition_allocator/partition_root.h
@@ -714,32 +714,21 @@ return size - flags.extras_size; } - PA_ALWAYS_INLINE void* SlotStartToObject(uintptr_t slot_start) const { - // TODO(bartekn): Move MTE tagging here. + PA_ALWAYS_INLINE uintptr_t SlotStartToObjectAddr(uintptr_t slot_start) const { // TODO(bartekn): Check that |slot_start| is indeed a slot start. - return reinterpret_cast<void*>(slot_start + flags.extras_offset); + return slot_start + flags.extras_offset; + } + + PA_ALWAYS_INLINE void* SlotStartToObject(uintptr_t slot_start) const { + // TODO(bartekn): Check that |slot_start| is indeed a slot start. + return internal::TagAddr(SlotStartToObjectAddr(slot_start)); } PA_ALWAYS_INLINE uintptr_t ObjectToSlotStart(void* object) const { - // TODO(bartekn): Move MTE untagging here. - return reinterpret_cast<uintptr_t>(object) - flags.extras_offset; + return UntagPtr(object) - flags.extras_offset; // TODO(bartekn): Check that the result is indeed a slot start. } - static PA_ALWAYS_INLINE uintptr_t ObjectInnerPtr2Addr(void* object) { - // TODO(bartekn): Add MTE untagging here. - return reinterpret_cast<uintptr_t>(object); - } - static PA_ALWAYS_INLINE uintptr_t ObjectPtr2Addr(void* object) { - // TODO(bartekn): Check that |object| is indeed an object start. - return ObjectInnerPtr2Addr(object); - } - static PA_ALWAYS_INLINE void* SlotStartAddr2Ptr(uintptr_t slot_start) { - // TODO(bartekn): Move MTE tagging here. - // TODO(bartekn): Check that |slot_start| is indeed a slot start. - return reinterpret_cast<void*>(slot_start); - } - bool brp_enabled() const { #if BUILDFLAG(USE_BACKUP_REF_PTR) return flags.brp_enabled_; @@ -821,7 +810,7 @@ return ret; } - // Allocates memory, without initializing extras. + // Allocates a memory slot, without initializing extras. // // - |flags| are as in AllocWithFlags(). // - |raw_size| accommodates for extras on top of AllocWithFlags()'s @@ -842,7 +831,7 @@ bool* is_already_zeroed) PA_EXCLUSIVE_LOCKS_REQUIRED(lock_); - bool TryReallocInPlaceForNormalBuckets(void* ptr, + bool TryReallocInPlaceForNormalBuckets(void* object, SlotSpan* slot_span, size_t new_size); bool TryReallocInPlaceForDirectMap( @@ -941,8 +930,6 @@ // ref-count is in place for this allocation. PA_ALWAYS_INLINE uintptr_t PartitionAllocGetSlotStartInBRPPool(uintptr_t address) { - address = ::partition_alloc::internal::UnmaskPtr(address); - // Adjust to support pointers right past the end of an allocation, which in // some cases appear to point outside the designated allocation slot. // @@ -967,14 +954,11 @@ // Get the offset from the beginning of the slot span. uintptr_t slot_span_start = SlotSpanMetadata<ThreadSafe>::ToSlotSpanStart(slot_span); - PA_DCHECK(slot_span_start == - ::partition_alloc::internal::UnmaskPtr(slot_span_start)); size_t offset_in_slot_span = address - slot_span_start; auto* bucket = slot_span->bucket; - return ::partition_alloc::internal::RemaskPtr( - slot_span_start + - bucket->slot_size * bucket->GetSlotNumber(offset_in_slot_span)); + return slot_span_start + + bucket->slot_size * bucket->GetSlotNumber(offset_in_slot_span); } // Checks whether a given address stays within the same allocation slot after @@ -1002,11 +986,10 @@ // Double check that ref-count is indeed present. PA_DCHECK(root->brp_enabled()); - void* object = root->SlotStartToObject(slot_start); - uintptr_t object_addr = PartitionRoot<ThreadSafe>::ObjectPtr2Addr(object); + uintptr_t object_addr = root->SlotStartToObjectAddr(slot_start); uintptr_t new_address = address + delta_in_bytes; return object_addr <= new_address && - // We use "greater then or equal" below because we want to include + // We use "greater than or equal" below because we want to include // pointers right past the end of an allocation. new_address <= object_addr + slot_span->GetUsableSize(root); } @@ -1022,7 +1005,7 @@ // memset() can be really expensive. #if BUILDFLAG(PA_EXPENSIVE_DCHECKS_ARE_ON) - DebugMemset(reinterpret_cast<void*>(slot_start), kFreedByte, + DebugMemset(SlotStartAddr2Ptr(slot_start), kFreedByte, slot_span->GetUtilizedSlotSize() #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) - sizeof(PartitionRefCount) @@ -1049,9 +1032,8 @@ size_t slot_span_alignment, size_t* usable_size, bool* is_already_zeroed) { - PA_DCHECK( - (slot_span_alignment >= internal::PartitionPageSize()) && - partition_alloc::internal::base::bits::IsPowerOfTwo(slot_span_alignment)); + PA_DCHECK((slot_span_alignment >= internal::PartitionPageSize()) && + internal::base::bits::IsPowerOfTwo(slot_span_alignment)); SlotSpan* slot_span = bucket->active_slot_spans_head; // There always must be a slot span on the active list (could be a sentinel). PA_DCHECK(slot_span); @@ -1060,7 +1042,7 @@ PA_DCHECK(!slot_span->marked_full); uintptr_t slot_start = - reinterpret_cast<uintptr_t>(slot_span->get_freelist_head()); + internal::SlotStartPtr2Addr(slot_span->get_freelist_head()); // Use the fast path when a slot is readily available on the free list of the // first active slot span. However, fall back to the slow path if a // higher-order alignment is requested, because an inner slot of an existing @@ -1082,7 +1064,7 @@ PA_DCHECK(!slot_span->CanStoreRawSize()); PA_DCHECK(!slot_span->bucket->is_direct_mapped()); void* entry = slot_span->PopForAlloc(bucket->slot_size); - PA_DCHECK(reinterpret_cast<uintptr_t>(entry) == slot_start); + PA_DCHECK(internal::SlotStartPtr2Addr(entry) == slot_start); PA_DCHECK(slot_span->bucket == bucket); } else { @@ -1146,7 +1128,7 @@ // only cases where we don't would be delayed free() in PCScan, but |*object| // can be cold in cache. PA_PREFETCH(object); - uintptr_t object_addr = ObjectPtr2Addr(object); + uintptr_t object_addr = internal::ObjectPtr2Addr(object); // On Android, malloc() interception is more fragile than on other // platforms, as we use wrapped symbols. However, the GigaCage allows us to @@ -1182,12 +1164,10 @@ #if defined(PA_HAS_MEMORY_TAGGING) const size_t slot_size = slot_span->bucket->slot_size; if (PA_LIKELY(slot_size <= internal::kMaxMemoryTaggingSize)) { - // TODO(bartekn): |slot_start| shouldn't have MTE tag. - slot_start = ::partition_alloc::internal::TagMemoryRangeIncrement( - slot_start, slot_size); + internal::TagMemoryRangeIncrement(slot_start, slot_size); // Incrementing the MTE-tag in the memory range invalidates the |object|'s // tag, so it must be retagged. - object = ::partition_alloc::internal::RemaskPtr(object); + object = internal::TagPtr(object); } #else // We are going to read from |*slot_span| in all branches, but haven't done it @@ -1271,9 +1251,8 @@ if (flags.allow_cookie) { // Verify the cookie after the allocated region. // If this assert fires, you probably corrupted memory. - internal::PartitionCookieCheckValue( - reinterpret_cast<unsigned char*>(object) + - slot_span->GetUsableSize(this)); + internal::PartitionCookieCheckValue(static_cast<unsigned char*>(object) + + slot_span->GetUsableSize(this)); } #endif @@ -1281,11 +1260,8 @@ // default. if (PA_UNLIKELY(IsQuarantineEnabled())) { if (PA_LIKELY(internal::IsManagedByNormalBuckets(slot_start))) { - uintptr_t unmasked_slot_start = - ::partition_alloc::internal::UnmaskPtr(slot_start); // Mark the state in the state bitmap as freed. - internal::StateBitmapFromAddr(unmasked_slot_start) - ->Free(unmasked_slot_start); + internal::StateBitmapFromAddr(slot_start)->Free(slot_start); } } @@ -1318,7 +1294,8 @@ // memset() can be really expensive. #if BUILDFLAG(PA_EXPENSIVE_DCHECKS_ARE_ON) - internal::DebugMemset(SlotStartAddr2Ptr(slot_start), internal::kFreedByte, + internal::DebugMemset(internal::SlotStartAddr2Ptr(slot_start), + internal::kFreedByte, slot_span->GetUtilizedSlotSize() #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) - sizeof(internal::PartitionRefCount) @@ -1329,7 +1306,7 @@ // efficiency. if (PA_UNLIKELY(internal::RandomPeriod()) && !IsDirectMappedBucket(slot_span->bucket)) { - internal::SecureMemset(SlotStartAddr2Ptr(slot_start), 0, + internal::SecureMemset(internal::SlotStartAddr2Ptr(slot_start), 0, slot_span->GetUtilizedSlotSize() #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) - sizeof(internal::PartitionRefCount) @@ -1383,7 +1360,8 @@ // RawFreeLocked()). This is intentional, as the thread cache is purged often, // and the memory has a consequence the memory has already been touched // recently (to link the thread cache freelist). - *reinterpret_cast<volatile uintptr_t*>(slot_start) = 0; + *static_cast<volatile uintptr_t*>(internal::SlotStartAddr2Ptr(slot_start)) = + 0; // Note: even though we write to slot_start + sizeof(void*) as well, due to // alignment constraints, the two locations are always going to be in the same // OS page. No need to write to the second one as well. @@ -1451,7 +1429,6 @@ template <bool thread_safe> PA_ALWAYS_INLINE bool PartitionRoot<thread_safe>::IsValidSlotSpan( SlotSpan* slot_span) { - slot_span = ::partition_alloc::internal::UnmaskPtr(slot_span); PartitionRoot* root = FromSlotSpan(slot_span); return root->inverted_self == ~reinterpret_cast<uintptr_t>(root); } @@ -1883,11 +1860,8 @@ // default. if (PA_UNLIKELY(is_quarantine_enabled)) { if (PA_LIKELY(internal::IsManagedByNormalBuckets(slot_start))) { - uintptr_t unmasked_slot_start = - ::partition_alloc::internal::UnmaskPtr(slot_start); // Mark the corresponding bits in the state bitmap as allocated. - internal::StateBitmapFromAddr(unmasked_slot_start) - ->Allocate(unmasked_slot_start); + internal::StateBitmapFromAddr(slot_start)->Allocate(slot_start); } } @@ -1990,8 +1964,7 @@ // |alignment| is a power of two, but the compiler doesn't necessarily know // that. A regular % operation is very slow, make sure to use the equivalent, // faster form. - // No need to call ObjectPtr2Addr, because MTE untagging isn't necessary, as - // it doesn't change alignment. + // No need to MTE-untag, as it doesn't change alignment. PA_CHECK(!(reinterpret_cast<uintptr_t>(object) & (alignment - 1))); return object;
diff --git a/base/allocator/partition_allocator/partition_tag.h b/base/allocator/partition_allocator/partition_tag.h index db224b86..2f8e73591 100644 --- a/base/allocator/partition_allocator/partition_tag.h +++ b/base/allocator/partition_allocator/partition_tag.h
@@ -48,12 +48,15 @@ size_t offset_in_bitmap = offset_in_super_page >> internal::tag_bitmap::kBytesPerPartitionTagShift << internal::tag_bitmap::kPartitionTagSizeShift; + // No need to tag, as the tag bitmap region isn't protected by MTE. return reinterpret_cast<PartitionTag*>(bitmap_base + offset_in_bitmap); } PA_ALWAYS_INLINE PartitionTag* PartitionTagPointer(const void* ptr) { - return PartitionTagPointer( - internal::UnmaskPtr(reinterpret_cast<uintptr_t>(ptr))); + // Disambiguation: UntagPtr relates to hwardware MTE, and it strips the tag + // from the pointer. Whereas, PartitionTagPointer relates to software MTE + // (i.e. MTECheckedPtr) and it returns a pointer to the tag in memory. + return PartitionTagPointer(UntagPtr(ptr)); } namespace internal { @@ -75,7 +78,10 @@ PA_ALWAYS_INLINE void PartitionTagSetValue(void* ptr, size_t size, PartitionTag value) { - PartitionTagSetValue(reinterpret_cast<uintptr_t>(ptr), size, value); + // Disambiguation: UntagPtr relates to hwardware MTE, and it strips the tag + // from the pointer. Whereas, PartitionTagSetValue relates to software MTE + // (i.e. MTECheckedPtr) and it sets the in-memory tag. + PartitionTagSetValue(UntagPtr(ptr), size, value); } PA_ALWAYS_INLINE PartitionTag PartitionTagGetValue(void* ptr) {
diff --git a/base/allocator/partition_allocator/reservation_offset_table.h b/base/allocator/partition_allocator/reservation_offset_table.h index 4722f58..c8358101 100644 --- a/base/allocator/partition_allocator/reservation_offset_table.h +++ b/base/allocator/partition_allocator/reservation_offset_table.h
@@ -146,7 +146,6 @@ PA_ALWAYS_INLINE uint16_t* ReservationOffsetPointer(uintptr_t address) { #if defined(PA_HAS_64_BITS_POINTERS) // In 64-bit mode, find the owning Pool and compute the offset from its base. - address = ::partition_alloc::internal::UnmaskPtr(address); auto [pool, offset] = GetPoolAndOffset(address); return ReservationOffsetPointer(pool, offset); #else
diff --git a/base/allocator/partition_allocator/starscan/pcscan.h b/base/allocator/partition_allocator/starscan/pcscan.h index 8f261055..f203dbf1 100644 --- a/base/allocator/partition_allocator/starscan/pcscan.h +++ b/base/allocator/partition_allocator/starscan/pcscan.h
@@ -247,15 +247,12 @@ SecureMemset(object, 0, usable_size); } - // TODO(bartekn): Remove MTE untagging, once its done in the caller. - uintptr_t unmasked_slot_start = - ::partition_alloc::internal::UnmaskPtr(slot_start); - auto* state_bitmap = StateBitmapFromAddr(unmasked_slot_start); + auto* state_bitmap = StateBitmapFromAddr(slot_start); // Mark the state in the state bitmap as quarantined. Make sure to do it after // the clearing to avoid racing with *Scan Sweeper. [[maybe_unused]] const bool succeeded = - state_bitmap->Quarantine(unmasked_slot_start, instance.epoch()); + state_bitmap->Quarantine(slot_start, instance.epoch()); #if PA_STARSCAN_EAGER_DOUBLE_FREE_DETECTION_ENABLED if (PA_UNLIKELY(!succeeded)) DoubleFreeAttempt();
diff --git a/base/allocator/partition_allocator/starscan/pcscan_internal.cc b/base/allocator/partition_allocator/starscan/pcscan_internal.cc index 1e3762a..dd51514 100644 --- a/base/allocator/partition_allocator/starscan/pcscan_internal.cc +++ b/base/allocator/partition_allocator/starscan/pcscan_internal.cc
@@ -142,7 +142,6 @@ // slots. May return false positives for but should never return false // negatives, as otherwise this breaks security. PA_ALWAYS_INLINE bool IsQuarantined(uintptr_t address) const { - address = ::partition_alloc::internal::UnmaskPtr(address); const size_t byte = Byte(address); PA_SCAN_DCHECK(byte < bytes_.size()); return bytes_[byte]; @@ -653,6 +652,7 @@ PA_SCAN_INLINE size_t PCScanTask::TryMarkSlotInNormalBuckets(uintptr_t maybe_ptr) const { // Check if |maybe_ptr| points somewhere to the heap. + // The caller has to make sure that |maybe_ptr| isn't MTE-tagged. auto* state_map = TryFindScannerBitmapForPointer(maybe_ptr); if (!state_map) return 0; @@ -722,8 +722,7 @@ // ScanPartitions. const size_t size = slot_span->GetUsableSize(root); if (clear_type == PCScan::ClearType::kLazy) { - void* object = ::partition_alloc::internal::RemaskPtr( - root->SlotStartToObject(slot_start)); + void* object = root->SlotStartToObject(slot_start); memset(object, 0, size); } #if PA_STARSCAN_USE_CARD_TABLE @@ -774,9 +773,10 @@ } #endif // defined(PA_HAS_64_BITS_POINTERS) - PA_SCAN_INLINE void CheckPointer(uintptr_t maybe_ptr) { - quarantine_size_ += task_.TryMarkSlotInNormalBuckets( - ::partition_alloc::internal::UnmaskPtr(maybe_ptr)); + PA_SCAN_INLINE void CheckPointer(uintptr_t maybe_ptr_maybe_tagged) { + // |maybe_ptr| may have an MTE tag, so remove it first. + quarantine_size_ += + task_.TryMarkSlotInNormalBuckets(UntagAddr(maybe_ptr_maybe_tagged)); } const PCScanTask& task_; @@ -937,8 +937,6 @@ SlotSpanMetadata<ThreadSafe>* slot_span, uintptr_t slot_start) { void* object = root->SlotStartToObject(slot_start); - // TODO(bartekn): Move MTE masking into SlotStartToObject. - object = ::partition_alloc::internal::RemaskPtr(object); root->FreeNoHooksImmediate(object, slot_span, slot_start); UnmarkInCardTable(slot_start, slot_span); return slot_span->bucket->slot_size; @@ -1003,8 +1001,7 @@ const auto bitmap_iterator = [&](uintptr_t slot_start) { SlotSpan* current_slot_span = SlotSpan::FromSlotStart(slot_start); - auto* entry = PartitionFreelistEntry::EmplaceAndInitNull( - ::partition_alloc::internal::RemaskPtr(slot_start)); + auto* entry = PartitionFreelistEntry::EmplaceAndInitNull(slot_start); if (current_slot_span != previous_slot_span) { // We started scanning a new slot span. Flush the accumulated freelist to
diff --git a/base/allocator/partition_allocator/starscan/pcscan_unittest.cc b/base/allocator/partition_allocator/starscan/pcscan_unittest.cc index 899531d..d9351c8 100644 --- a/base/allocator/partition_allocator/starscan/pcscan_unittest.cc +++ b/base/allocator/partition_allocator/starscan/pcscan_unittest.cc
@@ -8,6 +8,7 @@ #include "base/allocator/partition_allocator/starscan/pcscan.h" +#include "base/allocator/partition_allocator/partition_alloc-inl.h" #include "base/allocator/partition_allocator/partition_alloc.h" #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h" #include "base/allocator/partition_allocator/partition_alloc_base/cpu.h" @@ -146,12 +147,13 @@ } EXPECT_EQ(SlotSpan::FromSlotStart(first), SlotSpan::FromSlotStart(last)); - if (bucket.num_system_pages_per_slot_span == NumSystemPagesPerPartitionPage()) + if (bucket.num_system_pages_per_slot_span == + NumSystemPagesPerPartitionPage()) { // Pointers are expected to be in the same partition page, but have a // different MTE-tag. - EXPECT_EQ( - ::partition_alloc::internal::UnmaskPtr(first & PartitionPageBaseMask()), - ::partition_alloc::internal::UnmaskPtr(last & PartitionPageBaseMask())); + EXPECT_EQ(UntagAddr(first & PartitionPageBaseMask()), + UntagAddr(last & PartitionPageBaseMask())); + } EXPECT_EQ(num_slots, bucket.active_slot_spans_head->num_allocated_slots); EXPECT_EQ(nullptr, bucket.active_slot_spans_head->get_freelist_head()); EXPECT_TRUE(bucket.is_valid()); @@ -164,12 +166,11 @@ bool IsInFreeList(uintptr_t slot_start) { // slot_start isn't MTE-tagged, whereas pointers in the freelist are. - uintptr_t slot_start_tagged = - ::partition_alloc::internal::RemaskPtr(slot_start); + void* slot_start_tagged = SlotStartAddr2Ptr(slot_start); auto* slot_span = SlotSpan::FromSlotStart(slot_start); for (auto* entry = slot_span->get_freelist_head(); entry; entry = entry->GetNext(slot_span->bucket->slot_size)) { - if (reinterpret_cast<uintptr_t>(entry) == slot_start_tagged) + if (entry == slot_start_tagged) return true; } return false; @@ -703,11 +704,10 @@ // This not only points past the object, but past all extras around it. // However, there should be enough space between this and the end of slot, to // store some data. - // Since we stripped the MTE-tag to get |slot_start|, we need to retag it. - uintptr_t source_end = ::partition_alloc::internal::RemaskPtr( - slot_start + slot_span->GetRawSize()); + uintptr_t source_end = slot_start + slot_span->GetRawSize(); // Write the pointer. - *reinterpret_cast<ValueList**>(source_end) = value; + // Since we stripped the MTE-tag to get |slot_start|, we need to retag it. + *static_cast<ValueList**>(TagAddr(source_end)) = value; TestDanglingReferenceNotVisited(*this, value, root()); } @@ -830,10 +830,9 @@ // quarantine, assert that the obj2 is the same as obj1 and the tags are // different. // MTE-retag |obj1|, as the tag changed when freeing it. - if (!HasOverflowTag(::partition_alloc::internal::RemaskPtr(obj1))) { + if (!HasOverflowTag(TagPtr(obj1))) { // Assert that the pointer is the same. - ASSERT_EQ(::partition_alloc::internal::UnmaskPtr(obj1), - ::partition_alloc::internal::UnmaskPtr(obj2)); + ASSERT_EQ(UntagPtr(obj1), UntagPtr(obj2)); // Assert that the tag is different. ASSERT_NE(obj1, obj2); } @@ -843,7 +842,7 @@ auto* obj = ListType::Create(root()); ListType::Destroy(root(), obj); // MTE-retag |obj|, as the tag changed when freeing it. - obj = ::partition_alloc::internal::RemaskPtr(obj); + obj = TagPtr(obj); // Check if the tag overflows. If so, the object must be in quarantine. if (HasOverflowTag(obj)) { EXPECT_TRUE(IsInQuarantine(obj));
diff --git a/base/allocator/partition_allocator/starscan/scan_loop.h b/base/allocator/partition_allocator/starscan/scan_loop.h index b9c0bd2b..49aa9e1 100644 --- a/base/allocator/partition_allocator/starscan/scan_loop.h +++ b/base/allocator/partition_allocator/starscan/scan_loop.h
@@ -12,6 +12,7 @@ #include "base/allocator/partition_allocator/partition_alloc_check.h" #include "base/allocator/partition_allocator/partition_alloc_config.h" #include "base/allocator/partition_allocator/starscan/starscan_fwd.h" +#include "base/allocator/partition_allocator/tagging.h" #include "build/build_config.h" #if defined(ARCH_CPU_X86_64) @@ -92,7 +93,9 @@ PA_SCAN_DCHECK(!(begin % sizeof(uintptr_t))); PA_SCAN_DCHECK(!(end % sizeof(uintptr_t))); #if defined(PA_HAS_64_BITS_POINTERS) - const uintptr_t mask = Derived::CageMask(); + // If the read value is a pointer into the PA region, it's likely + // MTE-tagged. Piggyback on |mask| to untag, for efficiency. + const uintptr_t mask = Derived::CageMask() & kPtrUntagMask; const uintptr_t base = Derived::CageBase(); #endif for (; begin < end; begin += sizeof(uintptr_t)) { @@ -126,7 +129,10 @@ // vmovdqa (_mm256_load_si256) is twice smaller (0.25) than that of vmovapd // (_mm256_load_pd). const __m256i vbase = _mm256_set1_epi64x(derived().CageBase()); - const __m256i cage_mask = _mm256_set1_epi64x(derived().CageMask()); + // If the read value is a pointer into the PA region, it's likely + // MTE-tagged. Piggyback on |cage_mask| to untag, for efficiency. + const __m256i cage_mask = + _mm256_set1_epi64x(derived().CageMask() & kPtrUntagMask); static_assert(sizeof(__m256i) == kBytesInVector); for (; begin <= (end - kBytesInVector); begin += kBytesInVector) { @@ -162,7 +168,10 @@ static constexpr size_t kBytesInVector = kWordsInVector * sizeof(uintptr_t); PA_SCAN_DCHECK(!(begin % kAlignmentRequirement)); const __m128i vbase = _mm_set1_epi64x(derived().CageBase()); - const __m128i cage_mask = _mm_set1_epi64x(derived().CageMask()); + // If the read value is a pointer into the PA region, it's likely + // MTE-tagged. Piggyback on |cage_mask| to untag, for efficiency. + const __m128i cage_mask = + _mm_set1_epi64x(derived().CageMask() & kPtrUntagMask); static_assert(sizeof(__m128i) == kBytesInVector); for (; begin <= (end - kBytesInVector); begin += kBytesInVector) { @@ -200,7 +209,10 @@ static constexpr size_t kBytesInVector = kWordsInVector * sizeof(uintptr_t); PA_SCAN_DCHECK(!(begin % kAlignmentRequirement)); const uint64x2_t vbase = vdupq_n_u64(derived().CageBase()); - const uint64x2_t cage_mask = vdupq_n_u64(derived().CageMask()); + // If the read value is a pointer into the PA region, it's likely + // MTE-tagged. Piggyback on |cage_mask| to untag, for efficiency. + const uint64x2_t cage_mask = + vdupq_n_u64(derived().CageMask() & kPtrUntagMask); for (; begin <= (end - kBytesInVector); begin += kBytesInVector) { // Keep it MTE-untagged. See DisableMTEScope for details.
diff --git a/base/allocator/partition_allocator/starscan/scan_loop_unittest.cc b/base/allocator/partition_allocator/starscan/scan_loop_unittest.cc index 436ecf3..db81fa7 100644 --- a/base/allocator/partition_allocator/starscan/scan_loop_unittest.cc +++ b/base/allocator/partition_allocator/starscan/scan_loop_unittest.cc
@@ -28,7 +28,7 @@ private: static constexpr uintptr_t kCageMask = 0xffffff0000000000; - static constexpr uintptr_t kBasePtr = 0x1234560000000000; + static constexpr uintptr_t kBasePtr = 0x0000560000000000; static uintptr_t CageBase() { return kBasePtr; } static uintptr_t CageMask() { return kCageMask; } @@ -38,8 +38,8 @@ size_t visited_ = 0; }; -static constexpr uintptr_t kValidPtr = 0x123456789abcdef0; -static constexpr uintptr_t kInvalidPtr = 0xaaaaaaaaaaaaaaaa; +static constexpr uintptr_t kValidPtr = 0x000056789abcdef0; +static constexpr uintptr_t kInvalidPtr = 0x0000aaaaaaaaaaaa; static constexpr uintptr_t kZeroPtr = 0x0; // Tests all possible compbinations of incoming args.
diff --git a/base/allocator/partition_allocator/tagging.h b/base/allocator/partition_allocator/tagging.h index b1135af..f18959b 100644 --- a/base/allocator/partition_allocator/tagging.h +++ b/base/allocator/partition_allocator/tagging.h
@@ -39,10 +39,11 @@ constexpr int kMemTagGranuleSize = 16u; #if defined(PA_HAS_MEMORY_TAGGING) -constexpr uint64_t kMemTagUnmask = 0x00ffffffffffffffuLL; +constexpr uint64_t kPtrTagMask = 0xff00000000000000uLL; #else -constexpr uint64_t kMemTagUnmask = 0xffffffffffffffffuLL; +constexpr uint64_t kPtrTagMask = 0; #endif // defined(PA_HAS_MEMORY_TAGGING) +constexpr uint64_t kPtrUntagMask = ~kPtrTagMask; #if BUILDFLAG(IS_ANDROID) // Changes the memory tagging mode for all threads in the current process. @@ -86,6 +87,7 @@ // (e.g. free). Returns the pointer with the new tag. Ensures that the entire // range is set to the same tag. // TODO(bartekn): Remove the T* variant. +// TODO(bartekn): Consider removing the return value. template <typename T> PA_ALWAYS_INLINE T* TagMemoryRangeIncrement(T* ptr, size_t size) { #if defined(PA_HAS_MEMORY_TAGGING) @@ -94,9 +96,8 @@ return ptr; #endif } -PA_ALWAYS_INLINE uintptr_t TagMemoryRangeIncrement(uintptr_t ptr, size_t size) { - return reinterpret_cast<uintptr_t>( - TagMemoryRangeIncrement(reinterpret_cast<void*>(ptr), size)); +PA_ALWAYS_INLINE void* TagMemoryRangeIncrement(uintptr_t ptr, size_t size) { + return TagMemoryRangeIncrement(reinterpret_cast<void*>(ptr), size); } // Randomly changes the tag of the ptr memory range. Useful for initial random @@ -114,46 +115,45 @@ return ptr; #endif } -PA_ALWAYS_INLINE uintptr_t TagMemoryRangeRandomly(uintptr_t ptr, - size_t size, - uint64_t mask = 0u) { - return reinterpret_cast<uintptr_t>( - TagMemoryRangeRandomly(reinterpret_cast<void*>(ptr), size, mask)); +PA_ALWAYS_INLINE void* TagMemoryRangeRandomly(uintptr_t ptr, + size_t size, + uint64_t mask = 0u) { + return TagMemoryRangeRandomly(reinterpret_cast<void*>(ptr), size, mask); } // Gets a version of ptr that's safe to dereference. -// TODO(bartekn): Remove the T* variant. template <typename T> -PA_ALWAYS_INLINE T* RemaskPtr(T* ptr) { +PA_ALWAYS_INLINE T* TagPtr(T* ptr) { #if defined(PA_HAS_MEMORY_TAGGING) return reinterpret_cast<T*>(global_remask_void_ptr_fn(ptr)); #else return ptr; #endif } -// Gets a version of address that's safe to dereference, if cast to a pointer. -PA_ALWAYS_INLINE uintptr_t RemaskPtr(uintptr_t address) { - return reinterpret_cast<uintptr_t>( - RemaskPtr(reinterpret_cast<void*>(address))); + +// Gets a version of |address| that's safe to dereference, and casts to a +// pointer. +PA_ALWAYS_INLINE void* TagAddr(uintptr_t address) { + return TagPtr(reinterpret_cast<void*>(address)); } -// Strips the tag bits off address. -PA_ALWAYS_INLINE uintptr_t UnmaskPtr(uintptr_t address) { +// Strips the tag bits off |address|. +PA_ALWAYS_INLINE uintptr_t UntagAddr(uintptr_t address) { #if defined(PA_HAS_MEMORY_TAGGING) - return address & kMemTagUnmask; + return address & internal::kPtrUntagMask; #else return address; #endif } -// Strips the tag bits off ptr. -// TODO(bartekn): Remove the T* variant. -template <typename T> -PA_ALWAYS_INLINE T* UnmaskPtr(T* ptr) { - return reinterpret_cast<T*>(UnmaskPtr(reinterpret_cast<uintptr_t>(ptr))); -} } // namespace internal +// Strips the tag bits off |ptr|. +template <typename T> +PA_ALWAYS_INLINE uintptr_t UntagPtr(T* ptr) { + return internal::UntagAddr(reinterpret_cast<uintptr_t>(ptr)); +} + } // namespace partition_alloc #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_TAGGING_H_
diff --git a/base/allocator/partition_allocator/tagging_unittest.cc b/base/allocator/partition_allocator/tagging_unittest.cc index 306c880..37008660 100644 --- a/base/allocator/partition_allocator/tagging_unittest.cc +++ b/base/allocator/partition_allocator/tagging_unittest.cc
@@ -21,10 +21,9 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = - TagMemoryRangeRandomly(buffer, 4 * kMemTagGranuleSize, 0u); + void* bufferp = TagMemoryRangeRandomly(buffer, 4 * kMemTagGranuleSize, 0u); EXPECT_TRUE(bufferp); - int* buffer0 = reinterpret_cast<int*>(bufferp); + int* buffer0 = static_cast<int*>(bufferp); *buffer0 = 42; EXPECT_EQ(42, *buffer0); FreePages(buffer, PageAllocationGranularity()); @@ -37,13 +36,13 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = TagMemoryRangeIncrement(buffer, 4 * kMemTagGranuleSize); + void* bufferp = TagMemoryRangeIncrement(buffer, 4 * kMemTagGranuleSize); EXPECT_TRUE(bufferp); - int* buffer0 = reinterpret_cast<int*>(bufferp); + int* buffer0 = static_cast<int*>(bufferp); *buffer0 = 42; EXPECT_EQ(42, *buffer0); if (cpu.has_mte()) { - EXPECT_NE(bufferp, buffer); + EXPECT_NE(bufferp, reinterpret_cast<void*>(buffer)); } FreePages(buffer, PageAllocationGranularity()); } @@ -57,10 +56,10 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = + void* bufferp = TagMemoryRangeRandomly(buffer, 4 * kMemTagGranuleSize - 1, 0u); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); } @@ -72,9 +71,9 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = TagMemoryRangeRandomly(buffer, 0, 0u); + void* bufferp = TagMemoryRangeRandomly(buffer, 0, 0u); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); } @@ -86,10 +85,10 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = + void* bufferp = TagMemoryRangeRandomly(buffer - 1, 4 * kMemTagGranuleSize, 0u); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); } @@ -101,10 +100,9 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = - TagMemoryRangeIncrement(buffer, 4 * kMemTagGranuleSize - 1); + void* bufferp = TagMemoryRangeIncrement(buffer, 4 * kMemTagGranuleSize - 1); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); } @@ -116,9 +114,9 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = TagMemoryRangeIncrement(buffer, 0); + void* bufferp = TagMemoryRangeIncrement(buffer, 0); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); } @@ -130,10 +128,9 @@ PageAllocationGranularity(), PageAllocationGranularity(), PageAccessibilityConfiguration::kReadWriteTagged, PageTag::kChromium); EXPECT_TRUE(buffer); - uintptr_t bufferp = - TagMemoryRangeIncrement(buffer - 1, 4 * kMemTagGranuleSize); + void* bufferp = TagMemoryRangeIncrement(buffer - 1, 4 * kMemTagGranuleSize); if (cpu.has_mte()) { - EXPECT_EQ(bufferp, 0u); + EXPECT_FALSE(bufferp); } FreePages(buffer, PageAllocationGranularity()); }
diff --git a/base/allocator/partition_allocator/thread_cache.cc b/base/allocator/partition_allocator/thread_cache.cc index c09ac4e4a..7c23f071 100644 --- a/base/allocator/partition_allocator/thread_cache.cc +++ b/base/allocator/partition_allocator/thread_cache.cc
@@ -10,6 +10,7 @@ #include <atomic> #include <cstdint> +#include "base/allocator/partition_allocator/partition_alloc-inl.h" #include "base/allocator/partition_allocator/partition_alloc_base/component_export.h" #include "base/allocator/partition_allocator/partition_alloc_base/cxx17_backports.h" #include "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h" @@ -452,7 +453,8 @@ uintptr_t buffer = root->RawAlloc(bucket, AllocFlags::kZeroFill, raw_size, internal::PartitionPageSize(), &usable_size, &already_zeroed); - ThreadCache* tcache = new (reinterpret_cast<void*>(buffer)) ThreadCache(root); + ThreadCache* tcache = + new (internal::SlotStartAddr2Ptr(buffer)) ThreadCache(root); // This may allocate. internal::PartitionTlsSet(internal::g_thread_cache_key, tcache); @@ -519,12 +521,16 @@ auto* root = tcache->root_; tcache->~ThreadCache(); - root->RawFree(reinterpret_cast<uintptr_t>(tcache_ptr)); + // TreadCache was allocated using RawAlloc() and SlotStartAddr2Ptr(), so it + // shifted by extras, but is MTE-tagged. + root->RawFree(internal::SlotStartPtr2Addr(tcache_ptr)); #if BUILDFLAG(IS_WIN) // On Windows, allocations do occur during thread/process teardown, make sure // they don't resurrect the thread cache. // + // Don't MTE-tag, as it'd mess with the sentinel value. + // // TODO(lizeb): Investigate whether this is needed on POSIX as well. internal::PartitionTlsSet(internal::g_thread_cache_key, reinterpret_cast<void*>(kTombstone)); @@ -679,7 +685,7 @@ // acquisitions can be expensive. internal::ScopedGuard guard(root_->lock_); while (head) { - uintptr_t slot_start = reinterpret_cast<uintptr_t>(head); + uintptr_t slot_start = internal::SlotStartPtr2Addr(head); head = head->GetNextForThreadCache<crash_on_corruption>(slot_size); root_->RawFreeLocked(slot_start); }
diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h index dfb87c24b..5f58918 100644 --- a/base/allocator/partition_allocator/thread_cache.h +++ b/base/allocator/partition_allocator/thread_cache.h
@@ -10,6 +10,7 @@ #include <limits> #include <memory> +#include "base/allocator/partition_allocator/partition_alloc-inl.h" #include "base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h" #include "base/allocator/partition_allocator/partition_alloc_base/component_export.h" #include "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h" @@ -247,16 +248,19 @@ #if defined(PA_THREAD_CACHE_FAST_TLS) return internal::g_thread_cache; #else + // This region isn't MTE-tagged. return reinterpret_cast<ThreadCache*>( internal::PartitionTlsGet(internal::g_thread_cache_key)); #endif } static bool IsValid(ThreadCache* tcache) { + // Do not MTE-untag, as it'd mess up the sentinel value. return reinterpret_cast<uintptr_t>(tcache) & kTombstoneMask; } static bool IsTombstone(ThreadCache* tcache) { + // Do not MTE-untag, as it'd mess up the sentinel value. return reinterpret_cast<uintptr_t>(tcache) == kTombstone; } @@ -527,14 +531,14 @@ } PA_DCHECK(bucket.count != 0); - internal::PartitionFreelistEntry* result = bucket.freelist_head; + internal::PartitionFreelistEntry* entry = bucket.freelist_head; // Passes the bucket size to |GetNext()|, so that in case of freelist // corruption, we know the bucket size that lead to the crash, helping to // narrow down the search for culprit. |bucket| was touched just now, so this // does not introduce another cache miss. internal::PartitionFreelistEntry* next = - result->GetNextForThreadCache<true>(bucket.slot_size); - PA_DCHECK(result != next); + entry->GetNextForThreadCache<true>(bucket.slot_size); + PA_DCHECK(entry != next); bucket.count--; PA_DCHECK(bucket.count != 0 || !next); bucket.freelist_head = next; @@ -542,7 +546,7 @@ PA_DCHECK(cached_memory_ >= bucket.slot_size); cached_memory_ -= bucket.slot_size; - return reinterpret_cast<uintptr_t>(result); + return internal::SlotStartPtr2Addr(entry); } PA_ALWAYS_INLINE void ThreadCache::PutInBucket(Bucket& bucket, @@ -565,19 +569,22 @@ static_assert(internal::kAlignment == 16, ""); #if PA_HAS_BUILTIN(__builtin_assume_aligned) - uintptr_t address = reinterpret_cast<uintptr_t>(__builtin_assume_aligned( - reinterpret_cast<void*>(slot_start), internal::kAlignment)); + // Cast back to uintptr_t, because we need it for pointer arithmetic. Make + // sure it gets MTE-tagged, as we cast it later to a pointer and dereference. + uintptr_t address_tagged = + reinterpret_cast<uintptr_t>(__builtin_assume_aligned( + internal::SlotStartAddr2Ptr(slot_start), internal::kAlignment)); #else - uintptr_t address = slot_start; + uintptr_t address_tagged = internal::SlotStartAddr2Ptr(slot_start); #endif // The pointer is always 16 bytes aligned, so its start address is always == 0 - // % 16. Its distance to the next cacheline is 64 - ((address & 63) / 16) * - // 16. + // % 16. Its distance to the next cacheline is `64 - ((address_tagged & 63) / + // 16) * 16`. static_assert( internal::kPartitionCachelineSize == 64, "The computation below assumes that cache lines are 64 bytes long."); - int distance_to_next_cacheline_in_16_bytes = 4 - ((address >> 4) & 3); + int distance_to_next_cacheline_in_16_bytes = 4 - ((address_tagged >> 4) & 3); int slot_size_remaining_in_16_bytes = #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) // When BRP is on in the "previous slot" mode, this slot may have a BRP @@ -593,8 +600,8 @@ static const uint32_t poison_16_bytes[4] = {0xbadbad00, 0xbadbad00, 0xbadbad00, 0xbadbad00}; - uint32_t* address_aligned = reinterpret_cast<uint32_t*>(address); - + // Already MTE-tagged above, so safe to dereference. + uint32_t* address_aligned = reinterpret_cast<uint32_t*>(address_tagged); for (int i = 0; i < slot_size_remaining_in_16_bytes; i++) { // Clang will expand the memcpy to a 16-byte write (movups on x86). memcpy(address_aligned, poison_16_bytes, sizeof(poison_16_bytes));
diff --git a/base/allocator/partition_allocator/thread_cache_unittest.cc b/base/allocator/partition_allocator/thread_cache_unittest.cc index 6b2ddad..6513217 100644 --- a/base/allocator/partition_allocator/thread_cache_unittest.cc +++ b/base/allocator/partition_allocator/thread_cache_unittest.cc
@@ -206,7 +206,8 @@ EXPECT_EQ(kFillCountForSmallBucket, tcache->bucket_count_for_testing(index)); void* ptr2 = root_->Alloc(kSmallSize, ""); - EXPECT_EQ(internal::UnmaskPtr(ptr), internal::UnmaskPtr(ptr2)); + // MTE-untag, because Free() changes tag. + EXPECT_EQ(UntagPtr(ptr), UntagPtr(ptr2)); // Allocated from the thread cache. EXPECT_EQ(kFillCountForSmallBucket - 1, tcache->bucket_count_for_testing(index)); @@ -233,7 +234,8 @@ EXPECT_EQ(kFillCountForSmallBucket, tcache->bucket_count_for_testing(index)); void* ptr2 = root_->Alloc(kSmallSize + 1, ""); - EXPECT_EQ(internal::UnmaskPtr(ptr), internal::UnmaskPtr(ptr2)); + // MTE-untag, because Free() changes tag. + EXPECT_EQ(UntagPtr(ptr), UntagPtr(ptr2)); // Allocated from the thread cache. EXPECT_EQ(kFillCountForSmallBucket - 1, tcache->bucket_count_for_testing(index)); @@ -463,8 +465,7 @@ void* this_thread_ptr = root_->Alloc(kMediumSize, ""); // |other_thread_ptr| was returned to the central allocator, and is returned // here, as it comes from the freelist. - EXPECT_EQ(internal::UnmaskPtr(this_thread_ptr), - internal::UnmaskPtr(other_thread_ptr)); + EXPECT_EQ(UntagPtr(this_thread_ptr), UntagPtr(other_thread_ptr)); root_->Free(other_thread_ptr); for (void* ptr : tmp)
diff --git a/base/check.cc b/base/check.cc index 3e67bd2..fb19c25 100644 --- a/base/check.cc +++ b/base/check.cc
@@ -30,16 +30,16 @@ namespace { -#if defined(DCHECK_IS_CONFIGURABLE) +// DCHECK_IS_CONFIGURABLE and ENABLE_LOG_ERROR_NOT_REACHED are both interested +// in non-FATAL DCHECK()/NOTREACHED() reports. +#if defined(DCHECK_IS_CONFIGURABLE) || BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) void DCheckDumpOnceWithoutCrashing(LogMessage* log_message) { // Best-effort gate to prevent multiple DCHECKs from being dumped. This will // race if multiple threads DCHECK at the same time, but we'll eventually stop // reporting and at most report once per thread. static std::atomic<bool> has_dumped = false; if (!has_dumped.load(std::memory_order_relaxed)) { - const std::string str = base::StringPrintf( - "%s:%d: %s", log_message->file(), log_message->line(), - log_message->GetMessageWithoutPrefix().c_str()); + const std::string str = log_message->BuildCrashString(); // Copy the LogMessage message to stack memory to make sure it can be // recovered in crash dumps. // TODO(pbos): Surface DCHECK_MESSAGE well in crash reporting to make this @@ -58,6 +58,21 @@ } } +class NotReachedLogMessage : public LogMessage { + public: + using LogMessage::LogMessage; + ~NotReachedLogMessage() override { + if (severity() != logging::LOGGING_FATAL) + DCheckDumpOnceWithoutCrashing(this); + } +}; +#else +using NotReachedLogMessage = LogMessage; +#endif // defined(DCHECK_IS_CONFIGURABLE) || + // BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) + +#if defined(DCHECK_IS_CONFIGURABLE) + class DCheckLogMessage : public LogMessage { public: using LogMessage::LogMessage; @@ -88,11 +103,11 @@ #endif // BUILDFLAG(IS_WIN) #else static_assert(logging::LOGGING_DCHECK == logging::LOGGING_FATAL); -typedef LogMessage DCheckLogMessage; +using DCheckLogMessage = LogMessage; #if BUILDFLAG(IS_WIN) -typedef Win32ErrorLogMessage DCheckWin32ErrorLogMessage; +using DCheckWin32ErrorLogMessage = Win32ErrorLogMessage; #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) -typedef ErrnoLogMessage DCheckErrnoLogMessage; +using DCheckErrnoLogMessage = ErrnoLogMessage; #endif // BUILDFLAG(IS_WIN) #endif // defined(DCHECK_IS_CONFIGURABLE) @@ -176,6 +191,17 @@ return CheckError(log_message); } +CheckError CheckError::NotReached(const char* file, int line) { + // Outside DCHECK builds NOTREACHED() should not be FATAL. For now. + const LogSeverity severity = DCHECK_IS_ON() ? LOGGING_DCHECK : LOGGING_ERROR; + auto* const log_message = new NotReachedLogMessage(file, line, severity); + + // TODO(pbos): Consider a better message for NotReached(), this is here to + // match existing behavior + test expectations. + log_message->stream() << "Check failed: false. "; + return CheckError(log_message); +} + std::ostream& CheckError::stream() { return log_message_->stream(); }
diff --git a/base/check.h b/base/check.h index 7561cd3..b2db7d2f 100644 --- a/base/check.h +++ b/base/check.h
@@ -82,6 +82,8 @@ int line, const char* function); + static CheckError NotReached(const char* file, int line); + // Stream for adding optional details to the error message. std::ostream& stream();
diff --git a/base/logging.cc b/base/logging.cc index e69a5b2..20f964f 100644 --- a/base/logging.cc +++ b/base/logging.cc
@@ -911,8 +911,22 @@ } } -std::string LogMessage::GetMessageWithoutPrefix() const { - return str().substr(message_start_); +std::string LogMessage::BuildCrashString() const { + return BuildCrashString(file(), line(), str().c_str() + message_start_); +} + +std::string LogMessage::BuildCrashString(const char* file, + int line, + const char* message_without_prefix) { + // Only log last path component. + if (file) { + const char* slash = strrchr(file, '/'); + if (slash) { + file = slash + 1; + } + } + + return base::StringPrintf("%s:%d: %s", file, line, message_without_prefix); } // writes the common header info to the stream
diff --git a/base/logging.h b/base/logging.h index 752286e..0885068c 100644 --- a/base/logging.h +++ b/base/logging.h
@@ -651,8 +651,11 @@ const char* file() const { return file_; } int line() const { return line_; } - // Gets the log message (w/o prefix). - std::string GetMessageWithoutPrefix() const; + // Gets file:line: message in a format suitable for crash reporting. + std::string BuildCrashString() const; + static std::string BuildCrashString(const char* file, + int line, + const char* message_without_prefix); private: void Init(const char* file, int line);
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc index feba067..985216c 100644 --- a/base/logging_unittest.cc +++ b/base/logging_unittest.cc
@@ -905,12 +905,14 @@ } } -TEST_F(LoggingTest, GetMessageWithoutPrefixStripsPrefix) { - EXPECT_EQ("", LogMessage("", 0, LOGGING_ERROR).GetMessageWithoutPrefix()); +TEST_F(LoggingTest, BuildCrashString) { + EXPECT_EQ("file.cc:42: ", + LogMessage("file.cc", 42, LOGGING_ERROR).BuildCrashString()); - LogMessage msg("", 0, LOGGING_ERROR); + // BuildCrashString() should strip path/to/file prefix. + LogMessage msg("../foo/bar/file.cc", 42, LOGGING_ERROR); msg.stream() << "Hello"; - EXPECT_EQ("Hello", msg.GetMessageWithoutPrefix()); + EXPECT_EQ("file.cc:42: Hello", msg.BuildCrashString()); } #if !BUILDFLAG(USE_RUNTIME_VLOG)
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h index 3892048..99a4c9d 100644 --- a/base/memory/raw_ptr.h +++ b/base/memory/raw_ptr.h
@@ -143,7 +143,7 @@ // MTECheckedPtr has no business with the topmost bits reserved for the // tag used by true ARM MTE, so we strip it out here. constexpr uintptr_t kTagMask = - ~kAddressMask & partition_alloc::internal::kMemTagUnmask; + ~kAddressMask & partition_alloc::internal::kPtrUntagMask; constexpr int kTopBitShift = 63; constexpr uintptr_t kTopBit = 1ull << kTopBitShift; @@ -157,19 +157,20 @@ // Checks if the necessary support is enabled in PartitionAlloc for `ptr`. template <typename T> static ALWAYS_INLINE bool EnabledForPtr(T* ptr) { - auto as_uintptr = - partition_alloc::internal::UnmaskPtr(reinterpret_cast<uintptr_t>(ptr)); + // Disambiguation: UntagPtr removes the hardware MTE tag, whereas this class + // is responsible for handling the software MTE tag. + auto addr = partition_alloc::UntagPtr(ptr); // MTECheckedPtr algorithms work only when memory is // allocated by PartitionAlloc, from normal buckets pool. // // TODO(crbug.com/1307514): Allow direct-map buckets. - return partition_alloc::IsManagedByPartitionAlloc(as_uintptr) && - partition_alloc::internal::IsManagedByNormalBuckets(as_uintptr); + return partition_alloc::IsManagedByPartitionAlloc(addr) && + partition_alloc::internal::IsManagedByNormalBuckets(addr); } - // Returns pointer to the tag that protects are pointed by |ptr|. - static ALWAYS_INLINE void* TagPointer(uintptr_t ptr) { - return partition_alloc::PartitionTagPointer(ptr); + // Returns pointer to the tag that protects are pointed by |addr|. + static ALWAYS_INLINE void* TagPointer(uintptr_t addr) { + return partition_alloc::PartitionTagPointer(addr); } }; @@ -184,13 +185,15 @@ // Wraps a pointer, and returns its uintptr_t representation. template <typename T> static ALWAYS_INLINE T* WrapRawPtr(T* ptr) { - uintptr_t addr = reinterpret_cast<uintptr_t>(ptr); + // Disambiguation: UntagPtr removes the hardware MTE tag, whereas this + // function is responsible for adding the software MTE tag. + uintptr_t addr = partition_alloc::UntagPtr(ptr); DCHECK_EQ(ExtractTag(addr), 0ull); // Return a not-wrapped |addr|, if it's either nullptr or if the protection // for this pointer is disabled. if (!PartitionAllocSupport::EnabledForPtr(ptr)) { - return reinterpret_cast<T*>(addr); + return ptr; } // Read the tag and place it in the top bits of the address. @@ -202,7 +205,10 @@ tag <<= kValidAddressBits; addr |= tag; - return reinterpret_cast<T*>(addr); + // See the disambiguation comment above. + // TODO(kdlee): Ensure that ptr's hardware MTE tag is preserved. + // TODO(kdlee): Ensure that hardware and software MTE tags don't conflict. + return static_cast<T*>(partition_alloc::internal::TagAddr(addr)); } // Notifies the allocator when a wrapped pointer is being removed or replaced. @@ -214,7 +220,9 @@ // hasn't been freed. The function is allowed to crash on nullptr. template <typename T> static ALWAYS_INLINE T* SafelyUnwrapPtrForDereference(T* wrapped_ptr) { - uintptr_t wrapped_addr = reinterpret_cast<uintptr_t>(wrapped_ptr); + // Disambiguation: UntagPtr removes the hardware MTE tag, whereas this + // function is responsible for removing the software MTE tag. + uintptr_t wrapped_addr = partition_alloc::UntagPtr(wrapped_ptr); uintptr_t tag = ExtractTag(wrapped_addr); if (tag > 0) { // Read the tag provided by PartitionAlloc. @@ -227,7 +235,11 @@ PartitionAllocSupport::TagPointer(ExtractAddress(wrapped_addr))); if (UNLIKELY(tag != read_tag)) IMMEDIATE_CRASH(); - return reinterpret_cast<T*>(ExtractAddress(wrapped_addr)); + // See the disambiguation comment above. + // TODO(kdlee): Ensure that ptr's hardware MTE tag is preserved. + // TODO(kdlee): Ensure that hardware and software MTE tags don't conflict. + return static_cast<T*>( + partition_alloc::internal::TagAddr(ExtractAddress(wrapped_addr))); } return wrapped_ptr; } @@ -284,8 +296,12 @@ template <typename T> static ALWAYS_INLINE T* ExtractPtr(T* wrapped_ptr) { - return reinterpret_cast<T*>( - ExtractAddress(reinterpret_cast<uintptr_t>(wrapped_ptr))); + // Disambiguation: UntagPtr/TagAddr handle the hardware MTE tag, whereas + // this function is responsible for removing the software MTE tag. + // TODO(kdlee): Ensure that wrapped_ptr's hardware MTE tag is preserved. + // TODO(kdlee): Ensure that hardware and software MTE tags don't conflict. + return static_cast<T*>(partition_alloc::internal::TagAddr( + ExtractAddress(partition_alloc::UntagPtr(wrapped_ptr)))); } static ALWAYS_INLINE uintptr_t ExtractTag(uintptr_t wrapped_ptr) { @@ -363,7 +379,7 @@ // Wraps a pointer. template <typename T> static ALWAYS_INLINE T* WrapRawPtr(T* ptr) { - uintptr_t address = reinterpret_cast<uintptr_t>(ptr); + uintptr_t address = partition_alloc::UntagPtr(ptr); if (IsSupportedAndNotNull(address)) { #if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) CHECK(ptr != nullptr); @@ -383,7 +399,7 @@ // Notifies the allocator when a wrapped pointer is being removed or replaced. template <typename T> static ALWAYS_INLINE void ReleaseWrappedPtr(T* wrapped_ptr) { - uintptr_t address = reinterpret_cast<uintptr_t>(wrapped_ptr); + uintptr_t address = partition_alloc::UntagPtr(wrapped_ptr); if (IsSupportedAndNotNull(address)) { #if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) CHECK(wrapped_ptr != nullptr); @@ -404,7 +420,7 @@ template <typename T> static ALWAYS_INLINE T* SafelyUnwrapPtrForDereference(T* wrapped_ptr) { #if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) - uintptr_t address = reinterpret_cast<uintptr_t>(wrapped_ptr); + uintptr_t address = partition_alloc::UntagPtr(wrapped_ptr); if (IsSupportedAndNotNull(address)) { CHECK(wrapped_ptr != nullptr); CHECK(IsPointeeAlive(address)); @@ -443,7 +459,7 @@ typename = std::enable_if_t<offset_type<Z>, void>> static ALWAYS_INLINE T* Advance(T* wrapped_ptr, Z delta_elems) { #if DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) - uintptr_t address = reinterpret_cast<uintptr_t>(wrapped_ptr); + uintptr_t address = partition_alloc::UntagPtr(wrapped_ptr); if (IsSupportedAndNotNull(address)) CHECK(IsValidDelta(address, delta_elems * sizeof(T))); #endif
diff --git a/base/memory/raw_ptr_unittest.cc b/base/memory/raw_ptr_unittest.cc index c0541f59..584b149 100644 --- a/base/memory/raw_ptr_unittest.cc +++ b/base/memory/raw_ptr_unittest.cc
@@ -1075,15 +1075,15 @@ // The allocator should not be able to reuse the slot at this point. void* raw_ptr2 = allocator.root()->Alloc(sizeof(int), ""); - EXPECT_NE(::partition_alloc::internal::UnmaskPtr(raw_ptr1), - ::partition_alloc::internal::UnmaskPtr(raw_ptr2)); + EXPECT_NE(partition_alloc::UntagPtr(raw_ptr1), + partition_alloc::UntagPtr(raw_ptr2)); allocator.root()->Free(raw_ptr2); // When the last reference is released, the slot should become reusable. wrapped_ptr1 = nullptr; void* raw_ptr3 = allocator.root()->Alloc(sizeof(int), ""); - EXPECT_EQ(::partition_alloc::internal::UnmaskPtr(raw_ptr1), - ::partition_alloc::internal::UnmaskPtr(raw_ptr3)); + EXPECT_EQ(partition_alloc::UntagPtr(raw_ptr1), + partition_alloc::UntagPtr(raw_ptr3)); allocator.root()->Free(raw_ptr3); #endif // DCHECK_IS_ON() || BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS) }
diff --git a/base/notreached.cc b/base/notreached.cc deleted file mode 100644 index 734da14..0000000 --- a/base/notreached.cc +++ /dev/null
@@ -1,23 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/notreached.h" -#include "base/base_export.h" - -// This is a widely included header and its size has significant impact on -// build time. Try not to raise this limit unless absolutely necessary. See -// https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md -#ifndef NACL_TC_REV -#pragma clang max_tokens_here 17000 -#endif - -#include "base/logging.h" - -namespace logging { - -BASE_EXPORT void LogErrorNotReached(const char* file, int line) { - LogMessage(file, line, LOG_ERROR).stream() << "NOTREACHED() hit."; -} - -} // namespace logging
diff --git a/base/notreached.h b/base/notreached.h index 293451a2..044e7067 100644 --- a/base/notreached.h +++ b/base/notreached.h
@@ -12,14 +12,14 @@ namespace logging { -#if BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) -void BASE_EXPORT LogErrorNotReached(const char* file, int line); -#define NOTREACHED() \ - true ? ::logging::LogErrorNotReached(__FILE__, __LINE__) \ - : EAT_CHECK_STREAM_PARAMS() +// Under these conditions NOTREACHED() will effectively either log or DCHECK. +#if BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) || DCHECK_IS_ON() +#define NOTREACHED() \ + LAZY_CHECK_STREAM( \ + ::logging::CheckError::NotReached(__FILE__, __LINE__).stream(), true) #else -#define NOTREACHED() DCHECK(false) -#endif +#define NOTREACHED() EAT_CHECK_STREAM_PARAMS() +#endif // BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED) || DCHECK_IS_ON() // The NOTIMPLEMENTED() macro annotates codepaths which have not been // implemented yet. If output spam is a serious concern,
diff --git a/base/win/registry.cc b/base/win/registry.cc index 6b535aa..41e221b 100644 --- a/base/win/registry.cc +++ b/base/win/registry.cc
@@ -259,6 +259,14 @@ return (result == ERROR_SUCCESS) ? count : 0; } +FILETIME RegKey::GetLastWriteTime() const { + FILETIME last_write_time; + LONG result = RegQueryInfoKey(key_, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, &last_write_time); + return (result == ERROR_SUCCESS) ? last_write_time : FILETIME{}; +} + LONG RegKey::GetValueNameAt(DWORD index, std::wstring* name) const { wchar_t buf[256]; DWORD bufsize = std::size(buf);
diff --git a/base/win/registry.h b/base/win/registry.h index 00a7f90..e9a4322e 100644 --- a/base/win/registry.h +++ b/base/win/registry.h
@@ -76,6 +76,9 @@ // determined. DWORD GetValueCount() const; + // Returns the last write time. + FILETIME GetLastWriteTime() const; + // Determines the nth value's name. LONG GetValueNameAt(DWORD index, std::wstring* name) const;
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index e6ff4dfb..43cc496 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -421,6 +421,22 @@ } } + # Apple compiler flags setup. + # --------------------------------- + if (is_apple) { + # On Intel, clang emits both Apple's "compact unwind" information and + # DWARF eh_frame unwind information by default, for compatibility reasons. + # This flag tells it to emit eh_frame informantion only for functions + # whose unwind information can't be expressed in the compact unwind format + # (which in practice means almost everything gets only compact unwind + # entries). This reduces object file size a bit and makes linking a bit + # faster. + # On arm64, this is already the default behavior. + if (current_cpu == "x64") { + cflags += [ "-femit-dwarf-unwind=no-compact-unwind" ] + } + } + # Linux/Android/Fuchsia common flags setup. # --------------------------------- if (is_linux || is_chromeos || is_android || is_fuchsia) { @@ -725,9 +741,7 @@ if (use_lld && !enable_call_graph_profile_sort) { if (is_win) { ldflags += [ "/call-graph-profile-sort:no" ] - } else if (!is_apple) { - # TODO(thakis): Once LLD's Mach-O port basically works, implement call - # graph profile sorting for it, add an opt-out flag, and pass it here. + } else { ldflags += [ "-Wl,--no-call-graph-profile-sort" ] } }
diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn index de0c230..d6926f7 100644 --- a/build/linux/unbundle/libwebp.gn +++ b/build/linux/unbundle/libwebp.gn
@@ -14,7 +14,7 @@ } shim_headers("libwebp_shim") { - root_path = "src" + root_path = "src/src" headers = [ "webp/decode.h", "webp/demux.h",
diff --git a/chrome/VERSION b/chrome/VERSION index ed176ff..b23a5a9c 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=105 MINOR=0 -BUILD=5180 +BUILD=5181 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java index 62990d3..11a61b5 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -165,6 +165,9 @@ private static final String ON_RESIZED_CALLBACK = "onResized"; private static final String ON_RESIZED_SIZE_EXTRA = "size"; + private static final String ON_VERTICAL_SCROLL_EVENT_CALLBACK = "onVerticalScrollEvent"; + private static final String ON_VERTICAL_SCROLL_EVENT_IS_DIRECTION_UP_EXTRA = "isDirectionUp"; + @IntDef({ParallelRequestStatus.NO_REQUEST, ParallelRequestStatus.SUCCESS, ParallelRequestStatus.FAILURE_NOT_INITIALIZED, ParallelRequestStatus.FAILURE_NOT_AUTHORIZED, ParallelRequestStatus.FAILURE_INVALID_URL, @@ -1140,6 +1143,22 @@ } /** + * Notifies the application of a vertical scroll event, i.e. when a scroll started or changed + * direction. + * + * @param session The Binder object identifying the session. + * @param isDirectionUp Whether the scroll direction is up. + */ + public void notifyVerticalScrollEvent(CustomTabsSessionToken session, boolean isDirectionUp) { + Bundle args = new Bundle(); + args.putBoolean(ON_VERTICAL_SCROLL_EVENT_IS_DIRECTION_UP_EXTRA, isDirectionUp); + + if (safeExtraCallback(session, ON_VERTICAL_SCROLL_EVENT_CALLBACK, args)) { + logCallback("extraCallback(" + ON_VERTICAL_SCROLL_EVENT_CALLBACK + ")", args); + } + } + + /** * Notifies the application of a navigation event. * * Delivers the {@link CustomTabsCallback#onNavigationEvent} callback to the application.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java index 5887ede..f2fbc84 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java
@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.customtabs.PageLoadMetricsObserver; import org.chromium.chrome.browser.customtabs.ReparentingTaskProvider; import org.chromium.chrome.browser.dependency_injection.ActivityScope; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.InflationObserver; import org.chromium.chrome.browser.profiles.Profile; @@ -57,6 +58,8 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase; import org.chromium.chrome.browser.tabmodel.TabReparentingParams; import org.chromium.chrome.browser.translate.TranslateBridge; +import org.chromium.content_public.browser.GestureListenerManager; +import org.chromium.content_public.browser.GestureStateListener; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.ActivityWindowAndroid; @@ -111,6 +114,9 @@ private final CustomTabsSessionToken mSession; private final Intent mIntent; + private GestureStateListener mGestureStateListener; + private ScrollState mScrollState; + @Inject public CustomTabActivityTabController(AppCompatActivity activity, Lazy<CustomTabDelegateFactory> customTabDelegateFactory, @@ -411,6 +417,24 @@ public void onContentChanged(Tab tab) { if (tab.getWebContents() != null) { mConnection.setClientDataHeaderForNewTab(mSession, tab.getWebContents()); + + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS)) { + maybeStartSendingRealTimeEngagementSignals(tab); + } + } + } + + @Override + public void webContentsWillSwap(Tab tab) { + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS)) { + if (tab.getWebContents() != null) { + if (mGestureStateListener != null) { + GestureListenerManager.fromWebContents(tab.getWebContents()) + .removeListener(mGestureStateListener); + } + } } } }; @@ -464,4 +488,63 @@ tab.addObserver(mediaObserver); } + + /** + * Create |mScrollState| and |mGestureStateListener| and start sending real-time engagement + * signals through {@link androidx.browser.customtabs.CustomTabsCallback}. + */ + private void maybeStartSendingRealTimeEngagementSignals(Tab tab) { + assert tab.getWebContents() != null; + + if (mScrollState == null) mScrollState = new ScrollState(); + if (mGestureStateListener == null) { + mGestureStateListener = new GestureStateListener() { + @Override + public void onScrollStarted( + int scrollOffsetY, int scrollExtentY, boolean isDirectionUp) { + mScrollState.onScrollStarted(isDirectionUp); + } + + @Override + public void onVerticalScrollDirectionChanged( + boolean directionUp, float currentScrollRatio) { + mScrollState.onScrollDirectionChanged(directionUp); + } + + @Override + public void onScrollEnded(int scrollOffsetY, int scrollExtentY) { + mScrollState.onScrollEnded(); + } + }; + } + + GestureListenerManager gestureListenerManager = + GestureListenerManager.fromWebContents(tab.getWebContents()); + if (!gestureListenerManager.hasListener(mGestureStateListener)) { + gestureListenerManager.addListener(mGestureStateListener); + } + } + + private class ScrollState { + boolean mIsScrollActive; + boolean mIsDirectionUp; + + void onScrollStarted(boolean isDirectionUp) { + assert !mIsScrollActive; + mIsScrollActive = true; + mIsDirectionUp = isDirectionUp; + mConnection.notifyVerticalScrollEvent(mSession, mIsDirectionUp); + } + + void onScrollDirectionChanged(boolean isDirectionUp) { + if (mIsScrollActive && isDirectionUp != mIsDirectionUp) { + mIsDirectionUp = isDirectionUp; + mConnection.notifyVerticalScrollEvent(mSession, mIsDirectionUp); + } + } + + void onScrollEnded() { + mIsScrollActive = false; + } + } }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerUnitTest.java index c5f15e6..1526fb7 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerUnitTest.java
@@ -13,29 +13,38 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Intent; import android.os.Bundle; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tab.TabObserver; import org.chromium.chrome.test.util.browser.Features; +import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.components.embedder_support.util.ShadowUrlUtilities; +import org.chromium.content.browser.GestureListenerManagerImpl; +import org.chromium.content_public.browser.GestureStateListener; import org.chromium.content_public.browser.WebContents; /** @@ -43,6 +52,7 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE, shadows = {ShadowUrlUtilities.class}) +@DisableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) public class CustomTabActivityTabControllerUnitTest { @Rule public final CustomTabActivityContentTestEnvironment env = @@ -55,12 +65,20 @@ @Mock private Profile mProfile; + @Mock + private GestureListenerManagerImpl mGestureListenerManagerImpl; @Before public void setUp() { MockitoAnnotations.initMocks(this); Profile.setLastUsedProfileForTesting(mProfile); mTabController = env.createTabController(); + GestureListenerManagerImpl.setInstanceForTesting(mGestureListenerManagerImpl); + } + + @After + public void tearDown() { + GestureListenerManagerImpl.setInstanceForTesting(null); } @Test @@ -197,4 +215,85 @@ Tab tab = env.prepareTab(); assertTrue(tab.isIncognito()); } + + @Test + public void doesNotAddListenersForSignalsIfFeatureIsDisabled() { + env.reachNativeInit(mTabController); + + verify(mGestureListenerManagerImpl, never()).addListener(any(GestureStateListener.class)); + } + + @Test + @Features.EnableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) + public void addsListenersForSignalsIfFeatureIsEnabled() { + env.reachNativeInit(mTabController); + + verify(mGestureListenerManagerImpl).addListener(any(GestureStateListener.class)); + } + + @Test + @Features.EnableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) + public void removesGestureStateListenerWhenWebContentsWillSwap() { + env.reachNativeInit(mTabController); + + ArgumentCaptor<GestureStateListener> gestureStateListenerArgumentCaptor = + ArgumentCaptor.forClass(GestureStateListener.class); + verify(mGestureListenerManagerImpl) + .addListener(gestureStateListenerArgumentCaptor.capture()); + + ArgumentCaptor<TabObserver> tabObserverArgumentCaptor = + ArgumentCaptor.forClass(TabObserver.class); + verify(env.tabProvider.getTab(), atLeastOnce()) + .addObserver(tabObserverArgumentCaptor.capture()); + + for (TabObserver observer : tabObserverArgumentCaptor.getAllValues()) { + observer.webContentsWillSwap(env.tabProvider.getTab()); + } + verify(mGestureListenerManagerImpl) + .removeListener(gestureStateListenerArgumentCaptor.getValue()); + } + + @Test + @Features.EnableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) + public void sendsSignalsForScrollStartThenEnd() { + env.reachNativeInit(mTabController); + + ArgumentCaptor<GestureStateListener> gestureStateListenerArgumentCaptor = + ArgumentCaptor.forClass(GestureStateListener.class); + verify(mGestureListenerManagerImpl) + .addListener(gestureStateListenerArgumentCaptor.capture()); + + // Start scrolling down. + gestureStateListenerArgumentCaptor.getValue().onScrollStarted(0, 100, false); + verify(env.connection).notifyVerticalScrollEvent(eq(env.session), eq(false)); + // End scrolling at 50%. + gestureStateListenerArgumentCaptor.getValue().onScrollEnded(50, 100); + // We shouldn't make any more calls. + verify(env.connection, times(1)).notifyVerticalScrollEvent(eq(env.session), anyBoolean()); + } + + @Test + @Features.EnableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) + public void sendsSignalsForScrollStartDirectionChangeThenEnd() { + env.reachNativeInit(mTabController); + + ArgumentCaptor<GestureStateListener> gestureStateListenerArgumentCaptor = + ArgumentCaptor.forClass(GestureStateListener.class); + verify(mGestureListenerManagerImpl) + .addListener(gestureStateListenerArgumentCaptor.capture()); + + // Start by scrolling down. + gestureStateListenerArgumentCaptor.getValue().onScrollStarted(0, 100, false); + verify(env.connection).notifyVerticalScrollEvent(eq(env.session), eq(false)); + // Change direction to up at 10%. + gestureStateListenerArgumentCaptor.getValue().onVerticalScrollDirectionChanged(true, .1f); + verify(env.connection).notifyVerticalScrollEvent(eq(env.session), eq(true)); + // Change direction to down at 5%. + gestureStateListenerArgumentCaptor.getValue().onVerticalScrollDirectionChanged(false, .05f); + verify(env.connection, times(2)).notifyVerticalScrollEvent(eq(env.session), eq(false)); + // End scrolling at 50%. + gestureStateListenerArgumentCaptor.getValue().onScrollEnded(50, 100); + // We shouldn't make any more calls. + verify(env.connection, times(3)).notifyVerticalScrollEvent(eq(env.session), anyBoolean()); + } }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java index 3744f9a..44cebe8 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityUrlLoadingTest.java
@@ -34,11 +34,13 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.JniMocker; import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.password_manager.PasswordChangeSuccessTrackerBridge; import org.chromium.chrome.browser.password_manager.PasswordChangeSuccessTrackerBridgeJni; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.test.util.browser.Features; +import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.embedder_support.util.UrlUtilitiesJni; import org.chromium.content_public.browser.LoadUrlParams; @@ -49,6 +51,7 @@ */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) +@DisableFeatures({ChromeFeatureList.CCT_REAL_TIME_ENGAGEMENT_SIGNALS}) public class CustomTabActivityUrlLoadingTest { public static final String PASSWORD_CHANGE_USERNAME = "Peter";
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/DEPS b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/DEPS new file mode 100644 index 0000000..ba9f81a --- /dev/null +++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/content/DEPS
@@ -0,0 +1,3 @@ +include_rules = [ + "+content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java", +]
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 8554d2f..a97d049 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -6858,6 +6858,9 @@ <message name="IDS_NTP_MODULES_FIRST_RUN_EXPERIENCE_OPT_OUT_TOAST" desc="Opt out toast for Modular NTP Desktop v1 First Run Experience."> You won't see cards on this page again </message> + <message name="IDS_NTP_MODULES_FEED_TITLE" desc="Title shown in the header of the Following feed NTP module on the new tab page showing updates from sites followed by the user."> + Following + </message> <!-- Extensions NTP Middle Slot Promo --> <message name="IDS_EXTENSIONS_PROMO_PERFORMANCE">
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_MODULES_FEED_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_MODULES_FEED_TITLE.png.sha1 new file mode 100644 index 0000000..ea5d917 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_NTP_MODULES_FEED_TITLE.png.sha1
@@ -0,0 +1 @@ +d764ceb48292af0d9d6c071678df8915b346bb0a \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings.grdp b/chrome/app/os_settings_search_tag_strings.grdp index 8f1f44a1..ebd002dc 100644 --- a/chrome/app/os_settings_search_tag_strings.grdp +++ b/chrome/app/os_settings_search_tag_strings.grdp
@@ -1269,6 +1269,15 @@ <message name="IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_TEXT_CARET_ALT1" desc="Text for search result item which, when clicked, navigates the user to accessibility settings, with a toggle to enable/disable highlighting the text caret when it appears or moves. Alternate phrase for: 'Highlight text caret'"> Text cursor highlighter </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE" desc="Text for search result item which, when clicked, navigates the user to cursor and touchpad accessibility settings. Alternate phrase for: 'Mouse accessibility settings'"> + Cursor and touchpad + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT1" desc="Text for search result item which, when clicked, navigates the user to cursor and touchpad accessibility settings. Alternate phrase for: 'Cursor and touchpad'"> + Mouse accessibility settings + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT2" desc="Text for search result item which, when clicked, navigates the user to cursor and touchpad accessibility settings. Alternate phrase for: 'Cursor and touchpad'"> + Pointer accessibility settings + </message> <message name="IDS_OS_SETTINGS_TAG_A11Y_AUTOMATICALLY_CLICK" desc="Text for search result item which, when clicked, navigates the user to accessibility settings, with a toggle to enable/disable automatically clicking when the cursor stops."> Automatically click when cursor stops </message> @@ -1305,6 +1314,19 @@ <message name="IDS_OS_SETTINGS_TAG_A11Y_TABLET_NAVIGATION_BUTTONS" desc="Text for search result item which, when clicked, navigates the user to accessibility settings, with a toggle to enable/disable showing navigation buttons (launcher, back, overview) in the shelf when the device is in tablet mode."> Tablet navigation buttons </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE" desc="Text for search result item which, when clicked, navigates the user to audio and captions accessibility settings. Alternate phrase for: 'Subtitles'"> + Audio and captions + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT1" desc="Text for search result item which, when clicked, navigates the user to audio and captions accessibility settings. Alternate phrase for: 'Audio and captions'"> + Subtitles + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT2" desc="Text for search result item which, when clicked, navigates the user to audio and captions accessibility settings. Alternate phrase for: 'Audio and captions'"> + Closed captions + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT3" desc="Text for search result item which, when clicked, navigates the user to audio and captions accessibility settings. Alternate phrase for: 'Audio and captions'"> + Text for audio + </message> + <message name="IDS_OS_SETTINGS_TAG_A11Y_MONO_AUDIO" desc="Text for search result item which, when clicked, navigates the user to accessibility settings, with a toggle to enable/disable mono audio (the same sound with all speakers). Alternate phrase for: 'Same audio with all speakers'"> Mono audio </message>
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE.png.sha1 new file mode 100644 index 0000000..19338d9 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE.png.sha1
@@ -0,0 +1 @@ +c9a2e1a1148167b83b91dce84d816ebc501de3f2 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT1.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT1.png.sha1 new file mode 100644 index 0000000..9e843f4 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT1.png.sha1
@@ -0,0 +1 @@ +29184859828ba0e4e533a0d7ad6b454979ef29f3 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT2.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT2.png.sha1 new file mode 100644 index 0000000..38eb676 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT2.png.sha1
@@ -0,0 +1 @@ +19af96595a04e7bdf45d2d51518e7ea300568cfa \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT3.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT3.png.sha1 new file mode 100644 index 0000000..0a0629c --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT3.png.sha1
@@ -0,0 +1 @@ +3c75f8744ea1073644130ad0a077103ac6d643a4 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE.png.sha1 new file mode 100644 index 0000000..c8f9831 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE.png.sha1
@@ -0,0 +1 @@ +69275e8dc30fc1e3f2a205bddad1910d29e25946 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT1.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT1.png.sha1 new file mode 100644 index 0000000..f5c7e8b --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT1.png.sha1
@@ -0,0 +1 @@ +b8ac13c081a4cee0a188e04f193cb1f619ec5e7b \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT2.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT2.png.sha1 new file mode 100644 index 0000000..9c58c7e --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT2.png.sha1
@@ -0,0 +1 @@ +f6a3caef3e2a070d2c18218ae8638fdab162e4dc \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb index 0e28cd98..d87d0bdd 100644 --- a/chrome/app/resources/chromium_strings_az.xtb +++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">Chromium haqqında</translation> <translation id="1203500561924088507">Quraşdırdığınız üçün təşəkkür edirik. <ph name="BUNDLE_NAME" /> istifadə etməzdən əvvəl brauzerinizi yenidən başlatmalısınız.</translation> <translation id="1315551408014407711">Yeni Chromium profilinizi ayarlayın</translation> +<translation id="1385859895174722837">Google Assistent Chromium'da</translation> <translation id="1396446129537741364">Chromium parolları göstərməyə çalışır.</translation> <translation id="1414495520565016063">Chromium'a daxil oldunuz!</translation> <translation id="1524282610922162960">Chromium tabı paylaşın</translation> @@ -101,6 +102,7 @@ <translation id="3474745554856756813"><ph name="ITEMS_COUNT" /> element bu cihazdan silinəcək. Sonradan datanızı bərpa etmək üçün Chromiuma <ph name="USER_EMAIL" /> kimi daxil olun.</translation> <translation id="3497319089134299931"><ph name="SHORTCUT" /> Chromium profilləri arasında keçid edə bilər</translation> <translation id="3509308970982693815">Bütün Chromium pəncərələrini bağlayın və yenidən cəhd edin.</translation> +<translation id="3518180795744733843">Chromium'da Google Assistent sizin üçün vebsaytlarda əməliyyatlar icra edə bilər</translation> <translation id="3533435340678213462">Məxfiliyinizi qorumaq üçün 4 həftədən köhnə maraqlarınızı avtomatik silirik. Baxmağa davam etdikcə, maraq siyahıda yenidən görünə bilər. Və ya Chromium'un nəzərə almasını istəmədiyiniz maraqları silə bilərsiniz.</translation> <translation id="3567254597502212821">Baxış tarixçəniz, bu cihazda Chromium istifadə edərək ziyarət etdiyiniz saytların qeydi.</translation> <translation id="3575459661164320785">Kompüterdə zərərli proqram təminatı var. Brauzerin normal şəkldə işləməsi üçün Chromium onu silə, ayarları bərpa edə və artırmaları deaktiv edə bilər.</translation>
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb index cd4cc2a86..164095a 100644 --- a/chrome/app/resources/chromium_strings_bs.xtb +++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">O programu Chromium</translation> <translation id="1203500561924088507">Hvala što ste instalirali. Morate ponovo pokrenuti preglednik prije nego što možete koristiti <ph name="BUNDLE_NAME" />.</translation> <translation id="1315551408014407711">Postavite novi Chromium profil</translation> +<translation id="1385859895174722837">Google asistent u Chromiumu</translation> <translation id="1396446129537741364">Chromium pokušava prikazati lozinke.</translation> <translation id="1414495520565016063">Prijavili ste se u Chromium!</translation> <translation id="1524282610922162960">Dijelite Chromium karticu</translation> @@ -103,6 +104,7 @@ <translation id="3474745554856756813">Time će se izbrisati sljedeći broj stavki s uređaja: <ph name="ITEMS_COUNT" />. TDa biste kasnije dohvatili svoje podatke, prijavite se na Chromium kao <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Prečicom <ph name="SHORTCUT" /> možete prebacivati između Chromium profila</translation> <translation id="3509308970982693815">Zatvorite sve prozore Chromiuma i pokušajte ponovo.</translation> +<translation id="3518180795744733843">Google asistent u Chromiumu može izvršavati radnje na web-lokacijama za vas</translation> <translation id="3533435340678213462">Da zaštitimo vašu privatnost, automatski brišemo interesovanja koja su starija od 4 sedmice. Kada nastavite koristiti preglednik, interesovanje se može ponovo pojaviti na listi. Ili možete ukloniti interesovanja koja ne želite dati Chromiumu na razmatranje.</translation> <translation id="3567254597502212821">Vaša historija pregledanja, zapisi o web lokacijama koje ste posjetili koristeći Chromium na ovom uređaju.</translation> <translation id="3575459661164320785">Na vašem računaru se nalazi štetni softver. Chromium ga može ukloniti, vratiti vaše postavke i onemogućiti ekstenziju kako bi vaš preglednik ponovo radio normalno.</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb index 985ea69..9d6ce32 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="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> <translation id="1414495520565016063">Jste přihlášeni do prohlížeče Chromium.</translation> <translation id="1524282610922162960">Sdílet kartu prohlížeče Chromium</translation> @@ -103,6 +104,7 @@ <translation id="3474745554856756813">Z tohoto zařízení bude smazán následující počet položek: <ph name="ITEMS_COUNT" />. Budete-li chtít své údaje později načíst, přihlaste se do prohlížeče Chromium jako <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Zkratkou <ph name="SHORTCUT" /> lze přepínat mezi profily Chromium</translation> <translation id="3509308970982693815">Zavřete prosím všechna okna prohlížeče Chromium a zkuste to znovu.</translation> +<translation id="3518180795744733843">Asistent Google v prohlížeči Chromium může na webech provádět různé akce za vás</translation> <translation id="3533435340678213462">Abychom chránili vaše soukromí, vaše zájmy starší než 4 měsíce automaticky mažeme. Jak budete pracovat s internetem, zájmy se mohou na seznamu znovu objevit. Pokud se zájmy nemají zohledňovat, můžete je z Chromia odstranit.</translation> <translation id="3567254597502212821">Vaši historii prohlížení, což je seznam webů, které jste navštívili v Chromiu na tomto zařízení.</translation> <translation id="3575459661164320785">Máte v počítači škodlivý software. Chromium ho může odstranit, obnovit vaše nastavení a zakázat rozšíření, aby prohlížeč opět fungoval jako obvykle.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb index 66ec2f3..c887b47 100644 --- a/chrome/app/resources/chromium_strings_hr.xtb +++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">O pregledniku Chromium</translation> <translation id="1203500561924088507">Zahvaljujemo što ste izvršili instaliranje. Da biste mogli koristiti <ph name="BUNDLE_NAME" />, morate ponovno pokrenuti preglednik.</translation> <translation id="1315551408014407711">Postavite novi profil u Chromiumu</translation> +<translation id="1385859895174722837">Google asistent u Chromiumu</translation> <translation id="1396446129537741364">Chromium pokušava prikazati zaporke.</translation> <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation> <translation id="1524282610922162960">Dijeljenje kartice Chromium</translation> @@ -101,6 +102,7 @@ <translation id="3474745554856756813">Time će se izbrisati sljedeći broj stavki s uređaja: <ph name="ITEMS_COUNT" />. TDa biste kasnije dohvatili svoje podatke, prijavite se na Chromium kao <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Pomoću prečaca <ph name="SHORTCUT" /> možete se prebacivati između profila u Chromiumu</translation> <translation id="3509308970982693815">Zatvorite sve prozore preglednika Chromium i pokušajte ponovo.</translation> +<translation id="3518180795744733843">Google asistent u Chromiumu može izvršavati radnje na web-lokacijama za vas</translation> <translation id="3533435340678213462">Da bismo zaštitili vašu privatnost, automatski brišemo vaše interese starije od četiri tjedna. Tijekom vašeg daljnjeg pregledavanja neki se interes može ponovo pojaviti na popisu. Možete i ukloniti interese za koje ne želite da ih Chromium razmatra.</translation> <translation id="3567254597502212821">Vaša povijest pregledavanja, zapisnik web-lokacija koje ste posjetili u Chromiumu na ovom uređaju.</translation> <translation id="3575459661164320785">Na računalu imate štetni softver. Chromium ga može ukloniti, vratiti vaše postavke i onemogućiti proširenja kako bi vaš preglednik ponovo funkcionirao normalno.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb index 1dd3db4..eda98a90 100644 --- a/chrome/app/resources/chromium_strings_lv.xtb +++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Par Chromium</translation> <translation id="1203500561924088507">Pateicamies, ka veicāt instalēšanu. Pirms <ph name="BUNDLE_NAME" /> izmantošanas ir jārestartē pārlūkprogramma.</translation> <translation id="1315551408014407711">Jaunā Chromium profila iestatīšana</translation> +<translation id="1385859895174722837">Google asistents pārlūkprogrammā Chromium</translation> <translation id="1396446129537741364">Chromium mēģina rādīt paroles.</translation> <translation id="1414495520565016063">Esat pierakstījies operētājsistēmā Chromium!</translation> <translation id="1524282610922162960">Chromium cilnes kopīgošana</translation> @@ -101,6 +102,7 @@ <translation id="3474745554856756813">Veicot šo darbību, no šīs ierīces tiks dzēsts(-i) <ph name="ITEMS_COUNT" /> vienums(-i). Lai vēlāk izgūtu datus, pierakstieties pārlūkā Chromium kā <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Lai pārslēgtos starp Chromium profiliem, izmantojiet īsinājumtaustiņu <ph name="SHORTCUT" />.</translation> <translation id="3509308970982693815">Aizveriet visus Chromium logus un mēģiniet vēlreiz.</translation> +<translation id="3518180795744733843">Google asistents pārlūkprogrammā Chromium var veikt darbības vietnēs jūsu vārdā.</translation> <translation id="3533435340678213462">Lai aizsargātu jūsu konfidencialitāti, mēs automātiski dzēšam intereses, kas ir glabātas ilgāk par četrām nedēļām. Intereses var tikt atkārtoti pievienotas sarakstam, kad turpināsiet pārlūkošanu. Varat arī noņemt intereses, ja nevēlaties, lai Chromium tās apsvērtu.</translation> <translation id="3567254597502212821">Jūsu pārlūkošanas vēsture, kurā tiek reģistrētas vietnes, ko šajā ierīcē apmeklējat ar pārlūku Chromium.</translation> <translation id="3575459661164320785">Jūsu datorā ir kaitīga programmatūra. Pārlūkprogramma Chromium var to noņemt, atjaunot jūsu iestatījumus un atspējot paplašinājumus, lai atkal pareizi darbotos.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb index 195a46c..12562904 100644 --- a/chrome/app/resources/chromium_strings_mk.xtb +++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">За Chromium</translation> <translation id="1203500561924088507">Фала за инсталирањето. Мора да го рестартирате прелистувачот пред да користите <ph name="BUNDLE_NAME" />.</translation> <translation id="1315551408014407711">Поставете нов профил на Chromium</translation> +<translation id="1385859895174722837">„Помошникот на Google“ во Chromium</translation> <translation id="1396446129537741364">Chromium се обидува да покаже лозинки.</translation> <translation id="1414495520565016063">Најавени сте на Chromium!</translation> <translation id="1524282610922162960">Споделете картичка на Chromium</translation> @@ -103,6 +104,7 @@ <translation id="3474745554856756813">Ова ќе избрише <ph name="ITEMS_COUNT" /> ставки од уредов. За да ги вратите вашите податоци подоцна, најавете се на Chromium како <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Со <ph name="SHORTCUT" /> се менуваат профили на Chromium</translation> <translation id="3509308970982693815">Затворете ги сите прозорци на Chromium и обидете се повторно.</translation> +<translation id="3518180795744733843">„Помошникот на Google“ во Chromium може да извршува дејства за вас на веб-сајтовите</translation> <translation id="3533435340678213462">Заради заштита на вашата приватност, автоматски ги бришеме вашите интереси што се постари од 4 седмици. Додека прелистувате, може да се појави интерес на списокот повторно. Или можете да ги отстраните интересите што не сакате Chromium да ги зема предвид.</translation> <translation id="3567254597502212821">Вашата историја на прелистувањето, евиденција на сајтовите што сте ги посетиле со Chromium на овој уред.</translation> <translation id="3575459661164320785">Има штетен софтвер на вашиот компјутер. Chromium може да го отстрани, да ги врати вашите поставки и да ги оневозможи екстензиите за да му овозможи на вашиот прелистувач повторно да функционира нормално.</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb index 97ea0f9..e2aa432 100644 --- a/chrome/app/resources/chromium_strings_pl.xtb +++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Chromium – informacje</translation> <translation id="1203500561924088507">Dziękujemy za instalację. Przed rozpoczęciem korzystania z programu <ph name="BUNDLE_NAME" /> musisz ponownie uruchomić przeglądarkę.</translation> <translation id="1315551408014407711">Skonfiguruj nowy profil w Chromium</translation> +<translation id="1385859895174722837">Asystent Google w Chromium</translation> <translation id="1396446129537741364">Chromium próbuje pokazać hasła.</translation> <translation id="1414495520565016063">Jesteś zalogowany w Chromium.</translation> <translation id="1524282610922162960">Udostępnij kartę Chromium</translation> @@ -99,6 +100,7 @@ <translation id="3474745554856756813">Spowoduje to usunięcie <ph name="ITEMS_COUNT" /> elementów z tego urządzenia. Aby później odzyskać dane, zaloguj się w Chromium jako <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Profile Chromium przełącza skrót <ph name="SHORTCUT" /></translation> <translation id="3509308970982693815">Zamknij wszystkie okna Chromium i spróbuj ponownie.</translation> +<translation id="3518180795744733843">Asystent Google w Chromium może wykonywać za Ciebie działania na różnych stronach internetowych</translation> <translation id="3533435340678213462">Aby chronić Twoją prywatność, automatycznie usuwamy Twoje zainteresowania, które są starsze niż 4 tygodnie. Podczas dalszego przeglądania zainteresowanie może się pojawić ponownie na liście. Możesz też usunąć zainteresowania, których Chromium ma nie brać pod uwagę.</translation> <translation id="3567254597502212821">Twoja historia przeglądania, czyli rejestr witryn, które odwiedzasz w Chromium na tym urządzeniu.</translation> <translation id="3575459661164320785">Masz na komputerze szkodliwe oprogramowanie. Chromium może je usunąć, przywrócić Twoje ustawienia i wyłączyć rozszerzenia, by przeglądarka znów działała normalnie.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb index ff02096..d9c7396 100644 --- a/chrome/app/resources/chromium_strings_pt-PT.xtb +++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -11,6 +11,7 @@ <translation id="1185134272377778587">Acerca do Chromium</translation> <translation id="1203500561924088507">Agradecemos a instalação. Tem de reiniciar o navegador antes de utilizar o <ph name="BUNDLE_NAME" />.</translation> <translation id="1315551408014407711">Configure o seu novo perfil do Chromium</translation> +<translation id="1385859895174722837">Assistente Google no Chromium</translation> <translation id="1396446129537741364">O Chromium está a tentar mostrar palavras-passe.</translation> <translation id="1414495520565016063">Tem sessão iniciada no Chromium!</translation> <translation id="1524282610922162960">Partilhe um separador do Chromium</translation> @@ -101,6 +102,7 @@ <translation id="3474745554856756813">Esta ação elimina <ph name="ITEMS_COUNT" /> itens deste dispositivo. Para recuperar os dados mais tarde, inicie sessão no Chromium como <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">O atalho <ph name="SHORTCUT" /> permite alternar entre perfis do Chromium</translation> <translation id="3509308970982693815">Feche todas as janelas do Chromium e tente novamente.</translation> +<translation id="3518180795744733843">O Assistente Google no Chromium pode concluir ações em Websites por si</translation> <translation id="3533435340678213462">Para proteger a sua privacidade, eliminamos automaticamente os seus interesses com mais de 4 semanas. Enquanto navega, um interesse pode aparecer novamente na lista. Em alternativa, pode remover os interesses que não quer que o Chromium considere.</translation> <translation id="3567254597502212821">O seu histórico de navegação, um registo dos sites que visitou através do Chromium neste dispositivo.</translation> <translation id="3575459661164320785">Existe software prejudicial no seu computador. O Chromium pode removê-lo, restaurar as suas definições e desativar as extensões para que o navegador volte a funcionar normalmente.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb index 2ef55f8..035ffded 100644 --- a/chrome/app/resources/chromium_strings_sr-Latn.xtb +++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">O Chromium-u</translation> <translation id="1203500561924088507">Hvala vam na instalaciji. Potrebno je da restartujete pregledač pre nego što počnete da koristite <ph name="BUNDLE_NAME" />.</translation> <translation id="1315551408014407711">Podesite nov Chromium profil</translation> +<translation id="1385859895174722837">Google pomoćnik u Chromium-u</translation> <translation id="1396446129537741364">Chromium pokušava da prikaže lozinke.</translation> <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation> <translation id="1524282610922162960">Delite Chromium karticu</translation> @@ -103,6 +104,7 @@ <translation id="3474745554856756813">Ovim ćete izbrisati <ph name="ITEMS_COUNT" /> stavke(i) sa ovog uređaja. Da biste kasnije vratili podatke, prijavite se u Chromium kao <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Pomoću prečice <ph name="SHORTCUT" /> možete da prelazite sa jednog Chromium profila na drugi</translation> <translation id="3509308970982693815">Zatvorite sve Chromium prozore i pokušajte ponovo.</translation> +<translation id="3518180795744733843">Google pomoćnik u Chromium-u može da dovršava radnje za vas na veb-sajtovima</translation> <translation id="3533435340678213462">Radi zaštite privatnosti automatski brišemo interesovanja starija od 4 nedelje. Kada nastavite da pregledate, interesovanje će se možda ponovo pojaviti na listi. Možete i da uklanjate interesovanja za koja ne želite da ih Chromium uzima u obzir.</translation> <translation id="3567254597502212821">Istorija pregledanja, evidencija sajtova koje ste posetili pomoću Chromium-a na ovom uređaju.</translation> <translation id="3575459661164320785">Na računaru postoji štetan softver. Chromium može da ga ukloni, vrati podešavanja i onemogući dodatke da bi pregledač mogao ponovo da radi uobičajeno.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb index 07f44352..f81bf2e 100644 --- a/chrome/app/resources/chromium_strings_sr.xtb +++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -13,6 +13,7 @@ <translation id="1185134272377778587">О Chromium-у</translation> <translation id="1203500561924088507">Хвала вам на инсталацији. Потребно је да рестартујете прегледач пре него што почнете да користите <ph name="BUNDLE_NAME" />.</translation> <translation id="1315551408014407711">Подесите нов Chromium профил</translation> +<translation id="1385859895174722837">Google помоћник у Chromium-у</translation> <translation id="1396446129537741364">Chromium покушава да прикаже лозинке.</translation> <translation id="1414495520565016063">Пријављени сте на Chromium!</translation> <translation id="1524282610922162960">Делите Chromium картицу</translation> @@ -103,6 +104,7 @@ <translation id="3474745554856756813">Овим ћете избрисати <ph name="ITEMS_COUNT" /> ставке(и) са овог уређаја. Да бисте касније вратили податке, пријавите се у Chromium као <ph name="USER_EMAIL" />.</translation> <translation id="3497319089134299931">Помоћу пречице <ph name="SHORTCUT" /> можете да прелазите са једног Chromium профила на други</translation> <translation id="3509308970982693815">Затворите све Chromium прозоре и покушајте поново.</translation> +<translation id="3518180795744733843">Google помоћник у Chromium-у може да довршава радње за вас на веб-сајтовима</translation> <translation id="3533435340678213462">Ради заштите приватности аутоматски бришемо интересовања старија од 4 недеље. Када наставите да прегледате, интересовање ће се можда поново појавити на листи. Можете и да уклањате интересовања за која не желите да их Chromium узима у обзир.</translation> <translation id="3567254597502212821">Историја прегледања, евиденција сајтова које сте посетили помоћу Chromium-а на овом уређају.</translation> <translation id="3575459661164320785">На рачунару постоји штетан софтвер. Chromium може да га уклони, врати подешавања и онемогући додатке да би прегледач могао поново да ради уобичајено.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb index 8f83a89..5cd45b9 100644 --- a/chrome/app/resources/chromium_strings_te.xtb +++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -73,7 +73,7 @@ <translation id="2977470724722393594">Chromium తాజాగా ఉంది</translation> <translation id="2977506796191543575">ఏదైనా సైట్ మీ పాస్వర్డ్ను దొంగిలించే ప్రయత్నం చేసినా, లేదంటే ఏదైనా హానికరమైన ఫైల్ను మీరు డౌన్లోడ్ చేసినా, సదరు URLలను, ఆయా పేజీల కంటెంట్లోని కొన్ని భాగాలను కూడా Chromium, 'సురక్షిత బ్రౌజింగ్'కు పంపవచ్చు</translation> <translation id="2983934633046890458">Chromium పాస్వర్డ్లను ఎడిట్ చేయడానికి ప్రయత్నిస్తోంది.</translation> -<translation id="3032706164202344641">Chromium మీ పాస్వర్డ్లను తనిఖీ చేయలేకపోయింది. తర్వాత మళ్లీ ట్రై చేయండి.</translation> +<translation id="3032706164202344641">Chromium మీ పాస్వర్డ్లను చెక్ చేయలేకపోయింది. తర్వాత మళ్లీ ట్రై చేయండి.</translation> <translation id="3032787606318309379">Chromiumకి జోడిస్తోంది...</translation> <translation id="3038232873781883849">ఇన్స్టాల్ చేయడానికి వేచి ఉంది...</translation> <translation id="3068515742935458733">Googleకు వినియోగ గణాంకాలు, <ph name="UMA_LINK" />ను పంపడం ద్వారా Chromiumను మెరుగుపరచడంలో సహాయపడండి</translation> @@ -295,7 +295,7 @@ <translation id="7686590090926151193">Chromium మీ డిఫాల్ట్ బ్రౌజర్ కాదు</translation> <translation id="7689606757190482937">మీ పరికరాల అంతటా Chromiumను సింక్ చేయండి మరియు వ్యక్తిగతీకరించండి</translation> <translation id="7745317241717453663">ఇది ఈ పరికరం నుండి మీ బ్రౌజింగ్ డేటాను తొలగిస్తుంది. మీ డేటాను తర్వాత తిరిగి పొందడానికి, Chromiumకు <ph name="USER_EMAIL" /> లాగా సైన్ ఇన్ చేయండి.</translation> -<translation id="7747138024166251722">ఇన్స్టాలర్ ఒక తాత్కాలిక డైరక్టరీని సృష్టించలేకపోయింది. సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయడానికి దయచేసి ఖాళీ డిస్క్ స్థలం, అనుమతిని తనిఖీ చేయండి.</translation> +<translation id="7747138024166251722">ఇన్స్టాలర్ ఒక తాత్కాలిక డైరక్టరీని సృష్టించలేకపోయింది. సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయడానికి దయచేసి ఖాళీ డిస్క్ స్థలం, అనుమతిని చెక్ చేయండి.</translation> <translation id="7790626492778995050"><ph name="PAGE_TITLE" /> - Chromium Canary</translation> <translation id="7828947555739565424">ఈ పరికరంలో ఇప్పటికే ఈ ఖాతాతో ఒక Chromium ప్రొఫైల్ ఉంది</translation> <translation id="7845233973568007926">ఇన్స్టాల్ చేసినందుకు ధన్యవాదాలు. <ph name="BUNDLE_NAME" />ను ఉపయోగించడానికి ముందు మీరు కంప్యూటర్ను తప్పకుండా రీస్టార్ట్ చేయాలి.</translation> @@ -315,7 +315,7 @@ <translation id="81770708095080097">ఈ ఫైల్ అపాయకరమైనది, కాబట్టి Chromium దీన్ని బ్లాక్ చేసింది.</translation> <translation id="8213374284266571500">ఈ ఫైల్ రకం ప్రమాదకరమైనందున Chromium ఈ ఫైల్ను బ్లాక్ చేసింది</translation> <translation id="8248265253516264921">చిత్రంలో ఉపయోగకరమైన వివరణ లేకుంటే, మీ కోసం ఒక వివరణను అందించడానికి Chromium ప్రయత్నిస్తుంది. వివరణలను క్రియేట్ చేయడానికి, చిత్రాలు Googleకు పంపబడతాయి. మీరు దీన్ని ఎప్పుడైనా సెట్టింగ్లలో ఆఫ్ చేయవచ్చు.</translation> -<translation id="8266560134891435528">మీరు సైన్ ఇన్ చేయనందున Chromium మీ పాస్వర్డ్లను తనిఖీ చేయలేదు</translation> +<translation id="8266560134891435528">మీరు సైన్ ఇన్ చేయనందున Chromium మీ పాస్వర్డ్లను చెక్ చేయలేదు</translation> <translation id="8276522524898344151">పాస్వర్డ్లను కాపీ చేయడానికి Chromium ప్రయత్నిస్తోంది.</translation> <translation id="8290862415967981663">ఈ ఫైల్ అపాయకరం కావచ్చు, కాబట్టి Chromium దీన్ని బ్లాక్ చేసింది.</translation> <translation id="8330519371938183845">మీ పరికరాల అంతటా Chromiumను సింక్ చేయడానికి, వ్యక్తిగతీకరించడానికి సైన్ ఇన్ చేయండి</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index 4380cf40..5aba2a14 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Rugsteun media van die toestel af met die lêerprogram.</translation> <translation id="1343865611738742294">Gee Linux-programme toestemming om toegang tot USB-toestelle te kry. Linux sal nie 'n USB-toestel onthou nadat dit verwyder is nie.</translation> <translation id="1343920184519992513">Gaan voort waar jy opgehou het en maak 'n spesifieke stel bladsye oop</translation> +<translation id="1344377983938103876">Maak tans <ph name="URL" /> oop …</translation> <translation id="134589511016534552">Media-oortjies wat ook in Oop Oortjies-afdeling gewys word</translation> <translation id="1346630054604077329">Bevestig en herbegin</translation> <translation id="1346748346194534595">Regs</translation> @@ -1259,6 +1260,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Voeg Wi-Fi by …</translation> <translation id="2162155940152307086">Sinkronisering sal begin sodra jy sinkroniseringinstellings verlaat</translation> +<translation id="2162705204091149050">Lees inligting oor jou blaaier, bedryfstelsel, toestel, geïnstalleerde sagteware en lêers</translation> <translation id="2162926944953615670">Geen beskikbare e-SIM-profiele nie</translation> <translation id="2163470535490402084">Koppel aan die internet om by jou <ph name="DEVICE_TYPE" /> aan te meld.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> en nog 1 skakelaar</translation> @@ -1812,6 +1814,7 @@ <translation id="2667144577800272420">Ander programme is gestel om dieselfde skakels oop te maak as <ph name="APP_NAME" />. Dit sal <ph name="APP_NAME_2" /> en <ph name="APP_NAME_3" /> deaktiveer sodat hulle nie gesteunde skakels kan oopmaak nie.</translation> <translation id="2667463864537187133">Bestuur speltoets</translation> <translation id="2669241540496514785">Kon nie "<ph name="APP_NAME" />" oopmaak nie</translation> +<translation id="2669454659051515572">Enigiemand wat hierdie toestel gebruik, kan afgelaaide lêers sien</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deel tans 'n Chrome-oortjie.</translation> <translation id="2670403088701171361">Moenie werwe toelaat om teks of prente op jou knipbord te sien nie</translation> <translation id="2670429602441959756">Hierdie bladsy bevat kenmerke wat nog nie in VR gesteun word nie. Verlaat tans …</translation> @@ -2179,6 +2182,7 @@ <translation id="3008232374986381779">Gebruik Linux-nutsgoed, -redigeerders en -IDE's op jou <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Stel toestemmings terug</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> vereis dat jy vandag aan wi-fi koppel om 'n opdatering af te laai. Of laai oor 'n beperkte verbinding af (heffings kan geld).}other{<ph name="MANAGER" /> vereis dat jy voor die sperdatum aan wi-fi koppel en 'n opdatering aflaai. Of laai oor 'n beperkte verbinding af (heffings kan geld).}}</translation> +<translation id="3009178788565917040">Uitvoer</translation> <translation id="3009300415590184725">Is jy seker jy wil die mobieledatadiens se opstelproses kanselleer?</translation> <translation id="3009779501245596802">Geïndekseerde databasisse</translation> <translation id="3010279545267083280">Wagwoord uitgevee</translation> @@ -2509,6 +2513,7 @@ <translation id="3359256513598016054">Sertifikaatbeleidbeperkings</translation> <translation id="3360297538363969800">Kon nie uitdruk nie. Gaan asseblief jou drukker na en probeer weer.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deel tans <ph name="ATTACHMENTS" /> met jou.}other{<ph name="DEVICE_NAME" /> deel tans <ph name="ATTACHMENTS" /> met jou.}}</translation> +<translation id="3363202073972776113">Hierdie nuwe profiel sal deur jou organisasie bestuur word. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Vanaf jou administrateur: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Gebruik óf Ctrl óf Alt</translation> <translation id="3368922792935385530">Gekoppel</translation> @@ -2543,6 +2548,7 @@ <translation id="339722927132407568">Vries</translation> <translation id="3399432415385675819">Kennisgewings sal gedeaktiveer word</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) – deurweef</translation> +<translation id="3401484564516348917">Lees inligting oor jou blaaier, bedryfstelsel, toestel, geïnstalleerde sagteware, registerwaardes en lêers</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} wagwoord word op hierdie toestel geberg}other{{COUNT} wagwoorde word op hierdie toestel geberg}}</translation> <translation id="3402255108239926910">Kies 'n avatar</translation> <translation id="3402585168444815892">Skryf tans in by demonstrasiemodus</translation> @@ -2789,6 +2795,7 @@ <translation id="3627879631695760395">Installeer <ph name="APP" /> …</translation> <translation id="3628275722731025472">Skakel Bluetooth af</translation> <translation id="3629631988386925734">Voer jou wagwoord in om Smart Lock te aktiveer. Jou foon sal volgende keer jou <ph name="DEVICE_TYPE" /> ontsluit. Jy kan Smart Lock in Instellings afskakel.</translation> +<translation id="3629664892718440872">Onthou hierdie keuse</translation> <translation id="3630132874740063857">Jou foon</translation> <translation id="3630995161997703415">Voeg hierdie werf by jou rak om dit enige tyd te gebruik</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />As jy jou Chrome-bedryfstelseltoestelle toelaat om outomatiese verslae te stuur, help dit ons om te prioritiseer wat om in Chrome-bedryfstelsel reg te stel en te verbeter. Hierdie verslae kan dinge insluit soos wanneer Chrome-bedryfstelsel omval, watter kenmerke jy gebruik, en hoeveel geheue jy gewoonlik gebruik.<ph name="END_PARAGRAPH1" /> @@ -3278,6 +3285,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Volle beheer oor MIDI-toestelle is geweier</translation> +<translation id="4087328411748538168">Wys aan regterkant</translation> <translation id="4089235344645910861">Instellings is gestoor. Sinkronisering het begin.</translation> <translation id="4090103403438682346">Aktiveer geverifieerde toegang</translation> <translation id="4090947011087001172">Stel werftoestemmings vir <ph name="SITE" /> terug?</translation> @@ -3562,6 +3570,7 @@ <translation id="4377058670119819762">Aktiveer oortjiestrook om links en regs te rollees wanneer dit vol is.</translation> <translation id="4377363674125277448">Daar was 'n probleem met die bediener se sertifikaat.</translation> <translation id="4378154925671717803">Foon</translation> +<translation id="4378308539633073595">Rollees vorentoe</translation> <translation id="4378551569595875038">Koppel tans …</translation> <translation id="4378556263712303865">Toestelrekwisisie</translation> <translation id="4379281552162875326">Deïnstalleer "<ph name="APP_NAME" />"?</translation> @@ -3971,6 +3980,7 @@ <translation id="4779766576531456629">Hernoem e-SIM-selnetwerk</translation> <translation id="4780321648949301421">Stoor bladsy as …</translation> <translation id="4781443161433589743">Jy is op Chrome se sterkste sekuriteit</translation> +<translation id="4782861709165039462">Alle mikrofone is gedeaktiveer deur toestel se hardewareskakel</translation> <translation id="4785719467058219317">Jy gebruik tans 'n sleutel wat nie by hierdie webwerf geregistreer is nie</translation> <translation id="4785914069240823137">Kanselleer snoei</translation> <translation id="4788092183367008521">Gaan jou netwerkverbinding na en probeer weer.</translation> @@ -4737,6 +4747,7 @@ <translation id="5548075230008247516">Alle items is ontkies; kiesmodus is verlaat.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" en 1 ander oortjie}other{"<ph name="TAB_TITLE" />" en # ander oortjies}}</translation> <translation id="5548606607480005320">Veiligheidskontrole</translation> +<translation id="5548644592758170183">Wys aan linkerkant</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Sleutelbord en teksinvoer</translation> <translation id="5553089923092577885">Sertifikaatbeleidkarterings</translation> @@ -6962,6 +6973,7 @@ <translation id="7753735457098489144">Kon weens tekort aan bergingspasie nie installeer nie. Vee lêers in toestelberging uit om spasie beskikbaar te maak.</translation> <translation id="7754347746598978109">Mag nie JavaScript gebruik nie</translation> <translation id="7754704193130578113">Vra waar om elke lêer te stoor voor jy aflaai</translation> +<translation id="7755134875397410803">Om jou te help om take uit te voer, sal Google die URL'e en inhoud ontvang van werwe waarop jy Assistent gebruik, asook inligting wat jy deur Assistent indien. Hierdie inligting kan in jou Google-rekening geberg word. Jy kan Assistent in Chrome-instellings afskakel. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Jou ouer kan dit vir jou deblokkeer</translation> <translation id="7757592200364144203">Verander toestelnaam</translation> <translation id="7757739382819740102">Kontakte in die omtrek kan met jou deel. Goedkeuring sal vereis word.</translation> @@ -7364,6 +7376,7 @@ <translation id="8120505434908124087">Installeer e-SIM-profiel</translation> <translation id="812260729110117038">Adverteerders en uitgewers kan die doeltreffendheid van advertensies op 'n manier bestudeer wat jou nie oor werwe heen naspoor nie.</translation> <translation id="81238879832906896">Geel-en-wit blom</translation> +<translation id="8123975449645947908">Rollees agteruit</translation> <translation id="8124313775439841391">Bestuurde ONC</translation> <translation id="813082847718468539">Bekyk werfinligting</translation> <translation id="8131740175452115882">Bevestig</translation> @@ -8219,6 +8232,7 @@ <translation id="8980345560318123814">Terugvoerverslae</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Omgeval</translation> <translation id="8981825781894055334">Min papier</translation> +<translation id="8983018820925880511">Hierdie nuwe profiel sal bestuur word deur <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> kan <ph name="FILENAME" /> wysig</translation> <translation id="8984694057134206124">Jy sal vir <ph name="MINUTES" /> minute vir almal sigbaar wees. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Welkom by Steam vir Chromebook</translation> @@ -8279,6 +8293,7 @@ <translation id="9037640663275993951">Toestel word nie toegelaat nie</translation> <translation id="9037818663270399707">Jou verbinding is nie vir alle netwerkverkeer privaat nie</translation> <translation id="9037965129289936994">Wys oorspronklike</translation> +<translation id="9038489124413477075">Titellose vouer</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Jy het een poging oor.}other{Jy het # pogings oor.}}</translation> <translation id="9040473193163777637">Wil jy ChromeVox, Chrome-bedryfstelsel se ingeboude skermleser, aktiveer? Indien wel, druk en hou albei volumesleutels vyf sekondes lank.</translation> <translation id="9040661932550800571">Dateer wagwoord op vir <ph name="ORIGIN" />?</translation> @@ -8315,6 +8330,7 @@ <translation id="9075413375877487220">Hierdie uitbreiding word nie deur Verbeterde Veiligblaai vertrou nie.</translation> <translation id="9076283476770535406">Dit kan dalk volwasse inhoud bevat</translation> <translation id="9076523132036239772">Jammer, jou e-pos of wagwoord kon nie geverifieer word nie. Probeer om eers aan 'n netwerk te koppel.</translation> +<translation id="9076821103818989526">Kantpaneel</translation> <translation id="9076977315710973122">SMB-deling</translation> <translation id="9078193189520575214">Pas tans veranderinge toe …</translation> <translation id="9078316009970372699">Deaktiveer kitsverbinding</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index dc53852..71b1997 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -1805,6 +1805,7 @@ <translation id="2667144577800272420">ሌሎች መተግበሪያዎች ከ<ph name="APP_NAME" /> ጋር ተመሳሳይ የሆኑ አገናኞችን ለመክፈት ተቀናብረዋል። ይህ <ph name="APP_NAME_2" /> እና <ph name="APP_NAME_3" /> የሚደገፉ አገናኞችን እንዳይከፍቱ ያሰናክላቸዋል።</translation> <translation id="2667463864537187133">ፊደል አራሚን ያቀናብሩ</translation> <translation id="2669241540496514785"><ph name="APP_NAME" />ን መክፈት አልተቻለም</translation> +<translation id="2669454659051515572">ይህን መሣሪያ የሚጠቀም ማንኛውም ሰው የወረዱ ፋይሎችን መመልከት ይችላል</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> የChrome ትር እያጋራ ነው።</translation> <translation id="2670403088701171361">ጣቢያዎች በቅንጥብ ሰሌዳዎ ላይ ጽሑፍ ወይም ምስሎችን እንዲያዩ አይፍቀዱላቸው</translation> <translation id="2670429602441959756">ይህ ገጽ እስካሁን በVR ውስጥ የማይደገፉ ባህሪያትን ይዟል። በመውጣት ላይ...</translation> @@ -2172,6 +2173,7 @@ <translation id="3008232374986381779">በእርስዎ <ph name="DEVICE_TYPE" /> ላይ የLinux መሣሪያዎችን፣ ጽሑፍ አቀናባሪዎችን እና አይዲኢዎች ያሂዱ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ፈቃዶችን ዳግም ያቀናብሩ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> ዝማኔን ለማውረድ ዛሬ ከWi-Fi ጋር እንዲገናኙ ይፈልግብዎታል። ወይም ደግሞ ከሚለካ ግንኙነት ያውርዱ (ክፍያዎች ሊከፈልባቸው ይችላል)።}one{<ph name="MANAGER" /> ከቀነ ገደቡ በፊት ከWi-Fi ጋር እንዲገናኙ እና ዝማኔን እንዲያወርዱ ይፈልግብዎታል። ወይም ደግሞ ከሚለካ ግንኙነት ያውርዱ (ክፍያዎች ሊከፈልባቸው ይችላል)።}other{<ph name="MANAGER" /> ከቀነ ገደቡ በፊት ከWi-Fi ጋር እንዲገናኙ እና ዝማኔን እንዲያወርዱ ይፈልግብዎታል። ወይም ደግሞ ከሚለካ ግንኙነት ያውርዱ (ክፍያዎች ሊከፈልባቸው ይችላል)።}}</translation> +<translation id="3009178788565917040">ውጽዓት</translation> <translation id="3009300415590184725">እርግጠኛ ነዎት የተንቀሳቃሽ ስልክ ውሂብ አገልግሎት የማዋቀር ሂደቱን ይቅር ማለት ይፈልጋሉ?</translation> <translation id="3009779501245596802">በመረጃ ጠቋሚ የተሰናዱ የውሂብ ጎታዎች</translation> <translation id="3010279545267083280">የይለፍ ቃል ተሰርዟል</translation> @@ -3553,6 +3555,7 @@ <translation id="4377058670119819762">የትር ድርድር ሲሞላ ወደ ግራ እና ቀኝ ለማሸብለል ያስችላል።</translation> <translation id="4377363674125277448">በአገልጋዩ የእውቅና ማረጋገጫ ላይ አንድ ችግር ነበር።</translation> <translation id="4378154925671717803">ስልክ</translation> +<translation id="4378308539633073595">ወደ ፊት ያሸብልሉ</translation> <translation id="4378551569595875038">በመገናኘት ላይ...</translation> <translation id="4378556263712303865">መሣሪያን ማግኘት</translation> <translation id="4379281552162875326">«<ph name="APP_NAME" />» ይራገፍ?</translation> @@ -7361,6 +7364,7 @@ <translation id="8120505434908124087">የኢሲም መገለጫ ይጫኑ</translation> <translation id="812260729110117038">ማስታወቂያ ሰሪዎች እና አታሚዎች በሁሉም ጣቢያዎች ላይ እርስዎን በማይከታተል መንገድ የማስታወቂያዎች ውጤታማነትን ማጥናት ይችላሉ።</translation> <translation id="81238879832906896">ቢጫ እና ነጭ አበባ</translation> +<translation id="8123975449645947908">ወደ ኋላ ያሸብልሉ</translation> <translation id="8124313775439841391">የሚቀናበር ONC</translation> <translation id="813082847718468539">የጣቢያ መረጃን ይመልከቱ</translation> <translation id="8131740175452115882">አረጋግጥ</translation> @@ -8277,6 +8281,7 @@ <translation id="9037640663275993951">መሣሪያ አይፈቀድም</translation> <translation id="9037818663270399707">የእርስዎ ግንኙነት ለሁሉም የአውታረ መረብ ትራፊክ የግል አይደለም</translation> <translation id="9037965129289936994">የመጀመሪያውን አሳይ</translation> +<translation id="9038489124413477075">ያልተሰየመ አቃፊ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{አንድ ቀሪ ሙከራ አለዎት።}one{# ቀሪ ሙከራዎች አለዎት።}other{# ቀሪ ሙከራዎች አለዎት።}}</translation> <translation id="9040473193163777637">የChromeOS አብሮገነብ የማያ ገጽ አንባቢ የሆነውን ChromeVox ማግበር ይፈልጋሉ? የሚፈልጉ ከሆነ ሁለቱንም የድምጽ መጠን ቁልፎችን ለአምስት ሰከንዶች ተጭነው ይያዙ።</translation> <translation id="9040661932550800571">ለ<ph name="ORIGIN" /> የይለፍ ቃል ይዘምን?</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index f821307..0d9ed9e81 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1800,6 +1800,7 @@ <translation id="2667144577800272420">تم ضبط تطبيقات أخرى لفتح الروابط نفسها مثل <ph name="APP_NAME" />. وسيؤدي هذا الإجراء إلى منع <ph name="APP_NAME_2" /> و<ph name="APP_NAME_3" /> من فتح الروابط المتوافقة.</translation> <translation id="2667463864537187133">إدارة التدقيق الإملائي</translation> <translation id="2669241540496514785">تعذّر فتح <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">يمكن لأي شخص يستخدم هذا الجهاز الاطّلاع على الملفات التي تم تنزيلها.</translation> <translation id="2670102641511624474">يشارك <ph name="APP_NAME" /> علامة تبويب متصفح Chrome.</translation> <translation id="2670403088701171361">عدم السماح للمواقع الإلكترونية بالوصول إلى النصوص أو الصور في الحافظة</translation> <translation id="2670429602441959756">تحتوي هذه الصفحة على ميزات لم يتم دعمها بعد في الواقع الافتراضي (VR). جارٍ الخروج...</translation> @@ -2168,6 +2169,7 @@ <translation id="3008232374986381779">يمكنك تشغيل أدوات Linux وأدوات التعديل وبرامج IDE على <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation> <translation id="3008272652534848354">إعادة ضبط الأذونات</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز اليوم، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}zero{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز قبل الموعد النهائي، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}two{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز قبل الموعد النهائي، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}few{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز قبل الموعد النهائي، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}many{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز قبل الموعد النهائي، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}other{يطلُب <ph name="MANAGER" /> منك الاتصال بشبكة Wi-Fi لتنزيل تحديث الجهاز قبل الموعد النهائي، أو تنزيله من خلال الاتصال بشبكة تفرض تكلفة استخدام (قد يتم فرض رسوم).}}</translation> +<translation id="3009178788565917040">الإخراج</translation> <translation id="3009300415590184725">هل تريد فعلًا إلغاء عملية إعداد خدمة بيانات الجوال؟</translation> <translation id="3009779501245596802">قواعد بيانات مفهرسة</translation> <translation id="3010279545267083280">تم حذف كلمة المرور</translation> @@ -3549,6 +3551,7 @@ <translation id="4377058670119819762">تعمل هذه الميزة على إتاحة الانتقال في شريط علامات التبويب عندما يزيد عددها.</translation> <translation id="4377363674125277448">هناك مشكلة مع شهادة الخادم.</translation> <translation id="4378154925671717803">هاتف</translation> +<translation id="4378308539633073595">التمرير للأمام</translation> <translation id="4378551569595875038">جارٍ الاتصال...</translation> <translation id="4378556263712303865">طلب الجهاز</translation> <translation id="4379281552162875326">هل تريد إلغاء تثبيت "<ph name="APP_NAME" />"؟</translation> @@ -3925,7 +3928,7 @@ <translation id="4742334355511750246">المواقع الإلكترونية التي لا يُسمح لها بعرض الصور</translation> <translation id="4742970037960872810">إزالة التمييز</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />التعرّف على كيفية تحديث التطبيقات<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{إعادة صوت موقع إلكتروني واحد}zero{إعادة صوت المواقع الإلكترونية}two{إعادة صوت موقعيِّ الويب}few{إعادة صوت المواقع الإلكترونية}many{إعادة صوت المواقع الإلكترونية}other{إعادة صوت المواقع الإلكترونية}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{إعادة صوت الموقع الإلكتروني}zero{إعادة صوت المواقع الإلكترونية}two{إعادة صوت الموقعَين الإلكترونيين}few{إعادة صوت المواقع الإلكترونية}many{إعادة صوت المواقع الإلكترونية}other{إعادة صوت المواقع الإلكترونية}}</translation> <translation id="474609389162964566">الوصول إلى "مساعد Google" من خلال قول Ok Google</translation> <translation id="4746351372139058112">الرسائل</translation> <translation id="4748783296226936791">تتّصل المواقع الإلكترونية عادةً بأجهزة HID لتتيح الميزات التي تستخدم لوحات المفاتيح غير العادية ووحدات التحكّم في الألعاب وغيرها من الأجهزة.</translation> @@ -4159,7 +4162,7 @@ <translation id="4972129977812092092">تعديل الطابعة</translation> <translation id="4972164225939028131">كلمة مرور غير صحيحة</translation> <translation id="4972737347717125191">السماح للمواقع الإلكترونية بطلب استخدام أجهزة الواقع الافتراضي وبياناتها</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{كتم صوت موقع إلكتروني واحد}zero{كتم صوت المواقع الإلكترونية}two{كتم صوت موقعيِّ الويب}few{كتم صوت المواقع الإلكترونية}many{كتم صوت المواقع الإلكترونية}other{كتم صوت المواقع الإلكترونية}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{كتم صوت الموقع الإلكتروني}zero{كتم صوت المواقع الإلكترونية}two{كتم صوت الموقعَين الإلكترونيين}few{كتم صوت المواقع الإلكترونية}many{كتم صوت المواقع الإلكترونية}other{كتم صوت المواقع الإلكترونية}}</translation> <translation id="497403230787583386">اكتملت عمليات فحص الأمان. ستتم طباعة المستند.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation> <translation id="4977942889532008999">تأكيد الدخول</translation> @@ -7359,6 +7362,7 @@ <translation id="8120505434908124087">تثبيت الملف الشخصي لشريحة eSIM</translation> <translation id="812260729110117038">يمكن للمعلِنين والناشرين تحديد مدى فعالية الإعلانات بدون الحاجة إلى تتبّع نشاطك في المواقع الإلكترونية.</translation> <translation id="81238879832906896">زهرة صفراء وبيضاء</translation> +<translation id="8123975449645947908">التمرير للخلف</translation> <translation id="8124313775439841391">ONC مُدار</translation> <translation id="813082847718468539">عرض معلومات الموقع</translation> <translation id="8131740175452115882">التأكيد</translation> @@ -8279,6 +8283,7 @@ <translation id="9037640663275993951">الجهاز غير مسموح به.</translation> <translation id="9037818663270399707">اتصالك بهذا الموقع الإلكتروني ليس خاصًا لجميع حركة بيانات الشبكة.</translation> <translation id="9037965129289936994">عرض الصفحة الأصلية</translation> +<translation id="9038489124413477075">مجلد بدون اسم</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{يتبقى لديك محاولة واحدة.}zero{يتبقى لديك # محاولة.}two{يتبقى لديك محاولتان.}few{يتبقى لديك # محاولات.}many{يتبقى لديك # محاولةً.}other{يتبقى لديك # محاولة.}}</translation> <translation id="9040473193163777637">هل تريد تفعيل قارئ الشاشة ChromeVox المضمّن في نظام التشغيل Chrome؟ اضغط مع الاستمرار على مفتاحَي مستوى الصوت لمدة خمس ثوانٍ لتفعيل ChromeVox.</translation> <translation id="9040661932550800571">هل تريد تحديث كلمة المرور لـ <ph name="ORIGIN" />؟</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index fd65af16..4dde765 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -1278,6 +1278,7 @@ <translation id="2180620921879609685">যিকোনো পৃষ্ঠাত সমল অৱৰোধ কৰক</translation> <translation id="2182058453334755893">আপোনাৰ ক্লিপব’ৰ্ডলৈ প্ৰতিলিপি কৰা হৈছে</translation> <translation id="2184515124301515068">ছাইটসমূহে কেতিয়া ধ্বনি বজাব পাৰিব সেয়া Chromeক বাছনি কৰিবলৈ দিয়ক (আমি চুপাৰিছ কৰোঁ)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">অন্য এটা ডিভাইচৰ পৰা শ্বেয়াৰ কৰা পৃষ্ঠা</translation> <translation id="2187675480456493911">আপোনাৰ একাউণ্টত থকা অন্য ডিভাইচসমূহৰ সৈতে ছিংক কৰা হৈছে। অন্য ব্যৱহাৰকাৰীসকলে সংশোধন কৰা ছেটিংসমূহ ছিংক কৰা নহ’ব। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation> <translation id="2187895286714876935">ছাৰ্ভাৰৰ প্ৰমাণপত্ৰ আমদানি কৰাত আসোঁৱাহ</translation> @@ -1810,6 +1811,7 @@ <translation id="2667144577800272420">অন্য এপ্সমূহ <ph name="APP_NAME" />ৰ দৰে একেই লিংকসমূহ খুলিবলৈ সাজু আছে। এইটোৱে <ph name="APP_NAME_2" /> আৰু <ph name="APP_NAME_3" />ক সমৰ্থিত লিংকসমূহ খুলিবলৈ নিদিয়ে।</translation> <translation id="2667463864537187133">বানান পৰীক্ষক পৰিচালনা কৰক</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> খুলিব পৰা নগ’ল</translation> +<translation id="2669454659051515572">এই ডিভাইচটো ব্যৱহাৰ কৰা যিকোনো লোকে ডাউনল’ড কৰা ফাইল চাব পাৰে</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />এ এটা Chrome টেব শ্বেয়াৰ কৰি আছে।</translation> <translation id="2670403088701171361">ছাইটক আপোনাৰ ক্লিপব’ৰ্ডত থকা পাঠ অথবা প্ৰতিচ্ছবি চাবলৈ নিদিব</translation> <translation id="2670429602441959756">এই পৃষ্ঠাটোত থকা সুবিধাসমূহ এই পর্যন্ত VRত সমৰ্থিত নহয়। বাহিৰলৈ ওলাই গৈ থকা হৈছে...</translation> @@ -2176,6 +2178,7 @@ <translation id="3008232374986381779">আপোনাৰ <ph name="DEVICE_TYPE" />ত Linux সঁজুলি, সম্পাদক আৰু IDEসমূহ চলাওক। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation> <translation id="3008272652534848354">অনুমতি ৰিছেট কৰক</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{আপডে’ট ডাউনল’ড কৰিবলৈ <ph name="MANAGER" />ৰ বাবে আপুনি আজি এটা ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰাৰ আৱশ্যক। অথবা, এটা নিৰিখ-নিৰ্দিষ্ট সংযোগৰ পৰা ডাউনল’ড কৰক (মাচুল প্ৰযোজ্য হ’ব পাৰে)।}one{<ph name="MANAGER" />ৰ বাবে আপুনি ৱাই-ফাইৰ সৈতে সংযোগ কৰাৰ আৰু নিৰ্ধাৰিত সময়সীমা পাৰ হোৱাৰ পূৰ্বে এটা আপডে’ট ডাউনল’ড কৰাৰ আৱশ্যক। অথবা, এটা নিৰিখ-নিৰ্দিষ্ট সংযোগৰ পৰা ডাউনল’ড কৰক (মাচুল প্ৰযোজ্য হ’ব পাৰে)।}other{<ph name="MANAGER" />ৰ বাবে আপুনি ৱাই-ফাইৰ সৈতে সংযোগ কৰাৰ আৰু নিৰ্ধাৰিত সময়সীমা পাৰ হোৱাৰ পূৰ্বে এটা আপডে’ট ডাউনল’ড কৰাৰ আৱশ্যক। অথবা, এটা নিৰিখ-নিৰ্দিষ্ট সংযোগৰ পৰা ডাউনল’ড কৰক (মাচুল প্ৰযোজ্য হ’ব পাৰে)।}}</translation> +<translation id="3009178788565917040">আউটপুট</translation> <translation id="3009300415590184725">আপুনি ম’বাইল ডেটা ছেট আপ কৰা প্ৰক্ৰিয়াটো নিশ্চিতভাৱে বাতিল কৰিব খোজেনে?</translation> <translation id="3009779501245596802">ইনডেক্স কৰা ডেটাবেছ</translation> <translation id="3010279545267083280">পাছৱর্ড মচা হ’ল</translation> @@ -3562,6 +3565,7 @@ <translation id="4377058670119819762">পূৰ হ’লে টেবৰ ষ্ট্ৰিপটো বাওঁফাললৈ আৰু সোঁফাললৈ স্ক্ৰ’ল কৰাটো সক্ষম কৰে।</translation> <translation id="4377363674125277448">ছাৰ্ভাৰৰ প্ৰমাণপত্ৰৰ ক্ষেত্ৰত কিবা সমস্যা হৈছে।</translation> <translation id="4378154925671717803">ফ'ন</translation> +<translation id="4378308539633073595">আগলৈ স্ক্ৰ’ল কৰক</translation> <translation id="4378551569595875038">সংযোগ হৈছে...</translation> <translation id="4378556263712303865">ডিভাইচৰ আৱশ্যকতা</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />"ক আনইনষ্টল কৰিবনে?</translation> @@ -7366,6 +7370,7 @@ <translation id="8120505434908124087">ই-ছিমৰ প্ৰ’ফাইল ইনষ্টল কৰক</translation> <translation id="812260729110117038">বিজ্ঞাপনদাতা আৰু প্ৰকাশকে আপোনাক বিভিন্ন ছাইটত ট্ৰেক নকৰাকৈ বিজ্ঞাপনৰ ফলপ্ৰসূতা অধ্যয়ন কৰিব পাৰে।</translation> <translation id="81238879832906896">হালধীয়া আৰু বগা ফুল</translation> +<translation id="8123975449645947908">পিছলৈ স্ক্ৰ'ল কৰক</translation> <translation id="8124313775439841391">পৰিচালিত ONC</translation> <translation id="813082847718468539">ছাইটৰ তথ্য চাওক</translation> <translation id="8131740175452115882">নিশ্চিত কৰক</translation> @@ -8283,6 +8288,7 @@ <translation id="9037640663275993951">ডিভাইচটোৰ অনুমতি নাই</translation> <translation id="9037818663270399707">সকলো নেটৱৰ্কৰ ট্ৰেফিকৰ বাবে আপোনাৰ সংযোগটো ব্যক্তিগত নহয়</translation> <translation id="9037965129289936994">প্ৰকৃত সমল দেখুৱাওক</translation> +<translation id="9038489124413477075">নামবিহীন ফ’ল্ডাৰ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{আপোনাৰ এটা প্ৰয়াস বাকী আছে।}one{আপোনাৰ # টা প্ৰয়াস বাকী আছে।}other{আপোনাৰ # টা প্ৰয়াস বাকী আছে।}}</translation> <translation id="9040473193163777637">আপুনি ChromeOSৰ বাবে বিল্ট-ইন স্ক্ৰীন ৰীডাৰ, ChromeVox সক্ৰিয় কৰিবলৈ বিচাৰেনে? যদি বিচাৰে, দুয়োটা ভলিউম কী পাঁচ ছেকেণ্ডৰ বাবে হেঁচি ধৰি ৰাখক।</translation> <translation id="9040661932550800571"><ph name="ORIGIN" />ৰ পাছৱৰ্ড আপডে’ট কৰিবনে?</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 3c5f812f..453f8b39 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1797,6 +1797,7 @@ <translation id="2667144577800272420">Digər tətbiqlər <ph name="APP_NAME" /> ilə eyni keçidləri açmaq üçün ayarlanıb. Bununla <ph name="APP_NAME_2" /> və <ph name="APP_NAME_3" /> tətbiqinin dəstəklənən keçidləri açması deaktiv ediləcək.</translation> <translation id="2667463864537187133">Orfoqrafik yoxlanışı idarə edin</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> açılmadı</translation> +<translation id="2669454659051515572">Bu cihazdan istifadə edən hər kəs endirilmiş faylları görə bilər</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> tətbiqi Chrome panelini paylaşır.</translation> <translation id="2670403088701171361">Saytlara mübadilə buferinizdəki mətnə və ya şəkillərə baxmaq icazəsi verməyin</translation> <translation id="2670429602441959756">Bu səhifədə hələ də VR'də dəstəklənməyən funksiyalar var. Çıxılır...</translation> @@ -2163,6 +2164,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> cihazınızda Linux alətləri, redaktorları və IDE-ləri işə salın. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation> <translation id="3008272652534848354">İcazələri sıfırlayın</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> sizdən bugün Wi-Fi'a qoşulmanızı və güncəlləməni endirmənizi tələb edir. Ya da limitli bağlantı vasitəsilə endirin (ödəniş tutula bilər).}other{<ph name="MANAGER" /> son tarixdən öncə Wi-Fi'a qoşulmanızı və güncəlləməni endirmənizi tələb edir. Ya da limitli bağlantı vasitəsilə endirin (ödəniş tutula bilər).}}</translation> +<translation id="3009178788565917040">Çıxış</translation> <translation id="3009300415590184725">Mobil data xidmətinin quraşdırma prosesini ləğv etmək istəyirsiniz?</translation> <translation id="3009779501245596802">İndeksli verilənlər bazası</translation> <translation id="3010279545267083280">Parol silindi</translation> @@ -3205,6 +3207,7 @@ <translation id="402211067068791756">Bununla göstərilən saytlar tərəfindən saxlanılan bütün <ph name="TOTAL_USAGE" /> data silinəcək</translation> <translation id="4022426551683927403">&Lüğətə əlavə edin</translation> <translation id="4025039777635956441">Seçilmiş saytı səssiz edin</translation> +<translation id="4027958407426528157"><ph name="DEVICE_TYPE" /> cihazınızda quraşdırılmış tətbiqlərdə vebsaytları açın</translation> <translation id="4028467762035011525">Daxiletmə metodlarını əlavə edin</translation> <translation id="4029556917477724407"><ph name="PAGE_TITLE" /> səhifəsindən geri qayıdın</translation> <translation id="4031179711345676612">Mikrofona icazə verildi</translation> @@ -3548,6 +3551,7 @@ <translation id="4377058670119819762">Dolduqda sola və sağa sürüşdürmək üçün tab zolağını aktivləşdirir.</translation> <translation id="4377363674125277448">Serverin sertifikatı ilə bağlı problem oldu.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">İrəli sürüşdürün</translation> <translation id="4378551569595875038">Qoşulur...</translation> <translation id="4378556263712303865">Cihaz sifarişi</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ləğv edilsin?</translation> @@ -6549,6 +6553,7 @@ <translation id="7377481913241237033">Kod ilə qoşulun</translation> <translation id="7378611153938412599">Zəif parolları tapmaq asandır. Güclü parol yaratdığınıza əmin olun. <ph name="BEGIN_LINK" />Daha çox təhlükəsizlik məsləhətinə baxın.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Chrome Veb Mağazanı Açın</translation> +<translation id="737938816678769289">Yaxınlıqdakı Sürətli Birləşdirmə cihazlarını asanlıqla qoşun və ayarlayın</translation> <translation id="7380459290951585794">Telefonunuzun yaxınlıqda olduğuna, kiliddən çıxarılmış olduğuna, Bluetooth və Wi-Fi'ın aktiv olduğuna əmin olun</translation> <translation id="7380622428988553498">Cihaz adında yanlış simvollar var</translation> <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> yeniləndi</translation> @@ -7347,6 +7352,7 @@ <translation id="8120505434908124087">eSIM profili quraşdırın</translation> <translation id="812260729110117038">Reklamçılar reklamların effektivliyini saytlarda sizi izləməyəcək şəkildə araşdıra bilərlər.</translation> <translation id="81238879832906896">Sarı və ağ gül</translation> +<translation id="8123975449645947908">Geri sürüşdürün</translation> <translation id="8124313775439841391">İdarə olunan ONC</translation> <translation id="813082847718468539">Sayt məlumatına baxın</translation> <translation id="8131740175452115882">Təsdiq edin</translation> @@ -8261,6 +8267,7 @@ <translation id="9037640663275993951">Cihaza icazə verilmir</translation> <translation id="9037818663270399707">Bağlantınız bütün şəbəkə trafiki üçün məxfi deyil</translation> <translation id="9037965129289936994">Orijinalı Göstərin</translation> +<translation id="9038489124413477075">Adsız Qovluq</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Bir cəhdiniz qalıb.}other{# cəhdiniz qalıb.}}</translation> <translation id="9040473193163777637">ChromeOS üçün daxili ekran oxuyucusu olan ChromeVox'u aktiv etmək istəyirsiniz? Belədirsə, hər iki səs düyməsinə beş saniyə basıb saxlayın.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> üçün parol yenilənsin?</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 80531c54..17b87bf 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -1250,6 +1250,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Дадаць сетку Wi-Fi...</translation> <translation id="2162155940152307086">Сінхранізацыя пачнецца, як толькі вы закрыеце старонку налад сінхранізацыі</translation> +<translation id="2162705204091149050">Доступ да інфармацыі пра браўзер, АС, прыладу, усталяванае праграмнае забеспячэнне і файлы</translation> <translation id="2162926944953615670">Даступных профіляў eSIM-карты няма</translation> <translation id="2163470535490402084">Каб увайсці на прыладу <ph name="DEVICE_TYPE" />, падключыцеся да інтэрнэту.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> і яшчэ 1 пераключальнік</translation> @@ -1799,6 +1800,7 @@ <translation id="2667144577800272420">Іншыя праграмы наладжаны адкрываць такія ж спасылкі, што і <ph name="APP_NAME" />. Праграмы "<ph name="APP_NAME_2" />" і "<ph name="APP_NAME_3" />" перастануць адкрываць адпаведныя спасылкі.</translation> <translation id="2667463864537187133">Кіраванне праверкай правапісу</translation> <translation id="2669241540496514785">Немагчыма адкрыць праграму <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Усе, хто карыстаецца гэтай прыладай, могуць бачыць спампаваныя файлы</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> абагульвае ўкладку Chrome.</translation> <translation id="2670403088701171361">Не дазваляць сайтам праглядаць тэкст і відарысы ў буферы абмену</translation> <translation id="2670429602441959756">Функцыі на гэтай старонцы не падтрымліваюцца ў VR. Выконваецца выхад...</translation> @@ -2165,6 +2167,7 @@ <translation id="3008232374986381779">Выкарыстоўвайце інструменты Linux, рэдактары і IDE на сваёй прыладзе <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Скінуць дазволы</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> патрабуе ад вас падключыцца сёння да сеткі Wi-Fi і спампаваць абнаўленне. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}one{<ph name="MANAGER" /> патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}few{<ph name="MANAGER" /> патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}many{<ph name="MANAGER" /> патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}other{<ph name="MANAGER" /> патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}}</translation> +<translation id="3009178788565917040">Выхад</translation> <translation id="3009300415590184725">Сапраўды скасаваць наладжванне сэрвісу мабільнай перадачы даных?</translation> <translation id="3009779501245596802">Індэксаваныя базы даных</translation> <translation id="3010279545267083280">Пароль выдалены.</translation> @@ -2495,6 +2498,7 @@ <translation id="3359256513598016054">Абмежаванні палітыкі сертыфікатаў</translation> <translation id="3360297538363969800">Памылка друку. Праверце прынтар і паўтарыце спробу.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}one{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}few{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}many{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}other{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />).}}</translation> +<translation id="3363202073972776113">Новым профілем будзе кіраваць ваша арганізацыя. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Паведамленне ад адміністратара: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Выкарыстоўвайце або Ctrl, або Alt</translation> <translation id="3368922792935385530">Падключана</translation> @@ -2529,6 +2533,7 @@ <translation id="339722927132407568">Ёсць завісанні</translation> <translation id="3399432415385675819">Апавяшчэнні будуць выключаны</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Гц) – празрадковая разгортка</translation> +<translation id="3401484564516348917">Доступ да інфармацыі пра браўзер, АС, прыладу, усталяванае праграмнае забеспячэнне, значэнні рэестра і файлы</translation> <translation id="3402059702184703067">{COUNT,plural, =1{На гэтай прыладзе захаваны {COUNT} пароль}one{На гэтай прыладзе захаваны {COUNT} пароль}few{На гэтай прыладзе захавана {COUNT} паролі}many{На гэтай прыладзе захавана {COUNT} пароляў}other{На гэтай прыладзе захавана {COUNT} пароля}}</translation> <translation id="3402255108239926910">Выберыце аватар</translation> <translation id="3402585168444815892">Рэгістрацыя ў дэманстрацыйным рэжыме</translation> @@ -2775,6 +2780,7 @@ <translation id="3627879631695760395">Усталяваць <ph name="APP" />...</translation> <translation id="3628275722731025472">Выключыць Bluetooth</translation> <translation id="3629631988386925734">Каб уключыць Smart Lock, увядзіце пароль. Наступны раз прылада <ph name="DEVICE_TYPE" /> будзе разблакіравана з дапамогай вашага тэлефона. Вы можаце выключыць Smart Lock у Наладах.</translation> +<translation id="3629664892718440872">Запомніць гэты выбар</translation> <translation id="3630132874740063857">Ваш тэлефон</translation> <translation id="3630995161997703415">Дадайце гэты сайт на вашу паліцу, каб мець да яго доступ у любы час</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Вы можаце дазволіць прыладам з Chrome OS адпраўляць аўтаматычныя справаздачы, каб дапамагаць нам выяўляць, над чым трэба працаваць у першую чаргу. У гэтыя справаздачы можа ўключацца, у прыватнасці, інфармацыя пра збоі ў Chrome OS, а таксама пра тое, якія функцыі вы выкарыстоўвалі і які аб'ём памяці быў звычайна задзейнічаны.<ph name="END_PARAGRAPH1" /> @@ -3264,6 +3270,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Поўны кантроль над прыладамі MIDI забаронены</translation> +<translation id="4087328411748538168">Паказваць справа</translation> <translation id="4089235344645910861">Налады захаваныя. Сінхранізацыя пачалася.</translation> <translation id="4090103403438682346">Уключыць спраўджаны доступ</translation> <translation id="4090947011087001172">Скінуць дазволы сайта для <ph name="SITE" />?</translation> @@ -3548,6 +3555,7 @@ <translation id="4377058670119819762">Дазваляе прагортваць панэль укладак, калі іх вельмі шмат, улева і ўправа.</translation> <translation id="4377363674125277448">Узнікла праблема з сертыфікатам сервера.</translation> <translation id="4378154925671717803">Тэлефон</translation> +<translation id="4378308539633073595">Прагартаць наперад</translation> <translation id="4378551569595875038">Падключэнне...</translation> <translation id="4378556263712303865">Заяўка на прыладу</translation> <translation id="4379281552162875326">Выдаліць праграму "<ph name="APP_NAME" />"?</translation> @@ -3956,6 +3964,7 @@ <translation id="4779766576531456629">Перайменаваць сотавую сетку eSIM-карты</translation> <translation id="4780321648949301421">Захаваць старонку як...</translation> <translation id="4781443161433589743">Вы выкарыстоўваеце самую надзейную абарону Chrome</translation> +<translation id="4782861709165039462">Усе мікрафоны адключаны з дапамогай апаратнага пераключальніка</translation> <translation id="4785719467058219317">Вы выкарыстоўваеце ключ бяспекі, не зарэгістраваны на гэтым вэб-сайце</translation> <translation id="4785914069240823137">Скасаваць абрэзку</translation> <translation id="4788092183367008521">Праверце падключэнне да сеткі і паўтарыце спробу.</translation> @@ -4722,6 +4731,7 @@ <translation id="5548075230008247516">Вы скасавалі выбар усіх элементаў і выйшлі з рэжыму выбару.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" і яшчэ 1 укладка}one{"<ph name="TAB_TITLE" />" і яшчэ # укладка}few{"<ph name="TAB_TITLE" />" і яшчэ # укладкі}many{"<ph name="TAB_TITLE" />" і яшчэ # укладак}other{"<ph name="TAB_TITLE" />" і яшчэ # укладкі}}</translation> <translation id="5548606607480005320">Праверка бяспекі</translation> +<translation id="5548644592758170183">Паказваць злева</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Клавіятура і ўвод тэксту</translation> <translation id="5553089923092577885">Супастаўленні палітык сертыфікатаў</translation> @@ -7353,6 +7363,7 @@ <translation id="8120505434908124087">Усталяваць профіль eSIM-карты</translation> <translation id="812260729110117038">Рэкламадаўцы і выдаўцы змогуць ацэньваць эфектыўнасць рэкламы, не адсочваючы пры гэтым вашы дзеянні ў інтэрнэце.</translation> <translation id="81238879832906896">Жоўта-белая кветка</translation> +<translation id="8123975449645947908">Прагартаць назад</translation> <translation id="8124313775439841391">ONC пад кіраваннем</translation> <translation id="813082847718468539">Прагляд звестак пра сайт</translation> <translation id="8131740175452115882">Пацвердзіць</translation> @@ -8211,6 +8222,7 @@ <translation id="8980345560318123814">Адпраўка справаздач</translation> <translation id="8980951173413349704">Збой <ph name="WINDOW_TITLE" /></translation> <translation id="8981825781894055334">Мала паперы</translation> +<translation id="8983018820925880511">Новым профілем будзе кіраваць <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation> <translation id="8983632908660087688">Сайт <ph name="ORIGIN" /> можа змяняць файл <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Ваша прылада будзе бачнай усім яшчэ <ph name="MINUTES" /> хв. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Вітаем у Steam для Chromebook</translation> @@ -8271,6 +8283,7 @@ <translation id="9037640663275993951">Няма дазволу на выкарыстанне гэтай прылады</translation> <translation id="9037818663270399707">Падключэнне не з'яўляецца прыватным для ўсяго сеткавага трафіка</translation> <translation id="9037965129289936994">Паказаць арыгінал</translation> +<translation id="9038489124413477075">Папка без назвы</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{У вас засталася адна спроба.}one{У вас засталася # спроба.}few{У вас засталося # спробы.}many{У вас засталося # спроб.}other{У вас засталося # спробы.}}</translation> <translation id="9040473193163777637">Актываваць ChromeVox – убудаваную праграму чытання з экрана для Chrome OS? Для актывацыі націсніце і ўтрымлівайце пяць секунд абедзве клавішы гучнасці.</translation> <translation id="9040661932550800571">Абнавіць пароль для сайта <ph name="ORIGIN" />?</translation> @@ -8304,6 +8317,7 @@ <translation id="9075413375877487220">Гэта пашырэнне не адпавядае стандартам Палепшанага Бяспечнага прагляду.</translation> <translation id="9076283476770535406">Можа змяшчаць матэрыялы для дарослых</translation> <translation id="9076523132036239772">На жаль, адрас вашай электроннай пошты або ваш пароль спраўдзіць не ўдалося. Спачатку падключыцеся да сеткі.</translation> +<translation id="9076821103818989526">Бакавая панэль</translation> <translation id="9076977315710973122">Абагульванне файлаў праз SMB</translation> <translation id="9078193189520575214">Абнаўленне...</translation> <translation id="9078316009970372699">Выключыць Імгненны рэжым мадэма</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index 91ec0e5..f5cab320 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1255,6 +1255,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Добавяне на Wi-Fi...</translation> <translation id="2162155940152307086">Синхронизирането ще започне, след като излезете от страницата с настройките му</translation> +<translation id="2162705204091149050">Четене на информация за вашите браузър, операционна система, устройство, инсталиран софтуер и файлове</translation> <translation id="2162926944953615670">Няма налични потребителски профили за електронни SIM карти</translation> <translation id="2163470535490402084">Моля, свържете се с интернет, за да влезте в устройството си <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> и още 1 превключвател</translation> @@ -1808,6 +1809,7 @@ <translation id="2667144577800272420">За другите приложения е зададено да отварят същите връзки като <ph name="APP_NAME" />. Това действие ще деактивира отварянето на поддържаните връзки от <ph name="APP_NAME_2" /> и <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Управление на проверката на правописа</translation> <translation id="2669241540496514785">Отварянето на <ph name="APP_NAME" /> не бе успешно</translation> +<translation id="2669454659051515572">Всеки, който използва това устройство, може да преглежда изтеглените файлове</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> споделя раздел в Chrome.</translation> <translation id="2670403088701171361">Да не се разрешава на сайтовете достъп до текста и изображенията в буферната памет</translation> <translation id="2670429602441959756">Тази страница съдържа функции, които още не се поддържат във VR. Режимът се затваря...</translation> @@ -2141,7 +2143,7 @@ <translation id="2966937470348689686">Управление на предпочитанията за Android</translation> <translation id="2967926928600500959">URL адресите, съответстващи на тези правила, задължително ще се отварят в конкретен браузър.</translation> <translation id="2972581237482394796">&Възстановяване</translation> -<translation id="2973324205039581528">Заглушаване на сайта</translation> +<translation id="2973324205039581528">Спиране на звука на сайта</translation> <translation id="2973537811036309675">Страничен панел</translation> <translation id="2976557544729462544">Някои устройства изискват да деактивирате защитата на достъпа до данните, в противен случай не работят нормално или с пълна скорост.</translation> <translation id="2977480621796371840">Премахване от групата</translation> @@ -2175,6 +2177,7 @@ <translation id="3008232374986381779">Изпълнявайте инструменти, редактори и интегрирани среди за програмиране за Linux на устройството си <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Нулиране на разрешенията</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> изисква да се свържете с Wi-Fi днес и да изтеглите актуализация. За целта можете да използвате и връзка с отчитане (възможно е да ви бъдат начислени такси).}other{<ph name="MANAGER" /> изисква да се свържете с Wi-Fi и да изтеглите актуализация преди крайния срок. За целта можете да използвате и връзка с отчитане (възможно е да ви бъдат начислени такси).}}</translation> +<translation id="3009178788565917040">Изход</translation> <translation id="3009300415590184725">Наистина ли искате да анулирате процеса на настройка на мобилната услуга за данни?</translation> <translation id="3009779501245596802">Индексирани бази от данни</translation> <translation id="3010279545267083280">Паролата е изтрита</translation> @@ -2505,6 +2508,7 @@ <translation id="3359256513598016054">Ограничения на правилата за сертификата</translation> <translation id="3360297538363969800">Отпечатването не бе успешно. Моля, проверете принтера си и опитайте отново.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> споделя с вас <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> споделя с вас <ph name="ATTACHMENTS" />.}}</translation> +<translation id="3363202073972776113">Този нов потребителски профил ще се управлява от организацията ви. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation> <translation id="3364986687961713424">От администратора ви: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Използвайте или Ctrl, или Alt</translation> <translation id="3368922792935385530">Има връзка</translation> @@ -2539,6 +2543,7 @@ <translation id="339722927132407568">Блокира</translation> <translation id="3399432415385675819">Известията ще бъдат деактивирани</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> херца) – презредова развивка</translation> +<translation id="3401484564516348917">Четене на информация за вашите браузър, операционна система, устройство, инсталиран софтуер, стойности в системния регистър и файлове</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} парола се съхранява на това устройство}other{{COUNT} пароли се съхраняват на това устройство}}</translation> <translation id="3402255108239926910">Изберете аватар</translation> <translation id="3402585168444815892">Регистриране за демонстрационния режим</translation> @@ -2785,6 +2790,7 @@ <translation id="3627879631695760395">Инсталиране на <ph name="APP" />...</translation> <translation id="3628275722731025472">Изключване на Bluetooth</translation> <translation id="3629631988386925734">Въведете паролата си, за да активирате Smart Lock. Следващия път телефонът ви ще отключи устройството ви <ph name="DEVICE_TYPE" />. Можете да изключите Smart Lock от настройките.</translation> +<translation id="3629664892718440872">Запомняне на този избор</translation> <translation id="3630132874740063857">Вашият телефон</translation> <translation id="3630995161997703415">Добавете този сайт към лавицата си, за да го използвате по всяко време</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Като разрешите на устройствата си с Chrome OS да изпращат автоматични сигнали, ни помагате да разбираме какво е най-важно да поправим и подобрим в операционната система. Тези сигнали могат да включват различни неща, като например информация за възникнали сривове в ChromeOS, с кои функции работите и колко памет използвате обичайно.<ph name="END_PARAGRAPH1" /> @@ -3275,6 +3281,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Пълният контрол над MIDI устройствата е отказан</translation> +<translation id="4087328411748538168">Показване вдясно</translation> <translation id="4089235344645910861">Настройките бяха запазени. Синхронизирането започна.</translation> <translation id="4090103403438682346">Активиране на удостоверения достъп</translation> <translation id="4090947011087001172">Да се нулират ли разрешенията за сайта <ph name="SITE" />?</translation> @@ -3559,6 +3566,7 @@ <translation id="4377058670119819762">Активира възможност за превъртане наляво и надясно на лентата с разделите, когато е пълна.</translation> <translation id="4377363674125277448">Имаше проблем със сертификата на сървъра.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Превъртане напред</translation> <translation id="4378551569595875038">Свързване...</translation> <translation id="4378556263712303865">Заявка за устройството</translation> <translation id="4379281552162875326">Да се деинсталира ли <ph name="APP_NAME" />?</translation> @@ -3968,6 +3976,7 @@ <translation id="4779766576531456629">Преименуване на мобилната мрежа за електронната SIM карта</translation> <translation id="4780321648949301421">Запазване на страницата като...</translation> <translation id="4781443161433589743">Използвате най-високото ниво на сигурност на Chrome</translation> +<translation id="4782861709165039462">Всички микрофони са деактивирани от хардуерен превключвател на устройството</translation> <translation id="4785719467058219317">Използвате ключ за сигурност, който не е регистриран в този уебсайт</translation> <translation id="4785914069240823137">Отказ от подрязването</translation> <translation id="4788092183367008521">Моля, проверете връзката си с мрежата и опитайте отново.</translation> @@ -4734,6 +4743,7 @@ <translation id="5548075230008247516">Изборът бе премахнат от всички елементи. Излязохте от режима за избиране.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ и още 1 раздел}other{„<ph name="TAB_TITLE" />“ и още # раздела}}</translation> <translation id="5548606607480005320">Проверка на безопасността</translation> +<translation id="5548644592758170183">Показване вляво</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Клавиатура и въвеждане на текст</translation> <translation id="5553089923092577885">Съответствия на правилата за сертификата</translation> @@ -7362,6 +7372,7 @@ <translation id="8120505434908124087">Инсталиране на потребителския профил на електронната SIM карта</translation> <translation id="812260729110117038">Те могат да проучват ефективността на рекламите по начин, който не проследява действията ви в различните сайтове.</translation> <translation id="81238879832906896">Жълто-бяло цвете</translation> +<translation id="8123975449645947908">Превъртане назад</translation> <translation id="8124313775439841391">Управлявано ONC</translation> <translation id="813082847718468539">Преглед на информацията за сайта</translation> <translation id="8131740175452115882">Потвърждаване</translation> @@ -8217,6 +8228,7 @@ <translation id="8980345560318123814">Сигнали с отзиви</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – възникна срив</translation> <translation id="8981825781894055334">Хартията е на привършване</translation> +<translation id="8983018820925880511">Този нов потребителски профил ще се управлява от <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> може да редактира „<ph name="FILENAME" />“</translation> <translation id="8984694057134206124">Устройството ви ще бъде видимо за всички в продължение на <ph name="MINUTES" /> минути. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Добре дошли в Steam за Chromebook</translation> @@ -8277,6 +8289,7 @@ <translation id="9037640663275993951">Устройството не е разрешено</translation> <translation id="9037818663270399707">Връзката ви не е частна за целия мрежов трафик</translation> <translation id="9037965129289936994">Показване на оригинала</translation> +<translation id="9038489124413477075">Папка без име</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Остава ви един опит.}other{Остават ви # опита.}}</translation> <translation id="9040473193163777637">Искате ли да активирате ChromeVox – вградения екранен четец на Chrome OS? Ако е така, натиснете и двата бутона за силата на звука и ги задръжте за пет секунди.</translation> <translation id="9040661932550800571">Да се актуализира ли паролата за <ph name="ORIGIN" />?</translation> @@ -8313,6 +8326,7 @@ <translation id="9075413375877487220">Подобрената защита от Безопасно сърфиране няма доверие на това разширение.</translation> <translation id="9076283476770535406">Възможно е да има съдържание за пълнолетни</translation> <translation id="9076523132036239772">За съжаление имейлът или паролата ви не можаха да бъдат потвърдени. Опитайте първо да се свържете с мрежа.</translation> +<translation id="9076821103818989526">Страничен панел</translation> <translation id="9076977315710973122">SMB дял</translation> <translation id="9078193189520575214">Промените се прилагат...</translation> <translation id="9078316009970372699">Деактивиране на функцията за незабавен тетъринг</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 1125735..35589948 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -355,6 +355,7 @@ <translation id="1340527397989195812">ফাইল অ্যাপ ব্যবহার করে ডিভাইস থেকে মিডিয়া ব্যাক আপ নিন৷</translation> <translation id="1343865611738742294">ইউএসবি ডিভাইস অ্যাক্সেস করার জন্য Linux অ্যাপকে অনুমতি দিন। ইউএসবি ডিভাইস সরিয়ে নিলে, Linux সেটির তথ্য সেভ করে রাখবে না।</translation> <translation id="1343920184519992513">আপনি যেখানে ছেড়ে গিয়েছিলেন সেখান থেকেই আবার শুরু করুন এবং পৃষ্ঠার একটি নির্দিষ্ট সেট খুলুন</translation> +<translation id="1344377983938103876"><ph name="URL" /> খোলা হচ্ছে...</translation> <translation id="134589511016534552">ওপেন ট্যাব বিভাগে মিডিয়া ট্যাবগুলিও দেখানো হয়েছে</translation> <translation id="1346630054604077329">কনফার্ম করে রিস্টার্ট করুন</translation> <translation id="1346748346194534595">ডানে</translation> @@ -1281,6 +1282,7 @@ <translation id="2180620921879609685">যেকোনও পৃষ্ঠার কন্টেন্ট ব্লক করতে পারে</translation> <translation id="2182058453334755893">আপনার ক্লিপবোর্ডে কপি করা হয়েছে</translation> <translation id="2184515124301515068">সাইটটি কখন সাউন্ড চালাতে পারবে তা Chrome-কে বেছে নিতে দিন (প্রস্তাবিত)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">অন্য ডিভাইস থেকে পৃষ্ঠাটি শেয়ার করা হয়েছে</translation> <translation id="2187675480456493911">আপনার অ্যাকাউন্টের অন্যান্য ডিভাইসের সাথে সিঙ্ক করা হয়েছে। অন্য ব্যবহারকারীদের পরিবর্তন করা সেটিংস সিঙ্ক করা হবে না। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> <translation id="2187895286714876935">সার্ভার সার্টিফিকেট আমদানি করতে সমস্যা</translation> @@ -1813,6 +1815,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" />-এর মতো অন্যান্য অ্যাপ একই লিঙ্ক খোলার জন্য সেট করা আছে। এটি <ph name="APP_NAME_2" /> এবং <ph name="APP_NAME_3" />-এর সহায়ক লিঙ্ক খুলতে দেবে না।</translation> <translation id="2667463864537187133">বানান পরিক্ষক পরিচালনা করুন</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> খোলা যায়নি</translation> +<translation id="2669454659051515572">এই ডিভাইস ব্যবহার করছেন এমন যেকেউ ডাউনলোড করা ফাইলগুলি দেখতে পারবেন</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> একটি Chrome ট্যাব শেয়ার করছে।</translation> <translation id="2670403088701171361">সাইটকে আপনার ক্লিপবোর্ডের টেক্সট অথবা ছবি দেখতে দেয় না</translation> <translation id="2670429602441959756">এই পৃষ্ঠায় এমন কিছু বৈশিষ্ট্য রয়েছে যা এখনও VR এ সমর্থিত নয়। প্রস্থান করা হচ্ছে...</translation> @@ -2179,6 +2182,7 @@ <translation id="3008232374986381779">আপনার <ph name="DEVICE_TYPE" />-এ Linux টুল, এডিটর ও IDE চালান। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> <translation id="3008272652534848354">অনুমতি রিসেট করুন</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> আপনাকে আজই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}one{<ph name="MANAGER" /> আপনাকে নির্ধারিত সময়সীমা শেষ হওয়ার আগেই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}other{<ph name="MANAGER" /> আপনাকে নির্ধারিত সময়সীমা শেষ হওয়ার আগেই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}}</translation> +<translation id="3009178788565917040">আউটপুট</translation> <translation id="3009300415590184725">আপনি কি মোবাইল ডেটা পরিষেবা সেট-আপ প্রক্রিয়া বাতিল করার ব্যাপারে নিশ্চিত?</translation> <translation id="3009779501245596802">সূচিবদ্ধ ডেটাবেস</translation> <translation id="3010279545267083280">পাসওয়ার্ড মোছা হয়েছে</translation> @@ -3566,6 +3570,7 @@ <translation id="4377058670119819762">ভর্তি হয়ে গেলে বাঁ এবং ডান দিকে স্ক্রল করতে ট্যাব বার চালু করুন।</translation> <translation id="4377363674125277448">সার্ভারের সার্টিফিকেটে একটি সমস্যা হয়েছে।</translation> <translation id="4378154925671717803">ফোন</translation> +<translation id="4378308539633073595">স্ক্রল করে এগিয়ে যান</translation> <translation id="4378551569595875038">সংযুক্ত হচ্ছে...</translation> <translation id="4378556263712303865">ডিভাইসের অনুরোধ</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" আনইনস্টল করতে চান?</translation> @@ -6972,6 +6977,7 @@ <translation id="7753735457098489144">স্টোরেজের জন্য যথেষ্ট জায়গা নেই বলে ইনস্টল করা যায়নি। জায়গা খালি করতে, ডিভাইসের স্টোরেজ থেকে ফাইল মুছুন।</translation> <translation id="7754347746598978109">জাভাস্ক্রিপ্ট ব্যবহার করার অনুমতি দেওয়া হয়নি</translation> <translation id="7754704193130578113">প্রতিটি ফাইল ডাউনলোড করার আগে তা কোথায় সংরক্ষণ করতে হবে জিজ্ঞাসা করুন</translation> +<translation id="7755134875397410803">টাস্কগুলি সম্পূর্ণ করার কাজে আপনাকে সাহায্য করতে, Google-কে সেইসব সাইটের ইউআরএল ও কন্টেন্ট পাঠানো হবে, যেগুলিতে আপনি Assistant ব্যবহার করেন এবং তার সাথে Assistant-এর মাধ্যমে আপনার জমা দেওয়া তথ্যও Google-কে পাঠানো হবে। এই তথ্য আপনার Google অ্যাকাউন্টে স্টোর করা হতে পারে। আপনি Chrome সেটিংস থেকে Assistant বন্ধ করে দিতে পারেন। <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">আপনার পিতামাতা এটি আপনার জন্য অবরোধ মুক্ত করতে পারবেন</translation> <translation id="7757592200364144203">ডিভাইসের নাম পরিবর্তন করুন</translation> <translation id="7757739382819740102">আশেপাশের পরিচিতি আপনার সাথে শেয়ার করা যেতে পারে। অনুমোদনের প্রয়োজন।</translation> @@ -7374,6 +7380,7 @@ <translation id="8120505434908124087">ই-সিম প্রোফাইল ইনস্টল করুন</translation> <translation id="812260729110117038">বিজ্ঞাপনদাতা এবং প্রকাশকরা এমন পদ্ধতিতেও কোনও বিজ্ঞাপনের কার্যকারিতা সম্পর্কে সমীক্ষা করতে পারেন যেটি বিভিন্ন সাইট জুড়ে আপনার অ্যাক্টিভিটি ট্র্যাক করবে না।</translation> <translation id="81238879832906896">হলুদ এবং সাদা ফুল</translation> +<translation id="8123975449645947908">পিছনের দিকে স্ক্রল করুন</translation> <translation id="8124313775439841391">ONC পরিচালিত করা হযেছে</translation> <translation id="813082847718468539">সাইটের তথ্য দর্শন করুন</translation> <translation id="8131740175452115882">নিশ্চিত হন</translation> @@ -8291,6 +8298,7 @@ <translation id="9037640663275993951">ডিভাইস ব্যবহার করা যাবে না</translation> <translation id="9037818663270399707">সব নেটওয়ার্ক ট্রাফিকের ক্ষেত্রে আপনার কানেকশন নিরাপদ নয়</translation> <translation id="9037965129289936994">প্রকৃত রূপ দেখান</translation> +<translation id="9038489124413477075">নামবিহীন ফোল্ডার</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{আপনি আর মাত্র একবার চেষ্টা করতে পারবেন।}one{আপনি আর মাত্র # বার চেষ্টা করতে পারবেন।}other{আপনি আর # বার চেষ্টা করতে পারবেন।}}</translation> <translation id="9040473193163777637">আপনি কি ChromeOS-এর বিল্ট-ইন স্ক্রিন রিডার ChromeVox অ্যাক্টিভেট করতে চাইছেন? উত্তর হ্যাঁ হলে, দু'টি ভলিউম কী পাঁচ সেকেন্ডের জন্য প্রেস করে ধরে রাখুন।</translation> <translation id="9040661932550800571"><ph name="ORIGIN" />-এর জন্য পাসওয়ার্ড আপডেট করবেন?</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index d28c872e..58bf51f3 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1813,6 +1813,7 @@ <translation id="2667144577800272420">Ostale aplikacije su postavljene da otvaraju iste linkove kao i <ph name="APP_NAME" />. Ovim će se onemogućiti da <ph name="APP_NAME_2" /> i <ph name="APP_NAME_3" /> otvaraju podržane linkove.</translation> <translation id="2667463864537187133">Upravljanje provjerom pravopisa</translation> <translation id="2669241540496514785">Nije moguće otvoriti aplikaciju <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Svako ko koristi ovaj uređaj može vidjeti preuzete fajlove</translation> <translation id="2670102641511624474">Aplikacija <ph name="APP_NAME" /> dijeli Chrome karticu.</translation> <translation id="2670403088701171361">Nemoj dozvoliti web lokacijama da vide tekst ili slike u međumemoriji</translation> <translation id="2670429602441959756">Ova stranica sadrži funkcije koje još uvijek nisu podržane u VR-u. Izlazak...</translation> @@ -2179,6 +2180,7 @@ <translation id="3008232374986381779">Pokrenite Linux alate, uređivače i IDE-ove na uređaju <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Poništi dopuštenja</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Domena <ph name="MANAGER" /> zahtijeva da se danas povežete s WiFi mrežom radi preuzimanja ažuriranja. Možete ga preuzeti i putem veze s naplatom (mogu nastati troškovi).}one{Domena <ph name="MANAGER" /> zahtijeva da se povežete s WiFi mrežom i preuzmete ažuriranje prije isteka roka. Možete ga preuzeti i putem veze s naplatom (mogu nastati troškovi).}few{Domena <ph name="MANAGER" /> zahtijeva da se povežete s WiFi mrežom i preuzmete ažuriranje prije isteka roka. Možete ga preuzeti i putem veze s naplatom (mogu nastati troškovi).}other{Domena <ph name="MANAGER" /> zahtijeva da se povežete s WiFi mrežom i preuzmete ažuriranje prije isteka roka. Možete ga preuzeti i putem veze s naplatom (mogu nastati troškovi).}}</translation> +<translation id="3009178788565917040">Izlaz</translation> <translation id="3009300415590184725">Jeste li sigurni da želite otkazati uslugu postavljanja prijenosa podataka na mobilnoj mreži?</translation> <translation id="3009779501245596802">Baza indeksa</translation> <translation id="3010279545267083280">Lozinka je izbrisana</translation> @@ -3221,6 +3223,7 @@ <translation id="402211067068791756">Ovim će se obrisati <ph name="TOTAL_USAGE" /> podataka koje su pohranile prikazane web lokacije</translation> <translation id="4022426551683927403">&Dodaj u rječnik</translation> <translation id="4025039777635956441">Isključi zvuk odabrane web lokacije</translation> +<translation id="4027958407426528157">Otvaranje web-lokacija u aplikacijama instaliranima na vašem uređaju <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Dodajte načine unosa</translation> <translation id="4029556917477724407">Nazad sa stranice <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Mikrofon je dozvoljen</translation> @@ -3566,6 +3569,7 @@ <translation id="4377058670119819762">Omogućava traci kartice klizanje ulijevo i udesno kada je puna.</translation> <translation id="4377363674125277448">Došlo je do problema s potvrdom servera.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Kliznite naprijed</translation> <translation id="4378551569595875038">Povezivanje…</translation> <translation id="4378556263712303865">Zahtjev za uređajem</translation> <translation id="4379281552162875326">Deinstalirati "<ph name="APP_NAME" />"?</translation> @@ -3943,7 +3947,7 @@ <translation id="4742334355511750246">Nije dozvoljeno prikazivanje slika</translation> <translation id="4742970037960872810">Ukloni istaknuti tekst</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Saznajte kako ažurirati aplikacije<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{Omogući zvuk na web lokaciji}one{Omogući zvuk na web lokacijama}few{Omogući zvuk na web lokacijama}other{Omogući zvuk na web lokacijama}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{Uključi zvuk web lokacije}one{Uključi zvuk web lokacija}few{Uključi zvuk web lokacija}other{Uključi zvuk web lokacija}}</translation> <translation id="474609389162964566">Pristupite Asistentu pomoću fraze "Ok Google"</translation> <translation id="4746351372139058112">Poruke</translation> <translation id="4748783296226936791">Web lokacije se obično povezuju s HID uređajima radi funkcija koje koriste neuobičajene tastature, kontrolere igara i ostale uređaje</translation> @@ -6574,6 +6578,7 @@ <translation id="7377481913241237033">Povežite se pomoću koda</translation> <translation id="7378611153938412599">Slabe lozinke je lako pogoditi. Vodite računa da kreirate jake lozinke. <ph name="BEGIN_LINK" />Pogledajte još sigurnosnih savjeta.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Otvorite Chrome Web trgovinu</translation> +<translation id="737938816678769289">Lako se povežite s uređajima za brzo uparivanje u blizini i postavite ih</translation> <translation id="7380459290951585794">Provjerite nalazi li se telefon u blizini, je li otključan i jesu li Bluetooth i WiFi uključeni</translation> <translation id="7380622428988553498">Naziv uređaja sadrži nevažeće znakove</translation> <translation id="7380768571499464492">Ažurirano <ph name="PRINTER_NAME" /></translation> @@ -7375,6 +7380,7 @@ <translation id="8120505434908124087">Instaliraj eSIM profil</translation> <translation id="812260729110117038">Oglašivači i izdavači mogu proučavati učinkovitost oglasa, a da pri tome ne prate vaše aktivnosti na web lokacijama.</translation> <translation id="81238879832906896">Žuto-bijeli cvijet</translation> +<translation id="8123975449645947908">Listaj nazad</translation> <translation id="8124313775439841391">Upravljani ONC</translation> <translation id="813082847718468539">Prikaz informacija o web lokaciji</translation> <translation id="8131740175452115882">Potvrdi</translation> @@ -8293,6 +8299,7 @@ <translation id="9037640663275993951">Uređaj nije dozvoljen</translation> <translation id="9037818663270399707">Vaša veza nije privatna za sav mrežni saobraćaj</translation> <translation id="9037965129289936994">Prikaži original</translation> +<translation id="9038489124413477075">Neimenovana mapa</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Preostao vam je još jedan pokušaj.}one{Preostao vam je još # pokušaj.}few{Preostala su vam još # pokušaja.}other{Preostalo vam je još # pokušaja.}}</translation> <translation id="9040473193163777637">Želite li aktivirati ChromeVox, ugrađeni čitač ekrana za ChromeOS? Ako želite, pritisnite i pet sekundi držite obje tipke za jačinu zvuka.</translation> <translation id="9040661932550800571">Ažurirati lozinku za <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index df32e28..bfa3af9 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -1798,6 +1798,7 @@ <translation id="2667144577800272420">S'han configurat altres aplicacions per obrir els mateixos enllaços que <ph name="APP_NAME" />. Es desactivarà l'obertura d'enllaços compatibles des de les aplicacions <ph name="APP_NAME_2" /> i <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Gestiona el corrector ortogràfic</translation> <translation id="2669241540496514785">No s'ha pogut obrir <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Qualsevol persona que utilitzi aquest dispositiu pot veure els fitxers baixats</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> està compartint una pestanya de Chrome.</translation> <translation id="2670403088701171361">No permetis que els llocs web vegin el text o les imatges del porta-retalls</translation> <translation id="2670429602441959756">Aquesta pàgina conté funcions que encara no s'admeten en RV. Se n'està sortint...</translation> @@ -2165,6 +2166,7 @@ <translation id="3008232374986381779">Executa les eines, els editors i els IDE de Linux a <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Restableix els permisos</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> requereix que et connectis a la Wi-Fi avui per baixar una actualització. També pots baixar-la amb una connexió d'ús mesurat, però és possible que s'apliquin càrrecs.}other{<ph name="MANAGER" /> requereix que et connectis a la Wi-Fi i que baixis una actualització abans del termini establert. També pots baixar-la amb una connexió d'ús mesurat, però és possible que s'apliquin càrrecs.}}</translation> +<translation id="3009178788565917040">Sortida</translation> <translation id="3009300415590184725">Confirmeu que voleu cancel·lar el procés de configuració del servei de dades mòbils?</translation> <translation id="3009779501245596802">Bases de dades indexades</translation> <translation id="3010279545267083280">La contrasenya s'ha suprimit.</translation> @@ -3551,6 +3553,7 @@ <translation id="4377058670119819762">Activa el desplaçament cap a l'esquerra i cap a la dreta a la barra de pestanyes quan està plena.</translation> <translation id="4377363674125277448">S'ha produït un problema amb el certificat del servidor.</translation> <translation id="4378154925671717803">Telèfon</translation> +<translation id="4378308539633073595">Desplaça cap endavant</translation> <translation id="4378551569595875038">Connectant...</translation> <translation id="4378556263712303865">Sol·licitud de dispositiu</translation> <translation id="4379281552162875326">Vols desinstal·lar <ph name="APP_NAME" />?</translation> @@ -7353,6 +7356,7 @@ <translation id="8120505434908124087">Instal·la el perfil de l'eSIM</translation> <translation id="812260729110117038">Els anunciants i els editors poden estudiar l'efectivitat dels anuncis sense fer un seguiment del que fas als llocs web.</translation> <translation id="81238879832906896">Flor groga i blanca</translation> +<translation id="8123975449645947908">Desplaça't cap enrere</translation> <translation id="8124313775439841391">ONC gestionat</translation> <translation id="813082847718468539">Mostra la informació del lloc web</translation> <translation id="8131740175452115882">Confirma</translation> @@ -8270,6 +8274,7 @@ <translation id="9037640663275993951">El dispositiu no està permès</translation> <translation id="9037818663270399707">La teva connexió no és privada per a tot el trànsit de xarxa</translation> <translation id="9037965129289936994">Mostra l'original</translation> +<translation id="9038489124413477075">Carpeta sense nom</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Et queda un intent.}other{Et queden # intents.}}</translation> <translation id="9040473193163777637">Vols activar ChromeVox, el lector de pantalla integrat per a Chrome OS? Si és així, mantén premudes les dues tecles de volum durant cinc segons.</translation> <translation id="9040661932550800571">Vols actualitzar la contrasenya per a <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index c31ade3f..086f6d87 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -1801,6 +1801,7 @@ <translation id="2667144577800272420">Ostatní aplikace jsou nastaveny, aby otevíraly stejné odkazy jako aplikace <ph name="APP_NAME" />. Aplikace <ph name="APP_NAME_2" /> a <ph name="APP_NAME_3" /> tak nebudou moci otevírat podporované odkazy.</translation> <translation id="2667463864537187133">Správa kontroly pravopisu</translation> <translation id="2669241540496514785">Aplikaci <ph name="APP_NAME" /> nelze otevřít</translation> +<translation id="2669454659051515572">Stažené soubory může vidět kdokoli, kdo používá tohle zařízení</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> sdílí kartu Chrome.</translation> <translation id="2670403088701171361">Nepovolovat webům přístup k textu či obrázkům ve schránce</translation> <translation id="2670429602441959756">Tato stránka obsahuje funkce, které ve virtuální realitě dosud nejsou podporovány. Režim virtuální reality se zavře...</translation> @@ -2167,6 +2168,7 @@ <translation id="3008232374986381779">Spouštějte na svém zařízení <ph name="DEVICE_TYPE" /> nástroje, editory a prostředí IDE pro Linux. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Resetovat oprávnění</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Organizace <ph name="MANAGER" /> vyžaduje, abyste se dnes za účelem stažení aktualizace připojili k síti Wi-Fi. Případně ji můžete stáhnout přes měřené připojení (mohou být účtovány poplatky).}few{Organizace <ph name="MANAGER" /> vyžaduje, abyste se do stanoveného termínu za účelem stažení aktualizace připojili k síti Wi-Fi. Případně ji můžete stáhnout přes měřené připojení (mohou být účtovány poplatky).}many{Organizace <ph name="MANAGER" /> vyžaduje, abyste se do stanoveného termínu za účelem stažení aktualizace připojili k síti Wi-Fi. Případně ji můžete stáhnout přes měřené připojení (mohou být účtovány poplatky).}other{Organizace <ph name="MANAGER" /> vyžaduje, abyste se do stanoveného termínu za účelem stažení aktualizace připojili k síti Wi-Fi. Případně ji můžete stáhnout přes měřené připojení (mohou být účtovány poplatky).}}</translation> +<translation id="3009178788565917040">Výstup</translation> <translation id="3009300415590184725">Opravdu chcete zrušit proces nastavení služby mobilních dat?</translation> <translation id="3009779501245596802">Indexované databáze</translation> <translation id="3010279545267083280">Heslo bylo smazáno</translation> @@ -3208,6 +3210,7 @@ <translation id="402211067068791756">Tímto vymažete <ph name="TOTAL_USAGE" /> dat, která uložily zobrazené weby</translation> <translation id="4022426551683927403">Přid&at do slovníku</translation> <translation id="4025039777635956441">Ztlumit vybraný web</translation> +<translation id="4027958407426528157">Otevírat weby v aplikacích nainstalovaných v zařízení <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Přidat metody zadávání</translation> <translation id="4029556917477724407">Zpět ze stránky <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Mikrofon je povolen</translation> @@ -3553,6 +3556,7 @@ <translation id="4377058670119819762">Umožní posouvání pásu karet doprava a doleva, když je plný.</translation> <translation id="4377363674125277448">Došlo k problému s certifikátem serveru.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Posunout vpřed</translation> <translation id="4378551569595875038">Připojování...</translation> <translation id="4378556263712303865">Požadavek zařízení</translation> <translation id="4379281552162875326">Odinstalovat aplikaci <ph name="APP_NAME" />?</translation> @@ -6557,6 +6561,7 @@ <translation id="7377481913241237033">Připojit pomocí kódu</translation> <translation id="7378611153938412599">Slabá hesla lze snadno uhodnout. Vždy se snažte vytvářet silná hesla. <ph name="BEGIN_LINK" />Další tipy k zabezpečení<ph name="END_LINK" /></translation> <translation id="73786666777299047">Otevřít Internetový obchod Chrome</translation> +<translation id="737938816678769289">Snadno se připojte k zařízením s Rychlým párováním v okolí a nastavte je</translation> <translation id="7380459290951585794">Zkontrolujte, zda je telefon poblíž, zda je odemknutý a zda na něm je zapnuté Bluetooth a Wi-Fi</translation> <translation id="7380622428988553498">Název zařízení obsahuje neplatné znaky</translation> <translation id="7380768571499464492">Tiskárna <ph name="PRINTER_NAME" /> byla aktualizována</translation> @@ -7357,6 +7362,7 @@ <translation id="8120505434908124087">Nainstalovat profil eSIM</translation> <translation id="812260729110117038">Inzerenti a majitelé obsahu mohou posuzovat účinnost reklam způsobem, při kterém nebudete sledováni napříč weby.</translation> <translation id="81238879832906896">Žluto-bílá květina</translation> +<translation id="8123975449645947908">Posunout zpět</translation> <translation id="8124313775439841391">Spravovaná ONC</translation> <translation id="813082847718468539">Zobrazit informace o stránkách</translation> <translation id="8131740175452115882">Potvrdit</translation> @@ -8275,6 +8281,7 @@ <translation id="9037640663275993951">Zařízení není povoleno</translation> <translation id="9037818663270399707">Vaše připojení není soukromé pro veškerý síťový provoz</translation> <translation id="9037965129289936994">Zobrazit originál</translation> +<translation id="9038489124413477075">Nepojmenovaná složka</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Zbývá ještě jeden pokus.}few{Zbývají vám # pokusy.}many{Zbývá vám # pokusu.}other{Zbývá vám # pokusů.}}</translation> <translation id="9040473193163777637">Chcete aktivovat čtečku ChromeVox, integrovanou čtečku obrazovky pro ChromeOS? Pokud ano, na pět sekund podržte obě tlačítka hlasitosti.</translation> <translation id="9040661932550800571">Aktualizovat heslo pro web <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index 816e8c6..9676b7ca 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -1283,6 +1283,7 @@ <translation id="2180620921879609685">Rhwystro cynnwys ar unrhyw dudalen</translation> <translation id="2182058453334755893">Wedi'i Gopïo i'ch Clipfwrdd</translation> <translation id="2184515124301515068">Gadewch i Chrome ddewis pryd y gall gwefannau wneud sŵn (argymhellir)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Tudalen sydd wedi'i rhannu o ddyfais arall</translation> <translation id="2187675480456493911">Wedi'i gysoni â dyfeisiau eraill yn eich cyfrif. Ni fydd gosodiadau a addaswyd gan ddefnyddwyr eraill yn cael eu cysoni. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Gwall wrth Fewnforio Tystysgrif y Gweinydd</translation> @@ -1815,6 +1816,7 @@ <translation id="2667144577800272420">Mae apiau eraill wedi'u gosod i agor yr un dolenni â <ph name="APP_NAME" />. Bydd hyn yn analluogi <ph name="APP_NAME_2" /> a <ph name="APP_NAME_3" /> rhag agor dolenni a gefnogir.</translation> <translation id="2667463864537187133">Rheoli gwirio sillafu</translation> <translation id="2669241540496514785">Methu ag agor "<ph name="APP_NAME" />"</translation> +<translation id="2669454659051515572">Gall unrhyw un sy'n defnyddio'r ddyfais hon weld ffeiliau sydd wedi'u lawrlwytho</translation> <translation id="2670102641511624474">Mae <ph name="APP_NAME" /> yn rhannu tab Chrome.</translation> <translation id="2670403088701171361">Peidio â chaniatáu i wefannau weld testun neu luniau ar eich clipfwrdd</translation> <translation id="2670429602441959756">Mae'r dudalen hon yn cynnwys nodweddion nad ydynt yn cael eu cefnogi yn VR eto. Wrthi'n gadael...</translation> @@ -2182,6 +2184,7 @@ <translation id="3008232374986381779">Rhedeg offer Linux, golygyddion, ac IDE ar eich <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Ailosod caniatadau</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi heddiw i lawrlwytho diweddariad. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}zero{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi a lawrlwytho diweddariad cyn y dyddiad cau. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}two{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi a lawrlwytho diweddariad cyn y dyddiad cau. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}few{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi a lawrlwytho diweddariad cyn y dyddiad cau. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}many{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi a lawrlwytho diweddariad cyn y dyddiad cau. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}other{Mae <ph name="MANAGER" /> yn gofyn i chi gysylltu â Wi-Fi a lawrlwytho diweddariad cyn y dyddiad cau. Neu, gallwch lawrlwytho o gysylltiad â mesurydd (gall taliadau fod yn berthnasol).}}</translation> +<translation id="3009178788565917040">Allbwn</translation> <translation id="3009300415590184725">Ydych chi'n siŵr eich bod am ganslo'r broses o osod gwasanaeth data symudol?</translation> <translation id="3009779501245596802">Cronfeydd data sydd wedi'u mynegeio</translation> <translation id="3010279545267083280">Mae cyfrinair wedi'i ddileu</translation> @@ -3569,6 +3572,7 @@ <translation id="4377058670119819762">Yn galluogi stribed tabiau i sgrolio i'r chwith a'r dde pan fydd yn llawn.</translation> <translation id="4377363674125277448">Bu problem gyda thystysgrif y gweinydd.</translation> <translation id="4378154925671717803">Ffôn</translation> +<translation id="4378308539633073595">Sgrolio ymlaen</translation> <translation id="4378551569595875038">Yn cysylltu...</translation> <translation id="4378556263712303865">Hawlio dyfais</translation> <translation id="4379281552162875326">Dadosod "<ph name="APP_NAME" />"?</translation> @@ -7380,6 +7384,7 @@ <translation id="8120505434908124087">Gosod proffil eSIM</translation> <translation id="812260729110117038">Gall hysbysebwyr a chyhoeddwyr astudio effeithiolrwydd hysbysebion mewn ffordd nad yw'n eich olrhain ar draws gwefannau.</translation> <translation id="81238879832906896">Blodyn melyn a gwyn</translation> +<translation id="8123975449645947908">Sgrolio'n ôl</translation> <translation id="8124313775439841391">ONC a Reolir</translation> <translation id="813082847718468539">Gweld gwybodaeth am y wefan</translation> <translation id="8131740175452115882">Cadarnhau</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 5d48abd..4839215 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1281,6 +1281,7 @@ <translation id="2180620921879609685">Bloker indhold på alle sider</translation> <translation id="2182058453334755893">Kopieret til din udklipsholder</translation> <translation id="2184515124301515068">Lad Chrome bestemme, hvornår websites må afspille lyd (anbefales)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Side delt fra en anden enhed</translation> <translation id="2187675480456493911">Synkroniseret med andre enheder på din konto. De indstillinger, der ændres af andre brugere, synkroniseres ikke. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Fejl ved import af servercertifikat</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">Andre apps er konfigureret til at åbne de samme links som <ph name="APP_NAME" />. Dette gør, at <ph name="APP_NAME_2" /> og <ph name="APP_NAME_3" /> ikke kan åbne understøttede links.</translation> <translation id="2667463864537187133">Administrer stavekontrollen</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> kunne ikke åbnes.</translation> +<translation id="2669454659051515572">Alle, der bruger denne enhed, kan se downloadede filer</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deler en Chrome-fane.</translation> <translation id="2670403088701171361">Tillad ikke, at websites ser tekst eller billeder fra din udklipsholder</translation> <translation id="2670429602441959756">Denne side indeholder funktioner, der endnu ikke understøttes i VR. Afslutter...</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779">Kør Linux-værktøjer, -redigeringsværktøjer og -IDE'er på din <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Nulstil tilladelser</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> kræver, at du opretter forbindelse til Wi-Fi i dag for at downloade en opdatering. Du kan også downloade via en forbrugsafregnet forbindelse (du opkræves muligvis et gebyr).}one{<ph name="MANAGER" /> kræver, at du opretter forbindelse til Wi-Fi og downloader en opdatering, før fristen udløber. Du kan også downloade via en forbrugsafregnet forbindelse (du opkræves muligvis et gebyr).}other{<ph name="MANAGER" /> kræver, at du opretter forbindelse til Wi-Fi og downloader en opdatering, før fristen udløber. Du kan også downloade via en forbrugsafregnet forbindelse (du opkræves muligvis et gebyr).}}</translation> +<translation id="3009178788565917040">Output</translation> <translation id="3009300415590184725">Er du sikker på, at du vil annullere konfigurationen af en mobildatatjeneste?</translation> <translation id="3009779501245596802">Indekserede databaser</translation> <translation id="3010279545267083280">Adgangskoden er slettet</translation> @@ -3567,6 +3570,7 @@ <translation id="4377058670119819762">Aktiverer rulning mod venstre og højre på fanelinjen, når den er fuld.</translation> <translation id="4377363674125277448">Der opstod et problem med serverens certifikat.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Rul fremad</translation> <translation id="4378551569595875038">Tilslutter...</translation> <translation id="4378556263712303865">Enhedsrekvisition</translation> <translation id="4379281552162875326">Vil du afinstallere "<ph name="APP_NAME" />"?</translation> @@ -7372,6 +7376,7 @@ <translation id="8120505434908124087">Installer eSIM-profil</translation> <translation id="812260729110117038">Annoncører og udgivere kan undersøge effektiviteten af annoncer på en måde, der ikke sporer dig på tværs af forskellige websites.</translation> <translation id="81238879832906896">Gul og hvid blomst</translation> +<translation id="8123975449645947908">Rul baglæns</translation> <translation id="8124313775439841391">Administreret ONC</translation> <translation id="813082847718468539">Se websiteoplysninger</translation> <translation id="8131740175452115882">Bekræft</translation> @@ -8290,6 +8295,7 @@ <translation id="9037640663275993951">Enheden er ikke tilladt</translation> <translation id="9037818663270399707">Din forbindelse er ikke privat for al netværkstrafik</translation> <translation id="9037965129289936994">Vis oprindelig</translation> +<translation id="9038489124413477075">Unavngiven mappe</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Du har ét forsøg tilbage.}one{Du har # forsøg tilbage.}other{Du har # forsøg tilbage.}}</translation> <translation id="9040473193163777637">Vil du aktivere ChromeVox, der er den indbyggede skærmlæser til Chrome OS? Hold begge lydstyrkeknapper nede i fem sekunder for at aktivere.</translation> <translation id="9040661932550800571">Vil du opdatere adgangskoden til <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index e97df2c..107a05a 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1244,6 +1244,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">WLAN hinzufügen...</translation> <translation id="2162155940152307086">Die Synchronisierung wird gestartet, sobald du die Synchronisierungseinstellungen verlässt</translation> +<translation id="2162705204091149050">Informationen zu deinem Browser, Betriebssystem, Gerät, der installierten Software und den Dateien abrufen</translation> <translation id="2162926944953615670">Keine verfügbaren eSIM-Profile</translation> <translation id="2163470535490402084">Stelle eine Internetverbindung her, um dich auf deinem Gerät (<ph name="DEVICE_TYPE" />) anzumelden.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> und ein weiterer Schalter</translation> @@ -1264,6 +1265,7 @@ <translation id="2180620921879609685">Inhalte auf jeder Seite blockieren</translation> <translation id="2182058453334755893">In die Zwischenablage kopiert</translation> <translation id="2184515124301515068">Chrome die Entscheidung überlassen, wann Audioinhalte auf Websites abgespielt werden (empfohlen)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Von einem anderen Gerät geteilte Seite</translation> <translation id="2187675480456493911">Mit anderen Geräten in deinem Konto synchronisiert. Von anderen Nutzern geänderte Einstellungen werden nicht synchronisiert. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Fehler beim Importieren des Serverzertifikats</translation> @@ -1793,6 +1795,7 @@ <translation id="2667144577800272420">Für andere Apps ist festgelegt, dass bei ihnen die gleichen Links wie bei <ph name="APP_NAME" /> geöffnet werden. Dadurch wird deaktiviert, dass bei <ph name="APP_NAME_2" /> und <ph name="APP_NAME_3" /> unterstützte Links geöffnet werden.</translation> <translation id="2667463864537187133">Rechtschreibprüfung verwalten</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> konnte nicht geöffnet werden</translation> +<translation id="2669454659051515572">Alle Personen, die dieses Gerät nutzen, können heruntergeladene Dateien sehen</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> hat einen Chrome-Tab freigegeben.</translation> <translation id="2670403088701171361">Websites dürfen nicht auf Text oder Bilder in meiner Zwischenablage zugreifen</translation> <translation id="2670429602441959756">Diese Seite enthält Funktionen, die noch nicht in VR unterstützt werden. Modus wird beendet…</translation> @@ -2160,6 +2163,7 @@ <translation id="3008232374986381779">Linux-Tools, ‑Editoren und ‑IDEs auf <ph name="DEVICE_TYPE" /> ausführen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Berechtigungen zurücksetzen</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Gemäß <ph name="MANAGER" /> ist es notwendig, sich heute mit einem WLAN zu verbinden und ein Update herunterzuladen. Das Update kann auch über eine kostenpflichtige Verbindung heruntergeladen werden (hierfür können zusätzliche Gebühren anfallen).}other{Gemäß <ph name="MANAGER" /> ist es notwendig, sich vor Ablauf der Frist mit einem WLAN zu verbinden und ein Update herunterzuladen. Das Update kann auch über eine kostenpflichtige Verbindung heruntergeladen werden (hierfür können zusätzliche Gebühren anfallen).}}</translation> +<translation id="3009178788565917040">Ausgang</translation> <translation id="3009300415590184725">Möchtest du die Einrichtung des mobilen Datendiensts wirklich abbrechen?</translation> <translation id="3009779501245596802">Indexierte Datenbanken</translation> <translation id="3010279545267083280">Passwort wurde gelöscht.</translation> @@ -2490,6 +2494,7 @@ <translation id="3359256513598016054">Beschränkungen für Zertifikatrichtlinien</translation> <translation id="3360297538363969800">Fehler beim Drucken. Bitte überprüfe deinen Drucker und versuche es noch einmal.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> teilt <ph name="ATTACHMENTS" /> mit dir.}other{<ph name="DEVICE_NAME" /> teilt <ph name="ATTACHMENTS" /> mit dir.}}</translation> +<translation id="3363202073972776113">Dieses neue Profil wird von deiner Organisation verwaltet. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Von deinem Administrator: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Verwende entweder Strg oder Alt</translation> <translation id="3368922792935385530">Verbunden</translation> @@ -2524,6 +2529,7 @@ <translation id="339722927132407568">Hängenbleiben</translation> <translation id="3399432415385675819">Benachrichtigungen werden deaktiviert</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) – Zeilensprung</translation> +<translation id="3401484564516348917">Informationen zu deinem Browser, Betriebssystem, Gerät, der installierten Software, den Registrierungswerten und Dateien abrufen</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} Passwort ist auf diesem Gerät gespeichert}other{{COUNT} Passwörter sind auf diesem Gerät gespeichert}}</translation> <translation id="3402255108239926910">Avatar auswählen</translation> <translation id="3402585168444815892">Im Demomodus anmelden</translation> @@ -2770,6 +2776,7 @@ <translation id="3627879631695760395"><ph name="APP" /> installieren...</translation> <translation id="3628275722731025472">Bluetooth deaktivieren</translation> <translation id="3629631988386925734">Gib dein Passwort ein, um Smart Lock zu aktivieren. Beim nächsten Mal wird dein <ph name="DEVICE_TYPE" /> durch dein Smartphone entsperrt. Du kannst Smart Lock in den Einstellungen deaktivieren.</translation> +<translation id="3629664892718440872">Auswahl speichern</translation> <translation id="3630132874740063857">Mein Smartphone</translation> <translation id="3630995161997703415">Füge diese Website deiner Ablage hinzu, um sie jederzeit zu verwenden</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Wenn du zulässt, dass deine Chrome OS-Geräte automatisch erstellte Berichte an Google senden, hilfst du uns dabei, Probleme in Chrome OS zu beheben und das Betriebssystem zu verbessern. Diese Berichte können Informationen über Chrome OS-Abstürze und Angaben dazu enthalten, welche Funktionen verwendet wurden und wie viel Speicher in der Regel genutzt wurde.<ph name="END_PARAGRAPH1" /> @@ -3259,6 +3266,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Volle Kontrolle über MIDI-Geräte verweigert</translation> +<translation id="4087328411748538168">Rechts anzeigen</translation> <translation id="4089235344645910861">Einstellungen gespeichert. Synchronisation gestartet.</translation> <translation id="4090103403438682346">Bestätigten Zugriff aktivieren</translation> <translation id="4090947011087001172">Websiteberechtigungen für <ph name="SITE" /> zurücksetzen?</translation> @@ -3543,6 +3551,7 @@ <translation id="4377058670119819762">Ermöglicht bei voller Anzeige, mit der Tableiste nach links und rechts zu scrollen.</translation> <translation id="4377363674125277448">Beim Zertifikat des Servers ist ein Problem aufgetreten.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Weiterscrollen</translation> <translation id="4378551569595875038">Verbindung...</translation> <translation id="4378556263712303865">Geräteanforderung</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" deinstallieren?</translation> @@ -3951,6 +3960,7 @@ <translation id="4779766576531456629">eSIM-Mobilfunknetz umbenennen</translation> <translation id="4780321648949301421">Seite speichern unter...</translation> <translation id="4781443161433589743">Du nutzt die höchste Sicherheit in Chrome</translation> +<translation id="4782861709165039462">Alle Mikrofone wurden durch den Hardwareschalter des Geräts deaktiviert</translation> <translation id="4785719467058219317">Du verwendest einen Sicherheitsschlüssel, der nicht auf dieser Website registriert ist</translation> <translation id="4785914069240823137">Zuschneiden abbrechen</translation> <translation id="4788092183367008521">Bitte überprüfe die Netzwerkverbindung und versuche es noch einmal.</translation> @@ -4717,6 +4727,7 @@ <translation id="5548075230008247516">Auswahl für alle Elemente aufgehoben. Auswahlmodus beendet.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" und 1 weiterer Tab}other{"<ph name="TAB_TITLE" />" und # weitere Tabs}}</translation> <translation id="5548606607480005320">Sicherheitscheck</translation> +<translation id="5548644592758170183">Links anzeigen</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Tastatur und Texteingabe</translation> <translation id="5553089923092577885">Zuordnungen von Zertifikatrichtlinien</translation> @@ -7340,6 +7351,7 @@ <translation id="8120505434908124087">eSIM-Profil einrichten</translation> <translation id="812260729110117038">Werbetreibende und Publisher können die Wirksamkeit von Anzeigen prüfen, ohne dich dabei websiteübergreifend zu tracken.</translation> <translation id="81238879832906896">Gelbe und weiße Blume</translation> +<translation id="8123975449645947908">Zurückscrollen</translation> <translation id="8124313775439841391">Verwaltete ONC-Eigenschaften</translation> <translation id="813082847718468539">Website-Informationen anzeigen</translation> <translation id="8131740175452115882">Bestätigen</translation> @@ -8195,6 +8207,7 @@ <translation id="8980345560318123814">Feedbackberichte</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – abgestürzt</translation> <translation id="8981825781894055334">Fast kein Papier mehr</translation> +<translation id="8983018820925880511">Dieses neue Profil wird von <ph name="DOMAIN" /> verwaltet. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> kann "<ph name="FILENAME" />" bearbeiten</translation> <translation id="8984694057134206124">Du wirst <ph name="MINUTES" /> Minuten lang für alle sichtbar sein. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Willkommen bei Steam für Chromebook</translation> @@ -8255,6 +8268,7 @@ <translation id="9037640663275993951">Gerät ist nicht zulässig</translation> <translation id="9037818663270399707">Deine Verbindung ist für den gesamten Netzwerkverkehr nicht privat</translation> <translation id="9037965129289936994">Original anzeigen</translation> +<translation id="9038489124413477075">Unbenannter Ordner</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Du hast noch einen Eingabeversuch.}other{Du hast noch # Eingabeversuche.}}</translation> <translation id="9040473193163777637">Möchtest du ChromeVox, den integrierten Screenreader für Chrome OS, aktivieren? Falls ja, halte beide Lautstärketasten fünf Sekunden gedrückt.</translation> <translation id="9040661932550800571">Passwort für <ph name="ORIGIN" /> aktualisieren?</translation> @@ -8291,6 +8305,7 @@ <translation id="9075413375877487220">Diese Erweiterung wird vom erweiterten Safe Browsing als nicht vertrauenswürdig eingestuft.</translation> <translation id="9076283476770535406">Eventuell enthält sie nicht jugendfreie Inhalte</translation> <translation id="9076523132036239772">Deine E-Mail-Adresse bzw. dein Passwort konnte nicht bestätigt werden. Stelle zunächst eine Netzwerkverbindung her.</translation> +<translation id="9076821103818989526">Seitenleiste</translation> <translation id="9076977315710973122">SMB-Freigabe</translation> <translation id="9078193189520575214">Änderungen werden übernommen…</translation> <translation id="9078316009970372699">Instant Tethering deaktivieren</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 6878bf5..08d9526e 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Δημιουργία αντιγράφων ασφαλείας μέσων από τη συσκευή με χρήση της εφαρμογής "Αρχεία".</translation> <translation id="1343865611738742294">Εκχωρήστε στις εφαρμογές Linux άδεια πρόσβασης σε συσκευές USB. Το Linux δεν θα θυμάται μια συσκευή USB μετά την αφαίρεσή της.</translation> <translation id="1343920184519992513">Συνεχίστε από το σημείο που σταματήσατε και ανοίξτε ένα συγκεκριμένο σύνολο σελίδων</translation> +<translation id="1344377983938103876">Άνοιγμα <ph name="URL" />…</translation> <translation id="134589511016534552">Οι καρτέλες μέσων εμφανίζονται επίσης στην ενότητα Ανοικτές καρτέλες</translation> <translation id="1346630054604077329">Επιβεβαίωση και επανεκκίνηση</translation> <translation id="1346748346194534595">Δεξιά</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">Άλλες εφαρμογές έχουν ρυθμιστεί να ανοίγουν τους ίδιους συνδέσμους με την εφαρμογή <ph name="APP_NAME" />. Με αυτήν την ενέργεια, οι εφαρμογές <ph name="APP_NAME_2" /> και <ph name="APP_NAME_3" /> δεν θα μπορούν να ανοίγουν τους υποστηριζόμενους συνδέσμους.</translation> <translation id="2667463864537187133">Διαχείριση ορθογραφικού ελέγχου</translation> <translation id="2669241540496514785">Δεν ήταν δυνατό το άνοιγμα της εφαρμογής <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Όλοι όσοι χρησιμοποιούν αυτήν τη συσκευή θα μπορούν να βλέπουν τα αρχεία που έχετε κατεβάσει</translation> <translation id="2670102641511624474">Η εφαρμογή <ph name="APP_NAME" /> μοιράζεται μια καρτέλα Chrome.</translation> <translation id="2670403088701171361">Να μην επιτρέπεται στους ιστότοπους να βλέπουν το κείμενο ή τις εικόνες στο πρόχειρό σας</translation> <translation id="2670429602441959756">Αυτή η σελίδα περιέχει λειτουργίες που δεν υποστηρίζονται ακόμη στο VR. Έξοδος...</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779">Εκτελέστε εργαλεία, προγράμματα επεξεργασίας και IDE Linux στη συσκευή <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Επαναφορά αδειών</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Ο τομέας <ph name="MANAGER" /> απαιτεί να συνδεθείτε σήμερα στο δίκτυο Wi-Fi και να κατεβάσετε μια ενημέρωση. Εναλλακτικά, μπορείτε να την κατεβάσετε από μια σύνδεση με ογκοχρέωση (ενδέχεται να ισχύουν χρεώσεις).}other{Ο τομέας <ph name="MANAGER" /> απαιτεί να συνδεθείτε στο δίκτυο Wi-Fi πριν από τη λήξη της προθεσμίας και να κατεβάσετε μια ενημέρωση. Εναλλακτικά, μπορείτε να την κατεβάσετε από μια σύνδεση με ογκοχρέωση (ενδέχεται να ισχύουν χρεώσεις).}}</translation> +<translation id="3009178788565917040">Έξοδος</translation> <translation id="3009300415590184725">Είστε βέβαιοι ότι θέλετε να ακυρώσετε τη διαδικασία ρύθμισης της υπηρεσίας δεδομένων κινητής τηλεφωνίας;</translation> <translation id="3009779501245596802">Ευρετηριασμένες βάσεις δεδομένων</translation> <translation id="3010279545267083280">Ο κωδικός πρόσβασης διαγράφηκε</translation> @@ -3567,6 +3570,7 @@ <translation id="4377058670119819762">Επιτρέπει την κύλιση προς τα αριστερά και τα δεξιά της γραμμής καρτελών όταν είναι γεμάτη.</translation> <translation id="4377363674125277448">Παρουσιάστηκε κάποιο πρόβλημα με το πιστοποιητικό του διακομιστή.</translation> <translation id="4378154925671717803">Τηλέφωνο</translation> +<translation id="4378308539633073595">Κύλιση προς τα εμπρός</translation> <translation id="4378551569595875038">Σύνδεση…</translation> <translation id="4378556263712303865">Επίταξη συσκευής</translation> <translation id="4379281552162875326">Απεγκατάσταση της εφαρμογής <ph name="APP_NAME" />;</translation> @@ -6969,6 +6973,7 @@ <translation id="7753735457098489144">Η εγκατάσταση απέτυχε λόγω έλλειψης αποθηκευτικού χώρου. Για να ελευθερώσετε χώρο, διαγράψτε αρχεία από τον αποθηκευτικό χώρο της συσκευής.</translation> <translation id="7754347746598978109">Δεν επιτρέπεται να χρησιμοποιούν JavaScript</translation> <translation id="7754704193130578113">Εμφάνιση ερώτησης για τη θέση αποθήκευσης κάθε αρχείου πριν από τη λήψη</translation> +<translation id="7755134875397410803">Για να σας βοηθήσει να ολοκληρώνετε τις εργασίες σας, η Google θα λάβει τα URL και το περιεχόμενο των ιστοτόπων στους οποίους χρησιμοποιείτε τον Βοηθό, καθώς και τις πληροφορίες που υποβάλετε μέσω του Βοηθού. Αυτές οι πληροφορίες μπορεί να αποθηκεύονται στον Λογαριασμό σας Google. Μπορείτε να απενεργοποιήσετε τον Βοηθό στις ρυθμίσεις του Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Ο γονέας σας μπορεί να καταργήσει τον αποκλεισμό του για εσάς</translation> <translation id="7757592200364144203">Αλλαγή ονόματος συσκευής</translation> <translation id="7757739382819740102">Οι κοντινές επαφές μπορούν να μοιραστούν περιεχόμενο μαζί σας. Θα απαιτηθεί έγκριση.</translation> @@ -7372,6 +7377,7 @@ <translation id="8120505434908124087">Εκχώρηση προφίλ eSIM</translation> <translation id="812260729110117038">Οι διαφημιζόμενοι και οι εκδότες μπορούν να εξετάζουν την αποδοτικότητα των διαφημίσεων, με τέτοιον τρόπο ώστε να μην γίνεται εντοπισμός καθώς περιηγείστε μεταξύ ιστοτόπων.</translation> <translation id="81238879832906896">Κίτρινο και λευκό λουλούδι</translation> +<translation id="8123975449645947908">Κύλιση προς τα πίσω</translation> <translation id="8124313775439841391">ONC με ιδιότητες διαχείρισης</translation> <translation id="813082847718468539">Προβολή πληροφοριών τοποθεσίας</translation> <translation id="8131740175452115882">Επιβεβαίωση</translation> @@ -8286,6 +8292,7 @@ <translation id="9037640663275993951">Η συσκευή δεν επιτρέπεται</translation> <translation id="9037818663270399707">Η σύνδεσή σας δεν είναι ιδιωτική για όλη την επισκεψιμότητα δικτύου.</translation> <translation id="9037965129289936994">Εμφάνιση πρωτοτύπου</translation> +<translation id="9038489124413477075">Φάκελος χωρίς όνομα</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Σας απομένει 1 προσπάθεια.}other{Σας απομένουν # προσπάθειες.}}</translation> <translation id="9040473193163777637">Θέλετε να ενεργοποιήσετε το ChromeVox, τον ενσωματωμένο αναγνώστη οθόνης για Chrome OS; Εάν ναι, πατήστε παρατεταμένα και τα δύο κουμπιά έντασης ήχου για πέντε δευτερόλεπτα.</translation> <translation id="9040661932550800571">Ενημέρωση κωδικού πρόσβασης για <ph name="ORIGIN" />;</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 3a454967..1d47fd0f 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1814,6 +1814,7 @@ <translation id="2667144577800272420">Other apps are set to open the same links as <ph name="APP_NAME" />. This will disable <ph name="APP_NAME_2" /> and <ph name="APP_NAME_3" /> from opening supported links.</translation> <translation id="2667463864537187133">Manage spell check</translation> <translation id="2669241540496514785">Couldn't open <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Anyone using this device can see downloaded files</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> is sharing a Chrome tab.</translation> <translation id="2670403088701171361">Don't allow sites to see text or images on your clipboard</translation> <translation id="2670429602441959756">This page contains features not yet supported in VR. Exiting...</translation> @@ -2181,6 +2182,7 @@ <translation id="3008232374986381779">Run Linux tools, editors and IDEs on your <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Reset permissions</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> requires you to connect to Wi-Fi today to download an update. Or, download from a metered connection (charges may apply).}other{<ph name="MANAGER" /> requires you to connect to Wi-Fi and download an update before the deadline. Or, download from a metered connection (charges may apply).}}</translation> +<translation id="3009178788565917040">Output</translation> <translation id="3009300415590184725">Are you sure you want to cancel the mobile data service set-up process?</translation> <translation id="3009779501245596802">Indexed Databases</translation> <translation id="3010279545267083280">Password deleted</translation> @@ -3568,6 +3570,7 @@ <translation id="4377058670119819762">Enables tab strip to scroll left and right when full.</translation> <translation id="4377363674125277448">There was a problem with server's certificate.</translation> <translation id="4378154925671717803">Phone</translation> +<translation id="4378308539633073595">Scroll forwards</translation> <translation id="4378551569595875038">Connecting...</translation> <translation id="4378556263712303865">Device requisition</translation> <translation id="4379281552162875326">Uninstall '<ph name="APP_NAME" />'?</translation> @@ -7373,6 +7376,7 @@ <translation id="8120505434908124087">Install eSIM profile</translation> <translation id="812260729110117038">Advertisers and publishers can study the effectiveness of ads in a way that does not track you across sites.</translation> <translation id="81238879832906896">Yellow and white flower</translation> +<translation id="8123975449645947908">Scroll backwards</translation> <translation id="8124313775439841391">Managed ONC</translation> <translation id="813082847718468539">View site information</translation> <translation id="8131740175452115882">Confirm</translation> @@ -8289,6 +8293,7 @@ <translation id="9037640663275993951">Device is not allowed</translation> <translation id="9037818663270399707">Your connection is not private for all network traffic</translation> <translation id="9037965129289936994">Show Original</translation> +<translation id="9038489124413477075">Unnamed Folder</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{You have one attempt remaining.}other{You have # attempts remaining.}}</translation> <translation id="9040473193163777637">Do you want to activate ChromeVox, the built-in screen reader for Chrome OS? If so, press and hold both volume keys for five seconds.</translation> <translation id="9040661932550800571">Update password for <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 8ec266a..5475fa4d 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -1244,6 +1244,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Agregar Wi-Fi</translation> <translation id="2162155940152307086">La sincronización volverá a comenzar cuando salgas de la configuración</translation> +<translation id="2162705204091149050">Leer información sobre tu navegador, SO, dispositivo, software y archivos instalados</translation> <translation id="2162926944953615670">No hay perfiles de eSIM disponibles</translation> <translation id="2163470535490402084">Conéctate a Internet para acceder a tu <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> y 1 interruptor más</translation> @@ -1793,6 +1794,7 @@ <translation id="2667144577800272420">Se configuraron otras apps para abrir los mismos vínculos que <ph name="APP_NAME" />. Esta acción impedirá que <ph name="APP_NAME_2" /> y <ph name="APP_NAME_3" /> abran los vínculos compatibles.</translation> <translation id="2667463864537187133">Administrar el corrector ortográfico</translation> <translation id="2669241540496514785">No se pudo abrir <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Cualquier persona que use este dispositivo puede ver los archivos descargados</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> comparte una pestaña de Chrome.</translation> <translation id="2670403088701171361">No permitir que los sitios visualicen texto ni imágenes del portapapeles</translation> <translation id="2670429602441959756">Esta página incluye funciones que aún no son compatibles con RV. Saliendo…</translation> @@ -2160,6 +2162,7 @@ <translation id="3008232374986381779">Ejecuta las herramientas, los editores de código y los IDE de Linux en tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Restablecer permisos</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> requiere que te conectes a una red Wi-Fi y descargues una actualización hoy. También puedes descargarla con una conexión de uso medido (es posible que se apliquen cargos).}other{<ph name="MANAGER" /> requiere que te conectes a una red Wi-Fi y descargues una actualización antes de la fecha límite. También puedes descargarla con una conexión de uso medido (es posible que se apliquen cargos).}}</translation> +<translation id="3009178788565917040">Salida</translation> <translation id="3009300415590184725">¿Estás seguro de que deseas cancelar el proceso de configuración del servicio de datos para celulares?</translation> <translation id="3009779501245596802">Bases de datos indexadas</translation> <translation id="3010279545267083280">Contraseña eliminada</translation> @@ -2490,6 +2493,7 @@ <translation id="3359256513598016054">Restricciones de directivas para certificados</translation> <translation id="3360297538363969800">Se produjo un error al imprimir. Revisa la impresora y vuelve a intentarlo.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}other{<ph name="DEVICE_NAME" /> quiere compartir <ph name="ATTACHMENTS" /> contigo.}}</translation> +<translation id="3363202073972776113">Tu organización administrará este nuevo perfil. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Mensaje de tu administrador: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Usar Ctrl o Alt</translation> <translation id="3368922792935385530">Conectado</translation> @@ -2524,6 +2528,7 @@ <translation id="339722927132407568">Intermitente</translation> <translation id="3399432415385675819">Se inhabilitarán las notificaciones</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - entrelazado</translation> +<translation id="3401484564516348917">Obtener información sobre tu navegador, SO, dispositivo, software instalado, valores de registro y archivos</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Se almacenó {COUNT} contraseña en este dispositivo}other{Se almacenaron {COUNT} contraseñas en este dispositivo}}</translation> <translation id="3402255108239926910">Selecciona un Avatar</translation> <translation id="3402585168444815892">Inscripción al modo de demostración</translation> @@ -2770,6 +2775,7 @@ <translation id="3627879631695760395">Instalar <ph name="APP" />…</translation> <translation id="3628275722731025472">Desactivar Bluetooth</translation> <translation id="3629631988386925734">Ingresa tu contraseña para habilitar Smart Lock. La próxima vez, tu teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation> +<translation id="3629664892718440872">Recordar esta opción</translation> <translation id="3630132874740063857">Tu teléfono</translation> <translation id="3630995161997703415">Agrega el sitio a tu biblioteca para usarlo en cualquier momento</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como el momento en que fallo Chrome OS, qué funciones usas y la cantidad de memoria que usas en general.<ph name="END_PARAGRAPH1" /> @@ -3259,6 +3265,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Se denegó el control total de los dispositivos MIDI</translation> +<translation id="4087328411748538168">Mostrar a la derecha</translation> <translation id="4089235344645910861">Se guardó la configuración y comenzó la sincronización.</translation> <translation id="4090103403438682346">Habilitar el acceso verificado</translation> <translation id="4090947011087001172">¿Quieres restablecer los permisos del sitio <ph name="SITE" />?</translation> @@ -3543,6 +3550,7 @@ <translation id="4377058670119819762">Permite desplazarse hacia la izquierda y derecha en la barra de pestañas cuando está completa.</translation> <translation id="4377363674125277448">Se produjo un error con el certificado del servidor.</translation> <translation id="4378154925671717803">Teléfono</translation> +<translation id="4378308539633073595">Desplazarse hacia adelante</translation> <translation id="4378551569595875038">Conectando…</translation> <translation id="4378556263712303865">Solicitud del dispositivo</translation> <translation id="4379281552162875326">¿Deseas desinstalar "<ph name="APP_NAME" />"?</translation> @@ -3951,6 +3959,7 @@ <translation id="4779766576531456629">Cambiar el nombre de la Red móvil por eSIM</translation> <translation id="4780321648949301421">Guardar página como...</translation> <translation id="4781443161433589743">Tienes la seguridad más sólida de Chrome.</translation> +<translation id="4782861709165039462">El interruptor del hardware de los dispositivos inhabilitó todos los micrófonos</translation> <translation id="4785719467058219317">Estás usando una llave de seguridad que no se registró con este sitio web</translation> <translation id="4785914069240823137">Cancelar recorte</translation> <translation id="4788092183367008521">Comprueba la conexión de red y vuelve a intentarlo.</translation> @@ -4717,6 +4726,7 @@ <translation id="5548075230008247516">Se anuló la selección de todos los elementos; se salió del modo de selección.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" y 1 pestaña más}other{"<ph name="TAB_TITLE" />" y # pestañas más}}</translation> <translation id="5548606607480005320">Verificación de seguridad</translation> +<translation id="5548644592758170183">Mostrar a la izquierda</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Entrada de texto y teclado</translation> <translation id="5553089923092577885">Asignaciones de directivas para certificados</translation> @@ -7344,6 +7354,7 @@ <translation id="8120505434908124087">Instalar el perfil de eSIM</translation> <translation id="812260729110117038">Los anunciantes y los publicadores pueden analizar la eficacia de los anuncios sin que estos hagan un seguimiento de los sitios que visitas.</translation> <translation id="81238879832906896">Flor amarilla y blanca</translation> +<translation id="8123975449645947908">Desplazarse hacia atrás</translation> <translation id="8124313775439841391">ONC administrado</translation> <translation id="813082847718468539">Consulta la información del sitio</translation> <translation id="8131740175452115882">Confirmar</translation> @@ -8199,6 +8210,7 @@ <translation id="8980345560318123814">Informes de comentarios</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: Falló</translation> <translation id="8981825781894055334">Poco papel</translation> +<translation id="8983018820925880511"><ph name="DOMAIN" /> administrará este nuevo perfil. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> puede editar <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Estarás visible para todas las personas durante <ph name="MINUTES" /> minutos. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Te damos la bienvenida a Steam para Chromebook</translation> @@ -8259,6 +8271,7 @@ <translation id="9037640663275993951">El dispositivo no está habilitado</translation> <translation id="9037818663270399707">Tu conexión no es privada para todo el tráfico de red.</translation> <translation id="9037965129289936994">Mostrar original</translation> +<translation id="9038489124413477075">Carpeta sin nombre</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Te queda un intento.}other{Te quedan # intentos.}}</translation> <translation id="9040473193163777637">¿Deseas activar ChromeVox, el lector de pantalla integrado de Chrome OS? En ese caso, mantén presionadas ambas teclas de volumen durante cinco segundos.</translation> <translation id="9040661932550800571">¿Quieres actualizar la contraseña para <ph name="ORIGIN" />?</translation> @@ -8295,6 +8308,7 @@ <translation id="9075413375877487220">La Navegación segura mejorada no confía en esta extensión.</translation> <translation id="9076283476770535406">Es posible que incluya contenido para adultos</translation> <translation id="9076523132036239772">Lo sentimos, no pudimos verificar tu correo electrónico o contraseña. Intenta conectándote a una red.</translation> +<translation id="9076821103818989526">Panel lateral</translation> <translation id="9076977315710973122">Elementos compartidos con SMB</translation> <translation id="9078193189520575214">Aplicando cambios…</translation> <translation id="9078316009970372699">Inhabilitar la Conexión instantánea mediante dispositivo móvil</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index b0f94cc..432ca15b 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1268,6 +1268,7 @@ <translation id="2180620921879609685">Bloquear contenido en cualquier página</translation> <translation id="2182058453334755893">Se ha copiado en tu portapapeles</translation> <translation id="2184515124301515068">Permitir que Chrome elija cuándo los sitios pueden reproducir sonidos (recomendado)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Página compartida desde otro dispositivo</translation> <translation id="2187675480456493911">La red está sincronizada con otros dispositivos de tu cuenta. Los ajustes modificados por otros usuarios no se sincronizarán. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Error de importación del certificado de servidor</translation> @@ -1798,6 +1799,7 @@ <translation id="2667144577800272420">Se han configurado otras aplicaciones para abrir los mismos enlaces que <ph name="APP_NAME" />. Se inhabilitará la apertura de enlaces compatibles desde <ph name="APP_NAME_2" /> y <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Gestionar el corrector ortográfico</translation> <translation id="2669241540496514785">No se ha podido abrir el archivo <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Cualquier persona que use este dispositivo puede ver los archivos descargados</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> está compartiendo una pestaña de Chrome.</translation> <translation id="2670403088701171361">No permitir que los sitios vean texto ni imágenes del portapapeles</translation> <translation id="2670429602441959756">Esta página contiene funciones que aún no se admiten en RV. Saliendo...</translation> @@ -2164,6 +2166,7 @@ <translation id="3008232374986381779">Ejecuta IDEs, editores y herramientas de Linux en tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Borrar permisos</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> requiere que te conectes a una red Wi‑Fi hoy para descargar una actualización. También puedes descargarla con una conexión de uso medido (sujeto a cargos).}other{<ph name="MANAGER" /> requiere que te conectes a una red Wi‑Fi y descargues una actualización antes de la fecha límite. También puedes descargarla con una conexión de uso medido (sujeto a cargos).}}</translation> +<translation id="3009178788565917040">Salida</translation> <translation id="3009300415590184725">¿Seguro que quieres cancelar el proceso de configuración del servicio de datos para móviles?</translation> <translation id="3009779501245596802">Bases de datos indexadas</translation> <translation id="3010279545267083280">Contraseña eliminada</translation> @@ -3550,6 +3553,7 @@ <translation id="4377058670119819762">Permite que la barra de pestañas se desplace hacia la izquierda y la derecha cuando está llena.</translation> <translation id="4377363674125277448">Ha habido un problema con el certificado del servidor.</translation> <translation id="4378154925671717803">Teléfono</translation> +<translation id="4378308539633073595">Desplazarse hacia delante</translation> <translation id="4378551569595875038">Conectando...</translation> <translation id="4378556263712303865">Solicitud de dispositivo</translation> <translation id="4379281552162875326">¿Quieres desinstalar <ph name="APP_NAME" />?</translation> @@ -7353,6 +7357,7 @@ <translation id="8120505434908124087">Instalar perfil de eSIM</translation> <translation id="812260729110117038">Los anunciantes y editores pueden analizar la efectividad de los anuncios sin hacer un seguimiento de los sitios que visitas.</translation> <translation id="81238879832906896">Flor blanca y amarilla</translation> +<translation id="8123975449645947908">Desplazar atrás</translation> <translation id="8124313775439841391">ONC administrado</translation> <translation id="813082847718468539">Ver información del sitio</translation> <translation id="8131740175452115882">Confirmar</translation> @@ -8269,6 +8274,7 @@ <translation id="9037640663275993951">El dispositivo no está permitido</translation> <translation id="9037818663270399707">Tu conexión no es privada para todo el tráfico de red</translation> <translation id="9037965129289936994">Mostrar original</translation> +<translation id="9038489124413477075">Carpeta sin nombre</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Te queda 1 intento.}other{Te quedan # intentos.}}</translation> <translation id="9040473193163777637">¿Quieres activar ChromeVox, el lector de pantalla integrado de ChromeOS? Si es así, mantén pulsadas las dos teclas de volumen durante cinco segundos.</translation> <translation id="9040661932550800571">¿Quieres actualizar la contraseña de <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 5eabfbdf..6650f14 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -1804,6 +1804,7 @@ <translation id="2667144577800272420">Muud rakendused avavad samad lingid, mille avab rakendus <ph name="APP_NAME" />. See keelab rakenduste <ph name="APP_NAME_2" /> ja <ph name="APP_NAME_3" /> jaoks toetatud linkide avamise.</translation> <translation id="2667463864537187133">Õigekirjakontrolli haldamine</translation> <translation id="2669241540496514785">Rakendust <ph name="APP_NAME" /> ei saanud avada</translation> +<translation id="2669454659051515572">Kõik inimesed, kes seda seadet kasutavad, näevad allalaaditud faile</translation> <translation id="2670102641511624474">Rakendus <ph name="APP_NAME" /> jagab Chrome'i vahelehte.</translation> <translation id="2670403088701171361">Ära luba saitidel näha minu lõikelaual olevat teksti ega pilte</translation> <translation id="2670429602441959756">See leht sisaldab funktsioone, mida VR veel ei toeta. Väljumine …</translation> @@ -2171,6 +2172,7 @@ <translation id="3008232374986381779">Linuxi tööriistade, redaktorite ja IDE-de käitamine teie seadmes <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Lähtesta load</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> nõuab, et looksite täna WiFi-ühenduse, et värskendus alla laadida. Võite allalaadimiseks kasutada ka mahupõhist ühendust (rakenduda võivad tasud).}other{<ph name="MANAGER" /> nõuab, et looksite ühenduse WiFi-võrguga ja laadiksite enne tähtaega alla värskenduse. Võite allalaadimiseks kasutada ka mahupõhist ühendust (rakenduda võivad tasud).}}</translation> +<translation id="3009178788565917040">Väljund</translation> <translation id="3009300415590184725">Kas soovite mobiilse andmesideteenuse seadistamise protsessi kindlasti tühistada?</translation> <translation id="3009779501245596802">Indekseeritud andmebaasid</translation> <translation id="3010279545267083280">Parool on kustutatud</translation> @@ -3558,6 +3560,7 @@ <translation id="4377058670119819762">Lubab vahelehtede ribal kerida vasakule ja paremale, kui see on täis.</translation> <translation id="4377363674125277448">Serveri sertifikaadiga ilmnes probleem.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Edasikerimine</translation> <translation id="4378551569595875038">Ühendamine ...</translation> <translation id="4378556263712303865">Seadme nõue</translation> <translation id="4379281552162875326">Kas desinstallida „<ph name="APP_NAME" />”?</translation> @@ -7361,6 +7364,7 @@ <translation id="8120505434908124087">eSIM-i profiili installimine</translation> <translation id="812260729110117038">Reklaamijad ja väljaandjad saavad reklaamide tõhusust uurida viisil, mis teie tegevusi saitidel ei jälgi.</translation> <translation id="81238879832906896">Kollane ja valge lill</translation> +<translation id="8123975449645947908">Keri tagasi</translation> <translation id="8124313775439841391">Hallatud ONC</translation> <translation id="813082847718468539">Kuvab saidi teabe</translation> <translation id="8131740175452115882">Kinnita</translation> @@ -8277,6 +8281,7 @@ <translation id="9037640663275993951">Seade ei ole lubatud</translation> <translation id="9037818663270399707">Teie ühendus ei ole kogu võrguliikluse jaoks privaatne</translation> <translation id="9037965129289936994">Kuva originaal</translation> +<translation id="9038489124413477075">Nimeta kaust</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Teil on veel üks katse.}other{Teil on veel # katset.}}</translation> <translation id="9040473193163777637">Kas soovite aktiveerida Chrome OS-i sisseehitatud ekraanilugeja ChromeVox? Kui jah, siis hoidke mõlemat helitugevuse klahvi viis sekundit all.</translation> <translation id="9040661932550800571">Kas värskendada saidi <ph name="ORIGIN" /> parooli?</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 959ccd4..44db765 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -1798,6 +1798,7 @@ <translation id="2667144577800272420">Esteka berak <ph name="APP_NAME" /> aplikazioarekin irekitzeko konfiguratuta daude beste aplikazio batzuk. <ph name="APP_NAME_2" /> eta <ph name="APP_NAME_3" /> aplikazioek ezingo dute ireki esteka bateragarririk.</translation> <translation id="2667463864537187133">Kudeatu ortografia-zuzentzailea</translation> <translation id="2669241540496514785">Ezin izan da ireki <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Gailu hau darabilen edonork ikus ditzake deskargatutako fitxategiak</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome-ko fitxa bat partekatzen ari da.</translation> <translation id="2670403088701171361">Ez eman arbeleko testua edo irudiak ikusteko baimena webguneei</translation> <translation id="2670429602441959756">Oraingoz errealitate birtualean onartzen ez diren eginbideak ditu orri honek. Irteten…</translation> @@ -2164,6 +2165,7 @@ <translation id="3008232374986381779">Abiarazi Linux-erako tresnak, editoreak eta IDEak <ph name="DEVICE_TYPE" /> gailuan. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Berrezarri baimenak</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Gaur wifi-sare batera konektatzeko eta eguneratze bat deskargatzeko eskatzen du <ph name="MANAGER" /> domeinuak. Bestela, deskarga ezazu neurtutako konexio batetik (baliteke zerbait ordaindu behar izatea).}other{Epemuga baino lehen wifi-sare batera konektatzeko eta eguneratze bat deskargatzeko eskatzen du <ph name="MANAGER" /> domeinuak. Bestela, deskargatu eguneratzea neurtutako konexio batetik (baliteke zerbait ordaindu behar izatea).}}</translation> +<translation id="3009178788565917040">Irteera</translation> <translation id="3009300415590184725">Ziur mugikorreko datuen zerbitzua konfiguratzeko prozesua bertan behera utzi nahi duzula?</translation> <translation id="3009779501245596802">Datu-base indexatuak</translation> <translation id="3010279545267083280">Pasahitza ezabatu da</translation> @@ -3551,6 +3553,7 @@ <translation id="4377058670119819762">Fitxen zinta beteta dagoenean, bertan eskuinera eta ezkerrera egiteko aukera gaitzen du.</translation> <translation id="4377363674125277448">Arazo bat izan da zerbitzariaren ziurtagiriarekin.</translation> <translation id="4378154925671717803">Telefonoa</translation> +<translation id="4378308539633073595">Egin aurrera</translation> <translation id="4378551569595875038">Konektatzen…</translation> <translation id="4378556263712303865">Gailuaren eskaera</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" desinstalatu nahi duzu?</translation> @@ -7349,6 +7352,7 @@ <translation id="8120505434908124087">Instalatu eSIMaren profila</translation> <translation id="812260729110117038">Iragarleek eta argitaratzaileek iragarkien eraginkortasuna azter dezakete, webguneetan zure jarraipena egin beharrik gabe.</translation> <translation id="81238879832906896">Lore hori eta zuria</translation> +<translation id="8123975449645947908">Egin atzera</translation> <translation id="8124313775439841391">Kudeatutako ONC propietateak</translation> <translation id="813082847718468539">Ikusi webgunearen informazioa</translation> <translation id="8131740175452115882">Berretsi</translation> @@ -8265,6 +8269,7 @@ <translation id="9037640663275993951">Ez da onartzen gailua</translation> <translation id="9037818663270399707">Konexioa ez da pribatua sareko trafiko guztirako</translation> <translation id="9037965129289936994">Ikusi jatorrizkoa</translation> +<translation id="9038489124413477075">Izenik gabeko karpeta</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Saiakera bakarra geratzen zaizu.}other{# saiakera geratzen zaizkizu.}}</translation> <translation id="9040473193163777637">ChromeVox (Chrome OS-ren pantaila-irakurgailu integratua) aktibatu nahi duzu? Hala bada, eduki sakatuta bi bolumen-botoiak bost segundoz.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> webguneko pasahitza eguneratu nahi duzu?</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 57a8b65..8592e96 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1256,6 +1256,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">افزودن Wi-Fi…</translation> <translation id="2162155940152307086">از صفحه تنظیمات همگامسازی که خارج شوید، همگامسازی شروع میشود</translation> +<translation id="2162705204091149050">خواندن اطلاعات مربوط به مرورگر، سیستمعامل، دستگاه، نرمافزار نصبشده، و فایلها</translation> <translation id="2162926944953615670">نمایههای سیمکارت داخلی دردسترس نیست</translation> <translation id="2163470535490402084">لطفاً برای ورود به سیستم در <ph name="DEVICE_TYPE" /> خود، به اینترنت وصل شوید.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />، <ph name="SECOND_SWITCH" />، <ph name="THIRD_SWITCH" />، و ۱ کلید دیگر</translation> @@ -1808,6 +1809,7 @@ <translation id="2667144577800272420">برنامههای دیگری تنظیم شدهاند تا همان پیوندها را مثل <ph name="APP_NAME" /> باز کنند. با این کار <ph name="APP_NAME_2" /> و <ph name="APP_NAME_3" /> غیرفعال خواهند شد تا پیوندهای پشتیبانیشده را باز نکنند.</translation> <translation id="2667463864537187133">مدیریت غلطیاب املایی</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> باز نشد</translation> +<translation id="2669454659051515572">همه افرادی که از این دستگاه استفاده میکنند میتوانند فایلهای بارگیریشده را ببینند</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> درحال اشتراکگذاری یک برگه Chrome است.</translation> <translation id="2670403088701171361">به سایتها اجازه داده نشود نوشتار یا تصاویر موجود در بریدهدان را ببینند</translation> <translation id="2670429602441959756">این صفحه حاوی قابلیتهایی است که هنوز در حالت «واقعیت مجازی» پشتیبانی نمیشوند. درحال خروج…</translation> @@ -2175,6 +2177,7 @@ <translation id="3008232374986381779">ابزارها، ویرایشگرها و محیطهای یکپارچه توسعه نرمافزار (IDEs) Linux را در <ph name="DEVICE_TYPE" /> اجرا کنید. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> <translation id="3008272652534848354">بازنشانی مجوزها</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> از شما میخواهد امروز به Wi-Fi متصل شوید و بهروزرسانی را بارگیری کنید. یا آن را ازطریق اتصال محدود بارگیری کنید (ممکن است هزینه اعمال شود).}one{<ph name="MANAGER" /> از شما میخواهد به Wi-Fi متصل شوید و بهروزرسانی را پیشاز مهلت تعیینشده بارگیری کنید. یا آن را ازطریق اتصال محدود بارگیری کنید (ممکن است هزینه اعمال شود).}other{<ph name="MANAGER" /> از شما میخواهد به Wi-Fi متصل شوید و بهروزرسانی را پیشاز مهلت تعیینشده بارگیری کنید. یا آن را ازطریق اتصال محدود بارگیری کنید (ممکن است هزینه اعمال شود).}}</translation> +<translation id="3009178788565917040">خروجی</translation> <translation id="3009300415590184725">آیا مطمئن هستید که میخواهید مرحله تنظیم سرویس داده تلفن همراه را لغو کنید؟</translation> <translation id="3009779501245596802">پایگاههای داده فهرستبندی شده</translation> <translation id="3010279545267083280">گذرواژه حذف شد</translation> @@ -2505,6 +2508,7 @@ <translation id="3359256513598016054">محدودیتهای سیاست گواهی</translation> <translation id="3360297538363969800">چاپ ناموفق بود. لطفاً چاپگرتان را بررسی کنید و دوباره امتحان کنید.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> درحال همرسانی <ph name="ATTACHMENTS" /> با شما است.}one{<ph name="DEVICE_NAME" /> درحال همرسانی <ph name="ATTACHMENTS" /> با شما است.}other{<ph name="DEVICE_NAME" /> درحال همرسانی <ph name="ATTACHMENTS" /> با شما است.}}</translation> +<translation id="3363202073972776113">سازمانتان این نمایه جدید را مدیریت خواهد کرد. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> <translation id="3364986687961713424">ازطرف سرپرست: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">یا از Ctrl استفاده کنید یا از Alt</translation> <translation id="3368922792935385530">متصل</translation> @@ -2539,6 +2543,7 @@ <translation id="339722927132407568">ثابت میماند</translation> <translation id="3399432415385675819">اعلانها غیرفعال خواهند شد</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز) - درهمبافته</translation> +<translation id="3401484564516348917">خواندن اطلاعات مربوط به مرورگر، سیستمعامل، دستگاه، نرمافزار نصبشده، فایلها و مقادیر رجیستری</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} گذرواژه در این دستگاه ذخیره شده است}one{{COUNT} گذرواژه در این دستگاه ذخیره شده است}other{{COUNT} گذرواژه در این دستگاه ذخیره شده است}}</translation> <translation id="3402255108239926910">انتخاب چهرهنما</translation> <translation id="3402585168444815892">درحال ثبتنام کردن در «حالت نمایشی»</translation> @@ -2785,6 +2790,7 @@ <translation id="3627879631695760395">نصب <ph name="APP" />…</translation> <translation id="3628275722731025472">خاموش کردن بلوتوث</translation> <translation id="3629631988386925734">برای فعال کردن Smart Lock، گذرواژهتان را وارد کنید. دفعه بعد، تلفنتان قفل <ph name="DEVICE_TYPE" /> شما را باز خواهد کرد. میتوانید Smart Lock را در «تنظیمات» خاموش کنید.</translation> +<translation id="3629664892718440872">این گزینه بهخاطر سپرده شود</translation> <translation id="3630132874740063857">تلفن شما</translation> <translation id="3630995161997703415">این سایت را به قفسهتان اضافه کنید تا هر زمان که بخواهید از آن استفاده کنید</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />اگر به دستگاههای ChromeOS اجازه دهید گزارشهای خودکار ارسال کند، به ما کمک میکنید آنچه را باید در ChromeOS درست کنیم و بهبود ببخشیم اولویتبندی کنیم. این گزارشها میتواند شامل مواردی ازاینقبیل باشد: چه زمانی ChromeOS خراب میشود، از کدام ویژگیها استفاده میکنید، و معمولاً از چه مقدار حافظه استفاده میکنید.<ph name="END_PARAGRAPH1" /> @@ -3274,6 +3280,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">کنترل کامل روی دستگاههای MIDI رد شد</translation> +<translation id="4087328411748538168">نمایش در راست</translation> <translation id="4089235344645910861">تنظیمات ذخیره شد. همگامسازی شروع شد.</translation> <translation id="4090103403438682346">فعال کردن دسترسی تأییدشده</translation> <translation id="4090947011087001172">مجوزهای سایت برای <ph name="SITE" /> بازنشانی شود؟</translation> @@ -3558,6 +3565,7 @@ <translation id="4377058670119819762">هنگام پر بودن نوار برگه، قابلیت پیمایش به چپ و راست را برای این نوار فعال میکند.</translation> <translation id="4377363674125277448">مشکلی در رابطه با گواهی سرور پیش آمد.</translation> <translation id="4378154925671717803">تلفن</translation> +<translation id="4378308539633073595">پیمایش بهجلو</translation> <translation id="4378551569595875038">در حال اتصال..</translation> <translation id="4378556263712303865">درخواست دستگاه</translation> <translation id="4379281552162875326">«<ph name="APP_NAME" />» حذف نصب شود؟</translation> @@ -3967,6 +3975,7 @@ <translation id="4779766576531456629">تغییر دادن نام شبکه تلفن همراه سیمکارت داخلی</translation> <translation id="4780321648949301421">ذخیره صفحه بهعنوان...</translation> <translation id="4781443161433589743">از بالاترین سطح امنیت در Chrome برخوردار هستید</translation> +<translation id="4782861709165039462">همه میکروفونها با کلید سختافزاری دستگاه غیرفعال شده است</translation> <translation id="4785719467058219317">شما از کلید امنیتی استفاده میکنید که در این وبسایت ثبت نشده است</translation> <translation id="4785914069240823137">لغو برش</translation> <translation id="4788092183367008521">لطفاً اتصال شبکهتان را بررسی کنید و دوباره امتحان کنید.</translation> @@ -4733,6 +4742,7 @@ <translation id="5548075230008247516">انتخاب همه موارد لغو شد، از حالت انتخاب خارج شدید.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{«<ph name="TAB_TITLE" />»}=1{«<ph name="TAB_TITLE" />» و یک برگه دیگر}one{«<ph name="TAB_TITLE" />» و # برگه دیگر}other{«<ph name="TAB_TITLE" />» و # برگه دیگر}}</translation> <translation id="5548606607480005320">بررسی ایمنی</translation> +<translation id="5548644592758170183">نمایش در چپ</translation> <translation id="554903022911579950">کربرس</translation> <translation id="5551573675707792127">صفحهکلید و ورودی نوشتاری</translation> <translation id="5553089923092577885">نگاشتهای سیاست گواهی</translation> @@ -7361,6 +7371,7 @@ <translation id="8120505434908124087">نصب نمایه سیمکارت داخلی</translation> <translation id="812260729110117038">تبلیغکنندگان و ناشران میتوانند اثربخشی آگهیها را بهگونهای بررسی کنند که شما را در سایتها ردیابی نکند.</translation> <translation id="81238879832906896">گل زرد و سفید</translation> +<translation id="8123975449645947908">پیمایش بهعقب</translation> <translation id="8124313775439841391">ONC مدیریت شده</translation> <translation id="813082847718468539">مشاهدهٔ اطلاعات سایت</translation> <translation id="8131740175452115882">تأیید</translation> @@ -8217,6 +8228,7 @@ <translation id="8980345560318123814">گزارشهای بازخورد</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - خراب شد</translation> <translation id="8981825781894055334">کاغذ کم است</translation> +<translation id="8983018820925880511"><ph name="DOMAIN" /> این نمایه جدید را مدیریت خواهد کرد. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> میتواند <ph name="FILENAME" /> را ویرایش کند</translation> <translation id="8984694057134206124">بهمدت <ph name="MINUTES" /> دقیقه برای همه افراد نمایان خواهید بود. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation> <translation id="8985191021574400965">به Steam ویژه Chromebook خوش آمدید</translation> @@ -8277,6 +8289,7 @@ <translation id="9037640663275993951">دستگاه مجاز نیست</translation> <translation id="9037818663270399707">اتصال شما برای همه ترافیک شبکه خصوصی نیست</translation> <translation id="9037965129289936994">نمایش مورد اصلی</translation> +<translation id="9038489124413477075">پوشه بدون نام</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{یک بار دیگر میتوانید امتحان کنید.}one{# بار دیگر میتوانید امتحان کنید.}other{# بار دیگر میتوانید امتحان کنید.}}</translation> <translation id="9040473193163777637">مایلید ChromeVox (صفحهخوان داخلی ChromeOS) را فعال کنید؟ اگر مایلید، هر دو کلید میزان صدا را فشار دهید و پنج ثانیه نگه دارید.</translation> <translation id="9040661932550800571">گذرواژه <ph name="ORIGIN" /> بهروزرسانی شود؟</translation> @@ -8313,6 +8326,7 @@ <translation id="9075413375877487220">این افزونه برای «مرور ایمن پیشرفته» مورداعتماد نیست.</translation> <translation id="9076283476770535406">این سایت ممکن است شامل محتوای مخصوص بزرگسالان باشد</translation> <translation id="9076523132036239772">متأسفم، ایمیل و گذرواژه شما تأیید نشد. ابتدا به یک شبکه متصل شوید.</translation> +<translation id="9076821103818989526">پانل کناری</translation> <translation id="9076977315710973122">همرسانی «بلوک پیام سرور» (SMB)</translation> <translation id="9078193189520575214">درحال اعمال تغییرات…</translation> <translation id="9078316009970372699">غیرفعال کردن «اشتراکگذاری اینترنت فوری»</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 4b5c3bf..4fa3e7e 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1812,6 +1812,7 @@ <translation id="2667144577800272420">Muut sovellukset on asetettu avaamaan samat linkit kuin <ph name="APP_NAME" />. Muutoksen jälkeen <ph name="APP_NAME_2" /> ja <ph name="APP_NAME_3" /> eivät enää voi avata tuettuja linkkejä.</translation> <translation id="2667463864537187133">Hallitse oikeinkirjoituksen tarkistusta</translation> <translation id="2669241540496514785"><ph name="APP_NAME" />:n avaus ei onnistunut</translation> +<translation id="2669454659051515572">Kaikki tämän laitteen käyttäjät voivat nähdä ladatut tiedostot</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> jakaa Chrome-välilehden.</translation> <translation id="2670403088701171361">Älä salli sivustojen nähdä tekstiä tai kuvia leikepöydälläsi</translation> <translation id="2670429602441959756">Tämä sivu sisältää ominaisuuksia, joita ei vielä tueta virtuaalitodellisuudessa. Jännittävää…</translation> @@ -2179,6 +2180,7 @@ <translation id="3008232374986381779">Käytä Linux-työkaluja, ‑muokkaustoimintoja ja integroituja Linux-kehitysympäristöjä (<ph name="DEVICE_TYPE" />). <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Nollaa luvat</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> edellyttää, että yhdistät Wi-Fi-verkkoon tänään ja lataat päivityksen. Voit myös ladata sen maksullisella yhteydellä (tästä voidaan veloittaa).}other{<ph name="MANAGER" /> edellyttää, että yhdistät Wi-Fi-verkkoon ja lataat päivityksen ennen määräaikaa. Voit myös ladata sen maksullisella yhteydellä (tästä voidaan veloittaa).}}</translation> +<translation id="3009178788565917040">Äänentoisto</translation> <translation id="3009300415590184725">Haluatko varmasti peruuttaa mobiilitiedonsiirtopalvelun määrityksen?</translation> <translation id="3009779501245596802">Indeksoidut tietokannat</translation> <translation id="3010279545267083280">Salasana poistettiin</translation> @@ -3563,6 +3565,7 @@ <translation id="4377058670119819762">Laita välilehtirivin vieritys päälle, niin voit vierittää vasemmalle ja oikealle, kun rivi on täynnä.</translation> <translation id="4377363674125277448">Palvelimen varmenne on virheellinen.</translation> <translation id="4378154925671717803">Puhelin</translation> +<translation id="4378308539633073595">Vieritä eteenpäin</translation> <translation id="4378551569595875038">Yhdistetään…</translation> <translation id="4378556263712303865">Laitepyyntö</translation> <translation id="4379281552162875326">Poistetaanko <ph name="APP_NAME" />?</translation> @@ -7366,6 +7369,7 @@ <translation id="8120505434908124087">Asenna eSIM-profiili</translation> <translation id="812260729110117038">Mainostajat ja julkaisijat voivat tutkia mainosten vaikuttavuutta tavalla, joka ei seuraa sinua eri sivustoilla.</translation> <translation id="81238879832906896">Kelta-valkoinen kukka</translation> +<translation id="8123975449645947908">Vieritä taaksepäin</translation> <translation id="8124313775439841391">Hallinnoitu ONC</translation> <translation id="813082847718468539">Näytä sivuston tiedot</translation> <translation id="8131740175452115882">Vahvista</translation> @@ -8282,6 +8286,7 @@ <translation id="9037640663275993951">Laitetta ei ole sallittu</translation> <translation id="9037818663270399707">Yhteytesi kaikkea verkkoliikennettä ei suojata</translation> <translation id="9037965129289936994">Näytä alkuperäinen</translation> +<translation id="9038489124413477075">Nimetön kansio</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Jäljellä on yksi yritys.}other{Jäljellä on # yritystä.}}</translation> <translation id="9040473193163777637">Haluatko aktivoida ChromeVoxin, Chrome-käyttöjärjestelmän sisäänrakennetun näytönlukuohjelman? Jos haluat, paina molempia äänenvoimakkuuspainikkeita viiden sekunnin ajan.</translation> <translation id="9040661932550800571">Päivitetäänkö salasana: <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index ec8b8ed..7dd940c 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -355,6 +355,7 @@ <translation id="1340527397989195812">Mag-back up ng media mula sa device gamit ang Files app.</translation> <translation id="1343865611738742294">Bugyan ang mga Linux app ng pahintulot na i-access ang mga USB device. Hindi maaalala ng Linux ang isang USB device pagkatapos itong alisin.</translation> <translation id="1343920184519992513">Magpatuloy kung saan ka huminto at magbukas ng partikular na hanay ng mga page</translation> +<translation id="1344377983938103876">Binubuksan ang <ph name="URL" />...</translation> <translation id="134589511016534552">Ipinapakita rin ang mga tab ng media sa saksyong Mga Bukas na Tab</translation> <translation id="1346630054604077329">Kumpirmahin at i-restart</translation> <translation id="1346748346194534595">Kanan</translation> @@ -1281,6 +1282,7 @@ <translation id="2180620921879609685">I-block ang content sa anumang page</translation> <translation id="2182058453334755893">Kinopya sa Iyong Clipboard</translation> <translation id="2184515124301515068">Hayaan ang Chrome na pumili kung kailan makakapag-play ng tunog ang mga site (inirerekomenda)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Ibinahaging page mula sa ibang device</translation> <translation id="2187675480456493911">Naka-sync sa iba pang device sa iyong account. Hindi masi-sync ang mga setting na binago ng iba pang user. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Error sa Pag-import ng Certificate ng Server</translation> @@ -1813,6 +1815,7 @@ <translation id="2667144577800272420">May iba pang app na nakatakdang buksan ang mga link na kapareho ng sa <ph name="APP_NAME" />. Idi-disable nito ang kakayahan ng <ph name="APP_NAME_2" /> at <ph name="APP_NAME_3" /> na buksan ang mga sinusuportahang link.</translation> <translation id="2667463864537187133">Pamahalaan ang pang-check ng pagbabaybay</translation> <translation id="2669241540496514785">Hindi mabuksan ang <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Makikita ng sinumang gumagamit ng device na ito ang mga na-download na file</translation> <translation id="2670102641511624474">Nagbabahagi ang <ph name="APP_NAME" /> ng isang tab ng Chrome.</translation> <translation id="2670403088701171361">Huwag payagan ang mga site na makita ang text o mga larawan sa iyong clipboard</translation> <translation id="2670429602441959756">Naglalaman ang page na ito ng mga feature na hindi pa sinusuportahan sa VR. Lumalabas...</translation> @@ -2180,6 +2183,7 @@ <translation id="3008232374986381779">Paganahin sa iyong <ph name="DEVICE_TYPE" /> ang mga tool, editor, at IDE ng Linux. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation> <translation id="3008272652534848354">I-reset ang mga pahintulot</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Hinihiling sa iyo ng <ph name="MANAGER" /> na kumonekta sa Wi-Fi ngayong araw para mag-download ng update. O kaya, mag-download mula sa isang nakametrong koneksyon (posibleng magkaroon ng mga singil).}one{Hinihiling sa iyo ng <ph name="MANAGER" /> na kumonekta sa Wi-Fi at mag-download ng update bago ang deadline. O kaya, mag-download mula sa isang nakametrong koneksyon (posibleng magkaroon ng mga singil).}other{Hinihiling sa iyo ng <ph name="MANAGER" /> na kumonekta sa Wi-Fi at mag-download ng update bago ang deadline. O kaya, mag-download mula sa isang nakametrong koneksyon (posibleng magkaroon ng mga singil).}}</translation> +<translation id="3009178788565917040">Output</translation> <translation id="3009300415590184725">Sigurado ka bang gusto mong kanselahin ang proseso ng pag-setup ng serbisyo ng mobile data?</translation> <translation id="3009779501245596802">Mga naka-index na database</translation> <translation id="3010279545267083280">Tinanggal ang password</translation> @@ -3567,6 +3571,7 @@ <translation id="4377058670119819762">Nagbibigay-daan sa tabstrip na mag-scroll pakaliwa at pakanan kapag puno.</translation> <translation id="4377363674125277448">Nagkaroon ng problema sa certificate ng server.</translation> <translation id="4378154925671717803">Telepono</translation> +<translation id="4378308539633073595">Mag-scroll pasulong</translation> <translation id="4378551569595875038">Kumokonekta...</translation> <translation id="4378556263712303865">Requisition ng device</translation> <translation id="4379281552162875326">I-uninstall ang "<ph name="APP_NAME" />"?</translation> @@ -6970,6 +6975,7 @@ <translation id="7753735457098489144">Hindi na-install dahil kulang ang storage space. Para magbakante ng espasyo, mag-delete ng mga file sa storage ng device.</translation> <translation id="7754347746598978109">Hindi pinapayagang gumamit ng Javascript</translation> <translation id="7754704193130578113">Magtanong kung saan ise-save ang bawat file bago ang pagda-download</translation> +<translation id="7755134875397410803">Para tulungan kang tapusin ang mga gawain, matatanggap ng Google ang mga URL at content ng mga site kung saan ka gumamit ng Assistant, gayundin ang impormasyong isinumite mo sa pamamagitan ng Assistant. Puwedeng i-store sa iyong Google Account ang impormasyong ito. Puwede mong i-off ang Assistant sa mga setting ng Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Maaari itong i-unblock ng iyong magulang para sa iyo</translation> <translation id="7757592200364144203">Palitan ang pangalan ng device</translation> <translation id="7757739382819740102">Puwedeng magbahagi sa iyo ang mga kalapit na contact. Kakailanganin ng pag-apruba.</translation> @@ -7373,6 +7379,7 @@ <translation id="8120505434908124087">I-install ang profile ng eSIM</translation> <translation id="812260729110117038">Mapag-aaralan ng mga advertiser at publisher ang bisa ng mga ad sa paraang hindi nangangailangan ng pagsubaybay sa iyo sa lahat ng site.</translation> <translation id="81238879832906896">Dilaw at puting bulaklak</translation> +<translation id="8123975449645947908">Mag-scroll pabalik</translation> <translation id="8124313775439841391">Pinamamahalaang ONC</translation> <translation id="813082847718468539">Tingnan ang impormasyon ng site</translation> <translation id="8131740175452115882">Kumpirmahin</translation> @@ -8292,6 +8299,7 @@ <translation id="9037640663275993951">Hindi pinapayagan ang device</translation> <translation id="9037818663270399707">Hindi pribado ang iyong koneksyon para sa lahat ng trapiko sa network</translation> <translation id="9037965129289936994">Ipakita Ang Orihinal</translation> +<translation id="9038489124413477075">Walang Pangalan na Folder</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{May isa kang pagtatangkang natitira.}one{May # kang pagtatangkang natitira.}other{May # kang pagtatangkang natitira.}}</translation> <translation id="9040473193163777637">Gusto mo bang i-activate ang ChromeVox, ang built-in na screen reader para sa ChromeOS? Kung oo, pindutin nang matagal ang parehong volume key sa loob ng limang segundo.</translation> <translation id="9040661932550800571">I-update ang password para sa <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index 7bd61cf..146ce0c 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -1799,6 +1799,7 @@ <translation id="2667144577800272420">D'autres applications sont configurées pour ouvrir les mêmes liens que ceux de l'application <ph name="APP_NAME" />. Cette option désactivera l'ouverture des liens compatibles par les applications <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Gérer le correcteur orthographique</translation> <translation id="2669241540496514785">Impossible d'ouvrir <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Toute personne utilisant cet appareil peut voir les fichiers téléchargés</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> partage un onglet Chrome.</translation> <translation id="2670403088701171361">Ne pas autoriser les sites à accéder au texte ni aux images de votre presse-papiers</translation> <translation id="2670429602441959756">Cette page contient des fonctions qui ne sont pas encore prises en charge dans la RV. Fermeture en cours…</translation> @@ -2166,6 +2167,7 @@ <translation id="3008232374986381779">Exécutez des outils, des éditeurs et des environnements de conception intégrés de Linux sur votre <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Réinitialiser les autorisations</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> exige que vous vous connectiez au Wi-Fi aujourd'hui et que vous téléchargiez une mise à jour. Autrement, téléchargez-la à l'aide d'une connexion mesurée (des frais pourraient s'appliquer).}one{<ph name="MANAGER" /> exige que vous vous connectiez au Wi-Fi et que vous téléchargiez une mise à jour avant l'échéance. Autrement, téléchargez-la à l'aide d'une connexion mesurée (des frais pourraient s'appliquer).}other{<ph name="MANAGER" /> exige que vous vous connectiez au Wi-Fi et que vous téléchargiez une mise à jour avant l'échéance. Autrement, téléchargez-la à l'aide d'une connexion mesurée (des frais pourraient s'appliquer).}}</translation> +<translation id="3009178788565917040">Sortie</translation> <translation id="3009300415590184725">Voulez-vous vraiment annuler la configuration du service de données mobiles?</translation> <translation id="3009779501245596802">Bases de données indexées</translation> <translation id="3010279545267083280">Mot de passe supprimé</translation> @@ -3549,6 +3551,7 @@ <translation id="4377058670119819762">Permet le défilement vers la gauche et vers la droite dans la bande d'onglets lorsqu'elle est pleine.</translation> <translation id="4377363674125277448">Un problème est survenu avec le certificat du serveur.</translation> <translation id="4378154925671717803">Numéro de téléphone</translation> +<translation id="4378308539633073595">Faire défiler vers l'avant</translation> <translation id="4378551569595875038">Connexion...</translation> <translation id="4378556263712303865">Réquisition d'appareil</translation> <translation id="4379281552162875326">Désinstaller « <ph name="APP_NAME" /> »?</translation> @@ -7351,6 +7354,7 @@ <translation id="8120505434908124087">Installer un profil eSIM</translation> <translation id="812260729110117038">Les annonceurs et les éditeurs peuvent étudier l'efficacité des annonces sans vous suivre sur tous les sites.</translation> <translation id="81238879832906896">Fleur jaune et blanche</translation> +<translation id="8123975449645947908">Faire défiler vers l'arrière</translation> <translation id="8124313775439841391">ONC géré</translation> <translation id="813082847718468539">Afficher l'information sur le site</translation> <translation id="8131740175452115882">Confirmer</translation> @@ -8267,6 +8271,7 @@ <translation id="9037640663275993951">L'appareil n'est pas autorisé</translation> <translation id="9037818663270399707">Votre connexion n'est pas privée pour tout le trafic réseau</translation> <translation id="9037965129289936994">Afficher la version d'origine</translation> +<translation id="9038489124413477075">Dossier sans nom</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Il vous reste une tentative.}one{Il vous reste # tentative.}other{Il vous reste # tentatives.}}</translation> <translation id="9040473193163777637">Voulez-vous activer ChromeVox, le lecteur d'écran intégré de Chrome OS? Le cas échéant, maintenez les deux touches de volume enfoncées pendant cinq secondes.</translation> <translation id="9040661932550800571">Mettre à jour le mot de passe pour <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index e1f44655..13bc2ad 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1248,6 +1248,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Ajouter un réseau Wi-Fi…</translation> <translation id="2162155940152307086">La synchronisation commencera une fois que vous aurez quitté les paramètres de synchronisation</translation> +<translation id="2162705204091149050">Lire les infos sur vos navigateur, OS, appareil, logiciels installés et fichiers</translation> <translation id="2162926944953615670">Aucun profil eSIM disponible</translation> <translation id="2163470535490402084">Veuillez vous connecter à Internet pour vous connecter à votre <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> et 1 autre contacteur</translation> @@ -1268,6 +1269,7 @@ <translation id="2180620921879609685">Bloquer du contenu sur n'importe quelle page</translation> <translation id="2182058453334755893">Copié dans le presse-papiers</translation> <translation id="2184515124301515068">Chrome détermine quand activer le son des sites (recommandé)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Page partagée depuis un autre appareil</translation> <translation id="2187675480456493911">Ce réseau est synchronisé avec d'autres appareils associés à votre compte. En revanche, les modifications apportées par ces utilisateurs ne seront pas synchronisées. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Erreur d'importation du certificat serveur</translation> @@ -1797,6 +1799,7 @@ <translation id="2667144577800272420">D'autres applis sont définies pour ouvrir les mêmes liens que <ph name="APP_NAME" />. Cela empêchera <ph name="APP_NAME_2" /> et <ph name="APP_NAME_3" /> d'ouvrir les liens compatibles.</translation> <translation id="2667463864537187133">Gérer le correcteur orthographique</translation> <translation id="2669241540496514785">Impossible d'ouvrir <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Toute personne utilisant cet appareil peut voir les fichiers téléchargés</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> partage un onglet Chrome.</translation> <translation id="2670403088701171361">Ne pas autoriser les sites à accéder au texte ni aux images de votre presse-papiers</translation> <translation id="2670429602441959756">Cette page contient des fonctionnalités non compatibles avec la RV. Fermeture…</translation> @@ -2164,6 +2167,7 @@ <translation id="3008232374986381779">Exécutez les outils, les éditeurs et les IDE Linux sur votre <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Réinitialiser les autorisations</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> vous demande de vous connecter au Wi-Fi aujourd'hui afin de télécharger une mise à jour. Vous pouvez aussi la télécharger via une connexion facturée à l'usage (susceptible d'entraîner des frais).}one{<ph name="MANAGER" /> vous demande de vous connecter au Wi-Fi pour télécharger une mise à jour avant la date limite. Vous pouvez aussi la télécharger via une connexion facturée à l'usage (susceptible d'entraîner des frais).}other{<ph name="MANAGER" /> vous demande de vous connecter au Wi-Fi pour télécharger une mise à jour avant la date limite. Vous pouvez aussi la télécharger via une connexion facturée à l'usage (susceptible d'entraîner des frais).}}</translation> +<translation id="3009178788565917040">Sortie</translation> <translation id="3009300415590184725">Voulez-vous vraiment annuler la configuration du service Internet mobile ?</translation> <translation id="3009779501245596802">Bases de données indexées</translation> <translation id="3010279545267083280">Mot de passe supprimé</translation> @@ -2494,6 +2498,7 @@ <translation id="3359256513598016054">Contraintes des stratégies de certificat</translation> <translation id="3360297538363969800">Échec de l'impression. Veuillez vérifier votre imprimante, puis réessayer.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}one{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}other{<ph name="DEVICE_NAME" /> essaie de partager <ph name="ATTACHMENTS" /> avec vous.}}</translation> +<translation id="3363202073972776113">Ce nouveau profil sera géré par votre organisation. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Message de votre administrateur : <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Utilisez soit Ctrl, soit Alt</translation> <translation id="3368922792935385530">Connecté</translation> @@ -2528,6 +2533,7 @@ <translation id="339722927132407568">Se fige</translation> <translation id="3399432415385675819">Les notifications seront désactivées</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – entrelacé</translation> +<translation id="3401484564516348917">Lire les infos sur vos navigateur, OS, appareil, logiciels installés, valeurs de registre et fichiers</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} mot de passe est enregistré sur cet appareil}one{{COUNT} mot de passe est enregistré sur cet appareil}other{{COUNT} mots de passe sont enregistrés sur cet appareil}}</translation> <translation id="3402255108239926910">Choisissez un avatar</translation> <translation id="3402585168444815892">Inscription au mode démo</translation> @@ -2774,6 +2780,7 @@ <translation id="3627879631695760395">Installer <ph name="APP" />...</translation> <translation id="3628275722731025472">Désactiver le Bluetooth</translation> <translation id="3629631988386925734">Saisissez votre mot de passe pour activer Smart Lock. La prochaine fois, votre téléphone déverrouillera votre <ph name="DEVICE_TYPE" />. Vous pouvez désactiver Smart Lock dans les paramètres.</translation> +<translation id="3629664892718440872">Mémoriser ce choix</translation> <translation id="3630132874740063857">Votre téléphone</translation> <translation id="3630995161997703415">Ajoutez ce site à votre étagère pour l'utiliser à tout moment</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Autoriser les appareils Chrome OS à envoyer automatiquement des rapports nous aide à prioriser ce qu'il faut corriger et améliorer dans Chrome OS. Ces rapports peuvent inclure diverses informations (plantages de Chrome OS, fonctionnalités utilisées, quantité de mémoire généralement utilisée, etc.).<ph name="END_PARAGRAPH1" /> @@ -3263,6 +3270,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Contrôle total des appareils MIDI refusé</translation> +<translation id="4087328411748538168">Afficher à droite</translation> <translation id="4089235344645910861">Paramètres enregistrés. Synchronisation démarrée.</translation> <translation id="4090103403438682346">Activer l'accès validé</translation> <translation id="4090947011087001172">Réinitialiser les autorisations de site pour <ph name="SITE" /> ?</translation> @@ -3547,6 +3555,7 @@ <translation id="4377058670119819762">Permet à la barre d'onglets de défiler vers la gauche ou vers la droite lorsqu'elle est remplie.</translation> <translation id="4377363674125277448">Un problème est survenu avec le certificat du serveur.</translation> <translation id="4378154925671717803">Téléphone</translation> +<translation id="4378308539633073595">Faire défiler vers l'avant</translation> <translation id="4378551569595875038">Connexion</translation> <translation id="4378556263712303865">Réquisition de l'appareil</translation> <translation id="4379281552162875326">Désinstaller <ph name="APP_NAME" /> ?</translation> @@ -3955,6 +3964,7 @@ <translation id="4779766576531456629">Renommer le réseau mobile de l'eSIM</translation> <translation id="4780321648949301421">Enregistrer la page sous...</translation> <translation id="4781443161433589743">Vous disposez du dispositif de sécurité le plus avancé sur Chrome</translation> +<translation id="4782861709165039462">Tous les micros sont désactivés par le bouton physique de l'appareil</translation> <translation id="4785719467058219317">La clé de sécurité n'est pas enregistrée auprès de ce site Web</translation> <translation id="4785914069240823137">Annuler le recadrage</translation> <translation id="4788092183367008521">Veuillez vérifier votre connexion réseau, puis réessayer.</translation> @@ -4721,6 +4731,7 @@ <translation id="5548075230008247516">Tous les éléments désélectionnés, mode de sélection fermé.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" et 1 autre onglet}one{"<ph name="TAB_TITLE" />" et # autre onglet}other{"<ph name="TAB_TITLE" />" et # autres onglets}}</translation> <translation id="5548606607480005320">Contrôle de sécurité</translation> +<translation id="5548644592758170183">Afficher à gauche</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Clavier et saisie de texte</translation> <translation id="5553089923092577885">Mappages des stratégies de certificat</translation> @@ -7351,6 +7362,7 @@ <translation id="8120505434908124087">Installer le profil eSIM</translation> <translation id="812260729110117038">Les annonceurs et les éditeurs peuvent évaluer l'efficacité des annonces sans utiliser le suivi intersite.</translation> <translation id="81238879832906896">Fleur jaune et blanche</translation> +<translation id="8123975449645947908">Vers l'arrière</translation> <translation id="8124313775439841391">ONC géré</translation> <translation id="813082847718468539">Afficher des informations à propos du site</translation> <translation id="8131740175452115882">Confirmer</translation> @@ -8207,6 +8219,7 @@ <translation id="8980345560318123814">Rapports de commentaires</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Plantage</translation> <translation id="8981825781894055334">Niveau de papier bas</translation> +<translation id="8983018820925880511">Ce nouveau profil sera géré par <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation> <translation id="8983632908660087688">Le site <ph name="ORIGIN" /> peut modifier le fichier <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Vous serez visible par tous les utilisateurs pendant <ph name="MINUTES" /> minutes. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Bienvenue sur Steam pour Chromebook</translation> @@ -8267,6 +8280,7 @@ <translation id="9037640663275993951">Appareil non autorisé</translation> <translation id="9037818663270399707">Votre connexion n'est pas privée pour l'ensemble du trafic réseau</translation> <translation id="9037965129289936994">Afficher l'original</translation> +<translation id="9038489124413477075">Dossier sans nom</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Il vous reste une tentative.}one{Il vous reste # tentative.}other{Il vous reste # tentatives.}}</translation> <translation id="9040473193163777637">Voulez-vous activer ChromeVox, le lecteur d'écran intégré pour Chrome OS ? Si oui, appuyez sur les deux boutons de volume pendant cinq secondes.</translation> <translation id="9040661932550800571">Mettre à jour le mot de passe pour <ph name="ORIGIN" /> ?</translation> @@ -8303,6 +8317,7 @@ <translation id="9075413375877487220">Extension non approuvée par la navigation sécurisée avec protection renforcée</translation> <translation id="9076283476770535406">Il est possible qu'il comporte du contenu réservé aux adultes</translation> <translation id="9076523132036239772">Adresse e-mail ou mot de passe incorrect. Essayez tout d'abord de vous connecter à un réseau.</translation> +<translation id="9076821103818989526">Panneau latéral</translation> <translation id="9076977315710973122">Partage SMB</translation> <translation id="9078193189520575214">Application des modifications…</translation> <translation id="9078316009970372699">Désactiver le partage de connexion instantané</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 0451ba14..1369d446 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -1246,6 +1246,7 @@ <translation id="2159488579268505102">USB‑C</translation> <translation id="216169395504480358">Engadir wifi...</translation> <translation id="2162155940152307086">A sincronización comezará cando saias da configuración desta función</translation> +<translation id="2162705204091149050">Consultar información sobre o teu navegador, sistema operativo, dispositivo, software instalado e ficheiros</translation> <translation id="2162926944953615670">Non hai ningún perfil de eSIM dispoñible</translation> <translation id="2163470535490402084">Conéctate a Internet para iniciar sesión co teu dispositivo <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> e 1 interruptor máis</translation> @@ -1266,6 +1267,7 @@ <translation id="2180620921879609685">Bloquear contido en calquera páxina</translation> <translation id="2182058453334755893">Copiouse o contido no teu portapapeis</translation> <translation id="2184515124301515068">Permite que Chrome decida cando poden reproducir son os sitios (opción recomendada)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Páxina compartida desde outro dispositivo</translation> <translation id="2187675480456493911">A rede está sincronizada con outros dispositivos da túa conta. Non se sincronizarán as opcións de configuración modificadas por outros usuarios. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Erro de importación do certificado do servidor</translation> @@ -1795,6 +1797,7 @@ <translation id="2667144577800272420">Hai outras aplicacións configuradas para abrir as mesmas ligazóns que <ph name="APP_NAME" />. Con esta acción, <ph name="APP_NAME_2" /> e <ph name="APP_NAME_3" /> deixarán de ser as aplicacións predeterminadas para abrir as ligazóns compatibles.</translation> <translation id="2667463864537187133">Xestionar corrector ortográfico</translation> <translation id="2669241540496514785">Non se puido abrir <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Calquera que use este dispositivo pode ver os ficheiros descargados</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> está compartindo unha pestana de Chrome.</translation> <translation id="2670403088701171361">Non permitir que os sitios accedan ao texto nin ás imaxes do portapapeis</translation> <translation id="2670429602441959756">Esta páxina contén funcións que aínda non son compatibles co modo de realidade virtual. Abandonando o modo...</translation> @@ -2161,6 +2164,7 @@ <translation id="3008232374986381779">Executa IDE, editores e ferramentas de Linux no <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Restablecer permisos</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> require que te conectes hoxe á wifi para descargar unha actualización. Tamén podes descargala desde unha conexión de pago por consumo (pódense aplicar cargos).}other{<ph name="MANAGER" /> require que te conectes á wifi e descargues unha actualización antes de que acabe o prazo. Tamén podes descargala desde unha conexión de pago por consumo (pódense aplicar cargos).}}</translation> +<translation id="3009178788565917040">Saída</translation> <translation id="3009300415590184725">Seguro que queres cancelar o proceso de configuración do servizo de datos móbiles?</translation> <translation id="3009779501245596802">Bases de datos indexadas</translation> <translation id="3010279545267083280">Contrasinal eliminado</translation> @@ -2491,6 +2495,7 @@ <translation id="3359256513598016054">Restricións de políticas de certificados</translation> <translation id="3360297538363969800">Erro ao imprimir. Comproba a túa impresora e téntao de novo.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> está compartindo <ph name="ATTACHMENTS" /> contigo.}other{<ph name="DEVICE_NAME" /> está compartindo <ph name="ATTACHMENTS" /> contigo.}}</translation> +<translation id="3363202073972776113">A túa organización xestionará este perfil novo. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Do teu administrador: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Utiliza a tecla Ctrl ou Alt</translation> <translation id="3368922792935385530">Conectada</translation> @@ -2525,6 +2530,7 @@ <translation id="339722927132407568">A imaxe conxélase</translation> <translation id="3399432415385675819">Desactivaranse as notificacións</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz): liñas entrelazadas</translation> +<translation id="3401484564516348917">Consultar información sobre o teu navegador, sistema operativo, dispositivo, software instalado, valores do rexistro e ficheiros</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Hai {COUNT} contrasinal almacenado neste dispositivo}other{Hai {COUNT} contrasinais almacenados neste dispositivo}}</translation> <translation id="3402255108239926910">Escolle un avatar</translation> <translation id="3402585168444815892">Inscribindo empresa no modo de demostración</translation> @@ -2771,6 +2777,7 @@ <translation id="3627879631695760395">Instalar <ph name="APP" />…</translation> <translation id="3628275722731025472">Desactivar Bluetooth</translation> <translation id="3629631988386925734">Introduce o teu contrasinal para activar Smart Lock. A próxima vez, o teléfono desbloqueará o dispositivo <ph name="DEVICE_TYPE" />. Podes desactivar Smart Lock en Configuración.</translation> +<translation id="3629664892718440872">Lembrar esta opción</translation> <translation id="3630132874740063857">O teu teléfono</translation> <translation id="3630995161997703415">Engade este sitio ao estante para usalo en calquera momento</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Ao permitir que os dispositivos Chrome OS envíen informes de forma automática, axúdasnos a establecer prioridades en relación cos aspectos que necesitan corrixirse e mellorarse no sistema operativo. Nestes informes pode incluírse información como cando falla Chrome OS, as funcións que utilizas e o espazo de memoria que adoitas empregar.<ph name="END_PARAGRAPH1" /> @@ -3260,6 +3267,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Denegouse o control total dos dispositivos MIDI</translation> +<translation id="4087328411748538168">Mostrar na parte dereita</translation> <translation id="4089235344645910861">Gardouse a configuración e iniciouse a sincronización.</translation> <translation id="4090103403438682346">Activar acceso verificado</translation> <translation id="4090947011087001172">Queres restablecer os permisos do sitio <ph name="SITE" />?</translation> @@ -3544,6 +3552,7 @@ <translation id="4377058670119819762">Activa unha franxa de pestanas pola que é posible desprazarse á esquerda e á dereita cando está chea.</translation> <translation id="4377363674125277448">Produciuse un problema co certificado do servidor.</translation> <translation id="4378154925671717803">Teléfono</translation> +<translation id="4378308539633073595">Desprazarse cara adiante</translation> <translation id="4378551569595875038">Conectando...</translation> <translation id="4378556263712303865">Solicitude do dispositivo</translation> <translation id="4379281552162875326">Queres desinstalar <ph name="APP_NAME" />?</translation> @@ -3952,6 +3961,7 @@ <translation id="4779766576531456629">Cambiar nome da rede de telefonía móbil de eSIM</translation> <translation id="4780321648949301421">Gardar páxina como...</translation> <translation id="4781443161433589743">Estás usando a máxima seguranza de Chrome</translation> +<translation id="4782861709165039462">Desactiváronse todos os micrófonos ao premer o interruptor de hardware dos dispositivos</translation> <translation id="4785719467058219317">Estás utilizando unha chave de seguranza que non está rexistrada neste sitio web</translation> <translation id="4785914069240823137">Cancelar recorte</translation> <translation id="4788092183367008521">Comproba a conexión de rede e téntao de novo.</translation> @@ -4718,6 +4728,7 @@ <translation id="5548075230008247516">Anulouse a selección de todos os elementos. Saíuse do modo de selección.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" e 1 pestana máis}other{"<ph name="TAB_TITLE" />" e # pestanas máis}}</translation> <translation id="5548606607480005320">Revisión de seguranza</translation> +<translation id="5548644592758170183">Mostrar na parte esquerda</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Teclado e introdución de texto</translation> <translation id="5553089923092577885">Asignacións de políticas de certificados</translation> @@ -7340,6 +7351,7 @@ <translation id="8120505434908124087">Instalar perfil de eSIM</translation> <translation id="812260729110117038">Os anunciantes e os editores poden estudar a eficacia dos anuncios sen facer un seguimento da túa actividade nos sitios.</translation> <translation id="81238879832906896">Flor branca e amarela</translation> +<translation id="8123975449645947908">Desprazarse cara atrás</translation> <translation id="8124313775439841391">ONC xestionado</translation> <translation id="813082847718468539">Consulta a información do sitio</translation> <translation id="8131740175452115882">Confirmar</translation> @@ -8195,6 +8207,7 @@ <translation id="8980345560318123814">Informes de comentarios</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: produciuse un fallo</translation> <translation id="8981825781894055334">Hai pouco papel</translation> +<translation id="8983018820925880511"><ph name="DOMAIN" /> xestionará este perfil novo. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> pode editar <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Todas as persoas poderán verte durante <ph name="MINUTES" /> minutos. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Dámosche a benvida a Steam para Chromebooks</translation> @@ -8255,6 +8268,7 @@ <translation id="9037640663275993951">O dispositivo non está permitido</translation> <translation id="9037818663270399707">A túa conexión non é privada para todo o tráfico de rede</translation> <translation id="9037965129289936994">Mostrar orixinal</translation> +<translation id="9038489124413477075">Cartafol sen nome</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Quédache un intento.}other{Quédanche # intentos.}}</translation> <translation id="9040473193163777637">Queres activar ChromeVox, o lector de pantalla integrado en Chrome OS? En caso afirmativo, mantén premidas as dúas teclas de volume durante cinco segundos.</translation> <translation id="9040661932550800571">Queres actualizar o contrasinal de <ph name="ORIGIN" />?</translation> @@ -8291,6 +8305,7 @@ <translation id="9075413375877487220">A función Navegación segura mellorada non confía nesta extensión.</translation> <translation id="9076283476770535406">É posible que inclúa contido para adultos</translation> <translation id="9076523132036239772">Non se puido verificar o teu correo electrónico ou contrasinal. Primeiro tenta conectarte a unha rede.</translation> +<translation id="9076821103818989526">Panel lateral</translation> <translation id="9076977315710973122">Ficheiros compartidos por SMB</translation> <translation id="9078193189520575214">Aplicando cambios…</translation> <translation id="9078316009970372699">Desactivar Conexión compartida instantánea</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 5b5bd13b..4cc924fc 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1265,6 +1265,7 @@ <translation id="2180620921879609685">કોઈપણ પેજ પરનું કન્ટેન્ટ બ્લૉક કરો</translation> <translation id="2182058453334755893">તમારા ક્લિપબોર્ડ પર કૉપિ કરવામાં આવ્યું</translation> <translation id="2184515124301515068">સાઇટ સાઉન્ડ ક્યારે ચલાવી શકે તે Chromeને પસંદ કરવા દો (સુઝાવ આપીએ છીએ)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">કોઈ અન્ય ડિવાઇસ પરથી પેજ શેર કરવામાં આવ્યું છે</translation> <translation id="2187675480456493911">તમારા એકાઉન્ટ પરના અન્ય ડિવાઇસ સાથે સિંક કરેલું. અન્ય વપરાશકર્તાઓ દ્વારા બદલવામાં આવેલા સેટિંગ સિંક કરવામાં આવશે નહીં. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="2187895286714876935">સર્વર પ્રમાણપત્ર આયાત કરવામાં ભૂલ</translation> @@ -1795,6 +1796,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" />ની જેમજ અન્ય ઍપ પણ આ બધી લિંક ખોલવા માટે સેટ કરવામાં આવી છે. આમ કરવાથી <ph name="APP_NAME_2" /> અને <ph name="APP_NAME_3" /> સપોર્ટેડ લિંક ખોલી શકશે નહીં.</translation> <translation id="2667463864537187133">જોડણીની તપાસ મેનેજ કરો</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ખોલી શક્યાં નહીં</translation> +<translation id="2669454659051515572">આ ડિવાઇસનો ઉપયોગ કરનારી કોઈપણ વ્યક્તિ ડાઉનલોડ કરેલી ફાઇલો જોઈ શકે છે</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />, Chrome ટૅબને શેર કરી રહી છે.</translation> <translation id="2670403088701171361">સાઇટને તમારા ક્લિપબોર્ડ પર ટેક્સ્ટ કે છબીઓ જોવાની મંજૂરી આપશો નહીં</translation> <translation id="2670429602441959756">આ પેજમાં હજી પણ એવી સુવિધાઓ છે કે જે VRમાં સમર્થિત નથી. બહાર નીકાળી રહ્યું છે…</translation> @@ -2162,6 +2164,7 @@ <translation id="3008232374986381779">તમારા <ph name="DEVICE_TYPE" /> પર Linux સાધનો, એડિટર અને IDEs ચલાવો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="3008272652534848354">પરવાનગીઓ રીસેટ કરો</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> માટે જરૂરી છે કે તમે અપડેટ ડાઉનલોડ કરવા માટે આજે વાઇ-ફાઇ સાથે કનેક્ટ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}one{<ph name="MANAGER" /> માટે જરૂરી છે કે તમે સમયસીમા સમાપ્ત થાય તે પહેલાં વાઇ-ફાઇ સાથે કનેક્ટ કરો અને અપડેટ ડાઉનલોડ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}other{<ph name="MANAGER" /> માટે જરૂરી છે કે તમે સમયસીમા સમાપ્ત થાય તે પહેલાં વાઇ-ફાઇ સાથે કનેક્ટ કરો અને અપડેટ ડાઉનલોડ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}}</translation> +<translation id="3009178788565917040">આઉટપુટ</translation> <translation id="3009300415590184725">શું તમે ખરેખર મોબાઇલ ડેટા સેવા સેટઅપ પ્રક્રિયાને રદ કરવા માંગો છો?</translation> <translation id="3009779501245596802">અનુક્રમિત ડેટાબેસેસ</translation> <translation id="3010279545267083280">પાસવર્ડ કાઢી નાખ્યો</translation> @@ -3549,6 +3552,7 @@ <translation id="4377058670119819762">જ્યારે ભરાઈ જાય ત્યારે ટૅબ સ્ટ્રિપને ડાબે અને જમણે સ્ક્રોલ કરવા માટે ચાલુ કરે છે.</translation> <translation id="4377363674125277448">સર્વરનાં પ્રમાણપત્ર સાથે કોઈ સમસ્યા હતી.</translation> <translation id="4378154925671717803">ફોન</translation> +<translation id="4378308539633073595">આગળ સ્ક્રોલ કરો</translation> <translation id="4378551569595875038">કનેક્ટિંગ...</translation> <translation id="4378556263712303865">ઉપકરણની માગણી</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />"ને અનઇન્સ્ટૉલ કરીએ?</translation> @@ -7350,6 +7354,7 @@ <translation id="8120505434908124087">ઇ-સિમ પ્રોફાઇલ ઇન્સ્ટૉલ કરો</translation> <translation id="812260729110117038">જાહેરાતકર્તાઓ અને પ્રકાશકો જાહેરાતોની અસરકારકતાનો એવી રીતે અભ્યાસ કરી શકે છે કે તમને કોઈ પણ સાઇટ પર ટ્રૅક કરવામાં ન આવે.</translation> <translation id="81238879832906896">પીળા અને સફેદ ફૂલ</translation> +<translation id="8123975449645947908">પાછળ સ્ક્રોલ કરો</translation> <translation id="8124313775439841391">મેનેજ થયેલ ONC</translation> <translation id="813082847718468539">સ્થાન માહિતી જુઓ</translation> <translation id="8131740175452115882">પુષ્ટિ કરો</translation> @@ -8267,6 +8272,7 @@ <translation id="9037640663275993951">ડિવાઇસને કોઈ મંજૂરી નથી</translation> <translation id="9037818663270399707">તમારું કનેક્શન બધા નેટવર્ક ટ્રાફિક માટે ખાનગી નથી</translation> <translation id="9037965129289936994">મૂળ બતાવો</translation> +<translation id="9038489124413477075">અનામાંકિત ફોલ્ડર</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{તમારી પાસે હવે એક પ્રયાસ બાકી છે.}one{તમારી પાસે હવે # પ્રયાસ બાકી છે.}other{તમારી પાસે હવે # પ્રયાસો બાકી છે.}}</translation> <translation id="9040473193163777637">ChromeOSમાં બિલ્ટ-ઇન સ્ક્રીન રીડર એવા ChromeVoxને શું તમે સક્રિય કરવા માગો છો? જો હા હોય, તો પાંચ સેકન્ડ માટે બન્ને વૉલ્યૂમ કી દબાવી રાખો.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> માટેનો પાસવર્ડ અપડેટ કરીએ?</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 36eb0f5d..12fa488 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1260,6 +1260,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">वाई-फ़ाई जोड़ें...</translation> <translation id="2162155940152307086">सिंक की सेटिंग छोड़ते ही सिंक फिर से शुरू हो जाएगा</translation> +<translation id="2162705204091149050">अपने ब्राउज़र, ओएस, डिवाइस, इंस्टॉल किए गए सॉफ़्टवेयर, और फ़ाइलों के बारे में जानें</translation> <translation id="2162926944953615670">कोई भी ई-सिम प्रोफ़ाइल उपलब्ध नहीं है</translation> <translation id="2163470535490402084">अपने <ph name="DEVICE_TYPE" /> में साइन इन करने के लिए कृपया इंटरनेट से कनेक्ट करें.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, और 1 और स्विच ऐक्सेस बटन</translation> @@ -1812,6 +1813,7 @@ <translation id="2667144577800272420">अन्य ऐप्लिकेशन, <ph name="APP_NAME" /> की तरह उन लिंक को खोलने के लिए तैयार हैं. यह <ph name="APP_NAME_2" /> और <ph name="APP_NAME_3" /> को सहायता लिंक खोलने से रोकता है.</translation> <translation id="2667463864537187133">वर्तनी जाँच प्रबंधित करें</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> नहीं खोला जा सका</translation> +<translation id="2669454659051515572">इस डिवाइस का इस्तेमाल करने वाले लोग, गुप्त मोड में डाउनलोड की गई फ़ाइलें देख सकते हैं</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />, Chrome टैब को शेयर कर रहा है.</translation> <translation id="2670403088701171361">साइटों को आपके क्लिपबोर्ड पर मौजूद टेक्स्ट या इमेज देखने की अनुमति न दें</translation> <translation id="2670429602441959756">इस पेज में ऐसी सुविधाएं मौजूद हैं जो अभी तक VR में काम नहीं करती हैं. बाहर निकाला जा रहा है...</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">अपने <ph name="DEVICE_TYPE" /> पर Linux टूल, एडिटर, और IDEs चलाएं. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation> <translation id="3008272652534848354">अनुमतियां रीसेट करें</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> का इस्तेमाल करने के लिए ज़रूरी है कि आप अपडेट डाउनलोड करें. इसके लिए, आज ही वाई-फ़ाई से कनेक्ट करें. इसके अलावा, आप सीमित डेटा वाले कनेक्शन से भी डाउनलोड कर सकते हैं (इसके लिए शुल्क लिया जा सकता है).}one{<ph name="MANAGER" /> का इस्तेमाल करने के लिए ज़रूरी है कि आप तय समय से पहले अपडेट डाउनलोड करें. इसके लिए, वाई-फ़ाई से कनेक्ट करें. इसके अलावा, आप सीमित डेटा वाले कनेक्शन से भी डाउनलोड कर सकते हैं (इसके लिए शुल्क लिया जा सकता है).}other{<ph name="MANAGER" /> का इस्तेमाल करने के लिए ज़रूरी है कि आप तय समय से पहले अपडेट डाउनलोड करें. इसके लिए, वाई-फ़ाई से कनेक्ट करें. इसके अलावा, आप सीमित डेटा वाले कनेक्शन से भी डाउनलोड कर सकते हैं (इसके लिए शुल्क लिया जा सकता है).}}</translation> +<translation id="3009178788565917040">आउटपुट</translation> <translation id="3009300415590184725">क्या आप वाकई मोबाइल डेटा सेवा सेटअप प्रक्रिया को रद्द करना चाहते हैं?</translation> <translation id="3009779501245596802">अनुक्रमित डेटाबेस</translation> <translation id="3010279545267083280">पासवर्ड हटा दिया गया</translation> @@ -2508,6 +2511,7 @@ <translation id="3359256513598016054">प्रमाणपत्र नीति बाध्यताएं</translation> <translation id="3360297538363969800">प्रिंट करना पूरा नहीं हो सका. कृपया अपना प्रिंटर जाँचें और फिर से कोशिश करें.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}one{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}other{<ph name="DEVICE_NAME" /> आपके साथ <ph name="ATTACHMENTS" /> शेयर कर रहा है.}}</translation> +<translation id="3363202073972776113">इस नई प्रोफ़ाइल को आपका संगठन मैनेज करेगा. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation> <translation id="3364986687961713424">आपके एडमिन से: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Ctrl या फिर Alt का इस्तेमाल करें</translation> <translation id="3368922792935385530">कनेक्ट है</translation> @@ -2542,6 +2546,7 @@ <translation id="339722927132407568">रुक जाना/हैंग हो जाना</translation> <translation id="3399432415385675819">नोटिफ़िकेशन अक्षम हो जाएंगे</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> गुणा <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> हर्ट्ज़) - जाली की तरह</translation> +<translation id="3401484564516348917">अपने ब्राउज़र, ओएस, डिवाइस, इंस्टॉल किए गए सॉफ़्टवेयर, रजिस्ट्री वैल्यू, और फ़ाइलों के बारे में जानें</translation> <translation id="3402059702184703067">{COUNT,plural, =1{इस डिवाइस पर {COUNT} पासवर्ड सेव है}one{इस डिवाइस पर {COUNT} पासवर्ड सेव है}other{इस डिवाइस पर {COUNT} पासवर्ड सेव हैं}}</translation> <translation id="3402255108239926910">एक अवतार चुनें</translation> <translation id="3402585168444815892">डेमाे माेड में नाम दर्ज किया जा रहा है</translation> @@ -2788,6 +2793,7 @@ <translation id="3627879631695760395"><ph name="APP" /> इंस्टॉल करें...</translation> <translation id="3628275722731025472">ब्लूटूथ बंद करें</translation> <translation id="3629631988386925734">Smart Lock चालू करने के लिए अपना पासवर्ड डालें. अगली बार, आपका फ़ोन आपके <ph name="DEVICE_TYPE" /> को अनलॉक कर देगा. आप सेटिंग में जाकर Smart Lock को बंद कर सकते हैं.</translation> +<translation id="3629664892718440872">इस विकल्प को याद रखें</translation> <translation id="3630132874740063857">आपका फ़ोन</translation> <translation id="3630995161997703415">इस साइट को अपनी अलमारी में जोड़ें ताकि आप किसी भी समय इसका उपयोग कर सकें</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ChromeOS वाले डिवाइसों पर, अपने-आप रिपोर्ट भेजने की सुविधा चालू करने से, हमें यह समझने में मदद मिलती है कि ChromeOS की किन गड़बड़ियों को सबसे पहले ठीक करना है और किन चीज़ों को बेहतर बनाना है. इन रिपोर्ट में बहुत सी जानकारी शामिल हो सकती है, जैसे कि ChromeOS कब बंद हो जाता है, ChromeOS वाले आपके डिवाइसों पर किन सुविधाओं का इस्तेमाल किया जाता है, और आम तौर पर इनकी कितनी मेमोरी इस्तेमाल होती है.<ph name="END_PARAGRAPH1" /> @@ -3276,6 +3282,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">इस साइट को, MIDI डिवाइस का पूरा कंट्रोल नहीं दिया गया है</translation> +<translation id="4087328411748538168">दाईं ओर दिखाएं</translation> <translation id="4089235344645910861">सेटिंग सेव की गई. सिंक शुरू हो गया.</translation> <translation id="4090103403438682346">पुष्टि हो चुके एक्सेस चालू करें</translation> <translation id="4090947011087001172"><ph name="SITE" /> की 'साइट अनुमतियां' रीसेट करें?</translation> @@ -3560,6 +3567,7 @@ <translation id="4377058670119819762">बहुत ज़्यादा टैब खोले जाने के बाद बाईं और दाईं ओर जाने की सुविधा के लिए, टैब बार चालू हो जाता है.</translation> <translation id="4377363674125277448">सर्वर के प्रमाणपत्र में कोई समस्या थी.</translation> <translation id="4378154925671717803">फ़ोन</translation> +<translation id="4378308539633073595">आगे की ओर स्क्रोल करें</translation> <translation id="4378551569595875038">कनेक्टिंग...</translation> <translation id="4378556263712303865">डिवाइस मांग</translation> <translation id="4379281552162875326">क्या आप "<ph name="APP_NAME" />" अनइंस्टॉल करना चाहते हैं?</translation> @@ -3969,6 +3977,7 @@ <translation id="4779766576531456629">eSIM मोबाइल नेटवर्क का नाम बदलें</translation> <translation id="4780321648949301421">पेज को इस रूप में सेव करें...</translation> <translation id="4781443161433589743">आपके पास Chrome की सबसे मज़बूत सुरक्षा है</translation> +<translation id="4782861709165039462">डिवाइस के हार्डवेयर स्विच की मदद से, सभी माइक्रोफ़ोन बंद कर दिए गए हैं</translation> <translation id="4785719467058219317">आप एक ऐसी 'सुरक्षा चाबी' इस्तेमाल कर रहे हैं जिसे इस वेबसाइट पर रजिस्टर नहीं किया गया है</translation> <translation id="4785914069240823137">कांट-छांट को रद्द करें</translation> <translation id="4788092183367008521">कृपया अपना नेटवर्क कनेक्शन जाँच लें और फिर से कोशिश करें.</translation> @@ -4735,6 +4744,7 @@ <translation id="5548075230008247516">सभी आइटम से 'चुना गया' का निशान हटा दिया गया है और चुनने का मोड बंद कर दिया गया है.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" और 1 अन्य टैब}one{"<ph name="TAB_TITLE" />" और # अन्य टैब}other{"<ph name="TAB_TITLE" />" और # अन्य टैब}}</translation> <translation id="5548606607480005320">सुरक्षा जांच</translation> +<translation id="5548644592758170183">बाईं ओर दिखाएं</translation> <translation id="554903022911579950">केर्बेरोस</translation> <translation id="5551573675707792127">कीबोर्ड और लेख इनपुट</translation> <translation id="5553089923092577885">प्रमाणपत्र नीति मानचित्रण</translation> @@ -7363,6 +7373,7 @@ <translation id="8120505434908124087">ई-सिम प्रोफ़ाइल इंस्टॉल करें</translation> <translation id="812260729110117038">प्रकाशक और विज्ञापन देने वाले, सभी साइटों पर आपको ट्रैक किए बिना, किसी खास तरीके से अपने विज्ञापनों के असर का अध्ययन कर सकते हैं.</translation> <translation id="81238879832906896">पीला और सफ़ेद फूल</translation> +<translation id="8123975449645947908">पीछे की तरफ़ स्क्रोल करें</translation> <translation id="8124313775439841391">प्रबंधित ONC</translation> <translation id="813082847718468539">साइट जानकारी देखें</translation> <translation id="8131740175452115882">पुष्टि करें</translation> @@ -8219,6 +8230,7 @@ <translation id="8980345560318123814">सुझाव/शिकायत/राय से जुड़ी रिपोर्ट</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रैश हो गया है</translation> <translation id="8981825781894055334">प्रिंटर में पेपर कम हैं</translation> +<translation id="8983018820925880511">इस नई प्रोफ़ाइल को <ph name="DOMAIN" /> मैनेज करेगा. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" />, <ph name="FILENAME" /> में बदलाव कर सकती है</translation> <translation id="8984694057134206124">आप <ph name="MINUTES" /> मिनट तक हर किसी को दिखेंगे. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Chromebook के लिए Steam में आपका स्वागत है</translation> @@ -8279,6 +8291,7 @@ <translation id="9037640663275993951">इस डिवाइस पर वीएम मशीन चलाने की अनुमति नहीं है</translation> <translation id="9037818663270399707">सभी नेटवर्क ट्रैफ़िक के लिए, आपका कनेक्शन निजी नहीं है</translation> <translation id="9037965129289936994">मूल दिखाएं</translation> +<translation id="9038489124413477075">अनाम फ़ोल्डर</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{आप एक बार और कोशिश कर सकते हैं.}one{आप # बार और कोशिश कर सकते हैं.}other{आप # बार और कोशिश कर सकते हैं.}}</translation> <translation id="9040473193163777637">क्या आपको ChromeOS में पहले से मौजूद ChromeVox स्क्रीनरीडर को चालू करना है? अगर हां, तो आवाज़ वाले दोनों बटनों को पांच सेकंड तक दबाकर रखें.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> के लिए पासवर्ड अपडेट करें?</translation> @@ -8315,6 +8328,7 @@ <translation id="9075413375877487220">Safe Browsing की बेहतर सुविधा के मुताबिक, यह एक्सटेंशन सुरक्षित नहीं है.</translation> <translation id="9076283476770535406">इसमें वयस्क सामग्री हो सकती है</translation> <translation id="9076523132036239772">क्षमा करें, आपके ईमेल या पासवर्ड का सत्यापन नहीं किया जा सका. पहले किसी नेटवर्क से कनेक्ट करने का प्रयास करें.</translation> +<translation id="9076821103818989526">साइड पैनल</translation> <translation id="9076977315710973122">एसएमबी शेयर करना</translation> <translation id="9078193189520575214">बदलाव लागू किए जा रहे हैं...</translation> <translation id="9078316009970372699">इंस्टैंट टेदरिंग बंद करें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 55beb857..d826067 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1802,6 +1802,7 @@ <translation id="2667144577800272420">Druge aplikacije postavljene su tako da otvaraju iste veze kao <ph name="APP_NAME" />. Time će se aplikacijama <ph name="APP_NAME_2" /> i <ph name="APP_NAME_3" /> onemogućiti da otvaraju podržane veze.</translation> <translation id="2667463864537187133">Upravljanje provjerom pravopisa</translation> <translation id="2669241540496514785">Aplikaciju <ph name="APP_NAME" /> nije moguće otvoriti</translation> +<translation id="2669454659051515572">Svi koji upotrebljavaju ovaj uređaj mogu vidjeti preuzete datoteke</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> dijeli Chromeovu karticu.</translation> <translation id="2670403088701171361">Ne dopuštaj web-lokacijama da vide tekst ili slike u međuspremniku</translation> <translation id="2670429602441959756">Ova stranica sadrži značajke koje VR još ne podržava. Izlaz...</translation> @@ -2169,6 +2170,7 @@ <translation id="3008232374986381779">Pokretanje Linuxovih alata, uređivača i IDE-ova na uređaju <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Poništi dopuštenja</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> traži da se danas povežete s Wi-Fijem da biste preuzeli ažuriranje. Možete ga preuzeti i putem veze s ograničenim prometom (moguća je naplata naknada).}one{<ph name="MANAGER" /> traži da se povežete s Wi-Fijem i preuzmete ažuriranje prije roka. Možete ga preuzeti i putem veze s ograničenim prometom (moguća je naplata naknada).}few{<ph name="MANAGER" /> traži da se povežete s Wi-Fijem i preuzmete ažuriranje prije roka. Možete ga preuzeti i putem veze s ograničenim prometom (moguća je naplata naknada).}other{<ph name="MANAGER" /> traži da se povežete s Wi-Fijem i preuzmete ažuriranje prije roka. Možete ga preuzeti i putem veze s ograničenim prometom (moguća je naplata naknada).}}</translation> +<translation id="3009178788565917040">Izlaz</translation> <translation id="3009300415590184725">Jeste li sigurni da želite otkazati proces postavljanja podatkovne mobilne usluge?</translation> <translation id="3009779501245596802">Indeksirane baze podataka</translation> <translation id="3010279545267083280">Zaporka je izbrisana</translation> @@ -3211,6 +3213,7 @@ <translation id="402211067068791756">Izbrisat će se <ph name="TOTAL_USAGE" /> podataka koje su spremile prikazane web-lokacije</translation> <translation id="4022426551683927403">&Dodaj u rječnik</translation> <translation id="4025039777635956441">Isključi zvuk na odabranoj web-lokaciji</translation> +<translation id="4027958407426528157">Otvaranje web-lokacija u aplikacijama instaliranima na vašem uređaju <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Dodavanje načina unosa</translation> <translation id="4029556917477724407">Povratak sa stranice <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Mikrofon je dopušten</translation> @@ -3556,6 +3559,7 @@ <translation id="4377058670119819762">Omogućuje pomicanje vrpce kartica ulijevo i udesno kad je puna.</translation> <translation id="4377363674125277448">Pojavio se problem s certifikatom poslužitelja.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Pomicanje unaprijed</translation> <translation id="4378551569595875038">Povezivanje...</translation> <translation id="4378556263712303865">Zahtjev za uređaj</translation> <translation id="4379281552162875326">Deinstalirati "<ph name="APP_NAME" />"?</translation> @@ -6560,6 +6564,7 @@ <translation id="7377481913241237033">Povezivanje pomoću koda</translation> <translation id="7378611153938412599">Slabe zaporke lako je pogoditi. Neka vaše zaporke obavezno budu snažne. <ph name="BEGIN_LINK" />Pročitajte još sigurnosnih savjeta<ph name="END_LINK" />.</translation> <translation id="73786666777299047">Otvori Chrome web-trgovinu</translation> +<translation id="737938816678769289">Lako se povežite s uređajima za brzo uparivanje u blizini i postavite ih</translation> <translation id="7380459290951585794">Provjerite je li telefon u blizini, je li otključan i jesu li na njemu uključeni Bluetooth i Wi-Fi</translation> <translation id="7380622428988553498">Naziv uređaja sadrži nevažeće znakove</translation> <translation id="7380768571499464492">Ažurirano: <ph name="PRINTER_NAME" /></translation> @@ -7360,6 +7365,7 @@ <translation id="8120505434908124087">Instalirajte eSIM profil</translation> <translation id="812260729110117038">Oglašivači i izdavači mogu steći uvid u učinkovitost oglasa na način koji ne uključuje praćenje korisnika na raznim web-lokacijama.</translation> <translation id="81238879832906896">Žuti i bijeli cvijet</translation> +<translation id="8123975449645947908">Pomicanje unatrag</translation> <translation id="8124313775439841391">Upravljani ONC</translation> <translation id="813082847718468539">Prikaz informacija o web-mjestu</translation> <translation id="8131740175452115882">Potvrdi</translation> @@ -8278,6 +8284,7 @@ <translation id="9037640663275993951">Uređaj nije dopušten</translation> <translation id="9037818663270399707">Vaša veza nije privatna za sav mrežni promet</translation> <translation id="9037965129289936994">Prikaži izvornik</translation> +<translation id="9038489124413477075">Neimenovana mapa</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Preostao vam je još jedan pokušaj.}one{Preostao vam je još # pokušaj.}few{Preostala su vam još # pokušaja.}other{Preostalo vam je još # pokušaja.}}</translation> <translation id="9040473193163777637">Želite li aktivirati ChromeVox, ugrađeni čitač zaslona za Chrome OS? Ako želite, pritisnite i zadržite obje tipke za glasnoću pet sekundi.</translation> <translation id="9040661932550800571">Želite li ažurirati zaporku za <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 584f3f04..30ffa832 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Az eszközön található médiafájlok biztonsági mentése a Fájlok alkalmazással.</translation> <translation id="1343865611738742294">Engedély megadása a Linux-alkalmazásoknak az USB-eszközökhöz való hozzáférésre. A Linux nem jegyzi meg az USB-eszközt az eszköz eltávolítása után.</translation> <translation id="1343920184519992513">Ott folytathatja, ahol abbahagyta, és megnyithatja az oldalak egy adott készletét.</translation> +<translation id="1344377983938103876"><ph name="URL" /> megnyitása…</translation> <translation id="134589511016534552">A médiatartalmat lejátszó lapok a Megnyitott lapok szakaszban is láthatók</translation> <translation id="1346630054604077329">Megerősítés és újraindítás</translation> <translation id="1346748346194534595">Jobbra</translation> @@ -1279,6 +1280,7 @@ <translation id="2180620921879609685">Tartalmak letiltása bármely oldalon</translation> <translation id="2182058453334755893">Vágólapra másolva</translation> <translation id="2184515124301515068">A Chrome dönthet arról, hogy a webhelyek lejátszhatnak-e hangot (ajánlott)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Másik eszközről megosztott oldal</translation> <translation id="2187675480456493911">Szinkronizálva van a fiókjában lévő egyéb eszközökkel. A más felhasználók által módosított beállításokat a rendszer nem szinkronizálja majd. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation> <translation id="2187895286714876935">Hiba a szervertanúsítvány importálásánál</translation> @@ -1811,6 +1813,7 @@ <translation id="2667144577800272420">Más alkalmazásoknál is be van állítva, hogy megnyissák ugyanazokat a linkeket, mint a(z) <ph name="APP_NAME" />. Ezzel a művelettel letiltja a következők számára a támogatott linkek megnyitását: <ph name="APP_NAME_2" /> és <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Helyesírás-ellenőrzés kezelése</translation> <translation id="2669241540496514785">Nem sikerült megnyitni a következőt: <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">A letöltött fájlokat bárki láthatja, aki az eszközt használja</translation> <translation id="2670102641511624474">A(z) <ph name="APP_NAME" /> megosztja a Chrome egy lapját.</translation> <translation id="2670403088701171361">A webhelyek nem tekinthetik meg a vágólapon szereplő szövegeket és képeket</translation> <translation id="2670429602441959756">Ez az oldal olyan funkciókat tartalmaz, amelyeket a virtuális valóság még nem támogat. Kilépés a virtuális valóság módból…</translation> @@ -2177,6 +2180,7 @@ <translation id="3008232374986381779">Linuxos eszközök, szerkesztők és IDE-szoftverek futtatása <ph name="DEVICE_TYPE" /> eszközén. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation> <translation id="3008272652534848354">Engedélyek visszavonása</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{A(z) <ph name="MANAGER" /> megköveteli, hogy eszközével a mai napon Wi-Fi-hálózathoz csatlakozzon, és letöltse a szükséges frissítést. A letöltés forgalomkorlátos kapcsolaton is végrehajtható (ebben az esetben a szolgáltató díjat számíthat fel).}other{A(z) <ph name="MANAGER" /> megköveteli, hogy eszközével Wi-Fi-hálózathoz csatlakozzon, és letöltse a szükséges frissítést a határidő előtt. A letöltés forgalomkorlátos kapcsolaton is végrehajtható (ebben az esetben a szolgáltató díjat számíthat fel).}}</translation> +<translation id="3009178788565917040">Kimenet</translation> <translation id="3009300415590184725">Biztosan meg akarja szakítani a mobil adatátszolgáltatás telepítési folyamatát?</translation> <translation id="3009779501245596802">Indexelt adatbázisok</translation> <translation id="3010279545267083280">A jelszó törölve</translation> @@ -3563,6 +3567,7 @@ <translation id="4377058670119819762">Engedélyezi a lapsáv jobbra és balra görgetését, ha tele van.</translation> <translation id="4377363674125277448">Probléma merült fel a szerver tanúsítványával kapcsolatban.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Görgetés előre</translation> <translation id="4378551569595875038">Kapcsolódás…</translation> <translation id="4378556263712303865">Eszközigénylés</translation> <translation id="4379281552162875326">Eltávolítja a következőt: <ph name="APP_NAME" />?</translation> @@ -6966,6 +6971,7 @@ <translation id="7753735457098489144">A telepítés tárhelyhiány miatt nem sikerült. Tárhely felszabadításához töröljön fájlokat az eszközről.</translation> <translation id="7754347746598978109">Nem használhatnak JavaScriptet</translation> <translation id="7754704193130578113">A letöltés előtt kérdezze meg, hová mentse az adott fájlokat</translation> +<translation id="7755134875397410803">Annak érdekében, hogy segíteni tudjon a feladatok elvégzésében, a Google megkapja azoknak a webhelyeknek az URL-jeit és tartalmait, amelyeken Ön használta Segédjét, valamint megkapja a Segéden keresztül elküldött információkat. Ezek az információk megmaradhatnak az Ön Google-fiókjában. A Segédet a Chrome beállításai között kapcsolhatja ki. <ph name="LEARN_MORE" />.</translation> <translation id="7755287808199759310">A letiltást a szülő oldhatja fel</translation> <translation id="7757592200364144203">Eszköz nevének módosítása</translation> <translation id="7757739382819740102">A közelben lévő ismerősei megoszthatnak Önnel tartalmakat. Az Ön jóváhagyására lesz szükség.</translation> @@ -7368,6 +7374,7 @@ <translation id="8120505434908124087">eSIM-profil telepítése</translation> <translation id="812260729110117038">A hirdetők és a megjelenítők ezáltal úgy tanulmányozhatják a hirdetések hatékonyságát, hogy nem követik Önt a különböző webhelyeken.</translation> <translation id="81238879832906896">Sárga és fehér virág</translation> +<translation id="8123975449645947908">Görgetés visszafelé</translation> <translation id="8124313775439841391">Felügyelt ONC</translation> <translation id="813082847718468539">Az oldalinformációk megtekintése</translation> <translation id="8131740175452115882">Megerősítés</translation> @@ -8284,6 +8291,7 @@ <translation id="9037640663275993951">Nem engedélyezett eszköz</translation> <translation id="9037818663270399707">Az Ön kapcsolata nem privát az összes hálózati forgalomnál</translation> <translation id="9037965129289936994">Eredeti megjelenítése</translation> +<translation id="9038489124413477075">Név nélküli mappa</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{1 kísérlete maradt.}other{# kísérlete maradt.}}</translation> <translation id="9040473193163777637">Szeretné aktiválni a ChromeVoxot, a ChromeOS beépített képernyőolvasóját? Ha igen, öt másodpercig tartsa lenyomva mindkét hangerőgombot.</translation> <translation id="9040661932550800571">Szeretné frissíteni a(z) <ph name="ORIGIN" /> jelszavát?</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index a00bab57..1bc0ba1b 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -1270,6 +1270,7 @@ <translation id="2180620921879609685">Արգելափակել բոլոր էջերի բովանդակությունը</translation> <translation id="2182058453334755893">Պատճենվեց սեղմատախտակին</translation> <translation id="2184515124301515068">Թույլ տալ Chrome-ին ընտրել՝ որ կայքերում ձայն նվագարկվի (խորհուրդ է տրվում)</translation> +<translation id="2186206192313702726">Google Տեսապակի</translation> <translation id="2186711480981247270">Էջն ուղարկվել է այլ սարքից</translation> <translation id="2187675480456493911">Համաժամացված է ձեր հաշվին կցված այլ սարքերի հետ։ Այլ օգտատերերի կողմից փոփոխված կարգավորումները չեն համաժամացվի։ <ph name="LINK_BEGIN" />Իմանալ ավելին<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Սերվերի վկայագրի ներմուծման սխալ</translation> @@ -1799,6 +1800,7 @@ <translation id="2667144577800272420">Կան այլ հավելվածներ, որոնք կարգավորված են այնպես, որ կարողանան բացել նույն հղումները, ինչ <ph name="APP_NAME" /> հավելվածը։ Դա նշանակում է, որ <ph name="APP_NAME_2" /> և <ph name="APP_NAME_3" /> հավելվածները չեն կարողանա բացել աջակցվող հղումներ։</translation> <translation id="2667463864537187133">Կառավարել ուղղագրության ստուգումը</translation> <translation id="2669241540496514785">Չհաջողվեց բացել <ph name="APP_NAME" /> հավելվածը</translation> +<translation id="2669454659051515572">Այս սարքն օգտագործող ցանկացած օգտատեր կարող է տեսնել ներբեռնված ֆայլերը</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> հավելվածը կիսվում է Chrome-ի ներդիրով:</translation> <translation id="2670403088701171361">Թույլ չտալ կայքերին դիտել սեղմատախտակին պատճենված տեքստն ու պատկերները</translation> <translation id="2670429602441959756">Այս էջը պարունակում է VR ռեժիմում դեռ չաջակցվող գործառույթներ։ Ելք ռեժիմից...</translation> @@ -2165,6 +2167,7 @@ <translation id="3008232374986381779">Աշխատեցրեք Լինուքսի գործիքներ, խմբագրիչներ ու IDE-ներ ձեր <ph name="DEVICE_TYPE" />-ում։ <ph name="LINK_BEGIN" />Իմանալ ավելին<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Վերակայել թույլտվությունները</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Գործող կանոնի համաձայն (աղբյուրը՝ <ph name="MANAGER" />)՝ դուք պետք է այսօր միանաք Wi-Fi-ին և ներբեռնեք թարմացումը կամ օգտվեք վճարովի կապից (կարող է գումար գանձվել)։}one{Գործող կանոնի համաձայն (աղբյուրը՝ <ph name="MANAGER" />)՝ դուք պետք է մինչև վերջնաժամկետը միանաք Wi-Fi-ին և ներբեռնեք թարմացումը կամ օգտվեք վճարովի կապից (կարող է գումար գանձվել)։}other{Գործող կանոնի համաձայն (աղբյուրը՝ <ph name="MANAGER" />)՝ դուք պետք է մինչև վերջնաժամկետը միանաք Wi-Fi-ին և ներբեռնեք թարմացումը կամ օգտվեք վճարովի կապից (կարող է գումար գանձվել)։}}</translation> +<translation id="3009178788565917040">Ելք</translation> <translation id="3009300415590184725">Չեղարկե՞լ տվյալների բջջային փոխանցման կարգավորումը:</translation> <translation id="3009779501245596802">Ցուցակավորված տվյալների շտեմարաններ</translation> <translation id="3010279545267083280">Գաղտնաբառը ջնջվեց</translation> @@ -3551,6 +3554,7 @@ <translation id="4377058670119819762">Միացնում է ներդիրների հատվածը՝ թույլ տալով ոլորել աջ և ձախ, երբ տարածքը լցված է։</translation> <translation id="4377363674125277448">Առկա է սերվերի վկայականի հետ կապված խնդիր:</translation> <translation id="4378154925671717803">Հեռախոս</translation> +<translation id="4378308539633073595">Ոլորել առաջ</translation> <translation id="4378551569595875038">Միացում…</translation> <translation id="4378556263712303865">Սարքի հայտ</translation> <translation id="4379281552162875326">Ապատեղադրե՞լ <ph name="APP_NAME" /> հավելվածը</translation> @@ -7352,6 +7356,7 @@ <translation id="8120505434908124087">Տեղադրել eSIM պրոֆիլը</translation> <translation id="812260729110117038">Գովազդատուներն ու հրատարակիչները կարող են գնահատել գովազդի արդյունավետությունը՝ առանց հետագծելու ձեր գործողությունները համացանցում։</translation> <translation id="81238879832906896">Դեղին ու սպիտակ ծաղիկ</translation> +<translation id="8123975449645947908">Ոլորել հետ</translation> <translation id="8124313775439841391">Կառավարվող ONC</translation> <translation id="813082847718468539">Դիտել կայքի տեղեկությունները</translation> <translation id="8131740175452115882">Հաստատել</translation> @@ -8269,6 +8274,7 @@ <translation id="9037640663275993951">Սարքի օգտագործումն արգելված է</translation> <translation id="9037818663270399707">Կապը պաշտպանված չէ ամբողջ ցանցի թրաֆիկի համար</translation> <translation id="9037965129289936994">Ցույց տալ բնօրինակը</translation> +<translation id="9038489124413477075">Անանուն պանակ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Դուք ունեք ևս մեկ փորձ։}one{Դուք ունեք ևս # փորձ։}other{Դուք ունեք ևս # փորձ։}}</translation> <translation id="9040473193163777637">Ակտիվացնե՞լ ChromeVox-ը՝ էկրանի ներկառուցված ընթերցիչը ChromeOS-ի համար։ Եթե այո, ապա սեղմեք և հինգ վայրկյան պահեք ձայնի ուժգնության երկու կոճակները։</translation> <translation id="9040661932550800571">Թարմացնե՞լ <ph name="ORIGIN" /> կայքի գաղտնաբառը</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 7068b89a..0468140 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Cadangkan media dari perangkat menggunakan aplikasi File.</translation> <translation id="1343865611738742294">Berikan izin aplikasi ke Linux untuk mengakses perangkat USB. Linux tidak akan mengingat perangkat USB setelah perangkat tersebut dilepas.</translation> <translation id="1343920184519992513">Lanjutkan dari halaman terakhir yang dibuka dan buka rangkaian halaman tertentu</translation> +<translation id="1344377983938103876">Membuka <ph name="URL" /> ...</translation> <translation id="134589511016534552">Tab media juga ditampilkan di bagian Tab Terbuka</translation> <translation id="1346630054604077329">Konfirmasi dan mulai ulang</translation> <translation id="1346748346194534595">Kanan</translation> @@ -1280,6 +1281,7 @@ <translation id="2180620921879609685">Memblokir konten di halaman mana pun</translation> <translation id="2182058453334755893">Disalin ke Papan Klip Anda</translation> <translation id="2184515124301515068">Izinkan Chrome memilih kapan situs dapat memutar suara (direkomendasikan)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Halaman yang dibagikan dari perangkat lain</translation> <translation id="2187675480456493911">Disinkronkan dengan perangkat lain di akun Anda. Setelan yang diubah oleh pengguna lain tidak akan disinkronkan. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Kesalahan Impor Sertifikat Server</translation> @@ -1812,6 +1814,7 @@ <translation id="2667144577800272420">Aplikasi lain disetel untuk membuka link yang sama dengan <ph name="APP_NAME" />. Penyetelan ini akan membuat <ph name="APP_NAME_2" /> dan <ph name="APP_NAME_3" /> tidak dapat membuka link yang didukung.</translation> <translation id="2667463864537187133">Kelola pemeriksa ejaan</translation> <translation id="2669241540496514785">Tidak dapat membuka <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Siapa pun yang menggunakan perangkat ini dapat melihat file yang didownload</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> membagikan tab Chrome.</translation> <translation id="2670403088701171361">Jangan izinkan situs melihat teks atau gambar di papan klip Anda</translation> <translation id="2670429602441959756">Halaman ini berisi fitur yang belum didukung dalam VR. Keluar...</translation> @@ -2145,7 +2148,7 @@ <translation id="2966937470348689686">Kelola preferensi Android</translation> <translation id="2967926928600500959">URL yang sesuai dengan aturan ini akan dipaksa dibuka di browser tertentu.</translation> <translation id="2972581237482394796">&Ulang</translation> -<translation id="2973324205039581528">Matikan Notifikasi Situs</translation> +<translation id="2973324205039581528">Nonaktifkan Notifikasi Situs</translation> <translation id="2973537811036309675">Panel Samping</translation> <translation id="2976557544729462544">Beberapa perangkat mengharuskan Anda menonaktifkan perlindungan akses data agar dapat berfungsi dengan benar atau dalam performa penuh.</translation> <translation id="2977480621796371840">Hapus dari grup</translation> @@ -2179,6 +2182,7 @@ <translation id="3008232374986381779">Menjalankan alat, editor, dan IDE Linux di <ph name="DEVICE_TYPE" /> Anda. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Reset izin</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> mengharuskan Anda terhubung ke Wi-Fi hari ini untuk mendownload update. Atau, Anda dapat mendownload dengan koneksi berbayar (dapat dikenai biaya).}other{<ph name="MANAGER" /> mengharuskan Anda terhubung ke Wi-Fi dan mendownload update sebelum batas waktu. Atau, Anda dapat mendownload dengan koneksi berbayar (dapat dikenai biaya).}}</translation> +<translation id="3009178788565917040">Keluaran</translation> <translation id="3009300415590184725">Yakin ingin membatalkan proses penyiapan layanan data seluler?</translation> <translation id="3009779501245596802">Basis data yang diindeks</translation> <translation id="3010279545267083280">Sandi dihapus</translation> @@ -3566,6 +3570,7 @@ <translation id="4377058670119819762">Memungkinkan tab setrip untuk di-scroll ke kiri dan kanan saat penuh.</translation> <translation id="4377363674125277448">Ada masalah dengan sertifikat server.</translation> <translation id="4378154925671717803">Ponsel</translation> +<translation id="4378308539633073595">Scrolling maju</translation> <translation id="4378551569595875038">Menghubungkan...</translation> <translation id="4378556263712303865">Permintaan perangkat</translation> <translation id="4379281552162875326">Uninstal "<ph name="APP_NAME" />"?</translation> @@ -6967,6 +6972,7 @@ <translation id="7753735457098489144">Gagal menginstal karena ruang penyimpanan tidak cukup. Untuk mengosongkan ruang, hapus file dari penyimpanan perangkat.</translation> <translation id="7754347746598978109">Tidak diizinkan menggunakan JavaScript</translation> <translation id="7754704193130578113">Tanyakan lokasi penyimpanan setiap file sebelum mendownload</translation> +<translation id="7755134875397410803">Untuk membantu Anda menyelesaikan tugas, Google akan menerima URL dan konten situs tempat Anda menggunakan Asisten, serta informasi yang Anda kirimkan melalui Asisten. Informasi ini mungkin disimpan di Akun Google Anda. Anda dapat menonaktifkan Asisten di setelan Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Orang tua dapat berhenti memblokirnya untukmu</translation> <translation id="7757592200364144203">Ubah nama perangkat</translation> <translation id="7757739382819740102">Kontak di sekitar dapat berbagi dengan Anda. Perlu persetujuan.</translation> @@ -7370,6 +7376,7 @@ <translation id="8120505434908124087">Instal profil eSIM</translation> <translation id="812260729110117038">Pengiklan dan penayang dapat mempelajari keefektifan iklan dengan cara yang tidak melacak Anda di berbagai situs.</translation> <translation id="81238879832906896">Bunga kuning dan putih</translation> +<translation id="8123975449645947908">Scroll mundur</translation> <translation id="8124313775439841391">ONC yang dikelola</translation> <translation id="813082847718468539">Lihat informasi situs</translation> <translation id="8131740175452115882">Konfirmasi</translation> @@ -8286,6 +8293,7 @@ <translation id="9037640663275993951">Perangkat tidak diizinkan</translation> <translation id="9037818663270399707">Koneksi Anda tidak bersifat pribadi untuk semua traffic jaringan</translation> <translation id="9037965129289936994">Tampilkan Halaman Asli</translation> +<translation id="9038489124413477075">Folder Tanpa Nama</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Anda memiliki satu kesempatan lagi.}other{Anda memiliki # kesempatan lagi.}}</translation> <translation id="9040473193163777637">Ingin mengaktifkan ChromeVox, pembaca layar bawaan untuk ChromeOS? Jika iya, tekan dan tahan kedua tombol volume selama lima detik.</translation> <translation id="9040661932550800571">Perbarui sandi untuk <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 540740b..b0d6214 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -1260,6 +1260,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Bæta við Wi-Fi...</translation> <translation id="2162155940152307086">Samstilling hefst þegar þú lokar samstillingarkostum</translation> +<translation id="2162705204091149050">Lestu upplýsingar um vafrann, stýrikerfið, tækið, uppsettan hugbúnað og skýrslur</translation> <translation id="2162926944953615670">Engir eSIM-prófílar í boði</translation> <translation id="2163470535490402084">Tengstu netinu til að skrá þig inn á <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> og 1 rofi í viðbót</translation> @@ -1812,6 +1813,7 @@ <translation id="2667144577800272420">Önnur forrit eru stillt á að opna sömu tengla og <ph name="APP_NAME" />. Þetta slekkur á því að <ph name="APP_NAME_2" /> og <ph name="APP_NAME_3" /> opni studda tengla.</translation> <translation id="2667463864537187133">Stjórna ritvilluleit</translation> <translation id="2669241540496514785">Ekki tókst að opna <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Allir sem nota þetta tæki geta séð sóttar skrár</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deilir flipa í Chrome.</translation> <translation id="2670403088701171361">Ekki leyfa vefsvæðum að sjá texta eða myndir á klippiborðinu</translation> <translation id="2670429602441959756">Þessi síða inniheldur eiginleika sem ekki eru enn studdir í VR. Hættir...</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">Keyra verkfæri, ritla og IDE úr Linux í <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Endurstilla heimildir</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> krefst þess að þú tengist Wi-Fi í dag til að sækja uppfærslu. Þú getur einnig hlaðið niður með gagnamældri tengingu (gjöld kunna að eiga við).}one{<ph name="MANAGER" /> krefst þess að þú tengist Wi-Fi og sækir uppfærslu áður en fresturinn er liðinn. Þú getur einnig hlaðið niður með gagnamældri tengingu (gjöld kunna að eiga við).}other{<ph name="MANAGER" /> krefst þess að þú tengist Wi-Fi og sækir uppfærslu áður en fresturinn er liðinn. Þú getur einnig hlaðið niður með gagnamældri tengingu (gjöld kunna að eiga við).}}</translation> +<translation id="3009178788565917040">Úttak</translation> <translation id="3009300415590184725">Ertu viss um að þú viljir hætta uppsetningarferli farsímagagnaþjónustu?</translation> <translation id="3009779501245596802">Niðurskiptir gagnagrunnar</translation> <translation id="3010279545267083280">Aðgangsorði eytt</translation> @@ -2508,6 +2511,7 @@ <translation id="3359256513598016054">Stefnutakmarkanir vottorðs</translation> <translation id="3360297538363969800">Prentun mistókst. Athugaðu prentarann og reyndu aftur.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}one{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}other{<ph name="DEVICE_NAME" /> deilir <ph name="ATTACHMENTS" /> með þér.}}</translation> +<translation id="3363202073972776113">Nýja prófílnum verður stjórnað af fyrirtækinu þínu. <ph name="BEGIN_LINK" />Nánar<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Frá kerfisstjóra: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Notaðu annaðhvort Ctrl eða Alt</translation> <translation id="3368922792935385530">Tengt</translation> @@ -2542,6 +2546,7 @@ <translation id="339722927132407568">Frýs</translation> <translation id="3399432415385675819">Tilkynningar verða gerðar óvirkar</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herts) – samfléttað</translation> +<translation id="3401484564516348917">Lestu upplýsingar um vafrann, stýrikerfið, tækið, uppsettan hugbúnað, stýriskáargildi og skýrslur</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} aðgangsorð er geymt í þessu tæki}one{{COUNT} aðgangsorð er geymt í þessu tæki}other{{COUNT} aðgangsorð eru geymd í þessu tæki}}</translation> <translation id="3402255108239926910">Veldu notandamynd</translation> <translation id="3402585168444815892">Skráning í prufustillingu</translation> @@ -2788,6 +2793,7 @@ <translation id="3627879631695760395">Setja upp <ph name="APP" />...</translation> <translation id="3628275722731025472">Slökkva á Bluetooth</translation> <translation id="3629631988386925734">Færðu inn aðgangsorðið þitt til að kveikja á Smart Lock. Næst tekur síminn þinn <ph name="DEVICE_TYPE" /> úr lás. Þú getur slökkt á Smart Lock í stillingunum.</translation> +<translation id="3629664892718440872">Muna þetta val</translation> <translation id="3630132874740063857">Síminn þinn</translation> <translation id="3630995161997703415">Bættu þessu vefsvæði við hilluna til að geta opnað það hvenær sem er</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Við eigum auðveldara með að forgangsraða því sem þarf að lagfæra og bæta í ChromeOS ef þú leyfir ChromeOS tækjum að senda skýrslur sjálfkrafa. Þessar skýrslur innihalda t.d. upplýsingar um hvenær ChromeOS hrynur, hvaða eiginleikar eru notaðir og hversu mikið minni er yfirleitt notað.<ph name="END_PARAGRAPH1" /> @@ -3277,6 +3283,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Ótakmarkaðri stjórn á MIDI-tækjum hafnað</translation> +<translation id="4087328411748538168">Sýna til hægri</translation> <translation id="4089235344645910861">Stillingar vistaðar. Samstilling hafin.</translation> <translation id="4090103403438682346">Virkja staðfestan aðgang</translation> <translation id="4090947011087001172">Viltu endurstilla heimildir fyrir <ph name="SITE" />?</translation> @@ -3561,6 +3568,7 @@ <translation id="4377058670119819762">Með þessu er hægt að fletta til vinstri og hægri í fliparæmu þegar hún er full.</translation> <translation id="4377363674125277448">Vandamál kom upp með vottorð þjónsins.</translation> <translation id="4378154925671717803">Sími</translation> +<translation id="4378308539633073595">Fletta áfram</translation> <translation id="4378551569595875038">Tengist...</translation> <translation id="4378556263712303865">Tækjaúthlutun</translation> <translation id="4379281552162875326">Fjarlægja „<ph name="APP_NAME" />“?</translation> @@ -3970,6 +3978,7 @@ <translation id="4779766576531456629">Endurnefna eSIM-farsímakerfi</translation> <translation id="4780321648949301421">Vista síðu sem...</translation> <translation id="4781443161433589743">Þú nýtur hámarksöryggis Chrome</translation> +<translation id="4782861709165039462">Allir hljóðnemar gerðir óvirkir með vélbúnaðarrofa</translation> <translation id="4785719467058219317">Þú ert að nota öryggislykil sem er ekki skráður hjá þessu vefsvæði</translation> <translation id="4785914069240823137">Hætta við að skera</translation> <translation id="4788092183367008521">Athugaðu nettenginguna og reyndu aftur.</translation> @@ -4736,6 +4745,7 @@ <translation id="5548075230008247516">Val allra atriða afturkallað. Valstillingu lokað.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ og 1 flipi til viðbótar}one{„<ph name="TAB_TITLE" />“ og # flipi til viðbótar}other{„<ph name="TAB_TITLE" />“ og # flipar til viðbótar}}</translation> <translation id="5548606607480005320">Öryggisathugun</translation> +<translation id="5548644592758170183">Sýna til vinstri</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Lyklaborð og textainnsláttur</translation> <translation id="5553089923092577885">Stefnuskipan vottorða</translation> @@ -7364,6 +7374,7 @@ <translation id="8120505434908124087">Setja upp eSIM-prófíl</translation> <translation id="812260729110117038">Auglýsendur og útgefendur geta metið árangur auglýsinga án þess að rekja virkni þína á vefsvæðum.</translation> <translation id="81238879832906896">Gult og hvítt blóm</translation> +<translation id="8123975449645947908">Fletta til baka</translation> <translation id="8124313775439841391">Stýrt ONC</translation> <translation id="813082847718468539">Skoða upplýsingar um vefsvæði</translation> <translation id="8131740175452115882">Staðfesta</translation> @@ -8220,6 +8231,7 @@ <translation id="8980345560318123814">Ábendingaskýrslur</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – hrundi</translation> <translation id="8981825781894055334">Lítið eftir af pappír</translation> +<translation id="8983018820925880511">Prófílnum verður stjórnað af <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Nánar<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> getur breytt <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Þú verður sýnileg(ur) öllum í <ph name="MINUTES" /> mínútur. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Velkomin(n) í Steam fyrir Chromebook</translation> @@ -8280,6 +8292,7 @@ <translation id="9037640663275993951">Tæki er ekki leyft</translation> <translation id="9037818663270399707">Tengingin þín er ekki lokuð fyrir alla netumferð</translation> <translation id="9037965129289936994">Sýna frumtexta</translation> +<translation id="9038489124413477075">Ónefnd mappa</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Þú átt eina tilraun eftir.}one{Þú átt # tilraun eftir.}other{Þú átt # tilraunir eftir.}}</translation> <translation id="9040473193163777637">Viltu kveikja á ChromeVox sem er innbyggður skjálesari fyrir ChromeOS? Haltu báðum hljóðstyrkstökkunum inni í fimm sekúndur ef þú vilt það.</translation> <translation id="9040661932550800571">Uppfæra aðgangsorð fyrir <ph name="ORIGIN" />?</translation> @@ -8316,6 +8329,7 @@ <translation id="9075413375877487220">Enn öruggari vefskoðun treystir ekki þessari viðbót.</translation> <translation id="9076283476770535406">Þetta gæti innihaldið efni ætlað fullorðnum</translation> <translation id="9076523132036239772">Því miður var ekki hægt að staðfesta netfangið þitt eða aðgangsorð. Prófaðu að tengjast neti fyrst.</translation> +<translation id="9076821103818989526">Hliðargluggi</translation> <translation id="9076977315710973122">SMB-geymsla</translation> <translation id="9078193189520575214">Gerir breytingar...</translation> <translation id="9078316009970372699">Slökkva á skynditjóðrun</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 61ca7af1..6955f39 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -1247,6 +1247,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Aggiungi Wi-Fi...</translation> <translation id="2162155940152307086">La sincronizzazione inizierà quando esci dalle impostazioni di sincronizzazione</translation> +<translation id="2162705204091149050">Lettura di informazioni su browser, sistema operativo, dispositivo, software installato e file</translation> <translation id="2162926944953615670">Nessun profilo eSIM disponibile</translation> <translation id="2163470535490402084">Connettiti a Internet per accedere al tuo <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> e 1 altro sensore</translation> @@ -1796,6 +1797,7 @@ <translation id="2667144577800272420">Ci sono altre app impostate per aprire gli stessi link che è possibile aprire con <ph name="APP_NAME" />. Non sarà più possibile aprire i link supportati con <ph name="APP_NAME_2" /> e <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Gestisci controllo ortografico</translation> <translation id="2669241540496514785">Impossibile aprire <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Tutte le persone che usano questo dispositivo possono vedere i file scaricati</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> condivide una scheda Chrome.</translation> <translation id="2670403088701171361">Non consentire ai siti di vedere testo o immagini negli appunti</translation> <translation id="2670429602441959756">Questa pagina contiene funzioni non ancora supportate nella realtà virtuale. Uscita in corso...</translation> @@ -2163,6 +2165,7 @@ <translation id="3008232374986381779">Esegui strumenti, editor e IDE di Linux sul dispositivo <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Reimposta le autorizzazioni</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> richiede la connessione a una rete Wi-Fi per scaricare un aggiornamento oggi stesso. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}other{<ph name="MANAGER" /> richiede la connessione a una rete Wi-Fi per scaricare un aggiornamento prima della scadenza. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}}</translation> +<translation id="3009178788565917040">Uscita</translation> <translation id="3009300415590184725">Annullare la procedura di configurazione del servizio dati mobile?</translation> <translation id="3009779501245596802">Indexed databases</translation> <translation id="3010279545267083280">Password eliminata</translation> @@ -2493,6 +2496,7 @@ <translation id="3359256513598016054">Vincoli criteri certificati</translation> <translation id="3360297538363969800">Errore di stampa. Controlla la stampante e riprova.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{Il dispositivo <ph name="DEVICE_NAME" /> sta cercando di condividere <ph name="ATTACHMENTS" /> con te.}other{Il dispositivo <ph name="DEVICE_NAME" /> sta cercando di condividere <ph name="ATTACHMENTS" /> con te.}}</translation> +<translation id="3363202073972776113">Questo nuovo profilo verrà gestito dalla tua organizzazione. <ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Dal tuo amministratore: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Usa il tasto CTRL o ALT</translation> <translation id="3368922792935385530">Connesso</translation> @@ -2527,6 +2531,7 @@ <translation id="339722927132407568">Si blocca</translation> <translation id="3399432415385675819">Le notifiche verranno disattivate</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz) - interlacciata</translation> +<translation id="3401484564516348917">Lettura di informazioni su browser, sistema operativo, dispositivo, software installato, valori di registro e file</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Su questo dispositivo è memorizzata {COUNT} password}other{Su questo dispositivo sono memorizzate {COUNT} password}}</translation> <translation id="3402255108239926910">Scegli un avatar</translation> <translation id="3402585168444815892">Registrazione alla modalità demo</translation> @@ -2773,6 +2778,7 @@ <translation id="3627879631695760395">Installa <ph name="APP" />...</translation> <translation id="3628275722731025472">Disattivare il Bluetooth</translation> <translation id="3629631988386925734">Inserisci la password per attivare Smart Lock. La prossima volta potrai usare il telefono per sbloccare il dispositivo <ph name="DEVICE_TYPE" />. Puoi disattivare Smart Lock nelle Impostazioni.</translation> +<translation id="3629664892718440872">Ricorda questa scelta</translation> <translation id="3630132874740063857">Il tuo telefono</translation> <translation id="3630995161997703415">Aggiungi questo sito alla barra delle app per usarlo in qualsiasi momento</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Se consenti ai dispositivi Chrome OS di inviare i report automatici, ci aiuti a capire a quali problemi e miglioramenti dare la priorità in Chrome OS. Questi report possono includere, ad esempio, informazioni su quando Chrome OS ha un arresto anomalo, sulle funzionalità che utilizzi e sulla quantità di memoria solitamente impiegata.<ph name="END_PARAGRAPH1" /> @@ -3262,6 +3268,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Controllo totale dei dispositivi MIDI negato</translation> +<translation id="4087328411748538168">Mostra a destra</translation> <translation id="4089235344645910861">Impostazioni salvate. Sincronizzazione avviata.</translation> <translation id="4090103403438682346">Attiva Accesso verificato</translation> <translation id="4090947011087001172">Reimpostare le autorizzazioni per il sito <ph name="SITE" />?</translation> @@ -3546,6 +3553,7 @@ <translation id="4377058670119819762">Viene attivato lo scorrimento verso sinistra e verso destra della tabstrip quando è completa.</translation> <translation id="4377363674125277448">Si è verificato un problema con il certificato del server.</translation> <translation id="4378154925671717803">Telefono</translation> +<translation id="4378308539633073595">Scorri in avanti</translation> <translation id="4378551569595875038">Connessione...</translation> <translation id="4378556263712303865">Richiesta dispositivo</translation> <translation id="4379281552162875326">Vuoi disinstallare "<ph name="APP_NAME" />"?</translation> @@ -3954,6 +3962,7 @@ <translation id="4779766576531456629">Rinomina rete mobile eSIM</translation> <translation id="4780321648949301421">Salva pagina con nome...</translation> <translation id="4781443161433589743">Stai usando la funzionalità di sicurezza più efficace di Chrome</translation> +<translation id="4782861709165039462">Tutti i microfoni sono disattivati dall'interruttore hardware del dispositivo</translation> <translation id="4785719467058219317">Stai usando un token di sicurezza non registrato su questo sito web</translation> <translation id="4785914069240823137">Annulla ritaglio</translation> <translation id="4788092183367008521">Controlla la connessione di rete e riprova.</translation> @@ -4720,6 +4729,7 @@ <translation id="5548075230008247516">Tutti gli elementi deselezionati, modalità di selezione disattivata.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" e 1 altra scheda}other{"<ph name="TAB_TITLE" />" e altre # schede}}</translation> <translation id="5548606607480005320">Controllo di sicurezza</translation> +<translation id="5548644592758170183">Mostra a sinistra</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Tastiera e input di testo</translation> <translation id="5553089923092577885">Mapping dei criteri dei certificati</translation> @@ -7344,6 +7354,7 @@ <translation id="8120505434908124087">Installa profilo eSIM</translation> <translation id="812260729110117038">Gli inserzionisti e i publisher possono esaminare l'efficacia degli annunci senza tracciarti tra i siti.</translation> <translation id="81238879832906896">Fiore bianco e giallo</translation> +<translation id="8123975449645947908">Scorri indietro</translation> <translation id="8124313775439841391">ONC gestito</translation> <translation id="813082847718468539">Visualizza informazioni sul sito</translation> <translation id="8131740175452115882">Conferma</translation> @@ -8199,6 +8210,7 @@ <translation id="8980345560318123814">Report di feedback</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Bloccata</translation> <translation id="8981825781894055334">Carta in esaurimento</translation> +<translation id="8983018820925880511">Questo nuovo profilo verrà gestito da <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> può modificare il file <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Sarai visibile a tutti per <ph name="MINUTES" /> minuti. <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Ti diamo il benvenuto in Steam per Chromebook</translation> @@ -8259,6 +8271,7 @@ <translation id="9037640663275993951">Il dispositivo non è consentito</translation> <translation id="9037818663270399707">La connessione non è privata per tutto il traffico di rete</translation> <translation id="9037965129289936994">Mostra originale</translation> +<translation id="9038489124413477075">Cartella senza nome</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Hai ancora a disposizione un tentativo.}other{Hai ancora a disposizione # tentativi.}}</translation> <translation id="9040473193163777637">Vuoi attivare ChromeVox, lo screen reader integrato per Chrome OS? In questo caso, tieni premuti entrambi i tasti del volume per 5 secondi.</translation> <translation id="9040661932550800571">Aggiornare la password per <ph name="ORIGIN" />?</translation> @@ -8295,6 +8308,7 @@ <translation id="9075413375877487220">Questa estensione non è ritenuta attendibile da Navigazione sicura avanzata.</translation> <translation id="9076283476770535406">Può includere contenuti per adulti</translation> <translation id="9076523132036239772">Spiacenti, impossibile verificare l'indirizzo email o la password. Prova a collegarti a una rete prima.</translation> +<translation id="9076821103818989526">Riquadro laterale</translation> <translation id="9076977315710973122">Condivisione SMB</translation> <translation id="9078193189520575214">Applicazione delle modifiche in corso…</translation> <translation id="9078316009970372699">Disabilita tethering istantaneo</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index e6a4172..dbfd2de 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -1258,6 +1258,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">הוספת רשת Wi-Fi...</translation> <translation id="2162155940152307086">הסנכרון יתחיל מיד לאחר היציאה מהגדרות הסנכרון</translation> +<translation id="2162705204091149050">קריאת מידע על הדפדפן, מערכת ההפעלה, המכשיר, התוכנות שהותקנו והקבצים</translation> <translation id="2162926944953615670">אין פרופילים זמינים של eSIM</translation> <translation id="2163470535490402084">צריך להתחבר לאינטרנט כדי להיכנס אל ה-<ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ועוד מתג אחד</translation> @@ -1810,6 +1811,7 @@ <translation id="2667144577800272420">אפליקציות אחרות מוגדרות לפתוח את אותם קישורים כמו <ph name="APP_NAME" />. כתוצאה מכך, <ph name="APP_NAME_2" /> וגם <ph name="APP_NAME_3" /> לא יפתחו קישורים נתמכים.</translation> <translation id="2667463864537187133">ניהול בדיקת איות</translation> <translation id="2669241540496514785">אי אפשר לפתוח את <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">כל מי שמשתמש במכשיר הזה יכול לראות את הקבצים שהורדו</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> משתף כרטיסיית Chrome.</translation> <translation id="2670403088701171361">לא לאפשר לאתרים לראות טקסט או תמונות בלוח</translation> <translation id="2670429602441959756">הדף הזה מכיל תכונות שעדיין אינן נתמכות ב-VR. אי אפשר להישאר כאן...</translation> @@ -2144,7 +2146,7 @@ <translation id="2966937470348689686">ניהול העדפות ל-Android</translation> <translation id="2967926928600500959">כתובות ה‑URL שמתאימות לכללים האלה יאולצו להיפתח בדפדפן מסוים.</translation> <translation id="2972581237482394796">&ביצוע חוזר</translation> -<translation id="2973324205039581528">השתקת האתר</translation> +<translation id="2973324205039581528">השתקת האודיו באתר</translation> <translation id="2973537811036309675">חלונית צדדית</translation> <translation id="2976557544729462544">יש מכשירים שיפעלו בצורה נכונה או מיטבית רק אם הגנת הגישה לנתונים תושבת.</translation> <translation id="2977480621796371840">הסרה מהקבוצה</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">הפעלת כלים, עורכים וסביבות פיתוח משולבות (IDE) של Linux ב-<ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="3008272652534848354">איפוס הרשאות</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{לפי הדרישה של <ph name="MANAGER" />, עליך להתחבר היום לרשת Wi-Fi כדי להוריד עדכון. ניתן גם לבצע את ההורדה דרך חיבור עם חיוב לפי שימוש בנתונים (עשויים לחול חיובים).}two{לפי דרישת <ph name="MANAGER" />, עליך להתחבר ל-Wi-Fi ולהוריד עדכון לפני המועד האחרון. ניתן גם לבצע את ההורדה דרך חיבור עם חיוב לפי שימוש בנתונים (עשויים לחול חיובים).}many{לפי דרישת <ph name="MANAGER" />, עליך להתחבר ל-Wi-Fi ולהוריד עדכון לפני המועד האחרון. ניתן גם לבצע את ההורדה דרך חיבור עם חיוב לפי שימוש בנתונים (עשויים לחול חיובים).}other{לפי דרישת <ph name="MANAGER" />, עליך להתחבר ל-Wi-Fi ולהוריד עדכון לפני המועד האחרון. ניתן גם לבצע את ההורדה דרך חיבור עם חיוב לפי שימוש בנתונים (עשויים לחול חיובים).}}</translation> +<translation id="3009178788565917040">פלט</translation> <translation id="3009300415590184725">בטוח שברצונך לבטל את תהליך ההתקנה של שירות הנתונים לנייד?</translation> <translation id="3009779501245596802">מסדי נתונים שנוספו לאינדקס</translation> <translation id="3010279545267083280">הסיסמה נמחקה</translation> @@ -2508,6 +2511,7 @@ <translation id="3359256513598016054">מגבלות מדיניות אישורים </translation> <translation id="3360297538363969800">ההדפסה נכשלה. בדוק את המדפסת ונסה שוב.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}two{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}many{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}other{<ph name="DEVICE_NAME" /> משתף איתך <ph name="ATTACHMENTS" />.}}</translation> +<translation id="3363202073972776113">הפרופיל החדש ינוהל על ידי הארגון שלך. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation> <translation id="3364986687961713424">ממנהל המערכת שלך: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">צריך להשתמש ב-Ctrl או ב-Alt</translation> <translation id="3368922792935385530">מחובר</translation> @@ -2542,6 +2546,7 @@ <translation id="339722927132407568">קופא</translation> <translation id="3399432415385675819">הודעות יושבתו</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> הרץ) – סריקה שזורה (Interlaced)</translation> +<translation id="3401484564516348917">קריאת מידע על הדפדפן, מערכת ההפעלה, המכשיר, התוכנות שהותקנו, הקבצים והערכים ב-registry</translation> <translation id="3402059702184703067">{COUNT,plural, =1{יש סיסמה אחת ({COUNT}) ששמורה במכשיר הזה}two{יש {COUNT} סיסמאות ששמורות במכשיר הזה}many{יש {COUNT} סיסמאות ששמורות במכשיר הזה}other{יש {COUNT} סיסמאות ששמורות במכשיר הזה}}</translation> <translation id="3402255108239926910">יש לבחור דמות</translation> <translation id="3402585168444815892">מתבצעת הרשמה למצב הדגמה</translation> @@ -2788,6 +2793,7 @@ <translation id="3627879631695760395">התקנת <ph name="APP" />...</translation> <translation id="3628275722731025472">השבתת Bluetooth</translation> <translation id="3629631988386925734">כדי להפעיל את Smart Lock צריך להזין סיסמה. בפעם הבאה, הטלפון יבטל את הנעילה של <ph name="DEVICE_TYPE" />. אפשר להשבית את Smart Lock דרך ההגדרות.</translation> +<translation id="3629664892718440872">אני רוצה להשתמש באפשרות הזו גם בעתיד</translation> <translation id="3630132874740063857">הטלפון שלך</translation> <translation id="3630995161997703415">כדי שניתן יהיה תמיד להשתמש באתר הזה יש להוסיף אותו למדף</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו נסיבות הקריסה של ChromeOS, התכונות שמשמשות אותך ונפח הזיכרון שבשימוש בדרך כלל.<ph name="END_PARAGRAPH1" /> @@ -3277,6 +3283,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">הבקשה לשליטה מלאה במכשירי MIDI נדחתה</translation> +<translation id="4087328411748538168">הצגה בצד ימין</translation> <translation id="4089235344645910861">ההגדרות נשמרו והסנכרון החל.</translation> <translation id="4090103403438682346">הפעלת גישה מאומתת</translation> <translation id="4090947011087001172">לאפס את ההרשאות של האתר <ph name="SITE" />?</translation> @@ -3561,6 +3568,7 @@ <translation id="4377058670119819762">ניתן לגלול ימינה ושמאלה בשורת הכרטיסיות כשהיא מלאה.</translation> <translation id="4377363674125277448">הייתה בעיה באישור השרת.</translation> <translation id="4378154925671717803">טלפון</translation> +<translation id="4378308539633073595">גלילה קדימה</translation> <translation id="4378551569595875038">התחברות...</translation> <translation id="4378556263712303865">דרישה למכשיר</translation> <translation id="4379281552162875326">להסיר את "<ph name="APP_NAME" />"?</translation> @@ -3938,7 +3946,7 @@ <translation id="4742334355511750246">לא מורשים להציג תמונות</translation> <translation id="4742970037960872810">הסרת ההדגשה</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />איך לעדכן אפליקציות<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{ביטול השתקת האתר}two{ביטול השתקת האתרים}many{ביטול השתקת האתרים}other{ביטול השתקת האתרים}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{ביטול ההשתקה של האודיו באתר}two{ביטול ההשתקה של האודיו באתרים}many{ביטול ההשתקה של האודיו באתרים}other{ביטול ההשתקה של האודיו באתרים}}</translation> <translation id="474609389162964566">רוצה לקבל גישה ל-Assistant עם "Hey Google"?</translation> <translation id="4746351372139058112">הודעות</translation> <translation id="4748783296226936791">בדרך כלל, אתרים מתחברים למכשירי HID כדי לתמוך בתכונות שמשתמשות במקלדות, בשלטים רחוקים למשחקים ובמכשירים אחרים שאינם נפוצים</translation> @@ -3970,6 +3978,7 @@ <translation id="4779766576531456629">שינוי שם של הרשת הסלולרית של eSIM</translation> <translation id="4780321648949301421">שמירת הדף בשם...</translation> <translation id="4781443161433589743">האבטחה החזקה ביותר של Chrome פועלת אצלך</translation> +<translation id="4782861709165039462">כל המיקרופונים מושבתים באמצעות מתג החומרה של המכשירים</translation> <translation id="4785719467058219317">בחרת להשתמש במפתח אבטחה שלא רשום עבור האתר הזה</translation> <translation id="4785914069240823137">ביטול החיתוך</translation> <translation id="4788092183367008521">כדאי לבדוק את החיבור לרשת ולנסות שוב.</translation> @@ -4172,7 +4181,7 @@ <translation id="4972129977812092092">עריכת מדפסת</translation> <translation id="4972164225939028131">סיסמה שגויה</translation> <translation id="4972737347717125191">אתרים יכולים לבקש הרשאה להשתמש בנתונים ובמכשירים של מציאות מדומה</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{השתקת האתר}two{השתקת האתרים}many{השתקת האתרים}other{השתקת האתרים}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{השתקת האודיו באתר}two{השתקת האודיו באתרים}many{השתקת האודיו באתרים}other{השתקת האודיו באתרים}}</translation> <translation id="497403230787583386">בדיקות האבטחה הסתיימו. המסמך יודפס.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_LIMIT" />/<ph name="CHARACTER_COUNT" /></translation> <translation id="4977942889532008999">אישור גישה</translation> @@ -4736,6 +4745,7 @@ <translation id="5548075230008247516">בוטלה הבחירה בכל הפריטים. יצאת ממצב הבחירה.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" ועוד כרטיסייה אחת}two{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}many{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}other{"<ph name="TAB_TITLE" />" ועוד # כרטיסיות}}</translation> <translation id="5548606607480005320">בדיקת אבטחה</translation> +<translation id="5548644592758170183">הצגה בצד שמאל</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">מקלדת וקלט טקסט</translation> <translation id="5553089923092577885">מיפויי מדיניות אישור </translation> @@ -7368,6 +7378,7 @@ <translation id="8120505434908124087">התקנת פרופיל eSim</translation> <translation id="812260729110117038">מפרסמים ובעלי תוכן דיגיטלי יכולים לבחון את יעילות המודעות בדרך שאינה כוללת מעקב אחריך באתרים שונים.</translation> <translation id="81238879832906896">פרח צהוב ולבן</translation> +<translation id="8123975449645947908">גלילה אחורה</translation> <translation id="8124313775439841391">ONC מנוהל</translation> <translation id="813082847718468539">הצגת נתוני אתר</translation> <translation id="8131740175452115882">אישור</translation> @@ -8225,6 +8236,7 @@ <translation id="8980345560318123814">דוחות משוב</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – קרס</translation> <translation id="8981825781894055334">הנייר אוזל</translation> +<translation id="8983018820925880511">הפרופיל החדש הזה ינוהל על ידי <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation> <translation id="8983632908660087688">ל-<ph name="ORIGIN" /> יש הרשאה לערוך את <ph name="FILENAME" /></translation> <translation id="8984694057134206124">המכשיר יהיה גלוי לכולם למשך <ph name="MINUTES" /> דקות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="8985191021574400965">ברוך בואך ל-Steam ל-Chromebook</translation> @@ -8285,6 +8297,7 @@ <translation id="9037640663275993951">המכשיר לא מורשה</translation> <translation id="9037818663270399707">החיבור שלך אינו פרטי בכל התנועה ברשת</translation> <translation id="9037965129289936994">הצגת מקור</translation> +<translation id="9038489124413477075">תיקייה ללא שם</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{נשאר לך ניסיון אחד.}two{נשארו לך # ניסיונות.}many{נשארו לך # ניסיונות.}other{נשארו לך # ניסיונות.}}</translation> <translation id="9040473193163777637">רוצה להפעיל את ChromeVox, קורא המסך המובנה של ChromeOS? אם כן, יש ללחוץ לחיצה ארוכה על 2 הלחצנים של עוצמת הקול למשך 5 שניות.</translation> <translation id="9040661932550800571">האם לעדכן את הסיסמה של <ph name="ORIGIN" />?</translation> @@ -8321,6 +8334,7 @@ <translation id="9075413375877487220">לפי הגרסה המשופרת של גלישה בטוחה, התוסף הזה לא מהימן.</translation> <translation id="9076283476770535406">ייתכן שהאתר מכיל תוכן למבוגרים בלבד</translation> <translation id="9076523132036239772">מצטערים, לא ניתן לאמת את האימייל או הסיסמה שלך. יש לנסות תחילה להתחבר לרשת.</translation> +<translation id="9076821103818989526">חלונית צדדית</translation> <translation id="9076977315710973122">שיתוף באמצעות SMB</translation> <translation id="9078193189520575214">השינויים מתבצעים…</translation> <translation id="9078316009970372699">השבתה של שיתוף אינטרנט מיידי בין מכשירים</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index f8376c58..ccef8a9 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -352,6 +352,7 @@ <translation id="1340527397989195812">ファイルアプリを使用してデバイスからメディアをバックアップします。</translation> <translation id="1343865611738742294">Linux アプリに USB デバイスへのアクセスを許可します。USB デバイスを取り外した後は、Linux にデバイスのデータは残りません。</translation> <translation id="1343920184519992513">前回中断したところから再開して、特定のページを開く</translation> +<translation id="1344377983938103876"><ph name="URL" /> を開いています...</translation> <translation id="134589511016534552">メディアタブは [開いているタブ] セクションにも表示されます</translation> <translation id="1346630054604077329">確定して再起動</translation> <translation id="1346748346194534595">右</translation> @@ -1265,6 +1266,7 @@ <translation id="2180620921879609685">任意のページのコンテンツをブロック</translation> <translation id="2182058453334755893">クリップボードにコピーされました</translation> <translation id="2184515124301515068">サイトで音声が再生される可能性がある場合、Chrome で自動的に許可またはブロックする(推奨)</translation> +<translation id="2186206192313702726">Google レンズ</translation> <translation id="2186711480981247270">別のデバイスから共有されたページ</translation> <translation id="2187675480456493911">アカウントの他のデバイスと同期しています。他のユーザーが変更した設定は同期されません。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> <translation id="2187895286714876935">サーバー証明書インポート エラー</translation> @@ -1791,6 +1793,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> と同じリンクを開くよう設定されているアプリが複数あります。設定を変更すると、<ph name="APP_NAME_2" />、<ph name="APP_NAME_3" /> で対応リンクを開けなくなります。</translation> <translation id="2667463864537187133">スペルチェックの管理</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> を開けませんでした</translation> +<translation id="2669454659051515572">ダウンロードしたファイルは、このデバイスを使用するすべてのユーザーが確認できます</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> が Chrome タブを共有しています。</translation> <translation id="2670403088701171361">サイトにクリップボード内のテキストや画像へのアクセスを許可しない</translation> <translation id="2670429602441959756">このページには VR でまだご利用いただけない機能が含まれています。VR モードを終了します...</translation> @@ -2158,6 +2161,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> で Linux のツール、エディタ、IDE を実行します。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> <translation id="3008272652534848354">権限をリセット</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> が、Wi-Fi に接続して、今日中にアップデートをダウンロードするよう求めています。Wi-Fi に接続しない場合、従量制接続でダウンロードします(通信料が発生することがあります)。}other{<ph name="MANAGER" /> が、Wi-Fi に接続して、期限までにアップデートをダウンロードするよう求めています。Wi-Fi に接続しない場合、従量制接続でダウンロードします(通信料が発生することがあります)。}}</translation> +<translation id="3009178788565917040">出力</translation> <translation id="3009300415590184725">モバイル データ サービスの設定処理をキャンセルしてもよろしいですか?</translation> <translation id="3009779501245596802">Indexed Database</translation> <translation id="3010279545267083280">パスワードを削除しました</translation> @@ -3540,6 +3544,7 @@ <translation id="4377058670119819762">幅一杯になったときにタブバーを左右にスクロールできるようにします。</translation> <translation id="4377363674125277448">サーバーの証明書に問題があります。</translation> <translation id="4378154925671717803">電話</translation> +<translation id="4378308539633073595">前方スクロール</translation> <translation id="4378551569595875038">接続中...</translation> <translation id="4378556263712303865">デバイスの登録</translation> <translation id="4379281552162875326">「<ph name="APP_NAME" />」をアンインストールしますか?</translation> @@ -6930,6 +6935,7 @@ <translation id="7753735457098489144">ストレージの空き容量が不足しているため、インストールできませんでした。空き容量を確保するために、デバイスのストレージからファイルを削除してください。</translation> <translation id="7754347746598978109">JavaScript の使用を許可しないサイト</translation> <translation id="7754704193130578113">ダウンロード前に各ファイルの保存場所を確認する</translation> +<translation id="7755134875397410803">タスクを完了するため、アシスタントを使用したサイトの URL とコンテンツ、およびアシスタントで送信した情報が Google に送られます。この情報は、Google アカウントに保存される可能性があります。アシスタントは、Chrome の設定で無効にできます。<ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">ブロックの解除は保護者が行うことができます</translation> <translation id="7757592200364144203">デバイス名の変更</translation> <translation id="7757739382819740102">近くにいる連絡先のユーザーが共有できます。承認が必要です。</translation> @@ -7332,6 +7338,7 @@ <translation id="8120505434908124087">eSIM プロファイルのインストール</translation> <translation id="812260729110117038">広告主やパブリッシャーは、サイトをまたいでユーザーをトラッキングすることなく、広告の成果を把握できます。</translation> <translation id="81238879832906896">黄色と白の花</translation> +<translation id="8123975449645947908">後方スクロール</translation> <translation id="8124313775439841391">管理対象 ONC</translation> <translation id="813082847718468539">サイト情報を表示</translation> <translation id="8131740175452115882">確認</translation> @@ -8248,6 +8255,7 @@ <translation id="9037640663275993951">デバイスは許可されていません</translation> <translation id="9037818663270399707">この接続ではすべてのネットワーク トラフィックのプライバシーが保護されません</translation> <translation id="9037965129289936994">原文のページを表示</translation> +<translation id="9038489124413477075">名前のないフォルダ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{あと 1 回試行できます。}other{あと # 回試行できます。}}</translation> <translation id="9040473193163777637">ChromeVox を有効にしますか?ChromeVox は Chrome OS 用の組み込みのスクリーン リーダーです。有効にする場合は、両方の音量キーを 5 秒間長押ししてください。</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> のパスワードを更新しますか?</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 7d4bdd6e7..a5bd2fb 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -1799,6 +1799,7 @@ <translation id="2667144577800272420">იმ ბმულების გასახსნელად, რომლებსაც <ph name="APP_NAME" /> ხსნის, დაყენებულია სხვა აპები. ამ ქმედების შედეგად, <ph name="APP_NAME_2" /> და <ph name="APP_NAME_3" /> აღარ გახსნის მხარდაჭერილ ბმულებს.</translation> <translation id="2667463864537187133">მართლწერის შემოწმების მართვა</translation> <translation id="2669241540496514785"><ph name="APP_NAME" />-ის გახსნა ვერ მოხერხდა</translation> +<translation id="2669454659051515572">ჩამოტვირთული ფაილების ნახვას შეძლებს ამ მოწყობილობის ნებისმიერი მომხმარებელი</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome-ის ჩანართს აზიარებს.</translation> <translation id="2670403088701171361">საიტებისთვის თქვენს გაცვლის ბუფერში არსებული ტექსტისა თუ სურათების ნახვის აკრძალვა</translation> <translation id="2670429602441959756">ეს გვერდი შეიცავს ფუნქციებს, რომლებიც ჯერ მხარდაუჭერელია VR-ში. მიმდინარეობს გამოსვლა...</translation> @@ -2166,6 +2167,7 @@ <translation id="3008232374986381779">თქვენს <ph name="DEVICE_TYPE" />-ზე Linux-ის ხელსაწყოების, რედაქტორებისა და IDE-ების გაშვება. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ნებართვების გადაყენება</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> დღესვე ითხოვს Wi-Fi ქსელთან დაკავშირებას და განახლების ჩამოტვირთვას. სურვილისამებრ, ჩამოტვირთვა შეგიძლიათ ლიმიტირებული კავშირით (შეიძლება დაკავშირებული იყოს ხარჯებთან).}other{<ph name="MANAGER" /> ითხოვს Wi-Fi ქსელთან ბოლო ვადამდე დაკავშირებას და განახლების ჩამოტვირთვას. სურვილისამებრ, ჩამოტვირთვა შეგიძლიათ ლიმიტირებული კავშირით (შეიძლება დაკავშირებული იყოს ხარჯებთან).}}</translation> +<translation id="3009178788565917040">გამოტანა</translation> <translation id="3009300415590184725">ნამდვილად გსურთ გააუქმოთ მობილური მონაცემების სერვისის დაყენების პროცესი?</translation> <translation id="3009779501245596802">ინდექსირებული მონაცემთა ბაზები</translation> <translation id="3010279545267083280">პაროლი წაიშალა</translation> @@ -3553,6 +3555,7 @@ <translation id="4377058670119819762">ჩართავს ჩანართების ზოლს, რომ შესაძლებელი იყოს მარცხნივ და მარჯვნივ გადაადგილება, როცა ის სავსეა.</translation> <translation id="4377363674125277448">არსებობდა სერვერის პრობლემა სერვერის სერთიფიკატი.</translation> <translation id="4378154925671717803">ტელეფონი</translation> +<translation id="4378308539633073595">წინ გადაადგილება</translation> <translation id="4378551569595875038">დაკავშირება…</translation> <translation id="4378556263712303865">მოწყობილობის მოთხოვნა</translation> <translation id="4379281552162875326">გსურთ „<ph name="APP_NAME" />“-ის დეინსტალაცია?</translation> @@ -7355,6 +7358,7 @@ <translation id="8120505434908124087">eSIM პროფილის დაინსტალირება</translation> <translation id="812260729110117038">რეკლამის განმთავსებლები და გამომცემლები რეკლამის ეფექტურობის განსაზღვრას შეძლებენ იმგვარად, რომ სხვადასხვა საიტზე თვალი არ გადევნონ.</translation> <translation id="81238879832906896">ყვითელი და თეთრი ყვავილი</translation> +<translation id="8123975449645947908">უკან გადაადგილება</translation> <translation id="8124313775439841391">იმართება ONC</translation> <translation id="813082847718468539">საიტის ინფორმაციის ნახვა</translation> <translation id="8131740175452115882">დაადასტურება</translation> @@ -8271,6 +8275,7 @@ <translation id="9037640663275993951">მოწყობილობა აკრძალულია</translation> <translation id="9037818663270399707">თქვენი კავშირი არ არის კონფიდენციალური ქსელის მთელი ტრაფიკისთვის</translation> <translation id="9037965129289936994">ორიგინალის ჩვენება</translation> +<translation id="9038489124413477075">უსახელო საქაღალდე</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{დაგრჩათ ერთი მცდელობა.}other{დაგრჩათ # მცდელობა.}}</translation> <translation id="9040473193163777637">გსურთ, გაააქტიუროთ ChromeVox, ChromeOS-ში ჩაშენებული ეკრანის წამკითხველი? ამისთვის დააჭირეთ ხმის ორივე ღილაკს ხუთი წამის განმავლობაში.</translation> <translation id="9040661932550800571">გსურთ <ph name="ORIGIN" />-ის პაროლის განახლება?</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 3aa1578..f1fc9f50 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -1265,6 +1265,7 @@ <translation id="2180620921879609685">Барлық беттегі мазмұнды бөгеу</translation> <translation id="2182058453334755893">Буферге көшірілді</translation> <translation id="2184515124301515068">Chrome браузерінде сайттардың дыбысты автоматты ойнатуына тыйым салу (ұсынылады)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Басқа құрылғыдан бөлісілген бет</translation> <translation id="2187675480456493911">Аккаунтыңыздағы басқа құрылғылармен синхрондалған. Басқа пайдаланушылар өзгерткен параметрлер синхрондалмайды. <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Сервер сертификатын импорттау қатесі</translation> @@ -1794,6 +1795,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> ашқан сілтемелерді басқа қолданбалар да аша алатын болып реттелді. <ph name="APP_NAME_2" /> және <ph name="APP_NAME_3" /> қолдау көрсету сілтемелерін аша алмай қалады.</translation> <translation id="2667463864537187133">Орфографиялық сөздікті басқару</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ашылмады</translation> +<translation id="2669454659051515572">Осы құрылғыны пайдаланатын кез келген адам жүктеп алынған файлдарды көре алады.</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> қолданбасы Chrome қойындысын бөлісуде.</translation> <translation id="2670403088701171361">Сайттардың буферіңіздегі мәтінді немесе суреттерді көруіне рұқсат бермеу</translation> <translation id="2670429602441959756">Бұл бетте VR режимінде қолдау көрсетілмейтін мүмкіндіктер бар. Шығуда...</translation> @@ -2160,6 +2162,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> құрылғысында Linux құралдарын, редакторларын және интеграцияланған әзірлеу орталарын іске қосыңыз. <ph name="LINK_BEGIN" />Толығырақ<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Рұқсаттарды бастапқы күйіне қайтару</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Жаңа нұсқаны жүктеп алу үшін <ph name="MANAGER" /> Wi-Fi желісіне қосылуыңызды талап етеді. Сондай-ақ трафик саналатын байланыс арқылы жүктеп алуыңызға да болады (ақы алынуы мүмкін).}other{<ph name="MANAGER" /> Wi-Fi желісіне қосылып, мерзім аяқталғанға дейін, жаңа нұсқаны жүктеп алуыңызды талап етеді. Сондай-ақ трафик саналатын байланыс арқылы жүктеп алуыңызға да болады (ақы алынуы мүмкін).}}</translation> +<translation id="3009178788565917040">Шығыс</translation> <translation id="3009300415590184725">Ұялы деректер қызметін орнату процесінен бас тарту қажет пе?</translation> <translation id="3009779501245596802">Индекстелген дерекқорлар</translation> <translation id="3010279545267083280">Құпия сөз жойылды</translation> @@ -3547,6 +3550,7 @@ <translation id="4377058670119819762">Толған кезде, қойындылар жолағын солға және оңға айналдырады.</translation> <translation id="4377363674125277448">Сервер сертификатында ақау болды.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Алға айналдыру</translation> <translation id="4378551569595875038">Қосылуда…</translation> <translation id="4378556263712303865">Құрылғы сұрауы</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" жойылсын ба?</translation> @@ -7345,6 +7349,7 @@ <translation id="8120505434908124087">eSIM профилін орнату</translation> <translation id="812260729110117038">Жарнама берушілер мен жариялаушылар сайттарда жасаған әрекеттеріңізді бақыламай-ақ жарнамалардың тиімділігін бағамдай алады.</translation> <translation id="81238879832906896">Сары және ақ гүл</translation> +<translation id="8123975449645947908">Артқа айналдыру</translation> <translation id="8124313775439841391">Басқарылатын ONC</translation> <translation id="813082847718468539">Сайт ақпаратын көру</translation> <translation id="8131740175452115882">Растау</translation> @@ -8261,6 +8266,7 @@ <translation id="9037640663275993951">Құрылғыға рұқсат берілмеген.</translation> <translation id="9037818663270399707">Барлық желі трафигі үшін жеке байланыс жасалмайды.</translation> <translation id="9037965129289936994">Түпнұсқаны көрсету</translation> +<translation id="9038489124413477075">Атаусыз қалта</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Сізде бір мүмкіндік қалды.}other{Сізде # мүмкіндік қалды.}}</translation> <translation id="9040473193163777637">ChromeOS-ке арналған ендірілген ChromeVox экранды оқу құралын іске қосқыңыз келе ме? Қосқыңыз келсе, екі дыбыс деңгейі пернесін бес секунд басып тұрыңыз.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> құпия сөзі жаңартылсын ба?</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index d90ce59..19f9a38 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -1260,6 +1260,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">បន្ថែម Wi-Fi...</translation> <translation id="2162155940152307086">ការធ្វើសមកាលកម្មនឹងចាប់ផ្ដើម បន្ទាប់ពីអ្នកចាកចេញពីការកំណត់ការធ្វើសមកាលកម្ម</translation> +<translation id="2162705204091149050">អានព័ត៌មានអំពីកម្មវិធីរុករកតាមអ៊ីនធឺណិត ប្រព័ន្ធប្រតិបត្តិការ ឧបករណ៍ កម្មវិធីដែលបានដំឡើង និងឯកសាររបស់អ្នក</translation> <translation id="2162926944953615670">មិនមានកម្រងព័ត៌មាន eSIM ទេ</translation> <translation id="2163470535490402084">សូមភ្ជាប់អ៊ីនធឺណិតដើម្បីចូល <ph name="DEVICE_TYPE" /> របស់អ្នក។</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> និងប៊ូតុងចុច 1 ទៀត</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">កម្មវិធីផ្សេងទៀតត្រូវបានកំណត់ឱ្យបើកតំណដូចគ្នានឹង <ph name="APP_NAME" />។ សកម្មភាពនេះនឹងបិទ <ph name="APP_NAME_2" /> និង <ph name="APP_NAME_3" /> មិនឱ្យបើកតំណដែលអាចប្រើបាន។</translation> <translation id="2667463864537187133">គ្រប់គ្រងការពិនិត្យអក្ខរាវិរុទ្ធ</translation> <translation id="2669241540496514785">មិនអាចបើក <ph name="APP_NAME" /> បានទេ</translation> +<translation id="2669454659051515572">អ្នកដែលប្រើប្រាស់ឧបករណ៍នេះអាចមើលឃើញឯកសារដែលបានទាញយក</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> កំពុងចែករំលែកផ្ទាំង Chrome</translation> <translation id="2670403088701171361">កុំអនុញ្ញាតឱ្យគេហទំព័រមើលឃើញអក្សរ ឬរូបភាពនៅលើឃ្លីបបតរបស់អ្នក</translation> <translation id="2670429602441959756">ទំព័រនេះផ្ទុកមុខងារដែលមិនទាន់ស្គាល់នៅក្នុង VR ។ កំពុងចាកចេញ...</translation> @@ -2146,7 +2148,7 @@ <translation id="2966937470348689686">គ្រប់គ្រងចំណូលចិត្ត Android</translation> <translation id="2967926928600500959">URL ដែលត្រូវនឹងវិធានទាំងនេះនឹងត្រូវបានបង្ខំឱ្យបើកនៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតជាក់លាក់។</translation> <translation id="2972581237482394796">ធ្វើវិញ</translation> -<translation id="2973324205039581528">បិទសំឡេងទំព័រ</translation> +<translation id="2973324205039581528">បិទសំឡេងគេហទំព័រ</translation> <translation id="2973537811036309675">ផ្ទាំងចំហៀង</translation> <translation id="2976557544729462544">ឧបករណ៍មួយចំនួនតម្រូវឱ្យអ្នកបិទការការពារការចូលប្រើទិន្នន័យ ដើម្បីដំណើរការបានត្រឹមត្រូវ ឬពេញលេញ។</translation> <translation id="2977480621796371840">លុបចេញពីក្រុម</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779">ដំណើរការឧបករណ៍របស់ Linux, កម្មវិធីកែ និង IDE នៅលើ <ph name="DEVICE_TYPE" /> របស់អ្នក។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation> <translation id="3008272652534848354">កំណត់ការអនុញ្ញាតឡើងវិញ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> តម្រូវឱ្យអ្នកភ្ជាប់ Wi-Fi នៅថ្ងៃនេះ ដើម្បីទាញយកកំណែថ្មី។ ឬទាញយកតាមរយៈការតភ្ជាប់ផ្អែកតាមទិន្នន័យដែលប្រើ (អាចមានការគិតថ្លៃ)។}other{<ph name="MANAGER" /> តម្រូវឱ្យអ្នកភ្ជាប់ Wi-Fi និងទាញយកកំណែថ្មី មុនថ្ងៃផុតកំណត់។ ឬទាញយកតាមរយៈការតភ្ជាប់ផ្អែកតាមទិន្នន័យដែលប្រើ (អាចមានការគិតថ្លៃ)។}}</translation> +<translation id="3009178788565917040">ទិន្នផល</translation> <translation id="3009300415590184725">តើអ្នកប្រាកដថាចង់បដិសេធដំណើរការតំឡើងសេវាកម្មទិន្នន័យទូរស័ព្ទទេ?</translation> <translation id="3009779501245596802">ទិន្នន័យមូលដ្ឋានដែលបានដាក់សន្ទស្សន៍</translation> <translation id="3010279545267083280">ពាក្យសម្ងាត់ត្រូវបានលុប</translation> @@ -2510,6 +2513,7 @@ <translation id="3359256513598016054">ឧបសគ្គគោលការណ៍វិញ្ញាបនប័ត្រ</translation> <translation id="3360297538363969800">ការបោះពុម្ពបានបរាជ័យ សូមពិនិត្យម៉ាស៊ីនបោះពុម្ពរបស់អ្នក ហើយព្យាយាមម្តងទៀត។</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> កំពុងចែករំលែក <ph name="ATTACHMENTS" /> ជាមួយអ្នក។}other{<ph name="DEVICE_NAME" /> កំពុងចែករំលែក <ph name="ATTACHMENTS" /> ជាមួយអ្នក។}}</translation> +<translation id="3363202073972776113">កម្រងព័ត៌មានថ្មីនេះនឹងត្រូវបានគ្រប់គ្រងដោយស្ថាប័នរបស់អ្នក។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> <translation id="3364986687961713424">ពីអ្នកគ្រប់គ្រងរបស់អ្នក៖ <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">ប្រើ Ctrl ឬ Alt</translation> <translation id="3368922792935385530">បានភ្ជាប់</translation> @@ -2544,6 +2548,7 @@ <translation id="339722927132407568">គាំង</translation> <translation id="3399432415385675819">ការជូនដំណឹងនឹងត្រូវបានបិទ</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - ប្រទាក់គ្នា</translation> +<translation id="3401484564516348917">អានព័ត៌មានអំពីកម្មវិធីរុករកតាមអ៊ីនធឺណិត ប្រព័ន្ធប្រតិបត្តិការ ឧបករណ៍ កម្មវិធីដែលបានដំឡើង តម្លៃចុះបញ្ជី និងឯកសាររបស់អ្នក</translation> <translation id="3402059702184703067">{COUNT,plural, =1{ពាក្យសម្ងាត់ {COUNT} ត្រូវបានរក្សាទុកនៅលើឧបករណ៍នេះ}other{ពាក្យសម្ងាត់ {COUNT} ត្រូវបានរក្សាទុកនៅលើឧបករណ៍នេះ}}</translation> <translation id="3402255108239926910">ជ្រើសរើសរូបតំណាង</translation> <translation id="3402585168444815892">កំពុងចុះឈ្មោះប្រើមុខងារសាកល្បង</translation> @@ -2790,6 +2795,7 @@ <translation id="3627879631695760395">ដំឡើង <ph name="APP" />...</translation> <translation id="3628275722731025472">បិទប៊្លូធូស</translation> <translation id="3629631988386925734">បញ្ចូលពាក្យសម្ងាត់របស់អ្នកដើម្បីបើក Smart Lock ។ លើកក្រោយ ទូរសព្ទរបស់អ្នកនឹងដោះសោ <ph name="DEVICE_TYPE" /> របស់អ្នក។ អ្នកអាចបិទ Smart Lock នៅក្នុងការកំណត់។</translation> +<translation id="3629664892718440872">ចងចាំជម្រើសនេះ</translation> <translation id="3630132874740063857">ទូរសព្ទរបស់អ្នក</translation> <translation id="3630995161997703415">បញ្ចូលទំព័រនេះទៅធ្នើររបស់អ្នក ដើម្បីប្រើវាបានគ្រប់ពេល</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ការអនុញ្ញាតឱ្យឧបករណ៍ ChromeOS របស់អ្នកផ្ញើរបាយការណ៍ដោយស្វ័យប្រវត្តិជួយយើងក្នុងការផ្ដល់អាទិភាពលើអ្វីដែលត្រូវដោះស្រាយ និងកែលម្អនៅក្នុង ChromeOS។ របាយការណ៍ទាំងនេះអាចរួមមានអ្វីៗដូចជា ពេលវេលាដែល ChromeOS គាំង, មុខងារដែលអ្នកប្រើ និងកម្រិតអង្គចងចាំដែលអ្នកប្រើជាទូទៅ។<ph name="END_PARAGRAPH1" /> @@ -3279,6 +3285,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">បានបដិសេធសិទ្ធិគ្រប់គ្រងពេញលេញលើឧបករណ៍ MIDI</translation> +<translation id="4087328411748538168">បង្ហាញនៅខាងស្តាំ</translation> <translation id="4089235344645910861">បានរក្សាទុកការកំណត់។ បានចាប់ផ្ដើមសមកាលកម្ម។</translation> <translation id="4090103403438682346">បើកដំណើរការចូលប្រើដែលបានផ្ទៀងផ្ទាត់</translation> <translation id="4090947011087001172">កំណត់ការអនុញ្ញាតគេហទំព័រឡើងវិញសម្រាប់ <ph name="SITE" />?</translation> @@ -3563,6 +3570,7 @@ <translation id="4377058670119819762">បើករបារផ្ទាំង ដើម្បីរំកិលទៅឆ្វេង និងទៅស្ដាំ នៅពេលពេញ។</translation> <translation id="4377363674125277448">មានបញ្ហាអ្វីមួយជាមួយវិញ្ញាបនប័ត្រម៉ាស៊ីនមេ។</translation> <translation id="4378154925671717803">ទូរស័ព្ទ</translation> +<translation id="4378308539633073595">រំកិលទៅមុខ</translation> <translation id="4378551569595875038">កំពុងភ្ជាប់...</translation> <translation id="4378556263712303865">ការទទួលបានឧបករណ៍</translation> <translation id="4379281552162875326">លុប "<ph name="APP_NAME" />" ឬ?</translation> @@ -3972,6 +3980,7 @@ <translation id="4779766576531456629">ប្ដូរឈ្មោះបណ្ដាញចល័ត eSIM</translation> <translation id="4780321648949301421">រក្សាទុកទំព័រជា...</translation> <translation id="4781443161433589743">អ្នកកំពុងប្រើសុវត្ថិភាពខ្លាំងបំផុតរបស់ Chrome</translation> +<translation id="4782861709165039462">មីក្រូហ្វូនទាំងអស់ត្រូវបានបិទដោយប៊ូតុងបិទបើកហាតវែររបស់ឧបករណ៍</translation> <translation id="4785719467058219317">អ្នកកំពុងប្រើសោសុវត្ថិភាពដែលមិនបានចុះឈ្មោះជាមួយគេហទំព័រនេះ</translation> <translation id="4785914069240823137">បោះបង់ការច្រឹប</translation> <translation id="4788092183367008521">សូមពិនិត្យមើលការតភ្ជាប់បណ្ដាញរបស់អ្នក រួចព្យាយាមម្ដងទៀត។</translation> @@ -4738,6 +4747,7 @@ <translation id="5548075230008247516">បានដកការជ្រើសរើសធាតុទាំងអស់ បានចាកចេញពីមុខងារជ្រើសរើស។</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" និងផ្ទាំង 1 ទៀត}other{"<ph name="TAB_TITLE" />" និងផ្ទាំង # ទៀត}}</translation> <translation id="5548606607480005320">ការពិនិត្យសុវត្ថិភាព</translation> +<translation id="5548644592758170183">បង្ហាញនៅខាងឆ្វេង</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">ក្ដារចុច និងការបញ្ចូលអត្ថបទ</translation> <translation id="5553089923092577885">ការកំណត់ទីតាំងគោលការណ៍វិញ្ញាបនប័ត្រ</translation> @@ -7366,6 +7376,7 @@ <translation id="8120505434908124087">ដំឡើងកម្រងព័ត៌មាន eSIM</translation> <translation id="812260729110117038">អ្នកផ្សាយពាណិជ្ជកម្ម និងអ្នកបោះពុម្ពផ្សាយអាចសិក្សាអំពីប្រសិទ្ធភាពនៃការផ្សាយពាណិជ្ជកម្មក្នុងរបៀបមួយដែលមិនតាមដានអ្នកនៅលើគេហទំព័រនានា។</translation> <translation id="81238879832906896">ផ្កាពណ៌លឿង និងពណ៌ស</translation> +<translation id="8123975449645947908">រំកិលថយក្រោយ</translation> <translation id="8124313775439841391">ONC គ្រប់គ្រង</translation> <translation id="813082847718468539">មើលព័ត៌មានគេហទំព័រ</translation> <translation id="8131740175452115882">អះអាង</translation> @@ -8222,6 +8233,7 @@ <translation id="8980345560318123814">របាយការណ៍អំពីមតិកែលម្អ</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - បានគាំង</translation> <translation id="8981825781894055334">ជិតអស់ក្រដាសហើយ</translation> +<translation id="8983018820925880511">កម្រងព័ត៌មានថ្មីនេះនឹងត្រូវបានគ្រប់គ្រងដោយ <ph name="DOMAIN" />។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> អាចកែ <ph name="FILENAME" /></translation> <translation id="8984694057134206124">អ្នកគ្រប់គ្នានឹងអាចមើលឃើញអ្នករយៈពេល <ph name="MINUTES" /> នាទី។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation> <translation id="8985191021574400965">សូមស្វាគមន៍មកកាន់ Steam សម្រាប់ Chromebook</translation> @@ -8282,6 +8294,7 @@ <translation id="9037640663275993951">មិនអនុញ្ញាតឧបករណ៍ទេ</translation> <translation id="9037818663270399707">ការតភ្ជាប់របស់អ្នកមិនមានលក្ខណៈឯកជនសម្រាប់ចរាចរណ៍បណ្ដាញទាំងអស់ទេ</translation> <translation id="9037965129289936994">បង្ហាញប្រភពដើម</translation> +<translation id="9038489124413477075">ថតឯកសារដែលមិនបានដាក់ឈ្មោះ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{អ្នកអាចបញ្ចូលបានតែម្ដងទៀតប៉ុណ្ណោះ។}other{អ្នកអាចបញ្ចូលបានតែ # ដងទៀតប៉ុណ្ណោះ។}}</translation> <translation id="9040473193163777637">តើអ្នកចង់បើកដំណើរការ ChromeVox ដែលជាកម្មវិធីអានអេក្រង់ភ្ជាប់មកជាមួយស្រាប់សម្រាប់ ChromeOS ដែរទេ? ប្រសិនបើដូច្នេះមែន សូមចុចគ្រាប់ចុចកម្រិតសំឡេងទាំងពីរឱ្យជាប់រយៈពេលប្រាំវិនាទី។</translation> <translation id="9040661932550800571">ធ្វើបច្ចុប្បន្នភាពពាក្យសម្ងាត់សម្រាប់ <ph name="ORIGIN" />?</translation> @@ -8318,6 +8331,7 @@ <translation id="9075413375877487220">ការរុករកដោយសុវត្ថិភាពបន្ថែមមិនជឿទុកចិត្តលើកម្មវិធីបន្ថែមនេះទេ។</translation> <translation id="9076283476770535406">វាអាចផ្ទុកមាតិកាសម្រាប់មនុស្សធំ</translation> <translation id="9076523132036239772">សូមអភ័យទោស អ៊ីម៉ែល ឬពាក្យសម្ងាត់របស់អ្នកមិនអាចត្រូវបានផ្ទៀងផ្ទាត់ទេ។ ព្យាយាមភ្ជាប់ទៅបណ្តាញដំបូង។</translation> +<translation id="9076821103818989526">ផ្ទាំងចំហៀង</translation> <translation id="9076977315710973122">ការចែករំលែក SMB</translation> <translation id="9078193189520575214">កំពុងអនុវត្តការផ្លាស់ប្ដូរ...</translation> <translation id="9078316009970372699">បិទការភ្ជាប់ភ្លាមៗ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 5e5db9fd..9349bbd 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -1273,6 +1273,7 @@ <translation id="2180620921879609685">ಯಾವುದೇ ಪುಟದಲ್ಲಿನ ವಿಷಯವನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="2182058453334755893">ನಿಮ್ಮ ಕ್ಲಿಪ್ಬೋರ್ಡ್ಗೆ ನಕಲಿಸಲಾಗಿದೆ</translation> <translation id="2184515124301515068">ಯಾವ ಸೈಟ್ಗಳು ಧ್ವನಿಯನ್ನು ಪ್ಲೇ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು Chrome ಆಯ್ಕೆ ಮಾಡಲಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">ಮತ್ತೊಂದು ಸಾಧನದಿಂದ ಪುಟವನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ</translation> <translation id="2187675480456493911">ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಇತರ ಸಾಧನಗಳ ಜೊತೆಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ. ಇತರ ಬಳಕೆದಾರರು ಮಾರ್ಪಡಿಸಿದ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡುವುದಿಲ್ಲ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation> <translation id="2187895286714876935">ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರದ ಆಮದು ದೋಷ</translation> @@ -1805,6 +1806,7 @@ <translation id="2667144577800272420">ಇತರ ಆ್ಯಪ್ಗಳನ್ನು <ph name="APP_NAME" /> ನಂತೆಯೇ ಲಿಂಕ್ ತೆರೆಯಲು ಸೆಟ್ ಮಾಡಲಾಗಿದೆ. ಇದು <ph name="APP_NAME_2" /> ಮತ್ತು <ph name="APP_NAME_3" /> ಆ್ಯಪ್ನ ಬೆಂಬಲಿತ ಲಿಂಕ್ಗಳು ತೆರೆಯುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.</translation> <translation id="2667463864537187133">ಕಾಗುಣಿತ ಪರಿಶೀಲನೆ ನಿರ್ವಹಿಸಿ</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> +<translation id="2669454659051515572">ಈ ಸಾಧನವನ್ನು ಬಳಸುವ ಯಾರಾದರೂ ಡೌನ್ಲೋಡ್ ಮಾಡಿರುವ ಫೈಲ್ಗಳನ್ನು ನೋಡಬಹುದು</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation> <translation id="2670403088701171361">ನಿಮ್ಮ ಕ್ಲಿಪ್ಬೋರ್ಡ್ನಲ್ಲಿ ಪಠ್ಯ ಅಥವಾ ಚಿತ್ರಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಬೇಡಿ</translation> <translation id="2670429602441959756">VR ನಲ್ಲಿ ಇನ್ನೂ ಬೆಂಬಲಿಸದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಈ ಪುಟವು ಒಳಗೊಂಡಿದೆ. ನಿರ್ಗಮಿಸುತ್ತಿದೆ...</translation> @@ -2171,6 +2173,7 @@ <translation id="3008232374986381779">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Linux ಪರಿಕರಗಳು, ಎಡಿಟರ್ಗಳು ಮತ್ತು IDE ಗಳನ್ನು ರನ್ ಮಾಡಿ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ಅನುಮತಿಗಳನ್ನು ಮರುಹೊಂದಿಸಿ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು, ನೀವು ಇಂದೇ ವೈ-ಫೈಗೆ ಕನೆಕ್ಟ್ ಮಾಡಬೇಕೆಂದು <ph name="MANAGER" /> ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಕನೆಕ್ಷನ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}one{ಗಡುವಿನ ಮೊದಲು ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು, ನೀವು ಇಂದೇ ವೈ-ಫೈಗೆ ಕನೆಕ್ಟ್ ಮಾಡಬೇಕೆಂದು <ph name="MANAGER" /> ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಕನೆಕ್ಷನ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}other{ಗಡುವಿನ ಮೊದಲು ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು, ನೀವು ಇಂದೇ ವೈ-ಫೈಗೆ ಕನೆಕ್ಟ್ ಮಾಡಬೇಕೆಂದು <ph name="MANAGER" /> ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಕನೆಕ್ಷನ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}}</translation> +<translation id="3009178788565917040">ಔಟ್ಪುಟ್</translation> <translation id="3009300415590184725">ಮೊಬೈಲ್ ಡೇಟಾ ಸೇವೆಯ ಪ್ರಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> <translation id="3009779501245596802">ಸೂಚ್ಯಂಕಗೊಳಿಸಿದ ಡೇಟಾಬೇಸ್ಗಳು</translation> <translation id="3010279545267083280">ಪಾಸ್ವರ್ಡ್ ಅಳಿಸಲಾಗಿದೆ</translation> @@ -3559,6 +3562,7 @@ <translation id="4377058670119819762">ಪೂರ್ಣಗೊಂಡ ನಂತರ ಎಡಕ್ಕೆ ಮತ್ತು ಬಲಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಲು ಟ್ಯಾಬ್ ಸ್ಟ್ರೈಪ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.</translation> <translation id="4377363674125277448">ಸರ್ವರ್ನ ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ.</translation> <translation id="4378154925671717803">ಫೋನ್</translation> +<translation id="4378308539633073595">ಮುಂದಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ</translation> <translation id="4378551569595875038">ಕನೆಕ್ಟ್...</translation> <translation id="4378556263712303865">ಸಾಧನದ ನಿಯೋಜನೆ</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕೆ?</translation> @@ -3935,7 +3939,7 @@ <translation id="4742334355511750246">ಚಿತ್ರಗಳನ್ನು ತೋರಿಸಲು ಈ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="4742970037960872810">ಹೈಲೈಟ್ ತೆಗೆದುಹಾಕಿ</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{ಸೈಟ್ ಅನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}one{ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}other{ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{ಸೈಟ್ ಅನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}one{ಸೈಟ್ ಅನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}other{ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}}</translation> <translation id="474609389162964566">"Ok Google" ಎಂದು ಎಚ್ಚರಿಸುವ ಮೂಲಕ ನಿಮ್ಮ Assistant ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation> <translation id="4746351372139058112">Messages</translation> <translation id="4748783296226936791">ಅಸಹಜ ಕೀಬೋರ್ಡ್ಗಳು, ಗೇಮ್ ಕಂಟ್ರೋಲರ್ಗಳು ಮತ್ತು ಇತರ ಸಾಧನಗಳನ್ನು ಬಳಸುವ ಫೀಚರ್ಗಳಿಗಾಗಿ ಸೈಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ HID ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಆಗುತ್ತವೆ</translation> @@ -4171,7 +4175,7 @@ <translation id="4972129977812092092">ಪ್ರಿಂಟರ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="4972164225939028131">ಪಾಸ್ವರ್ಡ್ ತಪ್ಪಾಗಿದೆ</translation> <translation id="4972737347717125191">ಸೈಟ್ಗಳು, ವರ್ಚುವಲ್ ರಿಯಾಲಿಟಿ ಸಾಧನಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಬಳಸಲು ಕೇಳಬಹುದು</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{ಸೈಟ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}one{ಸೈಟ್ಗಳನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}other{ಸೈಟ್ಗಳನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{ಸೈಟ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}one{ಸೈಟ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}other{ಸೈಟ್ಗಳನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ}}</translation> <translation id="497403230787583386">ಭದ್ರತೆ ಪರಿಶೀಲನೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ. ನಿಮ್ಮ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation> <translation id="4977942889532008999">ಪ್ರವೇಶ ದೃಢೀಕರಿಸಿ</translation> @@ -7363,6 +7367,7 @@ <translation id="8120505434908124087">eSIM ಪ್ರೊಫೈಲ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="812260729110117038">ಸೈಟ್ಗಳಾದ್ಯಂತ ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡದ ರೀತಿಯಲ್ಲಿ ಜಾಹೀರಾತುಗಳ ಪರಿಣಾಮಕಾರಿತ್ವವನ್ನು ಜಾಹೀರಾತುದಾರರು ಮತ್ತು ಪ್ರಕಾಶಕರು ಅಧ್ಯಯನ ಮಾಡಬಹುದು.</translation> <translation id="81238879832906896">ಹಳದಿ ಮತ್ತು ಬಿಳಿ ಹೂ</translation> +<translation id="8123975449645947908">ಹಿಂದಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ</translation> <translation id="8124313775439841391">ನಿರ್ವಹಿಸಲಾದ ONC</translation> <translation id="813082847718468539">ಸೈಟ್ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಿ</translation> <translation id="8131740175452115882">ದೃಢೀಕರಿಸು</translation> @@ -8280,6 +8285,7 @@ <translation id="9037640663275993951">ಸಾಧನವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation> <translation id="9037818663270399707">ಎಲ್ಲಾ ನೆಟ್ವರ್ಕ್ ಟ್ರಾಫಿಕ್ಗೆ ನಿಮ್ಮ ಕನೆಕ್ಷನ್ ಖಾಸಗಿಯಾಗಿಲ್ಲ</translation> <translation id="9037965129289936994">ಮೂಲವನ್ನು ತೋರಿಸು</translation> +<translation id="9038489124413477075">ಹೆಸರಿಸದ ಫೋಲ್ಡರ್</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ನೀವು ಇನ್ನೂ ಒಂದು ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}one{ನೀವು ಇನ್ನೂ # ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}other{ನೀವು ಇನ್ನೂ # ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}}</translation> <translation id="9040473193163777637">ChromeVox, ChromeOS ಗಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ಸ್ಕ್ರೀನ್ ರೀಡರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಹಾಗಿದ್ದರೆ, ಐದು ಸೆಕೆಂಡ್ಗಳ ಕಾಲ ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> ಗಾಗಿ ಪಾಸ್ವರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index e97c080..30d1b46 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1280,6 +1280,7 @@ <translation id="2180620921879609685">모든 페이지에서 콘텐츠 차단</translation> <translation id="2182058453334755893">클립보드에 복사됨</translation> <translation id="2184515124301515068">사이트의 소리 재생 여부를 Chrome이 결정(권장)</translation> +<translation id="2186206192313702726">Google 렌즈</translation> <translation id="2186711480981247270">다른 기기에서 공유된 페이지</translation> <translation id="2187675480456493911">계정에 연결된 다른 기기와 동기화되어 있습니다. 다른 사용자가 수정한 설정은 동기화되지 않습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation> <translation id="2187895286714876935">서버 인증서 가져오기 오류</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">다른 앱이 <ph name="APP_NAME" /> 앱과 같은 링크를 열도록 설정되었습니다. <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> 앱은 지원되는 링크를 열지 못하게 됩니다.</translation> <translation id="2667463864537187133">맞춤법 검사 관리</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> 앱을 열 수 없음</translation> +<translation id="2669454659051515572">이 기기를 사용하는 누구나 다운로드된 파일을 볼 수 있습니다.</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />이(가) Chrome 탭을 공유합니다.</translation> <translation id="2670403088701171361">사이트에서 클립보드에 저장된 텍스트 또는 이미지를 확인하도록 허용하지 않음</translation> <translation id="2670429602441959756">이 페이지에는 아직 VR에서 지원되지 않는 기능이 있습니다. 종료합니다...</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" />에서 Linux 도구, 편집기, IDE를 실행합니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation> <translation id="3008272652534848354">권한 재설정</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" />에서 오늘 Wi-Fi에 연결하거나 종량제 연결(요금이 부과될 수 있음)을 통해 업데이트를 다운로드할 것을 요청합니다.}other{<ph name="MANAGER" />에서 기한 전에 Wi-Fi에 연결하거나 종량제 연결(요금이 부과될 수 있음)을 통해 업데이트를 다운로드할 것을 요청합니다.}}</translation> +<translation id="3009178788565917040">출력</translation> <translation id="3009300415590184725">모바일 데이터 서비스 설정 과정을 취소하시겠습니까?</translation> <translation id="3009779501245596802">색인화된 데이터베이스</translation> <translation id="3010279545267083280">비밀번호 삭제됨</translation> @@ -3565,6 +3568,7 @@ <translation id="4377058670119819762">탭 표시줄이 탭으로 가득 찼을 때 좌우로 스크롤할 수 있도록 합니다.</translation> <translation id="4377363674125277448">서버의 인증서에 문제가 발생했습니다.</translation> <translation id="4378154925671717803">전화기</translation> +<translation id="4378308539633073595">앞으로 스크롤</translation> <translation id="4378551569595875038">연결 중...</translation> <translation id="4378556263712303865">기기 요청</translation> <translation id="4379281552162875326">‘<ph name="APP_NAME" />’ 앱을 제거하시겠습니까?</translation> @@ -3942,7 +3946,7 @@ <translation id="4742334355511750246">이미지 표시가 허용되지 않음</translation> <translation id="4742970037960872810">강조표시 삭제</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />애플리케이션 업데이트 방법 알아보기<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{사이트 숨기기 취소}other{사이트 숨기기 취소}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{사이트 음소거 취소}other{사이트 음소거 취소}}</translation> <translation id="474609389162964566">"Hey Google"로 어시스턴트에 액세스</translation> <translation id="4746351372139058112">메시지</translation> <translation id="4748783296226936791">사이트에서는 흔히 사용되지 않는 키보드, 게임 컨트롤러, 기타 기기가 필요한 기능을 지원하기 위해 주로 HID 기기에 연결합니다.</translation> @@ -4177,7 +4181,7 @@ <translation id="4972129977812092092">프린터 수정</translation> <translation id="4972164225939028131">잘못된 비밀번호</translation> <translation id="4972737347717125191">사이트에서 가상 현실 기기 및 데이터의 사용을 요청할 수 있음</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{사이트 숨기기}other{사이트 숨기기}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{사이트 음소거}other{사이트 음소거}}</translation> <translation id="497403230787583386">보안 확인이 완료되었습니다. 문서가 인쇄됩니다.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation> <translation id="4977942889532008999">액세스 확인</translation> @@ -7370,6 +7374,7 @@ <translation id="8120505434908124087">eSIM 프로필 설치</translation> <translation id="812260729110117038">광고주와 게시자는 사이트 전반에서 사용자를 추적하지 않는 방식으로 광고의 효과를 연구할 수 있습니다.</translation> <translation id="81238879832906896">노란색과 흰색 꽃</translation> +<translation id="8123975449645947908">뒤로 스크롤</translation> <translation id="8124313775439841391">관리되는 ONC</translation> <translation id="813082847718468539">사이트 정보 보기</translation> <translation id="8131740175452115882">확인</translation> @@ -8286,6 +8291,7 @@ <translation id="9037640663275993951">허용되지 않는 기기입니다.</translation> <translation id="9037818663270399707">연결이 일부 네트워크 트래픽에 비공개로 설정되어 있지 않습니다.</translation> <translation id="9037965129289936994">원본 보기</translation> +<translation id="9038489124413477075">이름이 없는 폴더</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{앞으로 1번 더 시도할 수 있습니다.}other{앞으로 #번 더 시도할 수 있습니다.}}</translation> <translation id="9040473193163777637">ChromeOS 내장 스크린 리더인 ChromeVox를 활성화하시겠습니까? 활성화하려면 볼륨 키 2개를 5초 동안 동시에 길게 누르세요.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> 비밀번호를 업데이트하시겠습니까?</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index b3abb2e..081b53b 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -1814,6 +1814,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> ачкан шилтемелерди башка колдонмолор да ача алышат. Колдоого алынган шилтемелерди <ph name="APP_NAME_2" /> жана <ph name="APP_NAME_3" /> ача албай калат.</translation> <translation id="2667463864537187133">Орфографиялык текшерүүнү башкаруу</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ачылбай жатат</translation> +<translation id="2669454659051515572">Бул түзмөктү колдонгондордун баары жүктөлүп алынган файлдарды көрө алышат</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> колдонмосу Chrome өтмөгүн бөлүшүп жатат.</translation> <translation id="2670403088701171361">Сайттар алмашуу буфериңиздеги текстти же сүрөттөрдү көрө албасын</translation> <translation id="2670429602441959756">Бул барак VR режиминде колдоого алына элек функцияларды камтыйт. VR режиминен чыгууда...</translation> @@ -1824,7 +1825,7 @@ <translation id="2678063897982469759">Кайра иштетүү</translation> <translation id="268053382412112343">Та&ржымал</translation> <translation id="2681124317993121768">Конок профилдер колдоого алынбайт</translation> -<translation id="2682498795777673382">Ата-эненин жаңыртуусу</translation> +<translation id="2682498795777673382">Ата-энең параметрлерди өзгөрттү</translation> <translation id="2683638487103917598">Папка ылганды</translation> <translation id="2684004000387153598">Улантуу үчүн "Макул" дегенге тийиңиз да, "Адам кошуу" баскычын чыкылдатып, электрондук почта дарегиңиз үчүн жаңы профиль түзүп алыңыз.</translation> <translation id="2687403674020088961">Бардык cookie файлдарды бөгөттөө (сунушталбайт)</translation> @@ -2147,7 +2148,7 @@ <translation id="2966937470348689686">Android жеке жөндөөлөрүн башкаруу</translation> <translation id="2967926928600500959">Бул эрежелерге туура келген URL'дер белгилүү бир серепчиде мажбурланып ачылат.</translation> <translation id="2972581237482394796">&Кайталоо</translation> -<translation id="2973324205039581528">Сайттын үнүн өчүрүү</translation> +<translation id="2973324205039581528">Сайттын үнүн басуу</translation> <translation id="2973537811036309675">Капталдагы тилке</translation> <translation id="2976557544729462544">Айрым түзмөктөрдүн туура иштеши же майнаптуулугун жогорулатуу үчүн дайын-даректерге кирүүнү коргоо функциясын өчүрүү талап кылынат.</translation> <translation id="2977480621796371840">Топтон алып салуу</translation> @@ -2181,6 +2182,7 @@ <translation id="3008232374986381779">Linux куралдарын, түзөткүчтөрдү жана бирдиктүү колдонмо тутумдарын иштеп чыгуу куралдарын Chromebook <ph name="DEVICE_TYPE" /> түзмөгүңүздө иштетиңиз. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Уруксаттарды өзгөртүү</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> Wi-Fi тармагына бүгүн туташып, жаңыртууну жүктөп алууну талап кылууда. Же болбосо, трафиги чектелген Интернет аркылуу жүктөп алыңыз (акы алынышы мүмкүн).}other{<ph name="MANAGER" /> Wi-Fi тармагына туташып, жаңыртууну мөөнөтү бүткөнгө чейин жүктөп алууну талап кылууда. Же болбосо, трафиги чектелген Интернет аркылуу жүктөп алыңыз (акы алынышы мүмкүн).}}</translation> +<translation id="3009178788565917040">Чыгаруу</translation> <translation id="3009300415590184725">Мобилдик дайындар кызматын орнотуу процессин чын эле жокко чыгаргыңыз келеби?</translation> <translation id="3009779501245596802">Индекстелген дайындар базалары</translation> <translation id="3010279545267083280">Сырсөз өчүрүлдү</translation> @@ -3568,6 +3570,7 @@ <translation id="4377058670119819762">Өтмөктөр тактасы толгондо аны солго же оңго сыдырууну иштетет.</translation> <translation id="4377363674125277448">Сервердин тастыктамасында көйгөй келип чыкты.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Алдыга сыдыруу</translation> <translation id="4378551569595875038">Туташууда…</translation> <translation id="4378556263712303865">Түзмөктүн сурамдары</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" чыгарылсынбы?</translation> @@ -7372,6 +7375,7 @@ <translation id="8120505434908124087">eSIM-карта профилин орнотуу</translation> <translation id="812260729110117038">Жарнамачылар жана жарыялоочулар жарнамалардын майнаптуулугун сайттардагы аракеттериңизге көз салбастан изилдей алышат.</translation> <translation id="81238879832906896">Сары ала гүл</translation> +<translation id="8123975449645947908">Артка сыдыруу</translation> <translation id="8124313775439841391">Башкарылган ONC</translation> <translation id="813082847718468539">Сайттын маалыматын карап көрүү</translation> <translation id="8131740175452115882">Ырастоо</translation> @@ -8288,6 +8292,7 @@ <translation id="9037640663275993951">Түзмөккө уруксат жок</translation> <translation id="9037818663270399707">Туташууңуз тармактагы трафик үчүн купуя эмес</translation> <translation id="9037965129289936994">Түпкү бетин көрсөтүү</translation> +<translation id="9038489124413477075">Аты жок куржун</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Дагы бир жолу аракет кыла аласыз.}other{# жолу аракет кыла аласыз.}}</translation> <translation id="9040473193163777637">ChromeOS тутумуна кыстарылган экрандагы нерсени окуп берүүчү ChromeVox куралын иштетесизби? Иштетсеңиз, үн баскычтарын 5 секунд коё бербей басып туруңуз.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> үчүн сырсөз жаңыртылсынбы?</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index 68be816..55473ff 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -1810,6 +1810,7 @@ <translation id="2667144577800272420">ແອັບອື່ນໆຖືກຕັ້ງໃຫ້ເປີດລິ້ງດຽວກັນເປັນ <ph name="APP_NAME" />. ນີ້ຈະປິດການນຳໃຊ້ <ph name="APP_NAME_2" /> ແລະ <ph name="APP_NAME_3" /> ບໍ່ໃຫ້ເປີດລິ້ງທີ່ຮອງຮັບ.</translation> <translation id="2667463864537187133">ຈດການການກວດການສະກົດຄຳ</translation> <translation id="2669241540496514785">ບໍ່ສາມາດເປີດ <ph name="APP_NAME" /> ໄດ້</translation> +<translation id="2669454659051515572">ໃຜກໍຕາມທີ່ໃຊ້ອຸປະກອນນີ້ຈະສາມາດເບິ່ງເຫັນໄຟລ໌ທີ່ດາວໂຫຼດແລ້ວໄດ້</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> ກຳລັງແບ່ງປັນແຖບ Chrome.</translation> <translation id="2670403088701171361">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊເບິ່ງເຫັນຂໍ້ຄວາມ ຫຼື ຮູບຢູ່ຄລິບບອດຂອງທ່ານໄດ້</translation> <translation id="2670429602441959756">ໜ້ານີ້ປະກອບມີຄຸນສົມບັດທີ່ຍັງບໍ່ທັນມີການຮອງຮັບໃນ VR ເທື່ອ. ກຳລັງອອກ...</translation> @@ -2143,7 +2144,7 @@ <translation id="2966937470348689686">ຈັດການການຕັ້ງຄ່າ Android</translation> <translation id="2967926928600500959">URL ທີ່ກົງກັບກົດລະບຽບເຫຼົ່ານີ້ຈະຖືກບັງຄັບໃຫ້ເປີດໃນໂປຣແກຣມທ່ອງເວັບສະເພາະ.</translation> <translation id="2972581237482394796">ເຮັດຄືນ</translation> -<translation id="2973324205039581528">ປິດເວັບໄຊ</translation> +<translation id="2973324205039581528">ປິດສຽງເວັບໄຊ</translation> <translation id="2973537811036309675">ແຜງຄວບຄຸມດ້ານຂ້າງ</translation> <translation id="2976557544729462544">ອຸປະກອນບາງຢ່າງຕ້ອງການໃຫ້ທ່ານປິດການນຳໃຊ້ການປົກປ້ອງການເຂົ້າເຖິງຂໍ້ມູນເພື່ອໃຫ້ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ ຫຼື ເຕັມປະສິດທິພາບ.</translation> <translation id="2977480621796371840">ລຶບອອກຈາກກຸ່ມ</translation> @@ -2177,6 +2178,7 @@ <translation id="3008232374986381779">ເປີດເຄື່ອງມື Linux, ຕົວແກ້ໄຂ ແລະ IDE ໃນ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ຣີເຊັດການອະນຸຍາດ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> ກຳນົດໃຫ້ທ່ານເຊື່ອມຕໍ່ກັບ Wi-Fi ມື້ນີ້ເພື່ອດາວໂຫຼດການອັບເດດ. ຫຼື ດາວໂຫຼດຈາກການເຊື່ອມຕໍ່ແບບວັດແທກປະລິມານອິນເຕີເນັດ (ອາດເກັບຄ່າບໍລິການ).}other{<ph name="MANAGER" /> ກຳນົດໃຫ້ທ່ານເຊື່ອມຕໍ່ກັບ Wi-Fi ແລະ ດາວໂຫຼດການອັບເດດກ່ອນເວລາທີ່ກຳນົດໄວ້. ຫຼື ດາວໂຫຼດຈາກການເຊື່ອມຕໍ່ແບບວັດແທກປະລິມານອິນເຕີເນັດ (ອາດເກັບຄ່າບໍລິການ).}}</translation> +<translation id="3009178788565917040">ຜົນອອກມາ</translation> <translation id="3009300415590184725">ທ່ານແນ່ໃຈບໍ່ວ່າ ທ່ານຕ້ອງການຍົກເລີກຂະບວນການຕັ້ງການບໍລິການຂໍ້ມູນມືຖື?</translation> <translation id="3009779501245596802">ຖານຂໍ້ມູນເຂົ້າດັດຊະນີແລ້ວ</translation> <translation id="3010279545267083280">ລຶບລະຫັດຜ່ານແລ້ວ</translation> @@ -3560,6 +3562,7 @@ <translation id="4377058670119819762">ເປີດການນຳໃຊ້ລາຍແຖບເພື່ອເລື່ອນຊ້າຍ ແລະ ຂວາເມື່ອເຕັມ.</translation> <translation id="4377363674125277448">ມີບັນຫາກັບໃບຢັ້ງຢືນຂອງເຊີບເວີ.</translation> <translation id="4378154925671717803">ໂທລະສັບ</translation> +<translation id="4378308539633073595">ເລື່ອນໄປໜ້າ</translation> <translation id="4378551569595875038">ກໍາລັງເຊື່ອມຕໍ່ ...</translation> <translation id="4378556263712303865">ຂໍ້ກຳນົດຂອງອຸປະກອນ</translation> <translation id="4379281552162875326">ຖອນການຕິດຕັ້ງ "<ph name="APP_NAME" />" ບໍ?</translation> @@ -7359,6 +7362,7 @@ <translation id="8120505434908124087">ຕິດຕັ້ງໂປຣໄຟລ໌ eSIM</translation> <translation id="812260729110117038">ຜູ້ໂຄສະນາ ແລະ ຜູ້ເຜີຍແຜ່ສາມາດສຶກສາປະສິດທິຜົນຂອງໂຄສະນາໃນແບບທີ່ບໍ່ຕິດຕາມທ່ານຂ້າມເວັບໄຊໄດ້.</translation> <translation id="81238879832906896">ດອກໄມ້ສີເຫຼືອງ ແລະ ສີຂາວ</translation> +<translation id="8123975449645947908">ເລື່ອນກັບຫຼັງ</translation> <translation id="8124313775439841391">ONC ຈັດການແລ້ວ</translation> <translation id="813082847718468539">ເບິ່ງຂໍ້ມູນເວັບໄຊທ໌</translation> <translation id="8131740175452115882">ຢືນຢັນ</translation> @@ -8274,6 +8278,7 @@ <translation id="9037640663275993951">ບໍ່ອະນຸຍາດອຸປະກອນ</translation> <translation id="9037818663270399707">ການເຊື່ອມຕໍ່ຂອງທ່ານບໍ່ເປັນສ່ວນຕົວສຳລັບການຮັບສົ່ງຂໍ້ມູນໃນເຄືອຂ່າຍທັງໝົດ</translation> <translation id="9037965129289936994">ສະແດງຕົ້ນສະບັບ</translation> +<translation id="9038489124413477075">ໂຟລເດີບໍ່ມີຊື່</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ທ່ານຍັງເຫຼືອຄວາມພະຍາຍາມອີກໜຶ່ງຄັ້ງ.}other{ທ່ານຍັງເຫຼືອຄວາມພະຍາຍາມອີກ # ຄັ້ງ.}}</translation> <translation id="9040473193163777637">ທ່ານຕ້ອງການເປີດນຳໃຊ້ ChromeVox, ໂປຣແກຣມອ່ານໜ້າຈໍໃນຕົວສຳລັບ ChromeOS ບໍ? ຖ້າຕ້ອງການ, ກະລຸນາກົດປຸ່ມລະດັບສຽງທັງສອງຄ້າງໄວ້ເປັນເວລາຫ້າວິນາທີ.</translation> <translation id="9040661932550800571">ອັບເດດລະຫັດຜ່ານສຳລັບ <ph name="ORIGIN" /> ບໍ?</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index c724dc63..53ad43f 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1263,6 +1263,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Pridėti „Wi-Fi“...</translation> <translation id="2162155940152307086">Sinchronizavimas bus pradėtas, kai išeisite iš sinchronizavimo nustatymų</translation> +<translation id="2162705204091149050">Skaityti informaciją apie jūsų naršyklę, OS, įrenginį, įdiegtą programinę įrangą ir failus</translation> <translation id="2162926944953615670">Nėra pasiekiamų „eSIM“ kortelės profilių</translation> <translation id="2163470535490402084">Prisijunkite prie interneto, kad galėtumėte prisijungti prie „<ph name="DEVICE_TYPE" />“.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ir dar vienas jungiklis</translation> @@ -1816,6 +1817,7 @@ <translation id="2667144577800272420">Kitos programos nustatytos atidaryti tas pačias nuorodas kaip ir „<ph name="APP_NAME" />“. Tai atllikus „<ph name="APP_NAME_2" />“ ir „<ph name="APP_NAME_3" />“ negalės atidaryti palaikomų nuorodų.</translation> <translation id="2667463864537187133">Rašybos tikrinimo tvarkymas</translation> <translation id="2669241540496514785">Nepavyko atidaryti programos „<ph name="APP_NAME" />“</translation> +<translation id="2669454659051515572">Visi šį įrenginį naudojantys asmenys gali peržiūrėti atsisiųstus failus</translation> <translation id="2670102641511624474">„<ph name="APP_NAME" />“ bendrina „Chrome“ skirtuką.</translation> <translation id="2670403088701171361">Neleisti svetainėms peržiūrėti teksto ar vaizdų jūsų iškarpinėje</translation> <translation id="2670429602441959756">Šiame puslapyje yra funkcijų, kurios dar nepalaikomos VR. Išeinama...</translation> @@ -2183,6 +2185,7 @@ <translation id="3008232374986381779">Paleiskite „Linux“ įrankius, redagavimo priemones ir IDE savo „<ph name="DEVICE_TYPE" />“. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Iš naujo nustatyti leidimus</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> reikalauja prisijungti prie „Wi-Fi“ šiandien ir atsisiųsti naujinį. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).}one{<ph name="MANAGER" /> reikalauja prisijungti prie „Wi-Fi“ ir atsisiųsti naujinį iki nurodyto termino. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).}few{<ph name="MANAGER" /> reikalauja prisijungti prie „Wi-Fi“ ir atsisiųsti naujinį iki nurodyto termino. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).}many{<ph name="MANAGER" /> reikalauja prisijungti prie „Wi-Fi“ ir atsisiųsti naujinį iki nurodyto termino. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).}other{<ph name="MANAGER" /> reikalauja prisijungti prie „Wi-Fi“ ir atsisiųsti naujinį iki nurodyto termino. Arba atsisiųskite naudodami matuojamą ryšį (gali būti taikomi mokesčiai).}}</translation> +<translation id="3009178788565917040">Išvestis</translation> <translation id="3009300415590184725">Ar tikrai norite atšaukti duomenų paslaugos mobiliesiems sąrankos procesą?</translation> <translation id="3009779501245596802">Indeksuoti duomenys</translation> <translation id="3010279545267083280">Slaptažodis ištrintas</translation> @@ -2513,6 +2516,7 @@ <translation id="3359256513598016054">Sertifikato politikos apribojimai</translation> <translation id="3360297538363969800">Spausdinti nepavyko. Patikrinkite spausdintuvą ir bandykite dar kartą.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}one{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}few{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}many{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}other{„<ph name="DEVICE_NAME" />“ įrenginys bendrina su jumis turinį (<ph name="ATTACHMENTS" />).}}</translation> +<translation id="3363202073972776113">Šį naują profilį tvarkys jūsų organizacija. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Iš administratoriaus: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Naudokite „Ctrl“ arba „Alt“</translation> <translation id="3368922792935385530">Prijungta</translation> @@ -2547,6 +2551,7 @@ <translation id="339722927132407568">Stringa</translation> <translation id="3399432415385675819">Pranešimai bus išjungti</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – progresinis</translation> +<translation id="3401484564516348917">Skaityti informaciją apie jūsų naršyklę, OS, įrenginį, įdiegtą programinę įrangą, registro vertes ir failus</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Šiame įrenginyje saugomas {COUNT} slaptažodis}one{Šiame įrenginyje saugomas {COUNT} slaptažodis}few{Šiame įrenginyje saugomi {COUNT} slaptažodžiai}many{Šiame įrenginyje saugoma {COUNT} slaptažodžio}other{Šiame įrenginyje saugoma {COUNT} slaptažodžių}}</translation> <translation id="3402255108239926910">Pasirinkite pseudoportretą</translation> <translation id="3402585168444815892">Užregistruojama naudoti demonstracinį režimą</translation> @@ -2793,6 +2798,7 @@ <translation id="3627879631695760395">Įdiegti „<ph name="APP" />“...</translation> <translation id="3628275722731025472">„Bluetooth“ išjungimas</translation> <translation id="3629631988386925734">Įveskite slaptažodį, kad įgalintumėte „Smart Lock“. Kitą kartą telefonu galėsite atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation> +<translation id="3629664892718440872">Atsiminti šį pasirinkimą</translation> <translation id="3630132874740063857">Jūsų telefonas</translation> <translation id="3630995161997703415">Pridėkite šią svetainę prie lentynos, kad galėtumėte ją bet kada naudoti</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kada „Chrome“ OS užstringa, kurios funkcijos buvo naudojamos ir kiek įprastai atminties naudojama.<ph name="END_PARAGRAPH1" /> @@ -3282,6 +3288,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Visiškas MIDI įrenginių valdymas atmestas</translation> +<translation id="4087328411748538168">Rodyti dešinėje</translation> <translation id="4089235344645910861">Nustatymai išsaugoti. Pradėta sinchronizuoti.</translation> <translation id="4090103403438682346">Įgalinti patvirtintą prieigą</translation> <translation id="4090947011087001172">Iš naujo nustatyti <ph name="SITE" /> svetainės leidimus?</translation> @@ -3566,6 +3573,7 @@ <translation id="4377058670119819762">Įgalinama, kad skirtukų juostele būtų galima slinkti kairėn ir dešinėn, kai ji pilna.</translation> <translation id="4377363674125277448">Iškilo su serverio sertifikatu susijusi problema.</translation> <translation id="4378154925671717803">Telefonas</translation> +<translation id="4378308539633073595">Slinkti pirmyn</translation> <translation id="4378551569595875038">Jungiamasi...</translation> <translation id="4378556263712303865">Įrenginio užklausų teikimas</translation> <translation id="4379281552162875326">Pašalinti „<ph name="APP_NAME" />“?</translation> @@ -3975,6 +3983,7 @@ <translation id="4779766576531456629">Pervardyti „eSIM“ kortelės mobiliojo ryšio tinklą</translation> <translation id="4780321648949301421">Išsaugoti puslapį kaip...</translation> <translation id="4781443161433589743">Naudojate stipriausią „Chrome“ apsaugą</translation> +<translation id="4782861709165039462">Visi mikrofonai išjungti įrenginių aparatinės įrangos jungikliu</translation> <translation id="4785719467058219317">Naudojate saugos raktą, kuris nėra užregistruotas šioje svetainėje</translation> <translation id="4785914069240823137">Atšaukti apkirpimą</translation> <translation id="4788092183367008521">Patikrinkite tinklo ryšį ir bandykite dar kartą.</translation> @@ -4741,6 +4750,7 @@ <translation id="5548075230008247516">Visų elementų pasirinkimas atšauktas, pasirinkimo režimas išjungtas.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{„<ph name="TAB_TITLE" />“}=1{„<ph name="TAB_TITLE" />“ ir dar 1 skirtukas}one{„<ph name="TAB_TITLE" />“ ir dar # skirtukas}few{„<ph name="TAB_TITLE" />“ ir dar # skirtukai}many{„<ph name="TAB_TITLE" />“ ir dar # skirtuko}other{„<ph name="TAB_TITLE" />“ ir dar # skirtukų}}</translation> <translation id="5548606607480005320">Saugos patikra</translation> +<translation id="5548644592758170183">Rodyti kairėje</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Klaviatūra ir teksto įvestis</translation> <translation id="5553089923092577885">Sertifikato politikos atvaizdavimas</translation> @@ -7376,6 +7386,7 @@ <translation id="8120505434908124087">Įdiegti „eSIM“ kortelės profilį</translation> <translation id="812260729110117038">Reklamuotojai ir leidėjai gali tyrinėti skelbimų efektyvumą nestebėdami jūsų svetainėse.</translation> <translation id="81238879832906896">Geltonos ir baltos spalvos gėlė</translation> +<translation id="8123975449645947908">Slinkti atgal</translation> <translation id="8124313775439841391">Tvarkoma ONC</translation> <translation id="813082847718468539">Žiūrėti svetainės informaciją</translation> <translation id="8131740175452115882">Patvirtinti</translation> @@ -8234,6 +8245,7 @@ <translation id="8980345560318123814">Atsiliepimų ataskaitos</translation> <translation id="8980951173413349704">„<ph name="WINDOW_TITLE" />“ – užstrigo</translation> <translation id="8981825781894055334">Mažai popieriaus</translation> +<translation id="8983018820925880511">Šį naują profilį tvarkys <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> gali redaguoti „<ph name="FILENAME" />“</translation> <translation id="8984694057134206124">Būsite matomi visiems <ph name="MINUTES" /> min. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Sveiki! Tai – „Chromebook“ skirta „Steam“</translation> @@ -8294,6 +8306,7 @@ <translation id="9037640663275993951">Įrenginys neleidžiamas</translation> <translation id="9037818663270399707">Viso jūsų tinklo srauto ryšys nėra privatus</translation> <translation id="9037965129289936994">Rodyti originalą</translation> +<translation id="9038489124413477075">Aplankas be pavadinimo</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Jums liko vienas bandymas.}one{Jums liko # bandymas.}few{Jums liko # bandymai.}many{Jums liko # bandymo.}other{Jums liko # bandymų.}}</translation> <translation id="9040473193163777637">Ar norite suaktyvinti „ChromeVox“ – integruotą „Chrome“ OS ekrano skaitytuvą? Jei norite, paspauskite ir penkias sekundes palaikykite abu garsumo klavišus.</translation> <translation id="9040661932550800571">Atnaujinti <ph name="ORIGIN" /> slaptažodį?</translation> @@ -8330,6 +8343,7 @@ <translation id="9075413375877487220">Sustiprinto saugaus naršymo funkcija nepasitiki šiuo plėtiniu.</translation> <translation id="9076283476770535406">Joje gali būti suaugusiesiems skirto turinio</translation> <translation id="9076523132036239772">Apgailestaujame, nepavyko patvirtinti jūsų el. pašto ir slaptažodžio. Pabandykite pirmiausia prisijungti prie tinklo.</translation> +<translation id="9076821103818989526">Šoninis skydelis</translation> <translation id="9076977315710973122">SMB bendrinimas</translation> <translation id="9078193189520575214">Taikomi pakeitimai...</translation> <translation id="9078316009970372699">Išjungti momentinį įrenginio kaip modemo naudojimą</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 7fc5ae4..a3061c00e 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -1249,6 +1249,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Pievienot Wi-Fi...</translation> <translation id="2162155940152307086">Sinhronizācija tiks sākta, tiklīdz aizvērsiet sinhronizācijas iestatījumus.</translation> +<translation id="2162705204091149050">Lasīt informāciju par jūsu pārlūku, OS, ierīci, instalēto programmatūru un failiem</translation> <translation id="2162926944953615670">Nav pieejamu eSIM profilu</translation> <translation id="2163470535490402084">Lai pierakstītos savā <ph name="DEVICE_TYPE" /> ierīcē, lūdzu, izveidojiet savienojumu ar internetu.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> un vēl 1 slēdža taustiņš</translation> @@ -1799,6 +1800,7 @@ <translation id="2667144577800272420">Citas lietotnes ir iestatītas to pašu saišu atvēršanai, ko var atvērt, izmantojot lietotni <ph name="APP_NAME" />. Atbalstītās saites vairs nevarēs atvērt, izmantojot lietotnes <ph name="APP_NAME_2" /> un <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Pareizrakstības pārbaudes pārvaldība</translation> <translation id="2669241540496514785">Nevarēja atvērt lietotni <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Lejupielādētie faili ir redzami visiem šīs ierīces lietotājiem.</translation> <translation id="2670102641511624474">Lietotne <ph name="APP_NAME" /> koplieto Chrome cilni.</translation> <translation id="2670403088701171361">Neļaut vietnēm piekļūt tekstam vai attēliem starpliktuvē</translation> <translation id="2670429602441959756">Šajā lapā ir funkcijas, kas vēl netiek atbalstītas virtuālajā realitātē. Notiek aizvēršana...</translation> @@ -2166,6 +2168,7 @@ <translation id="3008232374986381779">Palaiž Linux rīkus, redaktorus un IDE jūsu <ph name="DEVICE_TYPE" /> ierīcē. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation> <translation id="3008272652534848354">Atiestatīt atļaujas</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> pieprasa, lai jūs šodien izveidotu savienojumu ar Wi-Fi tīklu un lejupielādētu atjauninājumu. Varat arī veikt lejupielādi, izmantojot maksas savienojumu.}zero{<ph name="MANAGER" /> pieprasa izveidot savienojumu ar Wi-Fi tīklu un lejupielādēt atjauninājumu pirms noteiktā termiņa beigām. Varat arī veikt lejupielādi, izmantojot maksas savienojumu.}one{<ph name="MANAGER" /> pieprasa izveidot savienojumu ar Wi-Fi tīklu un lejupielādēt atjauninājumu pirms noteiktā termiņa beigām. Varat arī veikt lejupielādi, izmantojot maksas savienojumu.}other{<ph name="MANAGER" /> pieprasa izveidot savienojumu ar Wi-Fi tīklu un lejupielādēt atjauninājumu pirms noteiktā termiņa beigām. Varat arī veikt lejupielādi, izmantojot maksas savienojumu.}}</translation> +<translation id="3009178788565917040">Izvade</translation> <translation id="3009300415590184725">Vai tiešām vēlaties atcelt mobilo datu pakalpojumu iestatīšanas procesu?</translation> <translation id="3009779501245596802">Rādītājā iekļautās datu bāzes</translation> <translation id="3010279545267083280">Parole dzēsta</translation> @@ -2496,6 +2499,7 @@ <translation id="3359256513598016054">Sertifikātu politikas ierobežojumi</translation> <translation id="3360297538363969800">Drukāšana neizdevās. Lūdzu, pārbaudiet printeri un mēģiniet vēlreiz.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}zero{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}one{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}other{<ph name="DEVICE_NAME" /> kopīgo ar jums saturu (<ph name="ATTACHMENTS" />).}}</translation> +<translation id="3363202073972776113">Šo jauno profilu pārvaldīs jūsu organizācija. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation> <translation id="3364986687961713424">Ziņojums no administratora: “<ph name="ADMIN_MESSAGE" />”</translation> <translation id="3365598184818502391">Izmantojiet taustiņu Ctrl vai Alt</translation> <translation id="3368922792935385530">pievienots</translation> @@ -2530,6 +2534,7 @@ <translation id="339722927132407568">Attēla sastingšana</translation> <translation id="3399432415385675819">Paziņojumi tiks atspējoti</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herci) — rindpārlēces izvērse</translation> +<translation id="3401484564516348917">Lasīt informāciju par jūsu pārlūku, OS, ierīci, instalēto programmatūru, reģistra vērtībām un failiem</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Šajā ierīcē ir saglabāta {COUNT} parole}zero{Šajā ierīcē ir saglabātas {COUNT} paroles}one{Šajā ierīcē ir saglabāta {COUNT} parole}other{Šajā ierīcē ir saglabātas {COUNT} paroles}}</translation> <translation id="3402255108239926910">Izvēlieties iemiesojumu</translation> <translation id="3402585168444815892">Notiek reģistrēšanās demonstrācijas režīmā</translation> @@ -2776,6 +2781,7 @@ <translation id="3627879631695760395">Instalēt lietotni <ph name="APP" />...</translation> <translation id="3628275722731025472">Bluetooth izslēgšana</translation> <translation id="3629631988386925734">Ievadiet paroli, lai iespējotu funkciju Smart Lock. Nākamajā reizē šīs ierīces <ph name="DEVICE_TYPE" /> atbloķēšanai tiks izmantots jūsu tālrunis. Iestatījumos varat izslēgt funkciju Smart Lock.</translation> +<translation id="3629664892718440872">Atcerēties šo izvēli</translation> <translation id="3630132874740063857">Jūsu tālrunis</translation> <translation id="3630995161997703415">Lai varētu izmantot šo vietni jebkurā laikā, pievienojiet to savam plauktam.</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, ChromeOS avāriju datus, izmantotās funkcijas un atmiņas lietojuma parasto apjomu.<ph name="END_PARAGRAPH1" /> @@ -3205,6 +3211,7 @@ <translation id="402211067068791756">Tādējādi tiks notīrīti <ph name="TOTAL_USAGE" /> datu, kas tiek glabāti parādītajās vietnēs.</translation> <translation id="4022426551683927403">Pievienot vārdnīc&ai</translation> <translation id="4025039777635956441">Izslēgt skaņu atlasītajai vietnei</translation> +<translation id="4027958407426528157">Atvērt vietnes lietotnēs, kas instalētas jūsu ierīcē (<ph name="DEVICE_TYPE" />)</translation> <translation id="4028467762035011525">Pievienot ievades metodes</translation> <translation id="4029556917477724407">Atpakaļ no lapas “<ph name="PAGE_TITLE" />”</translation> <translation id="4031179711345676612">Mikrofona lietošana ir atļauta</translation> @@ -3265,6 +3272,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Tika liegta pilnīga MIDI ierīču kontrole</translation> +<translation id="4087328411748538168">Rādīt labajā pusē</translation> <translation id="4089235344645910861">Iestatījumi saglabāti. Sākta sinhronizācija.</translation> <translation id="4090103403438682346">Iespējot verificētu piekļuvi</translation> <translation id="4090947011087001172">Vai atiestatīt vietnes <ph name="SITE" /> atļaujas?</translation> @@ -3549,6 +3557,7 @@ <translation id="4377058670119819762">Tiek iespējota ciļņu josla, lai varētu ritināt pa kreisi un pa labi, kad josla ir pilna.</translation> <translation id="4377363674125277448">Radās problēma ar servera sertifikātu.</translation> <translation id="4378154925671717803">Tālrunis</translation> +<translation id="4378308539633073595">Ritināt uz priekšu</translation> <translation id="4378551569595875038">Pievienojas...</translation> <translation id="4378556263712303865">Ierīces pieprasījums</translation> <translation id="4379281552162875326">Vai atinstalēt lietotni <ph name="APP_NAME" />?</translation> @@ -3957,6 +3966,7 @@ <translation id="4779766576531456629">Pārdēvēt eSIM mobilo tīklu</translation> <translation id="4780321648949301421">Saglabāt lapu kā...</translation> <translation id="4781443161433589743">Jūs izmantojat visdrošāko Chrome aizsardzības funkciju.</translation> +<translation id="4782861709165039462">Visi mikrofoni ir atspējoti, izmantojot ierīču aparatūras slēdzi</translation> <translation id="4785719467058219317">Jūs izmantojat drošības atslēgu, kas nav reģistrēta šajā vietnē</translation> <translation id="4785914069240823137">Atcelt apgriešanu</translation> <translation id="4788092183367008521">Lūdzu, pārbaudiet tīkla savienojumu un mēģiniet vēlreiz.</translation> @@ -4723,6 +4733,7 @@ <translation id="5548075230008247516">Noņemta visu vienumu atlase. Atlases režīms izslēgts.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{“<ph name="TAB_TITLE" />”}=1{“<ph name="TAB_TITLE" />” un vēl 1 cilne}zero{“<ph name="TAB_TITLE" />” un vēl # cilnes}one{“<ph name="TAB_TITLE" />” un vēl # cilne}other{“<ph name="TAB_TITLE" />” un vēl # cilnes}}</translation> <translation id="5548606607480005320">Drošības pārbaude</translation> +<translation id="5548644592758170183">Rādīt kreisajā pusē</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Tastatūra un teksta ievade</translation> <translation id="5553089923092577885">Sertifikāta politikas kartējumi</translation> @@ -6551,6 +6562,7 @@ <translation id="7377481913241237033">Pievienot, izmantojot kodu</translation> <translation id="7378611153938412599">Nedrošas paroles ir viegli uzminēt. Noteikti izveidojiet drošas paroles. <ph name="BEGIN_LINK" />Skatiet vairāk drošības padomu.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Atveriet Chrome interneta veikalu</translation> +<translation id="737938816678769289">Ērti izveidojiet savienojumu ar tuvumā esošām ierīcēm un iestatiet tās, izmantojot ātro savienošanu pārī.</translation> <translation id="7380459290951585794">Tālrunim ir jāatrodas tuvumā, tam jābūt atbloķētam, un tajā ir jābūt ieslēgtam Bluetooth un Wi-Fi savienojumam.</translation> <translation id="7380622428988553498">Ierīces nosaukumā ir nederīgas rakstzīmes</translation> <translation id="7380768571499464492">Atjaunināts <ph name="PRINTER_NAME" /></translation> @@ -7350,6 +7362,7 @@ <translation id="8120505434908124087">Instalēt eSIM profilu</translation> <translation id="812260729110117038">Reklāmdevēji un izdevēji var pētīt reklāmu efektivitāti, neizsekojot jūsu darbībām vairākās vietnēs.</translation> <translation id="81238879832906896">Dzeltens un balts zieds</translation> +<translation id="8123975449645947908">Ritināt atpakaļ</translation> <translation id="8124313775439841391">Pārvaldītais ONC</translation> <translation id="813082847718468539">Skatīt informāciju par vietni</translation> <translation id="8131740175452115882">Apstiprināt</translation> @@ -8207,6 +8220,7 @@ <translation id="8980345560318123814">Atsauksmju pārskati</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> — avārija</translation> <translation id="8981825781894055334">Maz papīra.</translation> +<translation id="8983018820925880511">Šo jauno profilu pārvaldīs <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation> <translation id="8983632908660087688">Vietne <ph name="ORIGIN" /> var rediģēt failu <ph name="FILENAME" />.</translation> <translation id="8984694057134206124">Jūsu ierīce visiem būs redzama <ph name="MINUTES" /> minūte. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation> <translation id="8985191021574400965">Laipni lūdzam lietotnē Steam, kas paredzēta Chromebook datoriem</translation> @@ -8267,6 +8281,7 @@ <translation id="9037640663275993951">Ierīce nav atļauta</translation> <translation id="9037818663270399707">Visā tīkla datplūsmā jūsu savienojums nav privāts</translation> <translation id="9037965129289936994">Rādīt sākotnējo tekstu</translation> +<translation id="9038489124413477075">Mape bez nosaukuma</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Ir atlicis viens mēģinājums.}zero{Ir atlikuši # mēģinājumi.}one{Ir atlicis # mēģinājums.}other{Ir atlikuši # mēģinājumi.}}</translation> <translation id="9040473193163777637">Vai vēlaties aktivizēt Chrome OS ierīcēs iebūvēto ekrāna lasītāju ChromeVox? Ja vēlaties to darīt, nospiediet un piecas sekundes turiet nospiestus abus skaļuma taustiņus.</translation> <translation id="9040661932550800571">Vai atjaunināt paroli vietnei <ph name="ORIGIN" />?</translation> @@ -8303,6 +8318,7 @@ <translation id="9075413375877487220">Funkcijā “Droša pārlūkošana ar papildu aizsardzību” šis paplašinājums netiek uzskatīts par uzticamu.</translation> <translation id="9076283476770535406">Vietnē var būt pieaugušajiem paredzēts saturs</translation> <translation id="9076523132036239772">Diemžēl jūsu e-pasta adresi vai paroli nevarēja verificēt. Vispirms mēģiniet izveidot savienojumu ar tīklu.</translation> +<translation id="9076821103818989526">Sānu panelis</translation> <translation id="9076977315710973122">SMB kopīgošana</translation> <translation id="9078193189520575214">Notiek izmaiņu lietošana…</translation> <translation id="9078316009970372699">Tūlītējas piesaistes atspējošana</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index c479e1c2..3414418 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -1815,6 +1815,7 @@ <translation id="2667144577800272420">Поставени се други апликации да ги отвораат истите линкови како <ph name="APP_NAME" />. Со ова ќе се оневозможи <ph name="APP_NAME_2" /> и <ph name="APP_NAME_3" /> да ги отвораат линковите за поддршка.</translation> <translation id="2667463864537187133">Управувајте со проверката на правописот</translation> <translation id="2669241540496514785">Не може да се отвори <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Сите кои го користат уредов може да ги видат преземените датотеки</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> споделува картичка на Chrome.</translation> <translation id="2670403088701171361">Не им дозволувај на сајтовите да гледаат текст или слики од привремената меморија</translation> <translation id="2670429602441959756">Страницава содржи функции што сѐ уште не се поддржани во режим на виртуелна реалност. Излегуваме…</translation> @@ -2182,6 +2183,7 @@ <translation id="3008232374986381779">Извршувајте ги алатките на Linux, уредувачите и интегрираните средини за програмери на вашиот <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Ресетирај ги дозволите</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> бара да се поврзете на Wi-Fi денес и да преземете ажурирање. Може да го преземете и преку врска со ограничен интернет (може да ви се наплати).}one{<ph name="MANAGER" /> бара да се поврзете на Wi-Fi и да преземете ажурирање пред крајниот рок. Може да го преземете и преку врска со ограничен интернет (може да ви се наплати).}other{<ph name="MANAGER" /> бара да се поврзете на Wi-Fi и да преземете ажурирање пред крајниот рок. Може да го преземете и преку врска со ограничен интернет (може да ви се наплати).}}</translation> +<translation id="3009178788565917040">Излез</translation> <translation id="3009300415590184725">Дали сте сигурни дека сакате да го откажете процесот на поставување услуга за мобилен интернет?</translation> <translation id="3009779501245596802">Индексирани бази со податоци</translation> <translation id="3010279545267083280">Лозинката е избришана</translation> @@ -3224,6 +3226,7 @@ <translation id="402211067068791756">Ова ќе ги избрише податоците (<ph name="TOTAL_USAGE" />) складирани од прикажаните сајтови</translation> <translation id="4022426551683927403">&Додај во речник</translation> <translation id="4025039777635956441">Исклучи звук на избраниот сајт</translation> +<translation id="4027958407426528157">Отворајте веб-сајтови во апликации инсталирани на вашиот <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Додајте методи за внесување</translation> <translation id="4029556917477724407">Вратете се наназад од страницата <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Микрофон е дозволен</translation> @@ -3569,6 +3572,7 @@ <translation id="4377058670119819762">Овозможува лентата за картички да се лизга налево и надесно кога е полна.</translation> <translation id="4377363674125277448">Имаше проблем со сертификатот на серверот.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Движете се нанапред</translation> <translation id="4378551569595875038">Се поврзува…</translation> <translation id="4378556263712303865">Барање на уредот</translation> <translation id="4379281552162875326">Да се деинсталира „<ph name="APP_NAME" />“?</translation> @@ -6575,6 +6579,7 @@ <translation id="7377481913241237033">Поврзете со код</translation> <translation id="7378611153938412599">Слабите лозинки се лесни за погаѓање. Уверете се дека создавате силни лозинки. <ph name="BEGIN_LINK" />Погледнете повеќе совети за безбедност.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Отворете ја Веб-продавницата на Chrome</translation> +<translation id="737938816678769289">Лесно поврзувајте и поставувајте уреди со брзо спарување во близина</translation> <translation id="7380459290951585794">Проверете дали телефонот е во близина, отклучен и со вклучени Bluetooth и Wi-Fi</translation> <translation id="7380622428988553498">Името на уредот содржи неважечки знаци</translation> <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> е ажуриран</translation> @@ -7375,6 +7380,7 @@ <translation id="8120505434908124087">Инсталирајте профил на eSIM</translation> <translation id="812260729110117038">Огласувачите и издавачите може да ја проучуваат ефикасноста на рекламите на начин што не ве следи на сајтовите.</translation> <translation id="81238879832906896">Жолт и бел цвет</translation> +<translation id="8123975449645947908">Лизгај наназад</translation> <translation id="8124313775439841391">Управуван ONC</translation> <translation id="813082847718468539">Прикажи информации за локација</translation> <translation id="8131740175452115882">Потврди</translation> @@ -8295,6 +8301,7 @@ <translation id="9037640663275993951">Уредот не е дозволен</translation> <translation id="9037818663270399707">Вашата врска не е приватна за целиот мрежен сообраќај</translation> <translation id="9037965129289936994">Прикажи го оригиналот</translation> +<translation id="9038489124413477075">Неименувана папка</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Имате уште еден обид.}one{Имате уште # обид.}other{Имате уште # обиди.}}</translation> <translation id="9040473193163777637">Дали сакате да го активирате ChromeVox, вградениот читач на екранот за Chrome OS? Ако сакате, притиснете ги и задржете ги двете копчиња за јачина на звук пет секунди.</translation> <translation id="9040661932550800571">Дали да се ажурира лозинката за <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 8119020..4f3788d 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -1796,6 +1796,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> പോലെ മറ്റ് ആപ്പുകളും ഇതേ ലിങ്കുകൾ തുറക്കാൻ സജ്ജീകരിച്ചിരിക്കുന്നു. ഇത് <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> എന്നിവയെ പിന്തുണാ ലിങ്കുകൾ തുറക്കുന്നതിൽ നിന്ന് പ്രവർത്തനരഹിതമാക്കും.</translation> <translation id="2667463864537187133">സ്പെൽ ചെക്ക് മാനേജ് ചെയ്യുക</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> തുറക്കാനായില്ല</translation> +<translation id="2669454659051515572">ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകൾ ഈ ഉപകരണം ഉപയോഗിക്കുന്ന എല്ലാവർക്കും കാണാനാകും</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />, Chrome ടാബ് പങ്കിടുന്നു.</translation> <translation id="2670403088701171361">നിങ്ങളുടെ ക്ലിപ്പ്ബോർഡിലെ ടെക്സ്റ്റോ ചിത്രങ്ങളോ കാണാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> <translation id="2670429602441959756">ഈ പേജിൽ VR-ന് അനുയോജ്യമല്ലാത്ത ഫീച്ചറുകൾ അടങ്ങിയിരിക്കുന്നു. പുറത്തുകടക്കുന്നു...</translation> @@ -2163,6 +2164,7 @@ <translation id="3008232374986381779">Linux ടൂളുകളും എഡിറ്ററുകളും IDE-കളും നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിൽ റൺ ചെയ്യുക. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation> <translation id="3008272652534848354">അനുമതികൾ പുനഃസജ്ജീകരിക്കുക</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{ഇന്ന് തന്നെ വൈഫൈയിൽ കണക്റ്റ് ചെയ്ത് അപ്ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യാൻ <ph name="MANAGER" /> നിങ്ങളോട് ആവശ്യപ്പെടുന്നു. അല്ലെങ്കിൽ, മീറ്റർ ചെയ്ത കണക്ഷനിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുക (നിരക്കുകൾ ബാധകമായേക്കാം).}other{സമയപരിധി അവസാനിക്കുന്നതിന് മുമ്പ് വൈഫൈയിലേക്ക് കണക്റ്റ് ചെയ്ത് അപ്ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യാൻ <ph name="MANAGER" /> നിങ്ങളോട് ആവശ്യപ്പെടുന്നു. അല്ലെങ്കിൽ, മീറ്റർ ചെയ്ത കണക്ഷനിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുക (നിരക്കുകൾ ബാധകമായേക്കാം).}}</translation> +<translation id="3009178788565917040">ഔട്ട്പുട്ട്</translation> <translation id="3009300415590184725">മൊബൈൽ ഡാറ്റാ സേവന സജ്ജീകരണ പ്രോസസ് റദ്ദാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് തീർച്ചയാണോ?</translation> <translation id="3009779501245596802">ഇൻഡെക്സ് ചെയ്ത ഡാറ്റബേസുകള്</translation> <translation id="3010279545267083280">പാസ്വേഡ് ഇല്ലാതാക്കി</translation> @@ -3549,6 +3551,7 @@ <translation id="4377058670119819762">തുറന്ന് വച്ചിട്ടുള്ള ടാബുകൾ സ്ക്രീനിൽ നിറയുമ്പോൾ അവ ഇടത്തേക്കും വലത്തേക്കും സ്ക്രോൾ ചെയ്യാൻ പ്രവർത്തനക്ഷമമാക്കുന്നു.</translation> <translation id="4377363674125277448">സെർവറിന്റെ സർട്ടിഫിക്കറ്റിൽ ഒരു പ്രശ്നമുണ്ടായി.</translation> <translation id="4378154925671717803">ഫോൺ</translation> +<translation id="4378308539633073595">മുമ്പിലേക്ക് സ്ക്രോൾ ചെയ്യുക</translation> <translation id="4378551569595875038">കണക്റ്റിംഗ്...</translation> <translation id="4378556263712303865">ഉപകരണ അഭ്യർത്ഥന</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" അണ്ഇന്സ്റ്റാൾ ചെയ്യണോ?</translation> @@ -7353,6 +7356,7 @@ <translation id="8120505434908124087">ഇ-സിം പ്രൊഫൈൽ ഇൻസ്റ്റാൾ ചെയ്യുക</translation> <translation id="812260729110117038">സൈറ്റുകളിലുടനീളം നിങ്ങളെ ട്രാക്ക് ചെയ്യാത്ത രീതിയിൽ പരസ്യദാതാക്കൾക്കും പ്രസാധകർക്കും പരസ്യങ്ങളുടെ കാര്യക്ഷമത മനസ്സിലാക്കാനാകും.</translation> <translation id="81238879832906896">മഞ്ഞയും വെളുപ്പും നിറത്തിലുള്ള പൂവ്</translation> +<translation id="8123975449645947908">പിന്നോട്ട് സ്ക്രോൾ ചെയ്യുക</translation> <translation id="8124313775439841391">നിയന്ത്രിത ONC</translation> <translation id="813082847718468539">സൈറ്റ് വിവരങ്ങള് കാണുക</translation> <translation id="8131740175452115882">സ്ഥിരീകരിക്കുക</translation> @@ -8268,6 +8272,7 @@ <translation id="9037640663275993951">ഉപകരണത്തെ അനുവദിക്കുന്നില്ല</translation> <translation id="9037818663270399707">എല്ലാ നെറ്റ്വർക്ക് ട്രാഫിക്കിനും നിങ്ങളുടെ കണക്ഷൻ സ്വകാര്യമല്ല</translation> <translation id="9037965129289936994">യഥാര്ത്ഥമായത് കാണിക്കുക</translation> +<translation id="9038489124413477075">പേരിടാത്ത ഫോൾഡർ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ഒരു ശ്രമം ശേഷിക്കുന്നു.}other{# ശ്രമങ്ങൾ ശേഷിക്കുന്നു.}}</translation> <translation id="9040473193163777637">ChromeOS-നുള്ള ബിൽറ്റ് ഇൻ സ്ക്രീൻ റീഡർ ആയ ChromeVox സജീവമാക്കണോ? അങ്ങനെയെങ്കിൽ, രണ്ട് വോളിയം കീകളും അഞ്ച് സെക്കൻഡ് നേരത്തേക്ക് അമർത്തിപ്പിടിക്കുക.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> എന്നതിനായി പാസ്വേഡുകൾ അപ്ഡേറ്റ് ചെയ്യണോ?</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 8d8c01a..1f51bf99 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Files app ашиглан төхөөрөмжөөс мэдээллийг хуулан авч хадгалах.</translation> <translation id="1343865611738742294">Linux аппад USB төхөөрөмжид хандах зөвшөөрөл өгнө үү. USB төхөөрөмжийг салгасны дараа Linux үүнийг санахгүй.</translation> <translation id="1343920184519992513">Орхисон хэсгээсээ үргэлжлүүлж, тодорхой багц хуудаснуудыг нээнэ үү</translation> +<translation id="1344377983938103876"><ph name="URL" />-г нээж байна...</translation> <translation id="134589511016534552">Медиа табыг мөн Нээлттэй таб хэсэгт харуулдаг</translation> <translation id="1346630054604077329">Баталгаажуулаад, дахин эхлүүлэх</translation> <translation id="1346748346194534595">Баруун</translation> @@ -1809,6 +1810,7 @@ <translation id="2667144577800272420">Бусад аппыг <ph name="APP_NAME" />-тай ижил холбоосыг нээхээр тохируулсан. Энэ нь <ph name="APP_NAME_2" /> болон <ph name="APP_NAME_3" />-н тусламж дэмжлэгийн холбоос нээхийг идэвхгүй болгоно.</translation> <translation id="2667463864537187133">Алдаа шалгахыг удирдах</translation> <translation id="2669241540496514785"><ph name="APP_NAME" />-г нээж чадсангүй</translation> +<translation id="2669454659051515572">Энэ төхөөрөмжийг ашиглаж байгаа дурын хүн татсан файлуудыг харах боломжтой</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome-н чихтэй хуудсыг хуваалцаж байна.</translation> <translation id="2670403088701171361">Сайтуудад таны түр санах ой дээрх текст эсвэл зургийг харахыг бүү зөвшөөр</translation> <translation id="2670429602441959756">Энэ хуудас VR-д дэмжээгүй онцлог агуулсан байна. Гарч байна...</translation> @@ -2176,6 +2178,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> дээрээ Linux-н хэрэгсэл, засварлагч болон IDE-г ажиллуулах. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Зөвшөөрлийг шинэчлэх</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> танаас өнөөдөр Wi-Fi-д холбогдож, шинэчлэлт татаж авахыг шаардаж байна. Эсвэл хязгаартай холболтоос татаж авна уу (төлбөр гарч болзошгүй).}other{<ph name="MANAGER" /> танаас эцсийн хугацаанаас өмнө Wi-Fi-д холбогдож, шинэчлэлт татаж авахыг шаардаж байна. Эсвэл хязгаартай холболтоос татаж авна уу (төлбөр гарч болзошгүй).}}</translation> +<translation id="3009178788565917040">Гаралт</translation> <translation id="3009300415590184725">Та гар утасны өгөгдлийн үйлчилгээний тохиргоо хийх явцыг цуцлахыг хүсэж байгаа гэдэгтээ итгэлтэй байна уу?</translation> <translation id="3009779501245596802">Индексжүүлсэн мэдээллийн сан</translation> <translation id="3010279545267083280">Нууц үг устгагдсан</translation> @@ -3562,6 +3565,7 @@ <translation id="4377058670119819762">Таб зурвасыг дүүрсэн үед зүүн болон баруун тийш гүйлгэхийг идэвхжүүлнэ.</translation> <translation id="4377363674125277448">Серверийн сертификат асуудалтай байсан.</translation> <translation id="4378154925671717803">Утас</translation> +<translation id="4378308539633073595">Урагш гүйлгэх</translation> <translation id="4378551569595875038">Холбож байна...</translation> <translation id="4378556263712303865">Төхөөрөмжийн шаардлага</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />"-г устгах уу?</translation> @@ -6963,6 +6967,7 @@ <translation id="7753735457098489144">Хадгалах сангийн зай хангалтгүй байгаа тул суулгаж чадсангүй. Сул зай гаргахын тулд төхөөрөмжийн хадгалах сангаас файлуудыг устгана уу.</translation> <translation id="7754347746598978109">JavaScript ашиглахыг зөвшөөрөөгүй</translation> <translation id="7754704193130578113">Татахаасаа өмнө файл нэг бүрийг хаана хадгалахыг асуу</translation> +<translation id="7755134875397410803">Google танд ажлуудаа дуусгахад тань туслахын тулд таны Туслахаа ашиглах сайтуудын URL болон контентоос гадна Туслахаар дамжуулан илгээх мэдээллийг хүлээн авна. Энэ мэдээллийг таны Google Бүртгэлд хадгалж болзошгүй. Та Туслахыг Chrome-н тохиргоонд унтраах боломжтой. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Таны эцэг эх үүнийг блокоос гаргах боломжтой</translation> <translation id="7757592200364144203">Төхөөрөмжийн нэрийг солих</translation> <translation id="7757739382819740102">Ойролцоох харилцагчид тантай хуваалцах боломжтой. Зөвшөөрөл шаардлагатай болно.</translation> @@ -7363,6 +7368,7 @@ <translation id="8120505434908124087">eSIM профайл суулгах</translation> <translation id="812260729110117038">Сурталчлагчид болон нийтлэгчид таныг сайтууд дээр дагахгүйгээр зарын үр нөлөөг судлах боломжтой.</translation> <translation id="81238879832906896">Шар, цагаан цэцэг</translation> +<translation id="8123975449645947908">Арагш гүйлгэх</translation> <translation id="8124313775439841391">Managed ONC</translation> <translation id="813082847718468539">Сайтын мэдээллийг үзэх</translation> <translation id="8131740175452115882">Батлах</translation> @@ -8277,6 +8283,7 @@ <translation id="9037640663275993951">Төхөөрөмжийг зөвшөөрдөггүй</translation> <translation id="9037818663270399707">Таны холболт сүлжээний бүх ачааллын хувьд хувийн биш байна</translation> <translation id="9037965129289936994">Эх хувийг харуулах</translation> +<translation id="9038489124413477075">Нэрлэгдээгүй хавтас</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Танд нэг оролдлого үлдлээ.}other{Танд # оролдлого үлдлээ.}}</translation> <translation id="9040473193163777637">Та ChromeOS-н бүрэлдэхүүн дэлгэц уншигч болох ChromeVox-г идэвхжүүлэхийг хүсэж байна уу? Хэрэв тийм бол хоёр дууны түвшний товчийг хоёуланг нь таван секундийн турш удаан дарна уу.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" />-н нууц үгийг шинэчлэх үү?</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 2e879d07..35ea0d0d 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -1258,6 +1258,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">वाय-फाय जोडा...</translation> <translation id="2162155940152307086">तुम्ही सिंक सेटिंग्ज सोडल्यास सिंक सुरू होईल</translation> +<translation id="2162705204091149050">तुमचा ब्राउझर, OS, डिव्हाइस, इंस्टॉल केलेले सॉफ्टवेअर, आणि फाइल याविषयीची माहिती वाचा</translation> <translation id="2162926944953615670">कोणत्याही उपलब्ध eSIM प्रोफाइल नाहीत</translation> <translation id="2163470535490402084">कृपया आपल्या <ph name="DEVICE_TYPE" /> मध्ये साइन इन करण्यासाठी इंटरनेटशी कनेक्ट करा.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> आणि आणखी एक स्विच</translation> @@ -1810,6 +1811,7 @@ <translation id="2667144577800272420">इतर ॲप्स ही <ph name="APP_NAME" /> सारख्याच लिंक उघडण्यासाठी सेट केली आहेत. हे <ph name="APP_NAME_2" /> आणि <ph name="APP_NAME_3" /> ला सपोर्ट असलेल्या लिंक उघडण्यापासून बंद करेल.</translation> <translation id="2667463864537187133">स्पेल चेक व्यवस्थापित करा</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> उघडता आले नाही</translation> +<translation id="2669454659051515572">हे डिव्हाइस वापरणारे कोणीही डाउनलोड केलेल्या फाइल पाहू शकते</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome टॅब शेअर करीत आहे.</translation> <translation id="2670403088701171361">साइटना तुमच्या क्लिपबोर्डवरील मजकूर किंवा इमेज पाहाण्याची अनुमती देऊ नका</translation> <translation id="2670429602441959756">या पेजमध्ये अद्याप VR मध्ये समर्थित नसलेले वैशिष्ट्ये सामावलेली आहेत. बाहेर पडत आहे...</translation> @@ -2177,6 +2179,7 @@ <translation id="3008232374986381779">तुमच्या <ph name="DEVICE_TYPE" /> वर Linux टूल, संपादक, आणि IDE रन करा. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation> <translation id="3008272652534848354">परवानग्या रीसेट करा</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> नुसार, तुम्ही अपडेट डाउनलोड करण्यासाठी आजच वाय-फायशी कनेक्ट करणे आवश्यक आहे. किंवा मर्यादित कनेक्शनमधून डाउनलोड करा (शुल्के लागू होऊ शकतात).}other{<ph name="MANAGER" /> नुसार, तुम्ही डेडलाइनपूर्वी वाय-फाय शी कनेक्ट करून अपडेट डाउनलोड करणे आवश्यक आहे. किंवा मर्यादित कनेक्शनमधून डाउनलोड करा (शुल्के लागू होऊ शकतात).}}</translation> +<translation id="3009178788565917040">आउटपुट</translation> <translation id="3009300415590184725">मोबाइल डेटा सेट अप प्रक्रिया रद्द करु इच्छित आहात याबद्दल तुम्हाला खात्री आहे?</translation> <translation id="3009779501245596802">अनुक्रमित डेटाबेस</translation> <translation id="3010279545267083280">पासवर्ड हटवला</translation> @@ -2507,6 +2510,7 @@ <translation id="3359256513598016054">सर्टिफिकेट धोरण प्रतिबंध</translation> <translation id="3360297538363969800">प्रिंट अयशस्वी. कृपया तुमचा प्रिंटर तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> तुमच्यासोबत <ph name="ATTACHMENTS" /> शेअर करत आहे.}other{<ph name="DEVICE_NAME" /> तुमच्यासोबत <ph name="ATTACHMENTS" /> शेअर करत आहे.}}</translation> +<translation id="3363202073972776113">ही नवीन प्रोफाइल तुमच्या संस्थेद्वारे व्यवस्थापित केली जाईल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> <translation id="3364986687961713424">तुमच्या अॅडमिनिस्ट्रेटरकडून: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">एकतर Ctrl किंवा Alt वापरा</translation> <translation id="3368922792935385530">कनेक्ट केले</translation> @@ -2541,6 +2545,7 @@ <translation id="339722927132407568">थांबतो</translation> <translation id="3399432415385675819">सूचना बंद केल्या जातील</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - हस्तक्षेप केला</translation> +<translation id="3401484564516348917">तुमचा ब्राउझर, OS, डिव्हाइस, इंस्टॉल केलेले सॉफ्टवेअर, नोंदणी मूल्ये आणि फाइल याविषयीची माहिती वाचा</translation> <translation id="3402059702184703067">{COUNT,plural, =1{या डिव्हाइसवर {COUNT} पासवर्ड स्टोअर केला आहे}other{या डिव्हाइसवर {COUNT} पासवर्ड स्टोअर केले आहेत}}</translation> <translation id="3402255108239926910">अवतार निवडा</translation> <translation id="3402585168444815892">डेमो मोड मध्ये नोंदणी करत आहे</translation> @@ -2787,6 +2792,7 @@ <translation id="3627879631695760395"><ph name="APP" /> इंस्टॉल करा...</translation> <translation id="3628275722731025472">ब्लूटूथ बंद करा</translation> <translation id="3629631988386925734">Smart Lock सुरू करण्यासाठी तुमचा पासवर्ड एंटर करा. पुढील वेळेस तुमचा फोन तुमचे <ph name="DEVICE_TYPE" /> अनलॉक करेल. तुम्ही सेटिंग्जमध्ये Smart Lock बंद करू शकता.</translation> +<translation id="3629664892718440872">ही निवड लक्षात ठेवा</translation> <translation id="3630132874740063857">तुमचा फोन</translation> <translation id="3630995161997703415">कधीही वापरण्यासाठी ही साइट तुमच्या शेल्फवर जोडा</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />तुमच्या ChromeOS डिव्हाइसना आपोआप अहवाल पाठवण्याची अनुमती देण्याने आम्हाला ChromeOS मध्ये कोणती सुधारणा करायची आणि कशाचे निराकरण करायचे याला प्राधान्य देण्यात मदत होते. या अहवालांमध्ये ChromeOS कधी क्रॅश होते, तुम्ही कोणती वैशिष्ट्ये वापरता आणि तुम्ही सामान्यतः किती मेमरी वापरता यांसारख्या गोष्टींचा समावेश असू शकतो.<ph name="END_PARAGRAPH1" /> @@ -3274,6 +3280,7 @@ <translation id="4085298594534903246">या पेजवर JavaScript ब्लॉक केलेले होते.</translation> <translation id="4087089424473531098">एक्स्टेंशन तयार केले: <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">MIDI डिव्हाइसचे पूर्ण नियंत्रण नाकारले</translation> +<translation id="4087328411748538168">उजवीकडे दाखवा</translation> <translation id="4089235344645910861">सेटिंग्ज सेव्ह केल्या. सिंक सुरू केले.</translation> <translation id="4090103403438682346">पडताळणीने दिलेला ॲक्सेस सक्षम करा</translation> <translation id="4090947011087001172"><ph name="SITE" /> साठी साइट परवानग्या रीसेट करायच्या?</translation> @@ -3558,6 +3565,7 @@ <translation id="4377058670119819762">जास्त टॅब उघडल्यावर, डावीकडे आणि उजवीकडे स्क्रोल करण्यासाठी टॅब स्ट्रिप सुरू होतो.</translation> <translation id="4377363674125277448">सर्व्हरच्या सर्टिफिकेटस समस्या आली.</translation> <translation id="4378154925671717803">फोन</translation> +<translation id="4378308539633073595">पुढे स्क्रोल करा</translation> <translation id="4378551569595875038">कनेक्ट होतय...</translation> <translation id="4378556263712303865">डीव्हाइसची मागणी</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" अनइंस्टॉल करायचे?</translation> @@ -3967,6 +3975,7 @@ <translation id="4779766576531456629">eSIM मोबाइल नेटवर्कचे नाव बदला</translation> <translation id="4780321648949301421">पेज या फॉरमॅटमध्ये सेव्ह करा...</translation> <translation id="4781443161433589743">तुम्ही Chrome ची सर्वात मजबूत सुरक्षा वापरत आहात</translation> +<translation id="4782861709165039462">डिव्हाइसच्या हार्डवेअर स्विचद्वारे सर्व मायक्रोफोन बंद केले आहेत</translation> <translation id="4785719467058219317">तुम्ही या वेबसाइटवर नोंदणीकृत नसलेली सिक्युरिटी की वापरत आहात</translation> <translation id="4785914069240823137">क्रॉप रद्द करा</translation> <translation id="4788092183367008521">कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation> @@ -4733,6 +4742,7 @@ <translation id="5548075230008247516">सर्व आयटमची निवड रद्द केली, निवड मोडमधून बाहेर पडलो.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" आणि इतर एक टॅब}other{"<ph name="TAB_TITLE" />" आणि इतर # टॅब}}</translation> <translation id="5548606607480005320">सुरक्षा तपासणी</translation> +<translation id="5548644592758170183">डावीकडे दाखवा</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">कीबोर्ड आणि मजकूर इनपुट</translation> <translation id="5553089923092577885">सर्टिफिकेट धोरण मॅपिंग</translation> @@ -7359,6 +7369,7 @@ <translation id="8120505434908124087">eSIM प्रोफाइल इंस्टॉल करा</translation> <translation id="812260729110117038">तुम्हाला साइटवर ट्रॅक करणार नाहीत, अशा प्रकारे जाहिरातदार आणि प्रकाशक जाहिरातींच्या परिणामकारकतेचा अभ्यास करू शकतात.</translation> <translation id="81238879832906896">पिवळे आणि पांढरे फूल</translation> +<translation id="8123975449645947908">मागे स्क्रोल करा</translation> <translation id="8124313775439841391">व्यवस्थापित ONC</translation> <translation id="813082847718468539">साइटची माहिती पहा</translation> <translation id="8131740175452115882">पुष्टी करा</translation> @@ -8215,6 +8226,7 @@ <translation id="8980345560318123814">फीडबॅक अहवाल</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रॅश झाले</translation> <translation id="8981825781894055334">पेपर संपत आला आहे</translation> +<translation id="8983018820925880511">ही नवीन प्रोफाइल <ph name="DOMAIN" /> द्वारे व्यवस्थापित केली जाईल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> <ph name="FILENAME" /> संपादित करू शकते</translation> <translation id="8984694057134206124">तुम्ही <ph name="MINUTES" /> मिनिटांसाठी सर्वांना दृश्यमान असाल. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Chromebook साठी Steam मध्ये स्वागत आहे</translation> @@ -8275,6 +8287,7 @@ <translation id="9037640663275993951">डिव्हाइसला अनुमती नाही</translation> <translation id="9037818663270399707">तुमचे कनेक्शन सर्व नेटवर्क ट्रॅफिकसाठी खाजगी नाही</translation> <translation id="9037965129289936994">मूळ दर्शवा</translation> +<translation id="9038489124413477075">अनामित फोल्डर</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{तुमच्याकडे एक प्रयत्न शिल्लक आहे.}other{तुमच्याकडे # प्रयत्न शिल्लक आहेत.}}</translation> <translation id="9040473193163777637">तुम्हाला ChromeOS साठी बिल्ट-इन स्क्रीन रीडर असलेले ChromeVox अॅक्टिव्हेट करायचे आहे का? करायचे असल्यास, दोन्ही व्हॉल्यूम की पाच सेकंदांसाठी दाबा आणि धरून ठेवा.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> साठी पासवर्ड अपडेट करायचा आहे का?</translation> @@ -8311,6 +8324,7 @@ <translation id="9075413375877487220">वर्धित सुरक्षित ब्राउझिंग याला या एक्स्टेंशनवर विश्वास नाही.</translation> <translation id="9076283476770535406">कदाचित तिच्यामध्ये प्रौढ आशय असू शकते</translation> <translation id="9076523132036239772">सॉरी, तुमच्या ईमेल किंवा पासवर्डची पडताळणी करणे शक्य नाही. सुरूवातीला एखाद्या नेटवर्कशी कनेक्ट करण्याचा प्रयत्न करा.</translation> +<translation id="9076821103818989526">साइड पॅनल</translation> <translation id="9076977315710973122">SMB शेअर करा</translation> <translation id="9078193189520575214">बदल लागू करत आहे...</translation> <translation id="9078316009970372699">इंस्टंट टेदरिंग बंद करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 935cd9f..e5b9869 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1280,6 +1280,7 @@ <translation id="2180620921879609685">Sekat kandungan pada mana-mana halaman</translation> <translation id="2182058453334755893">Disalin ke Papan Keratan Anda</translation> <translation id="2184515124301515068">Benarkan Chrome memilih masa tapak boleh memainkan bunyi (disyorkan)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Halaman yang dikongsi daripada peranti lain</translation> <translation id="2187675480456493911">Disegerakkan dengan peranti lain dalam akaun anda. Tetapan yang diubah suai oleh pengguna lain tidak akan disegerakkan. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Ralat Import Sijil Pelayan</translation> @@ -1812,6 +1813,7 @@ <translation id="2667144577800272420">Apl lain ditetapkan untuk membuka pautan yang sama sebagai <ph name="APP_NAME" />. Tindakan ini akan melumpuhkan <ph name="APP_NAME_2" /> dan <ph name="APP_NAME_3" /> daripada membuka pautan yang disokong.</translation> <translation id="2667463864537187133">Urus semakan ejaan</translation> <translation id="2669241540496514785">Tidak dapat membuka <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Sesiapa sahaja yang menggunakan peranti ini dapat melihat fail yang dimuat turun</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> berkongsi tab Chrome.</translation> <translation id="2670403088701171361">Jangan benarkan laman melihat teks atau imej pada papan keratan anda</translation> <translation id="2670429602441959756">Halaman ini mengandungi ciri yang belum disokong dalam VR. Meninggalkan halaman...</translation> @@ -2145,7 +2147,7 @@ <translation id="2966937470348689686">Urus pilihan Android</translation> <translation id="2967926928600500959">URL yang sepadan dengan peraturan ini akan dipaksa untuk dibuka dalam penyemak imbas tertentu.</translation> <translation id="2972581237482394796">&Buat Semula</translation> -<translation id="2973324205039581528">Redam Tapak</translation> +<translation id="2973324205039581528">Redam Laman</translation> <translation id="2973537811036309675">Panel Sisi</translation> <translation id="2976557544729462544">Sesetengah peranti menghendaki perlindungan akses data dilumpuhkan agar dapat berfungsi dengan baik atau memberikan prestasi maksimum.</translation> <translation id="2977480621796371840">Alih keluar daripada kumpulan</translation> @@ -2179,6 +2181,7 @@ <translation id="3008232374986381779">Jalankan alatan, editor dan IDE Linux pada <ph name="DEVICE_TYPE" /> anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Tetapkan semula kebenaran</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> menghendaki anda menyambung kepada Wi-Fi hari ini untuk memuat turun kemaskinian. Atau, muat turun daripada sambungan bermeter (caj mungkin dikenakan).}other{<ph name="MANAGER" /> menghendaki anda menyambung kepada Wi-Fi dan memuat turun kemaskinian sebelum tarikh akhir. Atau, muat turun daripada sambungan bermeter (caj mungkin dikenakan).}}</translation> +<translation id="3009178788565917040">Output</translation> <translation id="3009300415590184725">Adakah anda pasti mahu membatalkan proses penyediaan perkhidmatan data mudah alih?</translation> <translation id="3009779501245596802">Pangkalan data berindeks</translation> <translation id="3010279545267083280">Kata laluan dipadamkan</translation> @@ -3566,6 +3569,7 @@ <translation id="4377058670119819762">Mendayakan jalur tab untuk menatal ke kiri dan kanan apabila penuh.</translation> <translation id="4377363674125277448">Berlaku masalah dengan sijil pelayan.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Tatal ke hadapan</translation> <translation id="4378551569595875038">Menyambung...</translation> <translation id="4378556263712303865">Permintaan peranti</translation> <translation id="4379281552162875326">Nyahpasang "<ph name="APP_NAME" />"?</translation> @@ -3943,7 +3947,7 @@ <translation id="4742334355511750246">Tidak dibenarkan untuk memaparkan imej</translation> <translation id="4742970037960872810">Alih keluar serlahan</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Ketahui cara mengemas kini aplikasi<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{Nyahredam tapak}other{Nyahredam tapak}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{Nyahredam laman}other{Nyahredam laman}}</translation> <translation id="474609389162964566">Akses Assistant anda dengan “Ok Google”</translation> <translation id="4746351372139058112">Mesej</translation> <translation id="4748783296226936791">Laman biasanya menyambung kepada peranti HID untuk ciri yang menggunakan papan kekunci yang tidak biasa digunakan, pengawal permainan dan peranti lain</translation> @@ -4178,7 +4182,7 @@ <translation id="4972129977812092092">Edit pencetak</translation> <translation id="4972164225939028131">Kata laluan salah</translation> <translation id="4972737347717125191">Tapak boleh meminta untuk menggunakan peranti dan data realiti maya</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{Redam tapak}other{Redam tapak}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{Redam laman}other{Redam laman}}</translation> <translation id="497403230787583386">Semakan keselamatan sudah selesai. Dokumen anda akan dicetak.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation> <translation id="4977942889532008999">Sahkan Akses</translation> @@ -7370,6 +7374,7 @@ <translation id="8120505434908124087">Pasang profil eSIM</translation> <translation id="812260729110117038">Pengiklan dan penerbit boleh mengkaji keberkesanan iklan dengan cara yang tidak menjejak anda merentas berbilang laman.</translation> <translation id="81238879832906896">Bunga kuning dan putih</translation> +<translation id="8123975449645947908">Tatal ke belakang</translation> <translation id="8124313775439841391">ONC Terurus</translation> <translation id="813082847718468539">Lihat maklumat tapak</translation> <translation id="8131740175452115882">Sahkan</translation> @@ -8287,6 +8292,7 @@ <translation id="9037640663275993951">Peranti tidak dibenarkan</translation> <translation id="9037818663270399707">Sambungan anda tidak peribadi untuk semua trafik rangkaian</translation> <translation id="9037965129289936994">Tunjukkan Yang Asal</translation> +<translation id="9038489124413477075">Folder Tanpa Nama</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Anda mempunyai satu percubaan lagi.}other{Anda mempunyai # percubaan lagi.}}</translation> <translation id="9040473193163777637">Adakah anda mahu mengaktifkan ChromeVox, pembaca skrin terbina dalam untuk Chrome OS? Jika ya, tekan dan tahan kedua-dua kekunci kelantangan selama lima saat.</translation> <translation id="9040661932550800571">Kemas kini kata laluan untuk <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index b8ce193..6b3a1b3 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">ဖိုင်များ ဆိုသည့် အက်ပ် အားသုံးပြီး စက်ပစ္စည်းမှ မီဒီယာကို Back up လုပ်ပါ</translation> <translation id="1343865611738742294">USB စက်ပစ္စည်းများကို Linux အက်ပ်များအား အသုံးပြုခွင့်ပေးပါ။ USB စက်ပစ္စည်းကို ဖယ်ရှားလိုက်ပါက Linux က ၎င်းကို မှတ်ထားတော့မည်မဟုတ်ပါ။</translation> <translation id="1343920184519992513">သင်ထားခဲ့သည့်နေရာမှ ပြန်စရန်နှင့် သီးသန့်စာမျက်နှာအုပ်စုတစ်ခု ဖွင့်ရန်</translation> +<translation id="1344377983938103876"><ph name="URL" /> ဖွင့်နေသည်...</translation> <translation id="134589511016534552">‘ဖွင့်ထားသောတဘ်များ’ ကဏ္ဍတွင် မီဒီယာတဘ်များကိုလည်း ပြသည်</translation> <translation id="1346630054604077329">အတည်ပြုပြီး ပြန်စရန်</translation> <translation id="1346748346194534595">ညာ</translation> @@ -1811,6 +1812,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> ကဲ့သို့ အခြားအက်ပ်များကိုလည်း တူညီသောလင့်ခ်များဖွင့်ရန် သတ်မှတ်ထားသည်။ ဤပြောင်းလဲခြင်းက <ph name="APP_NAME_2" /> နှင့် <ph name="APP_NAME_3" /> ကို ပံ့ပိုးထားသောလင့်ခ်များ ပေးဖွင့်မည်မဟုတ်ပါ။</translation> <translation id="2667463864537187133">စာလုံးပေါင်းသတ်ပုံ စီမံခန့်ခွဲခြင်း</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ကို ဖွင့်၍မရပါ</translation> +<translation id="2669454659051515572">ဒေါင်းလုဒ်လုပ်သည့်ဖိုင်များကို ဤစက်အသုံးပြုသူတိုင်း တွေ့နိုင်သည်</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> သည် Chrome တဘ်ကိုမျှဝေနေသည်။</translation> <translation id="2670403088701171361">သင့်ကလစ်ဘုတ်ရှိ စာသား (သို့) ပုံများ ကြည့်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation> <translation id="2670429602441959756">ဤစာမျက်နှာပေါ်တွင် VR အား ပံ့ပိုးမှုမရှိသေးသည့် ဝန်ဆောင်မှုများ ပါဝင်နေပါသည်။ ထွက်နေသည်...</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">သင်၏ <ph name="DEVICE_TYPE" /> တွင် Linux ကိရိယာ၊ တည်းဖြတ်စနစ်နှင့် IDE များဖွင့်ပါ။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ခွင့်ပြုချက်များကို ပြင်ဆင်သတ်မှတ်ရန်</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Wi-Fi သို့ ယနေ့ချိတ်ဆက်ပြီး အပ်ဒိတ်ကို ဒေါင်းလုဒ်လုပ်ရန် <ph name="MANAGER" /> က သတ်မှတ်ထားသည်။ သို့မဟုတ် အခမဲ့ မဟုတ်သော ချိတ်ဆက်မှုမှ ဒေါင်းလုဒ်လုပ်ပါ (ဒေတာသုံးစွဲခ ကျသင့်နိုင်သည်)။}other{နောက်ဆုံးသတ်မှတ်ရက် မတိုင်မီ Wi-Fi သို့ချိတ်ဆက်ပြီး အပ်ဒိတ်ဒေါင်းလုဒ်လုပ်ရန် <ph name="MANAGER" /> က သတ်မှတ်ထားသည်။ သို့မဟုတ် အခမဲ့ မဟုတ်သော ချိတ်ဆက်မှုမှ ဒေါင်းလုဒ်လုပ်ပါ (ဒေတာသုံးစွဲခ ကျသင့်နိုင်သည်)။}}</translation> +<translation id="3009178788565917040">အထွက်</translation> <translation id="3009300415590184725">မိုဘိုင်းအချက်လက်ဝန်ဆောင်မှု တပ်ဆင်ခြင်းလုပ်ငန်းကို ပယ်ဖျက်ရန် သင်လိုလားပါသလား?</translation> <translation id="3009779501245596802">လမ်းညွှန်ထားသည့် ဒေတာဘေ့စ်များ</translation> <translation id="3010279545267083280">စကားဝှက် ဖျက်ခဲ့</translation> @@ -3564,6 +3567,7 @@ <translation id="4377058670119819762">တဘ်ဘားတန်း ပြည့်သွားသောအခါ ဘယ်ညာလှိမ့်ရန် ၎င်းကို ဖွင့်နိုင်သည်။</translation> <translation id="4377363674125277448">ဆာဗား၏ လက်မှတ် ထဲတွင် ပြဿနာ ရှိခဲ့သည်။</translation> <translation id="4378154925671717803">ဖုန်း</translation> +<translation id="4378308539633073595">ရှေ့သို့ လှိမ့်သည်</translation> <translation id="4378551569595875038">ချိတ်ဆက်ရန်...</translation> <translation id="4378556263712303865">စက်ပစ္စည်း လိုအပ်ချက်</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ကို ဖယ်ရှားလိုပါသလား။</translation> @@ -6963,6 +6967,7 @@ <translation id="7753735457098489144">သိုလှောင်ခန်း နေရာ မရှိသဖြင့် ထည့်သွင်း၍မရပါ။ နေရာလွတ်ပြုလုပ်ရန် စက်သိုလှောင်ခန်းမှ ဖိုင်များကို ဖျက်ပါ။</translation> <translation id="7754347746598978109">JavaScript သုံးရန် ခွင့်ပြုမထားပါ</translation> <translation id="7754704193130578113">ဒေါင်းလုဒ်မလုပ်မီ ဖိုင်တိုင်းကို မည်သည့်နေရာတွင် သိမ်းမည်ကို မေးပါ</translation> +<translation id="7755134875397410803">သင်၏လုပ်ဆောင်စရာများ ပြီးမြောက်အောင် ကူညီရန် Assistant ကို အသုံးပြုထားသည့် ဝဘ်ဆိုက်များ၏ URL နှင့် အကြောင်းအရာများအပြင် Assistant ဖြင့် ပေးပို့ထားသည့် အချက်အလက်များကို Google က ရရှိပါမည်။ ဤအချက်အလက်များကို သင်၏ Google Account တွင် သိမ်းနိုင်သည်။ Assistant ကို Chrome ဆက်တင်များတွင် ပိတ်နိုင်သည်။ <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">သင့်မိဘသည် ၎င်းကို သင့်အတွက် ဖွင့်ပေးနိုင်ပါသည်</translation> <translation id="7757592200364144203">စက်အမည်ကို ပြောင်းရန်</translation> <translation id="7757739382819740102">အနီးရှိ အဆက်အသွယ်များက သင်နှင့်မျှဝေနိုင်သည်။ အတည်ပြုချက် လိုအပ်ပါမည်။</translation> @@ -7365,6 +7370,7 @@ <translation id="8120505434908124087">eSIM ပရိုဖိုင် ထည့်သွင်းရန်</translation> <translation id="812260729110117038">ကြော်ငြာရှင်များနှင့် ထုတ်ဝေသူများသည် ဝဘ်ဆိုက်များပေါ်တွင် သင့်ကိုခြေရာမခံသည့်နည်းလမ်းဖြင့် ကြော်ငြာများ၏ထိရောက်မှုကို လေ့လာနိုင်သည်။</translation> <translation id="81238879832906896">အဝါရောင်နှင့် အဖြူရောင်ပန်း</translation> +<translation id="8123975449645947908">နောက်သို့ လှိမ့်ရန်</translation> <translation id="8124313775439841391">စီမံထားသော ONC</translation> <translation id="813082847718468539">ဆိုက် အချက်အလက်များကို ကြည့်ရန်</translation> <translation id="8131740175452115882">အတည်ပြုရန်</translation> @@ -8281,6 +8287,7 @@ <translation id="9037640663275993951">စက်ကို ခွင့်ပြုမထားပါ</translation> <translation id="9037818663270399707">သင်၏ချိတ်ဆက်မှုသည် ကွန်ရက်ဒေတာစီးဆင်းမှုအားလုံးအတွက် သီးသန့်မဟုတ်ပါ</translation> <translation id="9037965129289936994">မူရင်းကို ပြရန်</translation> +<translation id="9038489124413477075">အမည်မရှိ ဖိုလ်ဒါ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ကြိုးစားခွင့် တစ်ကြိမ် ကျန်ပါသည်။}other{ကြိုးစားခွင့် # ကြိမ် ကျန်ပါသည်။}}</translation> <translation id="9040473193163777637">ChromeOS ၏ အသင့်ပါ ဖန်သားပြင်ဖတ်အက်ပ် ChromeVox ကို စဖွင့်လိုသလား။ သုံးလိုပါက အသံထိန်းခလုတ် နှစ်ခုစလုံးကို ငါးစက္ကန့်ကြာနှိပ်ထားပါ။</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> အတွက် စကားဝှက်ကို အပ်ဒိတ်လုပ်လိုပါသလား။</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 43200f26..ed528cae 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -1795,6 +1795,7 @@ <translation id="2667144577800272420">अन्य एपले पनि <ph name="APP_NAME" /> ले झैँ उही लिंकहरू खोल्ने सेटिङ लागू गरिएको छ। तपाईंले डिफल्ट एप बदल्नुभयो भने <ph name="APP_NAME_2" /> र <ph name="APP_NAME_3" /> ले खोल्न मिल्ने लिंकहरू खोल्न सक्ने छैनन्।</translation> <translation id="2667463864537187133">हिज्जे जाँचको व्यवस्थापन गर्नुहोस्</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> खोल्न सकिएन</translation> +<translation id="2669454659051515572">यो डिभाइस प्रयोग गर्ने सबै जना डाउनलोड गरिएका फाइलहरू देख्न सक्छन्</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome को एउटा ट्याबलाई साझेदारी गर्दैछ।</translation> <translation id="2670403088701171361">साइटहरूलाई मेरो क्लिपबोर्डमा भएका पाठ वा फोटोहरू हेर्ने अनुमति नदिइयोस्</translation> <translation id="2670429602441959756">यो पृष्ठमा अझै VR मा समर्थित नभएका सुविधाहरू समावेश छन्। बाहिरिँदै...</translation> @@ -2163,6 +2164,7 @@ <translation id="3008232374986381779">आफ्नो <ph name="DEVICE_TYPE" /> मा Linux का टुल, एडिटर र IDE हरू चलाउनुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation> <translation id="3008272652534848354">अनुमतिहरू रिसेट गर्नुहोस्</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> का अनुसार तपाईंले आजै Wi-Fi मार्फत अपडेट डाउनलोड गर्नु पर्ने हुन्छ। अथवा, डेटाको सीमा तोकिएको इन्टरनेट प्रयोग गरी डाउनलोड गर्नुहोस् (तोकिएको शुल्क लाग्न सक्छ)।}other{<ph name="MANAGER" /> का अनुसार तपाईंले म्याद सकिनुअघि नै Wi-Fi मार्फत अपडेट डाउनलोड गर्नु पर्ने हुन्छ। अथवा, डेटाको सीमा तोकिएको इन्टरनेट प्रयोग गरी डाउनलोड गर्नुहोस् (तोकिएको शुल्क लाग्न सक्छ)।}}</translation> +<translation id="3009178788565917040">निर्गत</translation> <translation id="3009300415590184725">के तपाइँ यकीन हुनुहुन्छ की तपाइँ मोबाइल लगत सेवा सेटअप प्रक्रिया रद्द गर्न चाहनुहुन्छ?</translation> <translation id="3009779501245596802">सूचित डेटाबेसहरू</translation> <translation id="3010279545267083280">पासवर्ड मेटाइयो</translation> @@ -3549,6 +3551,7 @@ <translation id="4377058670119819762">ट्याब स्ट्रिप भरिएपछि ट्याब स्ट्रिप बायाँ तथा दायाँ स्क्रोल गर्न मिल्ने बनाउँछ।</translation> <translation id="4377363674125277448">सर्भरको प्रमाणपत्रमा एक समस्या थियो।</translation> <translation id="4378154925671717803">फोन</translation> +<translation id="4378308539633073595">अगाडि स्क्रोल गर्नुहोस्</translation> <translation id="4378551569595875038">जडान गर्दै...</translation> <translation id="4378556263712303865">यन्त्रसम्बन्धी माग</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" को स्थापना रद्द गर्ने हो?</translation> @@ -7350,6 +7353,7 @@ <translation id="8120505434908124087">eSIM प्रोफाइल इन्स्टल गर्नुहोस्</translation> <translation id="812260729110117038">विज्ञापनदाता र प्रकाशकहरू विभिन्न साइटहरूमा तपाईंले गर्ने क्रियाकलाप ट्र्याक नगरिकनै विज्ञापनको प्रभावकारिताका बारेमा अध्ययन गर्न सक्छन्।</translation> <translation id="81238879832906896">पहेँलो र सेतो फुल</translation> +<translation id="8123975449645947908">पछाडितिर स्क्रोल गर्नुहोस्</translation> <translation id="8124313775439841391">व्यवस्थित ONC</translation> <translation id="813082847718468539">साइट जानकारी हेर्नुहोस्</translation> <translation id="8131740175452115882">निश्चित</translation> @@ -8266,6 +8270,7 @@ <translation id="9037640663275993951">यो डिभाइस प्रयोग गर्ने अनुमति दिइएको छैन</translation> <translation id="9037818663270399707">तपाईंको कनेक्सन सबै नेटवर्क ट्राफिकका लागि निजी हुँदैन</translation> <translation id="9037965129289936994">मूल पाठ देखाउनुहोस्</translation> +<translation id="9038489124413477075">बेनाम फोल्डर</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{तपाईं अब एक पटक प्रयास गर्न सक्नुहुन्छ।}other{तपाईं अब # पटक प्रयास गर्न सक्नुहुन्छ।}}</translation> <translation id="9040473193163777637">तपाईं ChromeOS मा पहिले नै इन्स्टल गरिएको ChromeVox नामक स्क्रिन रिडर एक्टिभेट गर्न चाहनुहुन्छ? तपाईं ChromeVox एक्टिभेट गर्न चाहनुहुन्छ भने पाँच सेकेन्डसम्म दुवै भोल्युम बटन थिचिराख्नुहोस्।</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> को पासवर्ड अद्यावधिक गर्ने हो?</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 7fea664..0f0e4822 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -352,6 +352,7 @@ <translation id="1340527397989195812">Back-ups van media op het apparaat maken via de app Bestanden.</translation> <translation id="1343865611738742294">Geef Linux-apps rechten tot USB-apparaten. Linux onthoudt een USB-apparaat niet nadat dit is verwijderd.</translation> <translation id="1343920184519992513">Ga verder waar je gebleven was en open een specifieke set pagina's.</translation> +<translation id="1344377983938103876"><ph name="URL" /> openen…</translation> <translation id="134589511016534552">Mediatabbladen worden ook getoond in het gedeelte Geopende tabbladen</translation> <translation id="1346630054604077329">Bevestigen en opnieuw opstarten</translation> <translation id="1346748346194534595">Rechts</translation> @@ -1798,6 +1799,7 @@ <translation id="2667144577800272420">Andere apps zijn ingesteld om dezelfde links te openen als <ph name="APP_NAME" />. Hiermee zet je uit dat <ph name="APP_NAME_2" /> en <ph name="APP_NAME_3" /> ondersteunde links openen.</translation> <translation id="2667463864537187133">Spellingcontrole beheren</translation> <translation id="2669241540496514785">Kan <ph name="APP_NAME" /> niet openen</translation> +<translation id="2669454659051515572">Iedereen die dit apparaat gebruikt, kan gedownloade bestanden zien</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deelt een Chrome-tabblad.</translation> <translation id="2670403088701171361">Niet toestaan dat sites tekst of afbeeldingen op je klembord bekijken</translation> <translation id="2670429602441959756">Deze pagina bevat functies die nog niet worden ondersteund in de VR-modus. Afsluiten...</translation> @@ -2164,6 +2166,7 @@ <translation id="3008232374986381779">Voer Linux-tools, -editors en -IDE's op je <ph name="DEVICE_TYPE" /> uit. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Rechten resetten</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> vereist dat je vandaag verbinding maakt met wifi om een update te downloaden. Je kunt de update ook downloaden via een verbinding met datalimiet (er kunnen kosten van toepassing zijn).}other{<ph name="MANAGER" /> vereist dat je vóór de deadline verbinding maakt met wifi en een update downloadt. Je kunt de update ook downloaden via een verbinding met datalimiet (er kunnen kosten van toepassing zijn).}}</translation> +<translation id="3009178788565917040">Uitgang</translation> <translation id="3009300415590184725">Weet je zeker dat je het instellen van een mobiele dataservice wilt annuleren?</translation> <translation id="3009779501245596802">Geïndexeerde databases</translation> <translation id="3010279545267083280">Wachtwoord verwijderd</translation> @@ -3550,6 +3553,7 @@ <translation id="4377058670119819762">Zorgt dat de tabbladstrook naar links en rechts kan scrollen als deze vol is.</translation> <translation id="4377363674125277448">Er is een probleem met het certificaat van de server.</translation> <translation id="4378154925671717803">Telefoon</translation> +<translation id="4378308539633073595">Vooruit scrollen</translation> <translation id="4378551569595875038">Verbinden...</translation> <translation id="4378556263712303865">Apparaataanvraag</translation> <translation id="4379281552162875326">'<ph name="APP_NAME" />' verwijderen?</translation> @@ -6944,6 +6948,7 @@ <translation id="7753735457098489144">De installatie is mislukt als gevolg van onvoldoende opslagruimte. Verwijder bestanden uit de opslag van je apparaat om ruimte vrij te maken.</translation> <translation id="7754347746598978109">Geen toestemming om JavaScript te gebruiken</translation> <translation id="7754704193130578113">Voorafgaand aan een download vragen waar een bestand moet worden opgeslagen</translation> +<translation id="7755134875397410803">Google kan je helpen taken sneller af te ronden en krijgt daarom de URL's en content van sites waarop je de Assistent gebruikt en informatie die je via de Assistent indient. Deze informatie kan worden opgeslagen in je Google-account. Je kunt de Assistent uitzetten in de instellingen van Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Je ouder of voogd kan de blokkering van deze site opheffen</translation> <translation id="7757592200364144203">Apparaatnaam wijzigen</translation> <translation id="7757739382819740102">Contacten in de buurt kunnen content met je delen. Goedkeuring is vereist.</translation> @@ -7345,6 +7350,7 @@ <translation id="8120505434908124087">E-simkaartprofiel installeren</translation> <translation id="812260729110117038">Adverteerders en uitgevers kunnen de effectiviteit van advertenties onderzoeken zonder dat je bezoeken aan verschillende sites worden bijgehouden.</translation> <translation id="81238879832906896">Geel-witte bloem</translation> +<translation id="8123975449645947908">Terugscrollen</translation> <translation id="8124313775439841391">Beheerde ONC</translation> <translation id="813082847718468539">Sitegegevens bekijken</translation> <translation id="8131740175452115882">Bevestigen</translation> @@ -8262,6 +8268,7 @@ <translation id="9037640663275993951">Apparaat is niet toegestaan</translation> <translation id="9037818663270399707">Je verbinding is niet privé voor alle netwerkverkeer</translation> <translation id="9037965129289936994">Origineel bekijken</translation> +<translation id="9038489124413477075">Naamloze map</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Je hebt nog één poging over.}other{Je hebt nog # pogingen over.}}</translation> <translation id="9040473193163777637">Wil je ChromeVox aanzetten, de ingebouwde schermlezer voor Chrome OS? Houd dan beide volumeknoppen 5 seconden ingedrukt.</translation> <translation id="9040661932550800571">Wachtwoord updaten voor <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 99bc23f7..53b1f82 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1274,6 +1274,7 @@ <translation id="2180620921879609685">blokkere innhold på alle sider</translation> <translation id="2182058453334755893">Kopiert til utklippstavlen</translation> <translation id="2184515124301515068">La Chrome velge når nettsteder kan spille av lyd (anbefalt)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">En side er delt fra en annen enhet</translation> <translation id="2187675480456493911">Synkronisert med andre enheter på kontoen. Innstillinger som endres av andre brukere, blir ikke synkronisert. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Feil ved import av tjenersertifikat</translation> @@ -1806,6 +1807,7 @@ <translation id="2667144577800272420">Andre apper er stilt inn på å åpne de samme linkene som <ph name="APP_NAME" />. Dette medfører at <ph name="APP_NAME_2" /> og <ph name="APP_NAME_3" /> ikke kan åpne støttede linker.</translation> <translation id="2667463864537187133">Administrer stavekontroll</translation> <translation id="2669241540496514785">Kunne ikke åpne <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Alle som bruker denne enheten, kan se nedlastede filer</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deler en Chrome-fane.</translation> <translation id="2670403088701171361">Ikke la nettsteder se tekst eller bilder på utklippstavlen</translation> <translation id="2670429602441959756">Denne siden inneholder funksjoner som ikke støttes i VR ennå. Avslutter …</translation> @@ -2139,7 +2141,7 @@ <translation id="2966937470348689686">Administrer Android-innstillinger</translation> <translation id="2967926928600500959">Nettadresser som gir treff på disse reglene, blir tvunget til å åpnes i en spesifikk nettleser.</translation> <translation id="2972581237482394796">Gjø&r om</translation> -<translation id="2973324205039581528">Kutt lyden for nettsted</translation> +<translation id="2973324205039581528">Demp lyden for nettstedet</translation> <translation id="2973537811036309675">Sidepanel</translation> <translation id="2976557544729462544">For at enkelte enheter skal fungere ordentlig eller med full ytelse, må du slå av datatilgangsbeskyttelse.</translation> <translation id="2977480621796371840">Fjern fra gruppen</translation> @@ -2173,6 +2175,7 @@ <translation id="3008232374986381779">Kjør Linux-verktøy, -redigeringsverktøy og -IDE-er på <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Tilbakestill tillatelser</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> krever at du kobler til Wi-Fi i dag og laster ned en oppdatering. Eller last ned via en tilkobling med datamåling (kostnader kan påløpe).}other{<ph name="MANAGER" /> krever at du kobler til Wi-Fi og laster ned en oppdatering før tidsfristen. Eller last ned via en tilkobling med datamåling (kostnader kan påløpe).}}</translation> +<translation id="3009178788565917040">Utdata</translation> <translation id="3009300415590184725">Er du sikker på at du vil avbryte konfigurasjonsprosessen for mobildatatjenesten?</translation> <translation id="3009779501245596802">Indekserte databaser</translation> <translation id="3010279545267083280">Passordet er slettet</translation> @@ -3558,6 +3561,7 @@ <translation id="4377058670119819762">Gjør det mulig å rulle faneraden mot venstre og høyre når den er full.</translation> <translation id="4377363674125277448">Det oppsto et problem med sertifikatet til tjeneren.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Rull fremover</translation> <translation id="4378551569595875038">Kobler til …</translation> <translation id="4378556263712303865">Enhetsrekvisisjon</translation> <translation id="4379281552162875326">Vil du avinstallere «<ph name="APP_NAME" />»?</translation> @@ -4169,7 +4173,7 @@ <translation id="4972129977812092092">Endre skriveren</translation> <translation id="4972164225939028131">Feil passord</translation> <translation id="4972737347717125191">Nettsteder kan be om å få bruke virtuell virkelighet-enheter og -data</translation> -<translation id="4973325300212422370">{NUM_TABS,plural, =1{Kutt lyden for nettstedet}other{Kutt lyden for nettstedene}}</translation> +<translation id="4973325300212422370">{NUM_TABS,plural, =1{Demp lyden for nettstedet}other{Demp lyden for nettstedene}}</translation> <translation id="497403230787583386">Sikkerhetssjekkene er fullført. Dokumentet blir skrevet ut.</translation> <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation> <translation id="4977942889532008999">Bekreft tilgangen</translation> @@ -7359,6 +7363,7 @@ <translation id="8120505434908124087">Installer e-SIM-profil</translation> <translation id="812260729110117038">Annonsører og utgivere kan studere effektiviteten av annonser på en måte som ikke sporer deg på tvers av nettsteder.</translation> <translation id="81238879832906896">Gul og hvit blomst</translation> +<translation id="8123975449645947908">Rull bakover</translation> <translation id="8124313775439841391">Administrert ONC</translation> <translation id="813082847718468539">Vis nettstedsinformasjon</translation> <translation id="8131740175452115882">Bekreft</translation> @@ -8275,6 +8280,7 @@ <translation id="9037640663275993951">Enheten er ikke tillatt</translation> <translation id="9037818663270399707">Tilkoblingen din er ikke privat for all nettverkstrafikk</translation> <translation id="9037965129289936994">Vis original</translation> +<translation id="9038489124413477075">Mappe uten navn</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Du har ett forsøk igjen.}other{Du har # forsøk igjen.}}</translation> <translation id="9040473193163777637">Vil du slå på ChromeVox, den innebygde skjermleseren for ChromeOS? Hvis ja, trykk og hold begge volumtastene i fem sekunder.</translation> <translation id="9040661932550800571">Vil du oppdatere passordet for <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index 4cd7f9a..d254249 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -1265,6 +1265,7 @@ <translation id="2180620921879609685">ଯେ କୌଣସି ପୃଷ୍ଠାରେ ବିଷୟବସ୍ତୁକୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation> <translation id="2182058453334755893">ଆପଣଙ୍କର କ୍ଲିପ୍ବୋର୍ଡକୁ କପି କରାଯାଇଛି</translation> <translation id="2184515124301515068">ସାଇଟ୍ଗୁଡ଼ିକ କେତେବେଳେ ସାଉଣ୍ଡ୍ ଚାଲୁ କରିବେ ତାହା Chromeକୁ ବାଛିବାକୁ ଦିଅନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">ଅନ୍ୟ ଏକ ଡିଭାଇସରୁ ସେୟାର୍ କରାଯାଇଥିବା ପୃଷ୍ଠା</translation> <translation id="2187675480456493911">ଆପଣଙ୍କ ଆକାଉଣ୍ଟରେ ଥିବା ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକ ସହ ସିଙ୍କ୍ ହୋଇଛି। ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ଦ୍ୱାରା ପରିବର୍ତ୍ତନ କରାଯାଇଥିବା ସେଟିଂସ୍ ସିଙ୍କ୍ ହେବ ନାହିଁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation> <translation id="2187895286714876935">ସର୍ଭର୍ ସାର୍ଟିଫିକେଟ୍ ଇମ୍ପୋର୍ଟ କରିବାରେ ତ୍ରୁଟି</translation> @@ -1795,6 +1796,7 @@ <translation id="2667144577800272420">ସମାନ ଲିଙ୍କଗୁଡ଼ିକୁ ଖୋଲିବା ପାଇଁ ଅନ୍ୟ ଆପଗୁଡ଼ିକ <ph name="APP_NAME" /> ଭାବେ ସେଟ ହୋଇଛି। ଏହା ସମର୍ଥିତ ଲିଙ୍କଗୁଡ଼ିକୁ ଖୋଲିବାରୁ <ph name="APP_NAME_2" /> ଏବଂ <ph name="APP_NAME_3" />କୁ ଅକ୍ଷମ କରିଦେବ।</translation> <translation id="2667463864537187133">ବନାନ ଯାଞ୍ଚ ପରିଚାଳନ କରନ୍ତୁ</translation> <translation id="2669241540496514785">"<ph name="APP_NAME" />"କୁ ଖୋଲି ହେଲା ନାହିଁ</translation> +<translation id="2669454659051515572">ଏହି ଡିଭାଇସକୁ ବ୍ୟବହାର କରୁଥିବା ଯେ କୌଣସି ବ୍ୟକ୍ତି ଡାଉନଲୋଡ କରାଯାଇଥିବା ଫାଇଲଗୁଡ଼ିକୁ ଦେଖିପାରିବେ</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> ଏକ Chrome ଟାବ୍ ସେୟାର୍ କରୁଛି।</translation> <translation id="2670403088701171361">ଆପଣଙ୍କ କ୍ଲିପବୋର୍ଡରେ ଥିବା ଟେକ୍ସଟ୍ କିମ୍ବା ଛବିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> <translation id="2670429602441959756">ଏହି ପୃଷ୍ଠାରେ ଥିବା ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକ, ଏପର୍ଯ୍ୟନ୍ତ ସୁଦ୍ଧା VRରେ ସମର୍ଥିତ ନୁହେଁ। ବାହାରି ଯାଉଛି...</translation> @@ -2162,6 +2164,7 @@ <translation id="3008232374986381779">ଆପଣଙ୍କର <ph name="DEVICE_TYPE" />ରେ Linux ଟୁଲ୍, ଏଡିଟର୍ ଏବଂ IDEଗୁଡ଼ିକ ଚଲାନ୍ତୁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ଅନୁମତି ରିସେଟ୍ କରନ୍ତୁ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> ପାଇଁ ଆପଣଙ୍କୁ ଏକ ଅପଡେଟ୍ ଡାଉନଲୋଡ୍ କରିବାକୁ ଆଜି ୱାଇ-ଫାଇ ସହ ସଂଯୋଗ କରିବାର ଆବଶ୍ୟକତା ଅଛି। କିମ୍ବା, ଏକ ମିଟର ହୋଇଥିବା ସଂଯୋଗରୁ ଡାଉନଲୋଡ୍ କରନ୍ତୁ (ଚାର୍ଜ ଲାଗୁ ହୋଇପାରେ)।}other{<ph name="MANAGER" /> ପାଇଁ ଆପଣଙ୍କୁ ସମୟସୀମା ପୂର୍ବରୁ ୱାଇ-ଫାଇ ସହ ସଂଯୋଗ କରି ଏକ ଅପଡେଟ୍ ଡାଉନଲୋଡ୍ କରିବା ଆବଶ୍ୟକ। କିମ୍ବା, ଏକ ମିଟର ହୋଇଥିବା ସଂଯୋଗରୁ ଡାଉନଲୋଡ୍ କରନ୍ତୁ (ଚାର୍ଜ ଲାଗୁ ହୋଇପାରେ)।}}</translation> +<translation id="3009178788565917040">ଆଉଟ୍ପୁଟ୍</translation> <translation id="3009300415590184725">ଆପଣ ମୋବାଇଲ୍ ଡାଟା ସେବା ସେଟ୍ ଅପ୍ ପ୍ରକ୍ରିୟାକୁ ବାତିଲ୍ କରିବାକୁ ଚାହୁଁଥିବା ନିଶ୍ଚିତ କି?</translation> <translation id="3009779501245596802">ସୂଚୀବଦ୍ଧ ଡାଟାବେସ୍</translation> <translation id="3010279545267083280">ପାସ୍ୱାର୍ଡ ଡିଲିଟ୍ ହୋଇଗଲା</translation> @@ -3548,6 +3551,7 @@ <translation id="4377058670119819762">ଟାବ୍ ଷ୍ଟ୍ରିପ୍ ପୂର୍ଣ୍ଣ ହୋଇଗଲେ ଏହାକୁ ବାମ ଓ ଡାହାଣକୁ ସ୍କ୍ରୋଲ୍ କରିବାକୁ ସକ୍ଷମ କରେ।</translation> <translation id="4377363674125277448">ସର୍ଭର୍ର ସାର୍ଟିଫିକେଟ୍ରେ ଗୋଟିଏ ସମସ୍ୟା ହୋଇଛି।</translation> <translation id="4378154925671717803">ଫୋନ୍</translation> +<translation id="4378308539633073595">ଆଗକୁ ସ୍କ୍ରୋଲ୍ କରନ୍ତୁ</translation> <translation id="4378551569595875038">ସଂଯୋଗ କରୁଛି...</translation> <translation id="4378556263712303865">ଡିଭାଇସ୍ର ଅଧିଗ୍ରହଣ</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ଅନଇନଷ୍ଟଲ୍ କରିବେ?</translation> @@ -7348,6 +7352,7 @@ <translation id="8120505434908124087">eSIM ପ୍ରୋଫାଇଲ୍ ଇନଷ୍ଟଲ୍ କରନ୍ତୁ</translation> <translation id="812260729110117038">ବିଜ୍ଞାପନଦାତା ଏବଂ ପବ୍ଲିସରମାନେ ଏପରି ଉପାୟରେ ବିଜ୍ଞାପନଗୁଡ଼ିକର ପ୍ରଭାବକୁ ଅଧ୍ୟୟନ କରିପାରିବେ ଯାହା ଆପଣଙ୍କୁ ବିଭିନ୍ନ ସାଇଟରେ ଟ୍ରାକ୍ କରେ ନାହିଁ।</translation> <translation id="81238879832906896">ହଳଦିଆ ଓ ଧଳା ଫୁଲ</translation> +<translation id="8123975449645947908">ପଛକୁ ସ୍କ୍ରୋଲ୍ କରନ୍ତୁ</translation> <translation id="8124313775439841391">ପରିଚାଳିତ ONC</translation> <translation id="813082847718468539">ସାଇଟ୍ର ସୂଚନା ଦେଖନ୍ତୁ</translation> <translation id="8131740175452115882">ନିଶ୍ଚିତ କରନ୍ତୁ</translation> @@ -8264,6 +8269,7 @@ <translation id="9037640663275993951">ଡିଭାଇସକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation> <translation id="9037818663270399707">ଆପଣଙ୍କ ସଂଯୋଗ ସମସ୍ତ ନେଟୱାର୍କ ଟ୍ରାଫିକ୍ ପାଇଁ ବ୍ୟକ୍ତିଗତ ନୁହେଁ</translation> <translation id="9037965129289936994">ମୂଳ ଲେଖା ଦେଖାନ୍ତୁ</translation> +<translation id="9038489124413477075">ବେନାମୀ ଫୋଲ୍ଡର୍</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ଆପଣଙ୍କର ଗୋଟିଏ ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}other{ଆପଣଙ୍କର #ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}}</translation> <translation id="9040473193163777637">ଆପଣ ChromeOS ପାଇଁ ବିଲ୍ଟ-ଇନ ସ୍କ୍ରିନ ରିଡର, ChromeVoxକୁ ସକ୍ରିୟ କରିବାକୁ ଚାହୁଁଛନ୍ତି? ଯଦି ଏପରି ହୋଇଥାଏ, ତେବେ ପାଞ୍ଚ ସେକେଣ୍ଡ ପାଇଁ ଉଭୟ ଭଲ୍ୟୁମ କୀ’କୁ ଦବାଇ ଧରନ୍ତୁ।</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> ପାଇଁ ପାସ୍ୱାର୍ଡକୁ ଅପ୍ଡେଟ୍ କରିବେ କି?</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index b4f7b8d..2b262d8e8 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -1281,6 +1281,7 @@ <translation id="2180620921879609685">ਕਿਸੇ ਵੀ ਪੰਨੇ 'ਤੇ ਸਮੱਗਰੀ ਬਲਾਕ ਕਰੋ</translation> <translation id="2182058453334755893">ਤੁਹਾਡੇ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕੀਤਾ ਗਿਆ</translation> <translation id="2184515124301515068">Chrome ਨੂੰ ਚੁਣਨ ਦਿਓ ਕਿ ਸਾਈਟਾਂ ਕਦੋਂ ਧੁਨੀ ਚਲਾ ਸਕਦੀਆਂ ਹਨ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">ਪੰਨੇ ਨੂੰ ਹੋਰ ਡੀਵਾਈਸ ਤੋਂ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਹੈ</translation> <translation id="2187675480456493911">ਤੁਹਾਡੇ ਖਾਤੇ 'ਤੇ ਹੋਰ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸਿੰਕ ਕੀਤਾ ਗਿਆ। ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਵੱਲੋਂ ਸੋਧੀਆਂ ਗਈਆਂ ਸੈਟਿੰਗਾਂ ਦਾ ਸਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> <translation id="2187895286714876935">ਸਰਵਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਆਯਾਤ ਗੜਬੜ</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">ਹੋਰ ਐਪਾਂ <ph name="APP_NAME" /> ਵਾਂਗ ਉਹੀ ਲਿੰਕ ਖੋਲ੍ਹਣ ਲਈ ਤਿਆਰ ਹਨ। ਇਹ <ph name="APP_NAME_2" /> ਅਤੇ <ph name="APP_NAME_3" /> ਨੂੰ ਸਹਾਇਤਾ ਲਈ ਲਿੰਕ ਖੋਲ੍ਹਣ ਤੋਂ ਰੋਕ ਦੇਵੇਗਾ।</translation> <translation id="2667463864537187133">ਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ</translation> +<translation id="2669454659051515572">ਇਸ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲਾ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਗਈਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome ਟੈਬ ਸਾਂਝਾ ਕਰ ਰਹੀ ਹੈ।</translation> <translation id="2670403088701171361">ਸਾਈਟਾਂ ਨੂੰ ਤੁਹਾਡੇ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਲਿਖਤ ਜਾਂ ਚਿੱਤਰ ਦੇਖਣ ਦੀ ਇਜਾਜ਼ਤ ਨਾ ਦਿਓ</translation> <translation id="2670429602441959756">ਇਸ ਪੰਨੇ 'ਤੇ ਅਜਿਹੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਹਾਲੇ VR ਵਿੱਚ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ। ਬਾਹਰ ਨਿਕਲਿਆ ਜਾ ਰਿਹਾ ਹੈ...</translation> @@ -2179,6 +2181,7 @@ <translation id="3008232374986381779">ਆਪਣੇ <ph name="DEVICE_TYPE" /> 'ਤੇ Linux ਦੇ ਟੂਲ, ਸੰਪਾਦਕ ਅਤੇ IDE ਚਲਾਓ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> <translation id="3008272652534848354">ਇਜਾਜ਼ਤਾਂ ਰੀਸੈੱਟ ਕਰੋ</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> ਲਈ ਤੁਹਾਨੂੰ ਅੱਜ ਹੀ ਵਾਈ-ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਹੋ ਕੇ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਜਾਂ, ਮੀਟਰਬੱਧ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਡਾਊਨਲੋਡ ਕਰੋ (ਖਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ)।}one{<ph name="MANAGER" /> ਲਈ ਤੁਹਾਨੂੰ ਵਾਈ-ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਹੋ ਕੇ ਸਮਾਂ-ਸੀਮਾ ਤੋਂ ਪਹਿਲਾਂ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਜਾਂ, ਮੀਟਰਬੱਧ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਡਾਊਨਲੋਡ ਕਰੋ (ਖਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ)।}other{<ph name="MANAGER" /> ਲਈ ਤੁਹਾਨੂੰ ਵਾਈ-ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਹੋ ਕੇ ਸਮਾਂ-ਸੀਮਾ ਤੋਂ ਪਹਿਲਾਂ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਜਾਂ, ਮੀਟਰਬੱਧ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਡਾਊਨਲੋਡ ਕਰੋ (ਖਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ)।}}</translation> +<translation id="3009178788565917040">ਆਉਟਪੁਟ</translation> <translation id="3009300415590184725">ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਸੇਵਾ ਸੈਟਅਪ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਰੱਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="3009779501245596802">ਇੰਡੈਕਸ ਕੀਤੇ ਡਾਟਾਬੇਸ</translation> <translation id="3010279545267083280">ਪਾਸਵਰਡ ਮਿਟਾਇਆ ਗਿਆ</translation> @@ -3566,6 +3569,7 @@ <translation id="4377058670119819762">ਟੈਬ ਪੱਟੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਭਰੀ ਹੋਣ 'ਤੇ ਇਸਨੂੰ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰਨ ਦਿੰਦੀ ਹੈ।</translation> <translation id="4377363674125277448">ਸਰਵਰ ਦੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।</translation> <translation id="4378154925671717803">ਫ਼ੋਨ</translation> +<translation id="4378308539633073595">ਅੱਗੇ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ</translation> <translation id="4378551569595875038">ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ...</translation> <translation id="4378556263712303865">ਡੀਵਾਈਸ ਬੇਨਤੀ</translation> <translation id="4379281552162875326">ਕੀ "<ph name="APP_NAME" />" ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨਾ ਹੈ?</translation> @@ -7371,6 +7375,7 @@ <translation id="8120505434908124087">ਈ-ਸਿਮ ਪ੍ਰੋਫਾਈਲ ਸਥਾਪਤ ਕਰੋ</translation> <translation id="812260729110117038">ਵਿਗਿਆਪਨਦਾਤੇ ਅਤੇ ਪ੍ਰਕਾਸ਼ਕ ਵਿਗਿਆਪਨਾਂ ਦੀ ਪ੍ਰਭਾਵਕਤਾ ਦਾ ਅਧਿਐਨ ਅਜਿਹੇ ਤਰੀਕੇ ਨਾਲ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਸਾਈਟਾਂ 'ਤੇ ਟਰੈਕ ਨਹੀਂ ਕਰਦਾ।</translation> <translation id="81238879832906896">ਪੀਲਾ ਅਤੇ ਸਫ਼ੈਦ ਫੁੱਲ</translation> +<translation id="8123975449645947908">ਪਿੱਛੇ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ</translation> <translation id="8124313775439841391">ਵਿਵਸਥਿਤ ONC</translation> <translation id="813082847718468539">ਸਾਈਟ ਜਾਣਕਾਰੀ ਦੇਖੋ</translation> <translation id="8131740175452115882">ਪੁਸ਼ਟੀ ਕਰੋ</translation> @@ -8288,6 +8293,7 @@ <translation id="9037640663275993951">ਡੀਵਾਈਸ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation> <translation id="9037818663270399707">ਤੁਹਾਡਾ ਕਨੈਕਸ਼ਨ ਸਾਰੇ ਨੈੱਟਵਰਕ ਟਰੈਫ਼ਿਕ ਲਈ ਨਿੱਜੀ ਨਹੀਂ ਹੈ</translation> <translation id="9037965129289936994">ਮੂਲ ਦਿਖਾਓ </translation> +<translation id="9038489124413477075">ਬਿਨਾਂ ਸਿਰਲੇਖ ਦਾ ਫੋਲਡਰ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਕੋਸ਼ਿਸ਼ ਬਾਕੀ ਹੈ।}one{ਤੁਹਾਡੇ ਕੋਲ # ਕੋਸ਼ਿਸ਼ ਬਾਕੀ ਹੈ।}other{ਤੁਹਾਡੇ ਕੋਲ # ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।}}</translation> <translation id="9040473193163777637">ਕੀ ਤੁਸੀਂ ChromeOS ਦੇ ਬਿਲਟ-ਇਨ ਸਕ੍ਰੀਨ ਰੀਡਰ ChromeVox ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ? ਜੇ ਹਾਂ, ਤਾਂ ਪੰਜ ਸਕਿੰਟਾਂ ਲਈ ਦੋਵੇਂ ਅਵਾਜ਼ੀ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾਈ ਰੱਖੋ।</translation> <translation id="9040661932550800571">ਕੀ <ph name="ORIGIN" /> ਲਈ ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ?</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index f1bac807..a93699f 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">Wykonaj kopię zapasową multimediów zapisanych na urządzeniu, używając aplikacji Pliki.</translation> <translation id="1343865611738742294">Przyznaj aplikacjom na Linuksa dostęp do urządzeń USB. Linux nie będzie pamiętać urządzenia USB po jego odłączeniu.</translation> <translation id="1343920184519992513">Kontynuuj od tego samego miejsca i otwórz konkretny zestaw stron</translation> +<translation id="1344377983938103876">Otwieram <ph name="URL" />...</translation> <translation id="134589511016534552">Karty multimediów są wyświetlane również w sekcji otwartych kart</translation> <translation id="1346630054604077329">Potwierdź i uruchom ponownie</translation> <translation id="1346748346194534595">W prawo</translation> @@ -1266,6 +1267,7 @@ <translation id="2180620921879609685">Blokowanie treści na dowolnej stronie</translation> <translation id="2182058453334755893">Skopiowano do schowka</translation> <translation id="2184515124301515068">Niech Chrome decyduje, które strony mogą odtwarzać dźwięk (zalecane)</translation> +<translation id="2186206192313702726">Obiektyw Google</translation> <translation id="2186711480981247270">Strona udostępniona z innego urządzenia</translation> <translation id="2187675480456493911">Sieć jest zsynchronizowana ze wszystkimi urządzeniami na Twoim koncie. Ustawienia zmienione przez innych użytkowników nie zostaną zsynchronizowane. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Błąd importowania certyfikatu serwera</translation> @@ -1784,6 +1786,7 @@ <translation id="2667144577800272420">Inne aplikacje zostały ustawione na otwieranie tych samych linków co <ph name="APP_NAME" />. Ta czynność spowoduje, że aplikacje <ph name="APP_NAME_2" /> i <ph name="APP_NAME_3" /> przestaną otwierać obsługiwane linki.</translation> <translation id="2667463864537187133">Zarządzanie sprawdzaniem pisowni</translation> <translation id="2669241540496514785">Nie udało się otworzyć <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Pobrane pliki może zobaczyć każdy użytkownik tego urządzenia</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> udostępnia kartę Chrome.</translation> <translation id="2670403088701171361">Nie zezwalaj witrynom na dostęp do tekstu i obrazów w schowku</translation> <translation id="2670429602441959756">Strona zawiera funkcje, które nie są jeszcze obsługiwane w rzeczywistości wirtualnej. Zamykam…</translation> @@ -2150,6 +2153,7 @@ <translation id="3008232374986381779">Używaj na urządzeniu <ph name="DEVICE_TYPE" /> narzędzi, edytorów i IDE na Linuksa. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Zresetuj uprawnienia</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Domena <ph name="MANAGER" /> wymaga połączenia się z Wi-Fi i pobrania aktualizacji dzisiaj. Możesz też rozpocząć pobieranie za pomocą połączenia z pomiarem użycia danych (mogą zostać naliczone opłaty).}few{Domena <ph name="MANAGER" /> wymaga połączenia się z Wi-Fi i pobrania aktualizacji przed upływem wyznaczonego terminu. Możesz też rozpocząć pobieranie za pomocą połączenia z pomiarem użycia danych (mogą zostać naliczone opłaty).}many{Domena <ph name="MANAGER" /> wymaga połączenia się z Wi-Fi i pobrania aktualizacji przed upływem wyznaczonego terminu. Możesz też rozpocząć pobieranie za pomocą połączenia z pomiarem użycia danych (mogą zostać naliczone opłaty).}other{Domena <ph name="MANAGER" /> wymaga połączenia się z Wi-Fi i pobrania aktualizacji przed upływem wyznaczonego terminu. Możesz też rozpocząć pobieranie za pomocą połączenia z pomiarem użycia danych (mogą zostać naliczone opłaty).}}</translation> +<translation id="3009178788565917040">Urządzenie wyjściowe</translation> <translation id="3009300415590184725">Czy na pewno chcesz anulować konfigurowanie komórkowej usługi transmisji danych?</translation> <translation id="3009779501245596802">Zindeksowane bazy danych</translation> <translation id="3010279545267083280">Hasło usunięte</translation> @@ -3192,6 +3196,7 @@ <translation id="402211067068791756">Spowoduje to usunięcie <ph name="TOTAL_USAGE" /> danych zapisanych przez wyświetlone strony</translation> <translation id="4022426551683927403">&Dodaj do słownika</translation> <translation id="4025039777635956441">Wycisz wybraną stronę</translation> +<translation id="4027958407426528157">Otwieraj strony internetowe w aplikacjach zainstalowanych na urządzeniu <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Dodaj metody wprowadzania</translation> <translation id="4029556917477724407">Powrót ze strony <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Zezwolono na dostęp do mikrofonu</translation> @@ -3537,6 +3542,7 @@ <translation id="4377058670119819762">Włącza przewijanie paska kart w lewo lub w prawo, gdy jest w pełnym rozmiarze.</translation> <translation id="4377363674125277448">Wystąpił problem z certyfikatem serwera.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Przewiń do przodu</translation> <translation id="4378551569595875038">Łączę...</translation> <translation id="4378556263712303865">Przeznaczenie urządzenia</translation> <translation id="4379281552162875326">Odinstalować: „<ph name="APP_NAME" />”?</translation> @@ -6543,6 +6549,7 @@ <translation id="7377481913241237033">Połącz przy użyciu kodu</translation> <translation id="7378611153938412599">Słabe hasła są łatwe do odgadnięcia. Pamiętaj, by używać tylko silnych haseł. <ph name="BEGIN_LINK" />Więcej wskazówek dotyczących bezpieczeństwa<ph name="END_LINK" /></translation> <translation id="73786666777299047">Otwórz Chrome Web Store</translation> +<translation id="737938816678769289">Szybko łącz i konfiguruj urządzenia w pobliżu, używając funkcji Szybkie parowanie</translation> <translation id="7380459290951585794">Sprawdź, czy telefon jest w pobliżu, jest odblokowany i ma włączone Bluetooth oraz Wi-Fi</translation> <translation id="7380622428988553498">Nazwa urządzenia zawiera niedozwolone znaki</translation> <translation id="7380768571499464492">Zaktualizowano: <ph name="PRINTER_NAME" /></translation> @@ -6940,6 +6947,7 @@ <translation id="7753735457098489144">Instalacja nie udała się z powodu braku miejsca. Aby zwolnić miejsce, usuń pliki z pamięci urządzenia.</translation> <translation id="7754347746598978109">Nie zezwolono na używanie JavaScriptu</translation> <translation id="7754704193130578113">Pytaj przed pobraniem, gdzie zapisać każdy plik</translation> +<translation id="7755134875397410803">Aby pomóc Ci w wykonywaniu zadań, Google będzie otrzymywać adresy URL i zawartość stron, na których używasz Asystenta, a także informacje, które przekazujesz za pomocą Asystenta. Te informacje mogą być przechowywane na Twoim koncie Google. Możesz wyłączyć Asystenta w ustawieniach Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Może ją dla Ciebie odblokować Twój rodzic</translation> <translation id="7757592200364144203">Zmień nazwę urządzenia</translation> <translation id="7757739382819740102">Kontakty w pobliżu mogą Ci udostępniać dane. Wymagane jest zatwierdzenie.</translation> @@ -7343,6 +7351,7 @@ <translation id="8120505434908124087">Zainstaluj profil eSIM</translation> <translation id="812260729110117038">Reklamodawcy i wydawcy mogą analizować skuteczność reklam, stosując metody niewymagające śledzenia Cię w witrynach.</translation> <translation id="81238879832906896">Żółto-biały kwiat</translation> +<translation id="8123975449645947908">Przewiń do tyłu</translation> <translation id="8124313775439841391">Zarządzana konfiguracja ONC</translation> <translation id="813082847718468539">Wyświetl informacje o witrynie</translation> <translation id="8131740175452115882">Potwierdź</translation> @@ -8261,6 +8270,7 @@ <translation id="9037640663275993951">Urządzenie nie zostało dopuszczone</translation> <translation id="9037818663270399707">Twoje połączenie nie jest prywatne w zakresie całego ruchu w sieci</translation> <translation id="9037965129289936994">Pokaż tekst oryginalny</translation> +<translation id="9038489124413477075">Folder bez nazwy</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Pozostała jedna próba.}few{Pozostały # próby.}many{Pozostało # prób.}other{Pozostało # próby.}}</translation> <translation id="9040473193163777637">Czy chcesz włączyć ChromeVoksa, czyli wbudowany czytnik ekranu w Chrome OS? Jeśli tak, naciśnij i przytrzymaj przez 5 sekund oba przyciski głośności.</translation> <translation id="9040661932550800571">Zaktualizować hasło do: <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 99a3f78..0ef5062 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -355,6 +355,7 @@ <translation id="1340527397989195812">Fazer backup de mídia do dispositivo usando o aplicativo Arquivos.</translation> <translation id="1343865611738742294">Conceder aos apps Linux permissão para acessar dispositivos USB. O Linux não terá informações do dispositivo USB depois que ele for removido.</translation> <translation id="1343920184519992513">Continuar de onde parou e abrir um conjunto específico de páginas</translation> +<translation id="1344377983938103876">Abrindo <ph name="URL" />...</translation> <translation id="134589511016534552">As guias de mídia também aparecem na seção "Guias abertas"</translation> <translation id="1346630054604077329">Confirmar e reiniciar</translation> <translation id="1346748346194534595">À direita</translation> @@ -1814,6 +1815,7 @@ <translation id="2667144577800272420">Outros apps estão configurados para abrir os mesmos links que <ph name="APP_NAME" />. Esta ação impedirá que <ph name="APP_NAME_2" /> e <ph name="APP_NAME_3" /> abram links compatíveis.</translation> <translation id="2667463864537187133">Gerenciar a verificação ortográfica</translation> <translation id="2669241540496514785">Não foi possível abrir o app <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Qualquer pessoa que use este dispositivo pode ver os arquivos transferidos por download</translation> <translation id="2670102641511624474">O app <ph name="APP_NAME" /> está compartilhando uma guia do Chrome.</translation> <translation id="2670403088701171361">Não permitir que os sites acessem os textos e imagens da área de transferência</translation> <translation id="2670429602441959756">Esta página contém recursos que ainda não são compatíveis com a realidade virtual. Saindo…</translation> @@ -2181,6 +2183,7 @@ <translation id="3008232374986381779">Execute ferramentas, editores e ambientes de desenvolvimento integrado do Linux no seu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Redefinir permissões</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> precisa que você se conecte hoje ao Wi-Fi para fazer o download de uma atualização. Você também pode fazer o download em uma conexão limitada (sujeito a cobranças).}one{<ph name="MANAGER" /> precisa que você se conecte ao Wi-Fi e faça o download de uma atualização antes do fim do prazo. Você também pode fazer o download em uma conexão limitada (sujeito a cobranças).}other{<ph name="MANAGER" /> precisa que você se conecte ao Wi-Fi e faça o download de uma atualização antes do fim do prazo. Você também pode fazer o download em uma conexão limitada (sujeito a cobranças).}}</translation> +<translation id="3009178788565917040">Saída</translation> <translation id="3009300415590184725">Você quer mesmo cancelar o processo de configuração do serviço de dados móveis?</translation> <translation id="3009779501245596802">Bancos de dados indexados</translation> <translation id="3010279545267083280">Senha excluída</translation> @@ -3569,6 +3572,7 @@ <translation id="4377058670119819762">Ativa a rolagem para a esquerda e para a direita quando a barra de guias está cheia.</translation> <translation id="4377363674125277448">Ocorreu um problema com o certificado do servidor.</translation> <translation id="4378154925671717803">Telefone</translation> +<translation id="4378308539633073595">Rolar para a frente</translation> <translation id="4378551569595875038">Conectando...</translation> <translation id="4378556263712303865">Requisição do dispositivo</translation> <translation id="4379281552162875326">Desinstalar o app <ph name="APP_NAME" />?</translation> @@ -6973,6 +6977,7 @@ <translation id="7753735457098489144">Falha na instalação devido à falta de espaço de armazenamento. Para liberar espaço, exclua arquivos do armazenamento do dispositivo.</translation> <translation id="7754347746598978109">Bloquear o uso do JavaScript</translation> <translation id="7754704193130578113">Perguntar onde salvar cada arquivo antes de fazer download</translation> +<translation id="7755134875397410803">Para ajudar você com suas tarefas, o Google vai receber os URLs e o conteúdo de sites em que você usa o Google Assistente e também as informações que você envia por ele. Essas informações podem ser armazenadas na sua Conta do Google. É possível desativar o Google Assistente nas configurações do Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Seu responsável pode desbloqueá-lo para você</translation> <translation id="7757592200364144203">Mudar o nome do dispositivo</translation> <translation id="7757739382819740102">Os contatos por perto podem compartilhar com você. Será necessária a aprovação.</translation> @@ -7376,6 +7381,7 @@ <translation id="8120505434908124087">Instalar perfil de eSIM</translation> <translation id="812260729110117038">Anunciantes e editores também podem analisar a eficácia dos anúncios sem rastrear suas ações em sites.</translation> <translation id="81238879832906896">Flor amarela e branca</translation> +<translation id="8123975449645947908">Rolar para trás</translation> <translation id="8124313775439841391">ONC gerenciado</translation> <translation id="813082847718468539">Ver informações do site</translation> <translation id="8131740175452115882">Confirmar</translation> @@ -8293,6 +8299,7 @@ <translation id="9037640663275993951">O dispositivo não é permitido</translation> <translation id="9037818663270399707">Sua conexão não é particular em todo o tráfego de rede</translation> <translation id="9037965129289936994">Mostrar original</translation> +<translation id="9038489124413477075">Pasta sem nome</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Você só tem mais 1 tentativa.}one{Você só tem mais # tentativa.}other{Você só tem mais # tentativas.}}</translation> <translation id="9040473193163777637">Você quer ativar o ChromeVox, o leitor de tela integrado do ChromeOS? Se for o caso, aperte as duas teclas de volume e as mantenha pressionadas por cinco segundos</translation> <translation id="9040661932550800571">Atualizar senha para <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index bdb759d..bdecd00f3 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -352,6 +352,7 @@ <translation id="1340527397989195812">Fazer cópia de segurança de multimédia a partir do dispositivo com a aplicação Ficheiros.</translation> <translation id="1343865611738742294">Conceda às aplicações Linux autorização de acesso a dispositivos USB. O Linux não memoriza um dispositivo USB após a sua remoção.</translation> <translation id="1343920184519992513">Continue onde parou e abra um conjunto específico de páginas</translation> +<translation id="1344377983938103876">A abrir <ph name="URL" />…</translation> <translation id="134589511016534552">Os separadores de multimédia também são apresentados na secção Separadores abertos</translation> <translation id="1346630054604077329">Confirmar e reiniciar</translation> <translation id="1346748346194534595">Direita</translation> @@ -1798,6 +1799,7 @@ <translation id="2667144577800272420">Outras apps estão definidas para abrir os mesmos links que a app <ph name="APP_NAME" />. Isto irá impedir que as apps <ph name="APP_NAME_2" /> e <ph name="APP_NAME_3" /> abram links suportados.</translation> <translation id="2667463864537187133">Gerir verificação ortográfica</translation> <translation id="2669241540496514785">Não foi possível abrir a app <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Qualquer pessoa que use este dispositivo pode ver os ficheiros transferidos</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> está a partilhar um separador do Chrome.</translation> <translation id="2670403088701171361">Não permitir que os sites vejam texto ou imagens na área de transferência</translation> <translation id="2670429602441959756">Esta página contém funcionalidades que ainda não são suportadas no modo de RV e será agora fechada.</translation> @@ -2166,6 +2168,7 @@ <translation id="3008232374986381779">Execute ferramentas, editores e IDEs do Linux no seu dispositivo <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Repor autorizações</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> requer que estabeleça ligação a uma rede Wi-Fi hoje para transferir uma atualização. Em alternativa, transfira a partir de uma ligação com acesso limitado (podem aplicar-se custos).}other{<ph name="MANAGER" /> requer que estabeleça ligação a uma rede Wi-Fi e transfira uma atualização antes do prazo. Em alternativa, transfira a partir de uma ligação com acesso limitado (podem aplicar-se custos).}}</translation> +<translation id="3009178788565917040">Saída</translation> <translation id="3009300415590184725">Tem a certeza de que pretende cancelar o processo de configuração do serviço de dados móveis?</translation> <translation id="3009779501245596802">Bases de dados indexadas</translation> <translation id="3010279545267083280">Palavra-passe eliminada</translation> @@ -3208,6 +3211,7 @@ <translation id="402211067068791756">Esta ação irá limpar <ph name="TOTAL_USAGE" /> de dados armazenados pelos sites apresentados</translation> <translation id="4022426551683927403">&Adicionar ao Dicionário</translation> <translation id="4025039777635956441">Desativar o som do site selecionado</translation> +<translation id="4027958407426528157">Abra Websites em apps instaladas no seu dispositivo <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Adicionar métodos de introdução</translation> <translation id="4029556917477724407">Voltar à página <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Microfone permitido</translation> @@ -3553,6 +3557,7 @@ <translation id="4377058670119819762">Permite que a Faixa de separadores se desloque para a esquerda e para a direita quando estiver cheia.</translation> <translation id="4377363674125277448">Ocorreu um problema com o certificado do servidor.</translation> <translation id="4378154925671717803">Telemóvel</translation> +<translation id="4378308539633073595">Deslocar para a frente</translation> <translation id="4378551569595875038">A ligar...</translation> <translation id="4378556263712303865">Requisição do dispositivo</translation> <translation id="4379281552162875326">Pretende desinstalar a app "<ph name="APP_NAME" />"?</translation> @@ -6557,6 +6562,7 @@ <translation id="7377481913241237033">Associar com um código</translation> <translation id="7378611153938412599">As palavras-passe fracas são fáceis de adivinhar. Certifique-se de que cria palavras-passe fortes. <ph name="BEGIN_LINK" />Veja mais sugestões de segurança.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Abrir a Web Store do Chrome</translation> +<translation id="737938816678769289">Ligue e configure facilmente dispositivos com o Fast Pair nas proximidades</translation> <translation id="7380459290951585794">Certifique-se de que o telemóvel está próximo, desbloqueado e com o Bluetooth e o Wi-Fi ativados</translation> <translation id="7380622428988553498">O nome do dispositivo contém carateres inválidos.</translation> <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> foi atualizada.</translation> @@ -6954,6 +6960,7 @@ <translation id="7753735457098489144">A instalação falhou devido à falta de espaço de armazenamento. Para libertar espaço, elimine ficheiros do armazenamento do dispositivo.</translation> <translation id="7754347746598978109">Sem autorização para utilizar JavaScript</translation> <translation id="7754704193130578113">Perguntar onde guardar cada ficheiro antes da transferência</translation> +<translation id="7755134875397410803">Para ajudar a concluir as tarefas, a Google vai receber os URLs e os conteúdos dos sites nos quais usa o Assistente, bem como as informações que envia através do mesmo. Estas informações podem ser armazenadas na sua Conta Google. Pode desativar o Assistente nas definições do Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">O teu pai/a tua mãe pode desbloquear-te</translation> <translation id="7757592200364144203">Alterar nome do dispositivo</translation> <translation id="7757739382819740102">Os contactos próximos podem partilhar consigo. É necessária aprovação.</translation> @@ -7357,6 +7364,7 @@ <translation id="8120505434908124087">Instalar perfil eSIM</translation> <translation id="812260729110117038">Os anunciantes e os publicadores podem estudar a eficácia dos anúncios sem monitorizar a sua navegação em sites.</translation> <translation id="81238879832906896">Flor amarela e branca</translation> +<translation id="8123975449645947908">Deslocar para trás</translation> <translation id="8124313775439841391">ONC gerido</translation> <translation id="813082847718468539">Ver informações do Website</translation> <translation id="8131740175452115882">Confirmar</translation> @@ -8273,6 +8281,7 @@ <translation id="9037640663275993951">O dispositivo não é permitido</translation> <translation id="9037818663270399707">A sua ligação não é privada para todo o tráfego de rede.</translation> <translation id="9037965129289936994">Mostrar original</translation> +<translation id="9038489124413477075">Pasta sem nome</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Tem mais uma tentativa.}other{Tem mais # tentativas.}}</translation> <translation id="9040473193163777637">Quer ativar o ChromeVox, o leitor de ecrã incorporado para o ChromeOS? Em caso afirmativo, prima sem soltar ambas as teclas de volume durante cinco segundos.</translation> <translation id="9040661932550800571">Pretende atualizar a palavra-passe para <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 11df982..fa2b59e 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1800,6 +1800,7 @@ <translation id="2667144577800272420">Alte aplicații sunt setate să deschidă aceleași linkuri ca <ph name="APP_NAME" />. Astfel, <ph name="APP_NAME_2" /> și <ph name="APP_NAME_3" /> vor fi setate să nu mai deschidă linkurile acceptate.</translation> <translation id="2667463864537187133">Gestionează verificarea ortografiei</translation> <translation id="2669241540496514785">Nu s-a putut deschide <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Oricine folosește acest dispozitiv poate să vadă fișierele descărcate</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> trimite conținutul unei file Chrome.</translation> <translation id="2670403088701171361">Nu permite site-urilor să vadă text sau imagini din clipboard</translation> <translation id="2670429602441959756">Această pagină conține funcții care nu sunt încă acceptate în RV. Se iese...</translation> @@ -2167,6 +2168,7 @@ <translation id="3008232374986381779">Rulează instrumentele, aplicațiile de editare și IDE-urile Linux pe <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Resetează permisiunile</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> solicită să te conectezi azi la rețeaua Wi-Fi pentru a descărca o actualizare. Sau poți să descarci folosind o conexiune contorizată (se pot aplica taxe).}few{<ph name="MANAGER" /> solicită să te conectezi la rețeaua Wi-Fi și să descarci o actualizare înainte de termenul limită. Sau poți să descarci folosind o conexiune contorizată (se pot aplica taxe).}other{<ph name="MANAGER" /> solicită să te conectezi la rețeaua Wi-Fi și să descarci o actualizare înainte de termenul limită. Sau poți să descarci folosind o conexiune contorizată (se pot aplica taxe).}}</translation> +<translation id="3009178788565917040">Ieșiri</translation> <translation id="3009300415590184725">Sigur doriți să anulați procesul de configurare al serviciului de date mobile?</translation> <translation id="3009779501245596802">Baze de date indexate</translation> <translation id="3010279545267083280">Parolă ștearsă</translation> @@ -3554,6 +3556,7 @@ <translation id="4377058670119819762">Activează bara de file pentru derularea spre stânga și spre dreapta atunci când este plină.</translation> <translation id="4377363674125277448">A apărut o problemă cu privire la certificatul serverului.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Derulează înainte</translation> <translation id="4378551569595875038">Se conectează</translation> <translation id="4378556263712303865">Solicitarea dispozitivului</translation> <translation id="4379281552162875326">Dezinstalezi „<ph name="APP_NAME" />”?</translation> @@ -7359,6 +7362,7 @@ <translation id="8120505434908124087">Instalează profilul eSIM</translation> <translation id="812260729110117038">Advertiserii și editorii pot studia eficiența anunțurilor într-un mod care nu te urmărește pe site-uri.</translation> <translation id="81238879832906896">Floare galbenă și albă</translation> +<translation id="8123975449645947908">Derulează înapoi</translation> <translation id="8124313775439841391">Proprietăți ONC gestionate</translation> <translation id="813082847718468539">Afișează informațiile privind site-ul</translation> <translation id="8131740175452115882">Confirmați</translation> @@ -8276,6 +8280,7 @@ <translation id="9037640663275993951">Dispozitivul nu este permis</translation> <translation id="9037818663270399707">Conexiunea nu este privată pentru tot traficul de rețea</translation> <translation id="9037965129289936994">Afișează versiunea originală</translation> +<translation id="9038489124413477075">Dosar fără nume</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Mai ai o încercare.}few{Mai ai # încercări.}other{Mai ai # de încercări.}}</translation> <translation id="9040473193163777637">Vrei să activezi ChromeVox, cititorul de ecran încorporat pentru sistemul de operare Chrome? Dacă da, apasă lung ambele butoane de volum timp de cinci secunde.</translation> <translation id="9040661932550800571">Actualizezi parola pentru <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index fcbc33c4a..8e11cdc 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -355,6 +355,7 @@ <translation id="1340527397989195812">Создайте резервную копию медиафайлов, размещенных на устройстве, с помощью приложения "Файлы".</translation> <translation id="1343865611738742294">Вы можете предоставить приложениям Linux доступ к USB-устройствам. Когда устройство будет отключено, вся информация о нем будет удалена из Linux.</translation> <translation id="1343920184519992513">Ранее открытые вкладки и заданные страницы</translation> +<translation id="1344377983938103876">Открывается <ph name="URL" />…</translation> <translation id="134589511016534552">Вкладки с медиаконтентом также отображаются в разделе "Открытые вкладки"</translation> <translation id="1346630054604077329">Подтвердить и перезапустить</translation> <translation id="1346748346194534595">Справа</translation> @@ -1270,6 +1271,7 @@ <translation id="2180620921879609685">Блокировка контента на всех страницах.</translation> <translation id="2182058453334755893">Скопировано в буфер обмена.</translation> <translation id="2184515124301515068">Разрешить браузеру определять, на каких сайтах можно воспроизводить звук (рекомендуется)</translation> +<translation id="2186206192313702726">Google Объектив</translation> <translation id="2186711480981247270">Страница, полученная с другого устройства</translation> <translation id="2187675480456493911">Синхронизировано с другими устройствами в вашем аккаунте. Настройки, измененные другими пользователями, не будут синхронизироваться. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Ошибка при импорте сертификата сервера</translation> @@ -1799,6 +1801,7 @@ <translation id="2667144577800272420">Вы хотите установить "<ph name="APP_NAME" />" в качестве приложения по умолчанию? После изменения эти ссылки больше не будут открываться в приложениях "<ph name="APP_NAME_2" />" и "<ph name="APP_NAME_3" />".</translation> <translation id="2667463864537187133">Настроить проверку орфографии</translation> <translation id="2669241540496514785">Не удалось запустить <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Скачанные файлы будут доступны всем пользователям этого устройства.</translation> <translation id="2670102641511624474">Приложение "<ph name="APP_NAME" />" предоставило доступ к вкладке Chrome.</translation> <translation id="2670403088701171361">Запретить сайтам доступ к тексту и изображениям, скопированным в буфер обмена</translation> <translation id="2670429602441959756">На этой странице есть элементы, которые пока не поддерживаются в VR. Выход из VR-режима…</translation> @@ -2165,6 +2168,7 @@ <translation id="3008232374986381779">Запускайте инструменты, редакторы и интегрированные среды разработки Linux на своем устройстве <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Сбросить все разрешения</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Согласно действующему правилу (источник правила: <ph name="MANAGER" />), вам нужно сегодня скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае может взиматься плата за передачу данных.}one{Согласно действующему правилу (источник правила <ph name="MANAGER" />), вам до истечения срока нужно скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае может взиматься плата за передачу данных.}few{Согласно действующему правилу (источник правила <ph name="MANAGER" />), вам до истечения срока нужно скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае может взиматься плата за передачу данных.}many{Согласно действующему правилу (источник правила <ph name="MANAGER" />), вам до истечения срока нужно скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае может взиматься плата за передачу данных.}other{Согласно действующему правилу (источник правила <ph name="MANAGER" />), вам до истечения срока нужно скачать обновление по Wi-Fi. Вам также доступно подключение с тарификацией, но в этом случае может взиматься плата за передачу данных.}}</translation> +<translation id="3009178788565917040">Выход</translation> <translation id="3009300415590184725">Отменить настройку мобильной передачи данных?</translation> <translation id="3009779501245596802">Индексированные базы данных</translation> <translation id="3010279545267083280">Пароль удален</translation> @@ -3552,6 +3556,7 @@ <translation id="4377058670119819762">Позволяет прокручивать заполненную панель вкладок влево и вправо.</translation> <translation id="4377363674125277448">Возникла проблема с сертификатом сервера.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Прокрутить вперед.</translation> <translation id="4378551569595875038">Подключение…</translation> <translation id="4378556263712303865">Заявка устройства</translation> <translation id="4379281552162875326">Удалить приложение "<ph name="APP_NAME" />"?</translation> @@ -6958,6 +6963,7 @@ <translation id="7753735457098489144">Не удалось выполнить установку, так как на устройстве недостаточно места. Удалите файлы, которые больше не нужны.</translation> <translation id="7754347746598978109">Запретить сайтам использовать JavaScript</translation> <translation id="7754704193130578113">Всегда указывать место для скачивания</translation> +<translation id="7755134875397410803">Чтобы вы смогли выполнять действия в Chrome с помощью Ассистента, в Google будет отправляться контент и URL сайтов, а также информация, которую вы сообщаете Ассистенту. Эта информация может храниться в вашем аккаунте Google. Отключить Ассистента можно в настройках Chrome. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Для разблокировки обратитесь к родителю.</translation> <translation id="7757592200364144203">Переименовать устройство</translation> <translation id="7757739382819740102">Пользователи, которые находятся поблизости, могут обмениваться с вами контентом. Потребуется подтверждение.</translation> @@ -7360,6 +7366,7 @@ <translation id="8120505434908124087">Установить профиль eSIM</translation> <translation id="812260729110117038">Рекламодатели и издатели могут оценивать эффективность рекламы, не отслеживая ваши действия на сайтах.</translation> <translation id="81238879832906896">Цветок (желтый с белым)</translation> +<translation id="8123975449645947908">Прокрутить назад</translation> <translation id="8124313775439841391">Управляемый ONC</translation> <translation id="813082847718468539">Сведения о сайте</translation> <translation id="8131740175452115882">Подтвердить</translation> @@ -8279,6 +8286,7 @@ <translation id="9037640663275993951">Не разрешено выполнять ВМ на этом устройстве.</translation> <translation id="9037818663270399707">Весь ваш сетевой трафик передается через незащищенное подключение.</translation> <translation id="9037965129289936994">Показать оригинал</translation> +<translation id="9038489124413477075">Без названия</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{У вас осталась одна попытка.}one{У вас осталась # попытка.}few{У вас осталось # попытки.}many{У вас осталось # попыток.}other{У вас осталось # попытки.}}</translation> <translation id="9040473193163777637">Включить встроенную в Chrome OS программу чтения с экрана ChromeVox? Если да, нажмите и удерживайте обе кнопки регулировки громкости в течение пяти секунд.</translation> <translation id="9040661932550800571">Обновить пароль для <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 0d51343..55c46142 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -355,6 +355,7 @@ <translation id="1340527397989195812">ගොනු යෙදුම භාවිතයෙන් උපාංගයේ මාධ්යය උපස්ථ කරන්න.</translation> <translation id="1343865611738742294">USB උපාංගවලට ප්රවේශ වීමට ලිනක්ස් යෙදුම්වලට අවසර දෙන්න. USB උපාංගයක් ඉවත් කළ පසු ලිනක්ස් එය මතක තබා ගන්නේ නැත.</translation> <translation id="1343920184519992513">ඔබ නතර කළ තැනින් ඉදිරියට ගොස් නිශ්චිත පිටු කට්ටලයක් විවෘත කරන්න</translation> +<translation id="1344377983938103876"><ph name="URL" /> විවෘත කෙරේ...</translation> <translation id="134589511016534552">මාධ්ය ටැබ විවෘත ටැබ කොටසේද පෙන්වයි</translation> <translation id="1346630054604077329">තහවුරු කරන්න සහ යළි අරඹන්න</translation> <translation id="1346748346194534595">දක්ෂිණාවර්ත</translation> @@ -1269,6 +1270,7 @@ <translation id="2180620921879609685">ඕනෑම පිටුවක අන්තර්ගතය අවහිර කරන්න</translation> <translation id="2182058453334755893">ඔබේ පසුරු පුවරුවට පිටපත් කළා</translation> <translation id="2184515124301515068">අඩවි හට හඬ වාදනය කළ හැකි වේලාව තේරීමට Chrome හට ඉඩ දෙන්න (නිර්දේශිත)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">වෙනත් උපාංගයකින් බෙදා ගත් පිටුව</translation> <translation id="2187675480456493911">ඔබේ ගිණුම මත අනෙකුත් උපාංග සමඟ සමමුහූර්ත කෙරේ. අනෙකුත් පරිශීලකයින් විසින් වෙනස් කරන ලද සැකසීම් සමමුහූර්ත නොකරේ. <ph name="LINK_BEGIN" />තවත් දැන ගන්න<ph name="LINK_END" /></translation> <translation id="2187895286714876935">සේවාදායක සහතික ආනයන දෝශය</translation> @@ -1801,6 +1803,7 @@ <translation id="2667144577800272420">අනෙකුත් යෙදුම් <ph name="APP_NAME" /> ලෙස එකම සබැඳි විවෘත කිරීමට සකසා ඇත. මෙය සහාය දක්වන සබැඳි විවෘත කිරීමෙන් <ph name="APP_NAME_2" /> සහ <ph name="APP_NAME_3" /> අබල කරනු ඇත.</translation> <translation id="2667463864537187133">අක්ෂර වින්යාස පරීක්ෂාව කළමණාකරණය කරන්න</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> විවෘත කළ නොහැකි විය</translation> +<translation id="2669454659051515572">මෙම උපාංගය භාවිත කරන ඕනෑම කෙනෙකුට බාගත් ගොනු දැකිය හැකිය</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome ටැබයක් බෙදා ගනිමින් සිටී.</translation> <translation id="2670403088701171361">ඔබගේ පසුරු පුවරුවේ පෙළ හෝ රූප බැලීමට අඩවිවලට ඉඩ නොදෙන්න</translation> <translation id="2670429602441959756">මෙම පිටුවේ තවමත් VR හි සහාය නොදක්වන විශේෂාංග අඩංගු වේ. පිට වෙමින්...</translation> @@ -2167,6 +2170,7 @@ <translation id="3008232374986381779">ඔබගේ <ph name="DEVICE_TYPE" /> හි Linux මෙවලම්, සංස්කාරක සහ, IDE ධාවනය කරන්න. <ph name="LINK_BEGIN" />තව දැන ගන්න<ph name="LINK_END" /></translation> <translation id="3008272652534848354">අවසර යළි සකසන්න</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{යාවත්කාලීනයක් බාගැනීමට <ph name="MANAGER" /> හට අද ඔබ Wi-Fi වෙත සම්බන්ධ වීමට අවශ්යය. නැති නම්, මනුගත සම්බන්ධතාවකින් බාගන්න (ගාස්තු අදාළ විය හැකිය).}one{<ph name="MANAGER" /> හට ඔබ Wi-Fi වෙත සම්බන්ධ වී නියමිත වේලාවට පෙර යාවත්කාලීනයක් බාගැනීම අවශ්යය. නැති නම්, මනුගත සම්බන්ධතාවකින් බාගන්න (ගාස්තු අදාළ විය හැකිය).}other{<ph name="MANAGER" /> හට ඔබ Wi-Fi වෙත සම්බන්ධ වී නියමිත වේලාවට පෙර යාවත්කාලීනයක් බාගැනීම අවශ්යය. නැති නම්, මනුගත සම්බන්ධතාවකින් බාගන්න (ගාස්තු අදාළ විය හැකිය).}}</translation> +<translation id="3009178788565917040">ප්රතිදානය</translation> <translation id="3009300415590184725">ජංගම දත්ත සේවා පිහිටුම් ක්රියාවලිය අවලංගු කිරීමට අවශ්ය බව සහතිකද?</translation> <translation id="3009779501245596802">සුචිගත කළ දත්ත සමුදාය</translation> <translation id="3010279545267083280">රහස්වචනය මකන ලදි</translation> @@ -3555,6 +3559,7 @@ <translation id="4377058670119819762">පිරී ඇති විට වමට සහ දකුණට අනුචලනය කිරීමට ටැබ තීරුව සබල කරයි.</translation> <translation id="4377363674125277448">සෙවාදායකයෙහි සහතිකය හා ගැටලුවක් පැවතිණි.</translation> <translation id="4378154925671717803">දුරකථනය</translation> +<translation id="4378308539633073595">ඉදිරියට අනුචලනය කරන්න</translation> <translation id="4378551569595875038">සම්බන්ධ වෙමින්...</translation> <translation id="4378556263712303865">උපාංග අධිග්රහණය</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" අස්ථාපන කරන්නේද?</translation> @@ -6956,6 +6961,7 @@ <translation id="7753735457098489144">ආචයන ඉඩ නොමැති වීම නිසා ස්ථාපනය අසාර්ථක විය. ඉඩ හිස් කිරීමට, උපාංග ගබඩාවෙන් ගොනු මකන්න.</translation> <translation id="7754347746598978109">ජාවාස්ක්රිප්ට් භාවිත කිරීමට ඉඩ නොදේ</translation> <translation id="7754704193130578113">බාගැනීමට පෙර එක් එක් ගොනුව සුරකින තැන විමසන්න</translation> +<translation id="7755134875397410803">ඔබට කාර්ය සම්පූර්ණ කිරීමට උදවු කිරීමට, Google ඔබ සහයක භාවිත කරන අඩවිවල URL සහ අන්තර්ගතය මෙන්ම ඔබ සහයක හරහා ඉදිරිපත් කරන තොරතුරු ලබා ගනියි. මෙම තොරතුරු ඔබගේ Google ගිණුම තුළ ගබඩා කරනු ලැබිය හැක. ඔබට Chrome සැකසීම් තුළ සහයක අක්රිය කළ හැක. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">ඔබේ දෙමව්පියන්ගෙන් අයෙකුට එය ඔබ සඳහා අනවහිර කළ හැකිය</translation> <translation id="7757592200364144203">උපාංග නම වෙනස් කරන්න</translation> <translation id="7757739382819740102">අවට සම්බන්ධතාවලට ඔබ සමඟ බෙදා ගත හැකිය. අනුමැතිය අවශ්ය වනු ඇත.</translation> @@ -7356,6 +7362,7 @@ <translation id="8120505434908124087">eSIM පැතිකඩ ස්ථාපනය කරන්න</translation> <translation id="812260729110117038">වෙළඳ ප්රචාරකයන්ට සහ ප්රකාශකයින්ට අඩවි හරහා ඔබව හඹා නොයන ආකාරයකින් වෙළඳ දැන්වීම්වල ඵලදායීතාවය අධ්යයනය කළ හැකිය.</translation> <translation id="81238879832906896">කහ සහ සුදු මල</translation> +<translation id="8123975449645947908">පසුපසට අනුචලන කරන්න</translation> <translation id="8124313775439841391">පාලිත ONC</translation> <translation id="813082847718468539">අඩවි තොරතුරු පෙන්වන්න</translation> <translation id="8131740175452115882">තහවුරු කරන්න</translation> @@ -8273,6 +8280,7 @@ <translation id="9037640663275993951">උපාංගයට ඉඩ නොදේ</translation> <translation id="9037818663270399707">සියලුම ජාල තදබදය සඳහා ඔබගේ සම්බන්ධතාව පුද්ගලික නොවේ</translation> <translation id="9037965129289936994">මුල් පිටපත පෙන්වන්න</translation> +<translation id="9038489124413477075">නිර්නාමික ෆෝල්ඩරය</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ඔබට එක ප්රයත්නයක් ඉතිරිව ඇත.}one{ඔබට ප්රයත්න # ක් ඉතිරිව ඇත.}other{ඔබට ප්රයත්න # ක් ඉතිරිව ඇත.}}</translation> <translation id="9040473193163777637">ඔබට ChromeOS සඳහා වන ආවේණික තිර කියවනය, ChromeVox සක්රිය කිරීමට අවශ්යද? එසේ නම්, හඬ පරිමා යතුරු දෙකම තත්පර පහක් ඔබා අල්ලාගෙන සිටින්න.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> සඳහා මුරපදය යාවත්කාලීන කරන්න ද?</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index 00a24be..dd747c32 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1799,6 +1799,7 @@ <translation id="2667144577800272420">Ďalšie aplikácie sú nastavené, aby otvárali rovnaké odkazy ako <ph name="APP_NAME" />. Týmto zakážete aplikáciám <ph name="APP_NAME_2" /> a <ph name="APP_NAME_3" /> otvárať podporované odkazy.</translation> <translation id="2667463864537187133">Správa kontroly pravopisu</translation> <translation id="2669241540496514785">Aplikáciu <ph name="APP_NAME" /> sa nepodarilo otvoriť</translation> +<translation id="2669454659051515572">Stiahnuté súbory uvidia všetci používatelia tohto zariadenia</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> zdieľa kartu Chromu.</translation> <translation id="2670403088701171361">Nepovoliť webom zobrazovať text alebo obrázky v schránke</translation> <translation id="2670429602441959756">Táto stránka obsahuje funkcie, ktoré zatiaľ nie sú podporované v režime VR. Režim sa ukončuje…</translation> @@ -2166,6 +2167,7 @@ <translation id="3008232374986381779">Spustite nástroje aj editory pre systém Linux a súbory IDE vo svojom zariadení <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Obnoviť povolenia</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> vyžaduje, aby ste sa dnes pripojili k sieti Wi‑Fi a stiahli aktualizáciu. Prípadne ju stiahnite prostredníctvom meraného pripojenia (môžu sa účtovať poplatky).}few{<ph name="MANAGER" /> vyžaduje, aby ste sa pripojili k sieti Wi‑Fi a pred uplynutím termínu stiahli aktualizáciu. Prípadne ju stiahnite prostredníctvom meraného pripojenia (môžu sa účtovať poplatky).}many{<ph name="MANAGER" /> vyžaduje, aby ste sa pripojili k sieti Wi‑Fi a pred uplynutím termínu stiahli aktualizáciu. Prípadne ju stiahnite prostredníctvom meraného pripojenia (môžu sa účtovať poplatky).}other{<ph name="MANAGER" /> vyžaduje, aby ste sa pripojili k sieti Wi‑Fi a pred uplynutím termínu stiahli aktualizáciu. Prípadne ju stiahnite prostredníctvom meraného pripojenia (môžu sa účtovať poplatky).}}</translation> +<translation id="3009178788565917040">Výstup</translation> <translation id="3009300415590184725">Naozaj chcete zrušiť proces nastavenia mobilnej dátovej služby?</translation> <translation id="3009779501245596802">Indexované databázy</translation> <translation id="3010279545267083280">Heslo bolo odstránené</translation> @@ -3553,6 +3555,7 @@ <translation id="4377058670119819762">Keď bude panel kariet plný, zapne jeho posúvanie doľava a doprava.</translation> <translation id="4377363674125277448">Vyskytol sa problém s certifikátom servera.</translation> <translation id="4378154925671717803">Telefón</translation> +<translation id="4378308539633073595">Posunúť vpred</translation> <translation id="4378551569595875038">Pripája sa...</translation> <translation id="4378556263712303865">Rekvizícia zariadenia</translation> <translation id="4379281552162875326">Chcete odinštalovať aplikáciu <ph name="APP_NAME" />?</translation> @@ -7359,6 +7362,7 @@ <translation id="8120505434908124087">Inštalovať profil eSIM</translation> <translation id="812260729110117038">Inzerenti a vlastníci môžu preskúmať účinnosť reklám tak, že vás nebude možné na weboch sledovať.</translation> <translation id="81238879832906896">Žltý a biely kvet</translation> +<translation id="8123975449645947908">Posunúť späť</translation> <translation id="8124313775439841391">Spravovaná konfigurácia ONC</translation> <translation id="813082847718468539">Zobraziť informácie o stránkach</translation> <translation id="8131740175452115882">Potvrdiť</translation> @@ -8277,6 +8281,7 @@ <translation id="9037640663275993951">Zariadenie nie je povolené</translation> <translation id="9037818663270399707">Nie všetka sieťová premávka v rámci vášho pripojenia je súkromná</translation> <translation id="9037965129289936994">Zobraziť originál</translation> +<translation id="9038489124413477075">Priečinok bez názvu</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Zostáva posledný pokus.}few{Zostávajú # pokusy.}many{You have # attempts remaining.}other{Zostáva # pokusov.}}</translation> <translation id="9040473193163777637">Chcete aktivovať vstavanú čítačku obrazovky ChromeVox pre Chrome OS? Ak áno, pridržte päť sekúnd obe tlačidlá hlasitosti.</translation> <translation id="9040661932550800571">Aktualizovať heslo pre adresu <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 3b54be62..a5ae668 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -357,6 +357,7 @@ <translation id="1340527397989195812">Varnostno kopiranje predstavnosti v napravi z aplikacijo Datoteke.</translation> <translation id="1343865611738742294">Omogočanje, da aplikacije za Linux dostopajo do naprav USB. Linux si ne zapomni naprave USB, ko jo odstranite.</translation> <translation id="1343920184519992513">Nadaljuj prejšnjo sejo in odprti določen nabor strani</translation> +<translation id="1344377983938103876">Odpiranje spletnega mesta <ph name="URL" /> …</translation> <translation id="134589511016534552">Zavihki za predstavnost so tudi prikazani v razdelku z odprtimi zavihki</translation> <translation id="1346630054604077329">Potrdi in zaženi znova</translation> <translation id="1346748346194534595">V desno</translation> @@ -1283,6 +1284,7 @@ <translation id="2180620921879609685">Blokiranje vsebine na kateri koli strani</translation> <translation id="2182058453334755893">Kopirano v odložišče</translation> <translation id="2184515124301515068">Naj Chrome izbere, kdaj lahko spletna mesta predvajajo zvok (priporočeno)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Stran je bila deljena iz druge naprave</translation> <translation id="2187675480456493911">Sinhronizirano z drugimi napravami v računu. Nastavitve, ki jih spremenijo drugi uporabniki, ne bodo sinhronizirane. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Napaka pri uvozu strežniškega potrdila</translation> @@ -1815,6 +1817,7 @@ <translation id="2667144577800272420">Druge aplikacije so nastavljene tako, da odpirajo iste povezave kot aplikacija <ph name="APP_NAME" />. S tem bo aplikacijama <ph name="APP_NAME_2" /> in <ph name="APP_NAME_3" /> onemogočeno odpiranje podprtih povezav.</translation> <translation id="2667463864537187133">Upravljanje preverjanja črkovanja</translation> <translation id="2669241540496514785">Datoteke »<ph name="APP_NAME" />« ni bilo mogoče odpreti</translation> +<translation id="2669454659051515572">Prenesene datoteke lahko vidijo vsi, ki uporabljajo to napravo.</translation> <translation id="2670102641511624474">Aplikacija <ph name="APP_NAME" /> je v skupno rabo dala Chromov zavihek.</translation> <translation id="2670403088701171361">Spletnim mestom ni dovoljen ogled besedila ali slik v odložišču</translation> <translation id="2670429602441959756">Ta stran ima funkcije, ki jih navidezna resničnost še ne podpira. Zapiranje ...</translation> @@ -2182,6 +2185,7 @@ <translation id="3008232374986381779">Izvajanje orodij, urejevalnikov in IDE-jev za Linux v napravi <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Ponastavi dovoljenja</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> zahteva, da se še danes povežete z omrežjem Wi-Fi in prenesete posodobitev. Prenesete jo lahko tudi prek povezave z omejenim prenosom podatkov (prenos podatkov se morda zaračuna).}one{<ph name="MANAGER" /> zahteva, da se povežete z omrežjem Wi-Fi in prenesete posodobitev pred rokom. Prenesete jo lahko tudi prek povezave z omejenim prenosom podatkov (prenos podatkov se morda zaračuna).}two{<ph name="MANAGER" /> zahteva, da se povežete z omrežjem Wi-Fi in prenesete posodobitev pred rokom. Prenesete jo lahko tudi prek povezave z omejenim prenosom podatkov (prenos podatkov se morda zaračuna).}few{<ph name="MANAGER" /> zahteva, da se povežete z omrežjem Wi-Fi in prenesete posodobitev pred rokom. Prenesete jo lahko tudi prek povezave z omejenim prenosom podatkov (prenos podatkov se morda zaračuna).}other{<ph name="MANAGER" /> zahteva, da se povežete z omrežjem Wi-Fi in prenesete posodobitev pred rokom. Prenesete jo lahko tudi prek povezave z omejenim prenosom podatkov (prenos podatkov se morda zaračuna).}}</translation> +<translation id="3009178788565917040">Izhod</translation> <translation id="3009300415590184725">Ali ste prepričani, da želite preklicati postopek nastavitve mobilne podatkovne storitve?</translation> <translation id="3009779501245596802">Indeksirane zbirke podatkov</translation> <translation id="3010279545267083280">Geslo je izbrisano</translation> @@ -3569,6 +3573,7 @@ <translation id="4377058670119819762">Traku z zavihki omogoča drsenje levo in desno, ko je poln.</translation> <translation id="4377363674125277448">Težava s potrdilom strežnika.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Pomik naprej</translation> <translation id="4378551569595875038">Povezovanje …</translation> <translation id="4378556263712303865">Zahteva za napravo</translation> <translation id="4379281552162875326">Ali želite odmestiti »<ph name="APP_NAME" />«?</translation> @@ -6978,6 +6983,7 @@ <translation id="7753735457098489144">Namestitev ni uspela zaradi pomanjkanja prostora za shranjevanje. Če želite sprostiti prostor, izbrišite datoteke iz shrambe v napravi.</translation> <translation id="7754347746598978109">Ni dovoljena uporaba JavaScripta</translation> <translation id="7754704193130578113">Pred prenosom vprašaj, kam želim shraniti vsako datoteko</translation> +<translation id="7755134875397410803">Zaradi zagotavljanja pomoči pri dokončanju opravil bo Google prejel URL-je in vsebino spletnih mest, na katerih uporabljate Pomočnika, ter podatke, ki jih pošljete prek Pomočnika. Ti podatki se bodo morda shranili v računu Google. Pomočnika lahko izklopite v nastavitvah Chroma. <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">Starš ga lahko odblokira</translation> <translation id="7757592200364144203">Spremeni ime naprave</translation> <translation id="7757739382819740102">Stiki v bližini lahko delijo z vami. Zahtevana bo odobritev.</translation> @@ -7381,6 +7387,7 @@ <translation id="8120505434908124087">Namestitev profila za eSIM</translation> <translation id="812260729110117038">Oglaševalci in izdajatelji lahko preučujejo učinkovitost oglasov na način, ki vam ne sledi na spletnih mestih.</translation> <translation id="81238879832906896">Rumena in bela roža</translation> +<translation id="8123975449645947908">Pomik nazaj</translation> <translation id="8124313775439841391">Upravljan ONC</translation> <translation id="813082847718468539">Ogled podatkov o mestu</translation> <translation id="8131740175452115882">Potrdi</translation> @@ -8300,6 +8307,7 @@ <translation id="9037640663275993951">Naprava ni dovoljena.</translation> <translation id="9037818663270399707">Vaša povezava ni zasebna za ves omrežni promet</translation> <translation id="9037965129289936994">Pokaži izvirno besedilo</translation> +<translation id="9038489124413477075">Neimenovana mapa</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Imate še en poskus.}one{Imate še # poskus.}two{Imate še # poskusa.}few{Imate še # poskuse.}other{Imate še # poskusov.}}</translation> <translation id="9040473193163777637">Ali želite aktivirati ChromeVox, vgrajeni bralnik zaslona za Chrome OS? Če ga želite, za pet sekund pridržite gumba za glasnost.</translation> <translation id="9040661932550800571">Želite posodobiti geslo za <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 1f65e75..1390449 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -1244,6 +1244,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Shto Wi-Fi...</translation> <translation id="2162155940152307086">Sinkronizimi do të fillojë pasi të largohesh nga cilësimet e sinkronizimit</translation> +<translation id="2162705204091149050">Të lexojë informacionet për shfletuesin, sistemin operativ, pajisjen, softuerët e instaluar dhe skedarët</translation> <translation id="2162926944953615670">Nuk ofrohet asnjë profil karte eSIM</translation> <translation id="2163470535490402084">Lidhu në internet për t'u futur te pajisja <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> dhe 1 çelës tjetër</translation> @@ -1794,6 +1795,7 @@ <translation id="2667144577800272420">Aplikacione të tjera janë caktuar për të hapur të njëjtat lidhje si <ph name="APP_NAME" />. Kjo do të çaktivizojë hapjen e lidhjeve të mbështetura nga <ph name="APP_NAME_2" /> dhe <ph name="APP_NAME_3" />.</translation> <translation id="2667463864537187133">Menaxho kontrollin ortografik</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> nuk mund të hapej</translation> +<translation id="2669454659051515572">Çdo person që e përdor këtë pajisje mund t'i shikojë skedarët e shkarkuar</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> po ndan një skedë të Chrome.</translation> <translation id="2670403088701171361">Mos lejo që sajtet të shikojnë tekstet ose imazhet në kujtesën e fragmenteve</translation> <translation id="2670429602441959756">Kjo faqe përmban funksione që nuk mbështeten ende në realitetin virtual. Po del...</translation> @@ -2160,6 +2162,7 @@ <translation id="3008232374986381779">Ekzekuto veglat e Linux, redaktorët dhe IDE-të në pajisjen tënde <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Rivendos autorizimet</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> kërkon që të lidhesh me Wi-Fi sot për të shkarkuar një përditësim. Ose shkarko nga një lidhje me matje (mund të zbatohen tarifat).}other{<ph name="MANAGER" /> kërkon që të lidhesh me Wi-Fi dhe të shkarkosh një përditësim para afatit. Ose shkarko nga një lidhje me matje (mund të zbatohen tarifat).}}</translation> +<translation id="3009178788565917040">Dalja</translation> <translation id="3009300415590184725">Je i sigurt që dëshiron ta anulosh procesin e konfigurimit të shërbimit të të dhënave celulare?</translation> <translation id="3009779501245596802">Databazat e indeksuara</translation> <translation id="3010279545267083280">Fjalëkalimi u fshi</translation> @@ -2490,6 +2493,7 @@ <translation id="3359256513598016054">Kufizimet e politikës së certifikatës</translation> <translation id="3360297538363969800">Printimi dështoi. Kontrollo printerin dhe provo sërish.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> po ndan <ph name="ATTACHMENTS" /> me ty.}other{<ph name="DEVICE_NAME" /> po ndan <ph name="ATTACHMENTS" /> me ty.}}</translation> +<translation id="3363202073972776113">Ky profil i ri do të menaxhohet nga organizata jote. <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Nga administratori yt: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Përdor ose Ctrl, ose Alt</translation> <translation id="3368922792935385530">Lidhur</translation> @@ -2524,6 +2528,7 @@ <translation id="339722927132407568">Ngrin</translation> <translation id="3399432415385675819">Njoftimet do të çaktivizohen</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herc) - të gërshetuara</translation> +<translation id="3401484564516348917">Të lexojë informacionet për shfletuesin, sistemin operativ, pajisjen, softuerët e instaluar, vlerat e regjistrit dhe skedarët</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} fjalëkalim është ruajtur në këtë pajisje}other{{COUNT} fjalëkalime janë ruajtur në këtë pajisje}}</translation> <translation id="3402255108239926910">Zgjidh një simbol</translation> <translation id="3402585168444815892">Po regjistrohesh në modalitetin e demonstrimit</translation> @@ -2770,6 +2775,7 @@ <translation id="3627879631695760395">Instalo <ph name="APP" />...</translation> <translation id="3628275722731025472">Çaktivizo Bluetooth-in</translation> <translation id="3629631988386925734">Fut fjalëkalimin tënd për të aktivizuar Smart Lock. Herën tjetër, telefoni yt do të shkyçë pajisjen tënde <ph name="DEVICE_TYPE" />. Mund të çaktivizosh Smart Lock te "Cilësimet".</translation> +<translation id="3629664892718440872">Kujtoje këtë zgjedhje</translation> <translation id="3630132874740063857">Telefoni yt</translation> <translation id="3630995161997703415">Shtoje këtë sajt te rafti yt për ta përdorur në çdo kohë</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Nëse lejon që pajisjet me ChromeOS të dërgojnë raporte automatike, na ndihmon t'i japim përparësi gjërave që do të rregullojmë dhe përmirësojmë në ChromeOS. Këto raporte përfshijnë gjëra të tilla si ndërprerjet aksidentale të ChromeOS, cilat veçori përdor dhe sa memorie përdor zakonisht.<ph name="END_PARAGRAPH1" /> @@ -3259,6 +3265,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Kontrolli i plotë mbi pajisjet MIDI u refuzua</translation> +<translation id="4087328411748538168">Shfaqe në të djathtë</translation> <translation id="4089235344645910861">Cilësimet u ruajtën. Sinkronizimi filloi.</translation> <translation id="4090103403438682346">Aktivizo qasjen e verifikuar</translation> <translation id="4090947011087001172">Të rivendosen autorizimet e sajtit për <ph name="SITE" />?</translation> @@ -3543,6 +3550,7 @@ <translation id="4377058670119819762">Mundëson lëvizjen majtas dhe djathtas të shiritit të skedës kur është plot.</translation> <translation id="4377363674125277448">Pati një problem me certifikatën e serverit.</translation> <translation id="4378154925671717803">Telefoni</translation> +<translation id="4378308539633073595">Lëviz përpara</translation> <translation id="4378551569595875038">Po lidhet...</translation> <translation id="4378556263712303865">Kërkesa e pajisjes</translation> <translation id="4379281552162875326">Të çinstalohet "<ph name="APP_NAME" />"?</translation> @@ -3951,6 +3959,7 @@ <translation id="4779766576531456629">Riemërto rrjetin celular të eSIM</translation> <translation id="4780321648949301421">Ruaje faqen si...</translation> <translation id="4781443161433589743">Je në sigurinë më të fortë të Chrome</translation> +<translation id="4782861709165039462">Të gjithë mikrofonat janë çaktivizuar nga çelësi i harduerit i pajisjes</translation> <translation id="4785719467058219317">Po përdor një çelës sigurie që nuk është i regjistruar me këtë sajt uebi</translation> <translation id="4785914069240823137">Anulo prerjen</translation> <translation id="4788092183367008521">Kontrollo lidhjen e rrjetit dhe provo përsëri.</translation> @@ -4717,6 +4726,7 @@ <translation id="5548075230008247516">Të gjithë artikujve u është anuluar zgjedhja, është dalë nga modaliteti i zgjedhjes.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" dhe 1 skedë tjetër}other{"<ph name="TAB_TITLE" />" dhe # skeda të tjera}}</translation> <translation id="5548606607480005320">Kontrolli i sigurisë</translation> +<translation id="5548644592758170183">Shfaqe në të majtë</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Tastiera dhe hyrja e tekstit</translation> <translation id="5553089923092577885">Planifikime të politikës së certifikatës</translation> @@ -7341,6 +7351,7 @@ <translation id="8120505434908124087">Instalo profilin e kartës eSIM</translation> <translation id="812260729110117038">Reklamuesit dhe botuesit mund të studiojnë efikasitetin e reklamave në një mënyrë që nuk të gjurmon nëpër sajtet e uebit.</translation> <translation id="81238879832906896">Lule e verdhë dhe e bardhë</translation> +<translation id="8123975449645947908">Lëviz prapa</translation> <translation id="8124313775439841391">ONC-ja e menaxhuar</translation> <translation id="813082847718468539">Shiko informacionin rreth faqes</translation> <translation id="8131740175452115882">Konfirmo</translation> @@ -8196,6 +8207,7 @@ <translation id="8980345560318123814">Raportet mbi reagimet</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - u ndërpre aksidentalisht</translation> <translation id="8981825781894055334">Ka pak letër</translation> +<translation id="8983018820925880511">Ky profil i ri do të menaxhohet nga <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> mund të modifikojë <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Do të jesh i dukshëm për të gjithë për <ph name="MINUTES" /> minuta. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Mirë se vjen në Steam për Chromebook</translation> @@ -8256,6 +8268,7 @@ <translation id="9037640663275993951">Pajisja nuk lejohet</translation> <translation id="9037818663270399707">Lidhja jote nuk është private për të gjithë trafikun e rrjetit</translation> <translation id="9037965129289936994">Shfaq origjinalin</translation> +<translation id="9038489124413477075">Dosje pa emër</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Të ka mbetur një përpjekje.}other{Të kanë mbetur # përpjekje.}}</translation> <translation id="9040473193163777637">Dëshiron ta aktivizosh ChromeVox, lexuesin e integruar të ekranit për ChromeOS? Nëse po, shtyp dhe mbaj shtypur të dy tastet e volumit për pesë sekonda.</translation> <translation id="9040661932550800571">Të përditësohet fjalëkalimi për <ph name="ORIGIN" />?</translation> @@ -8292,6 +8305,7 @@ <translation id="9075413375877487220">Kjo shtesë nuk është e besuar nga "Shfletimi i sigurt i përmirësuar"</translation> <translation id="9076283476770535406">Mund të ketë përmbajtje për të rritur</translation> <translation id="9076523132036239772">Na vjen keq, por mail-i yt ose fjalëkalimi nuk mundën të verifikoheshin. Provo të lidhesh me një rrjet në fillim.</translation> +<translation id="9076821103818989526">Paneli anësor</translation> <translation id="9076977315710973122">Ndarja e SMB</translation> <translation id="9078193189520575214">Ndryshimet po zbatohen...</translation> <translation id="9078316009970372699">Çaktivizo "Ndarjen e internetit në çast"</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index ffe923f..03bf318 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -1798,6 +1798,7 @@ <translation id="2667144577800272420">Druge aplikacije su podešene da otvaraju iste linkove kao aplikacija <ph name="APP_NAME" />. Ovim se aplikacije <ph name="APP_NAME_2" /> i <ph name="APP_NAME_3" /> onemogućavaju da otvaraju podržane linkove.</translation> <translation id="2667463864537187133">Upravljanje proverom pravopisa</translation> <translation id="2669241540496514785">Otvaranje aplikacije <ph name="APP_NAME" /> nije uspelo</translation> +<translation id="2669454659051515572">Svako ko koristi ovaj uređaj može da vidi preuzete fajlove</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> deli Chrome karticu.</translation> <translation id="2670403088701171361">Ne dozvolite sajtovima da vide tekst ili slike iz privremene memorije</translation> <translation id="2670429602441959756">Ova stranica sadrži funkcije koje još uvek nisu podržane u režimu virtuelne realnosti. Zatvara se...</translation> @@ -2165,6 +2166,7 @@ <translation id="3008232374986381779">Pokrećite Linux alatke, uređivače i IDE-ove na uređaju <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Resetuj dozvole</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> zahteva da se danas povežete na WiFi da biste preuzeli ažuriranje. Ili preuzmite pomoću veze sa ograničenjem (možda se naplaćuju troškovi).}one{<ph name="MANAGER" /> zahteva da se povežete na WiFi da biste preuzeli ažuriranje pre nego što istekne rok. Ili preuzmite pomoću veze sa ograničenjem (možda se naplaćuju troškovi).}few{<ph name="MANAGER" /> zahteva da se povežete na WiFi da biste preuzeli ažuriranje pre nego što istekne rok. Ili preuzmite pomoću veze sa ograničenjem (možda se naplaćuju troškovi).}other{<ph name="MANAGER" /> zahteva da se povežete na WiFi da biste preuzeli ažuriranje pre nego što istekne rok. Ili preuzmite pomoću veze sa ograničenjem (možda se naplaćuju troškovi).}}</translation> +<translation id="3009178788565917040">Izlaz</translation> <translation id="3009300415590184725">Da li ste sigurni da želite da otkažete proces podešavanja usluge mobilnih podataka?</translation> <translation id="3009779501245596802">Indeksirane baze podataka</translation> <translation id="3010279545267083280">Lozinka je izbrisana</translation> @@ -3207,6 +3209,7 @@ <translation id="402211067068791756">Ovim brišete <ph name="TOTAL_USAGE" /> podataka koje čuvaju prikazani sajtovi</translation> <translation id="4022426551683927403">&Dodaj u rečnik</translation> <translation id="4025039777635956441">Isključi zvuk izabranog sajta</translation> +<translation id="4027958407426528157">Otvarajte veb-sajtove i aplikacije instalirane na uređaju <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Dodaj metode unosa</translation> <translation id="4029556917477724407">Nazad sa stranice <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Mikrofon je dozvoljen</translation> @@ -3552,6 +3555,7 @@ <translation id="4377058670119819762">Omogućava pomeranje trake sa karticama ulevo i udesno kada je puna.</translation> <translation id="4377363674125277448">Došlo je do problema sa sertifikatom servera.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Pomera unapred</translation> <translation id="4378551569595875038">Povezuje se...</translation> <translation id="4378556263712303865">Zahtev za uređaj</translation> <translation id="4379281552162875326">Želite da deinstalirate aplikaciju <ph name="APP_NAME" />?</translation> @@ -6559,6 +6563,7 @@ <translation id="7377481913241237033">Povežite se pomoću koda</translation> <translation id="7378611153938412599">Slabe lozinke lako mogu da se pogode. Obavezno napravite jake lozinke. <ph name="BEGIN_LINK" />Pogledajte još saveta za bezbednost.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Otvorite Chrome veb-prodavnicu</translation> +<translation id="737938816678769289">Lako se povežite i podesite uređaje za brzo uparivanje u blizini</translation> <translation id="7380459290951585794">Uverite se da je telefon u blizini, da je otključan i da su Bluetooth i WiFi uključeni</translation> <translation id="7380622428988553498">Ime uređaja sadrži nevažeće znakove</translation> <translation id="7380768571499464492">Ažurirano: <ph name="PRINTER_NAME" /></translation> @@ -7359,6 +7364,7 @@ <translation id="8120505434908124087">Instalirajte eSIM profil</translation> <translation id="812260729110117038">Oglašavači i objavljivači mogu da proučavaju efikasnost oglasa na način koji vas ne prati na sajtovima.</translation> <translation id="81238879832906896">Žuti i beli cvet</translation> +<translation id="8123975449645947908">Skroluj unazad</translation> <translation id="8124313775439841391">Upravljani ONC</translation> <translation id="813082847718468539">Pogledajte informacije o sajtu</translation> <translation id="8131740175452115882">Potvrdi</translation> @@ -8277,6 +8283,7 @@ <translation id="9037640663275993951">Uređaj nije dozvoljen</translation> <translation id="9037818663270399707">Veza nije privatna za sav mrežni saobraćaj</translation> <translation id="9037965129289936994">Prikaži original</translation> +<translation id="9038489124413477075">Neimenovani direktorijum</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Imate još jedan pokušaj.}one{Imate još # pokušaj.}few{Imate još # pokušaja.}other{Imate još # pokušaja.}}</translation> <translation id="9040473193163777637">Želite li da aktivirate ChromeVox, ugrađeni čitač ekrana za Chrome OS? Ako je tako, pritisnite i zadržite oba tastera za jačinu zvuka pet sekundi.</translation> <translation id="9040661932550800571">Želite li da ažurirate lozinku za <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index c78212e6..7444814 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1798,6 +1798,7 @@ <translation id="2667144577800272420">Друге апликације су подешене да отварају исте линкове као апликација <ph name="APP_NAME" />. Овим се апликације <ph name="APP_NAME_2" /> и <ph name="APP_NAME_3" /> онемогућавају да отварају подржане линкове.</translation> <translation id="2667463864537187133">Управљање провером правописа</translation> <translation id="2669241540496514785">Отварање апликације <ph name="APP_NAME" /> није успело</translation> +<translation id="2669454659051515572">Свако ко користи овај уређај може да види преузете фајлове</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> дели Chrome картицу.</translation> <translation id="2670403088701171361">Не дозволите сајтовима да виде текст или слике из привремене меморије</translation> <translation id="2670429602441959756">Ова страница садржи функције које још увек нису подржане у режиму виртуелне реалности. Затвара се...</translation> @@ -2165,6 +2166,7 @@ <translation id="3008232374986381779">Покрећите Linux алатке, уређиваче и IDE-ове на уређају <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Ресетуј дозволе</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> захтева да се данас повежете на WiFi да бисте преузели ажурирање. Или преузмите помоћу везе са ограничењем (можда се наплаћују трошкови).}one{<ph name="MANAGER" /> захтева да се повежете на WiFi да бисте преузели ажурирање пре него што истекне рок. Или преузмите помоћу везе са ограничењем (можда се наплаћују трошкови).}few{<ph name="MANAGER" /> захтева да се повежете на WiFi да бисте преузели ажурирање пре него што истекне рок. Или преузмите помоћу везе са ограничењем (можда се наплаћују трошкови).}other{<ph name="MANAGER" /> захтева да се повежете на WiFi да бисте преузели ажурирање пре него што истекне рок. Или преузмите помоћу везе са ограничењем (можда се наплаћују трошкови).}}</translation> +<translation id="3009178788565917040">Излаз</translation> <translation id="3009300415590184725">Да ли сте сигурни да желите да откажете процес подешавања услуге мобилних података?</translation> <translation id="3009779501245596802">Индексиране базе података</translation> <translation id="3010279545267083280">Лозинка је избрисана</translation> @@ -3207,6 +3209,7 @@ <translation id="402211067068791756">Овим бришете <ph name="TOTAL_USAGE" /> података које чувају приказани сајтови</translation> <translation id="4022426551683927403">&Додај у речник</translation> <translation id="4025039777635956441">Искључи звук изабраног сајта</translation> +<translation id="4027958407426528157">Отварајте веб-сајтове и апликације инсталиране на уређају <ph name="DEVICE_TYPE" /></translation> <translation id="4028467762035011525">Додај методе уноса</translation> <translation id="4029556917477724407">Назад са странице <ph name="PAGE_TITLE" /></translation> <translation id="4031179711345676612">Микрофон је дозвољен</translation> @@ -3552,6 +3555,7 @@ <translation id="4377058670119819762">Омогућава померање траке са картицама улево и удесно када је пуна.</translation> <translation id="4377363674125277448">Дошло је до проблема са сертификатом сервера.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Помера унапред</translation> <translation id="4378551569595875038">Повезује се...</translation> <translation id="4378556263712303865">Захтев за уређај</translation> <translation id="4379281552162875326">Желите да деинсталирате апликацију <ph name="APP_NAME" />?</translation> @@ -6559,6 +6563,7 @@ <translation id="7377481913241237033">Повежите се помоћу кода</translation> <translation id="7378611153938412599">Слабе лозинке лако могу да се погоде. Обавезно направите јаке лозинке. <ph name="BEGIN_LINK" />Погледајте још савета за безбедност.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Отворите Chrome веб-продавницу</translation> +<translation id="737938816678769289">Лако се повежите и подесите уређаје за брзо упаривање у близини</translation> <translation id="7380459290951585794">Уверите се да је телефон у близини, да је откључан и да су Bluetooth и WiFi укључени</translation> <translation id="7380622428988553498">Име уређаја садржи неважеће знакове</translation> <translation id="7380768571499464492">Ажурирано: <ph name="PRINTER_NAME" /></translation> @@ -7359,6 +7364,7 @@ <translation id="8120505434908124087">Инсталирајте eSIM профил</translation> <translation id="812260729110117038">Оглашавачи и објављивачи могу да проучавају ефикасност огласа на начин који вас не прати на сајтовима.</translation> <translation id="81238879832906896">Жути и бели цвет</translation> +<translation id="8123975449645947908">Скролуј уназад</translation> <translation id="8124313775439841391">Управљани ONC</translation> <translation id="813082847718468539">Погледајте информације о сајту</translation> <translation id="8131740175452115882">Потврди</translation> @@ -8277,6 +8283,7 @@ <translation id="9037640663275993951">Уређај није дозвољен</translation> <translation id="9037818663270399707">Веза није приватна за сав мрежни саобраћај</translation> <translation id="9037965129289936994">Прикажи оригинал</translation> +<translation id="9038489124413477075">Неименовани директоријум</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Имате још један покушај.}one{Имате још # покушај.}few{Имате још # покушаја.}other{Имате још # покушаја.}}</translation> <translation id="9040473193163777637">Желите ли да активирате ChromeVox, уграђени читач екрана за Chrome ОС? Ако је тако, притисните и задржите оба тастера за јачину звука пет секунди.</translation> <translation id="9040661932550800571">Желите ли да ажурирате лозинку за <ph name="ORIGIN" />?</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 7954424..d1a2770 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1259,6 +1259,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Lägg till wifi ...</translation> <translation id="2162155940152307086">Synkroniseringen startar när du lämnar synkroniseringsinställningarna</translation> +<translation id="2162705204091149050">Läsa information om webbläsaren, operativsystemet, enheten, installerad programvara och filer</translation> <translation id="2162926944953615670">Det finns inga tillgängliga eSIM-profiler</translation> <translation id="2163470535490402084">Anslut till internet om du vill logga in på din <ph name="DEVICE_TYPE" />.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> och 1 till brytare</translation> @@ -1811,6 +1812,7 @@ <translation id="2667144577800272420">Andra appar är inställda på att öppna samma länkar som <ph name="APP_NAME" />. Detta inaktiverar att <ph name="APP_NAME_2" /> och <ph name="APP_NAME_3" /> öppnar länkar som stöds.</translation> <translation id="2667463864537187133">Hantera stavningskontrollen</translation> <translation id="2669241540496514785">Det gick inte att öppna <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Alla som använder enheten kan se nedladdade filer</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> delar en Chrome-flik.</translation> <translation id="2670403088701171361">Tillåt inte att webbplatser ser text eller bilder i Urklipp</translation> <translation id="2670429602441959756">Den här sidan har funktioner som inte stöds i VR ännu. VR-läget avslutas …</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">Kör verktyg, redigerare och IDE:er för Linux på <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Återställ behörigheter</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> kräver att du ansluter till wifi och laddar ned en uppdatering i dag. Du kan även ladda ned via en anslutning med datapriser (avgifter kan tillkomma).}other{<ph name="MANAGER" /> kräver att du ansluter till wifi laddar ned en uppdatering före deadline. Du kan även ladda ned via en anslutning med datapriser (avgifter kan tillkomma).}}</translation> +<translation id="3009178788565917040">Utgång</translation> <translation id="3009300415590184725">Är du säker på att du vill avbryta konfigurationen av den mobila datatjänsten?</translation> <translation id="3009779501245596802">Indexerade databaser</translation> <translation id="3010279545267083280">Lösenordet har tagits bort</translation> @@ -2508,6 +2511,7 @@ <translation id="3359256513598016054">Begränsningar för Certifikatpolicy</translation> <translation id="3360297538363969800">Utskriften misslyckades. Kontrollera skrivaren och försök igen.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> delar <ph name="ATTACHMENTS" /> med dig.}other{<ph name="DEVICE_NAME" /> delar <ph name="ATTACHMENTS" /> med dig.}}</translation> +<translation id="3363202073972776113">Den nya profilen hanteras av organisationen. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Från administratören: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Använd Ctrl eller Alt</translation> <translation id="3368922792935385530">Ansluten</translation> @@ -2542,6 +2546,7 @@ <translation id="339722927132407568">Den låser sig</translation> <translation id="3399432415385675819">Aviseringar inaktiveras</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) – flätade</translation> +<translation id="3401484564516348917">Läsa information om webbläsaren, operativsystemet, enheten, installerad programvara, registervärden och filer</translation> <translation id="3402059702184703067">{COUNT,plural, =1{{COUNT} lösenord har sparats på den här enheten}other{{COUNT} lösenord har sparats på den här enheten}}</translation> <translation id="3402255108239926910">Välj en avatar</translation> <translation id="3402585168444815892">Registrerar dig för demoläget</translation> @@ -2788,6 +2793,7 @@ <translation id="3627879631695760395">Installera <ph name="APP" /> …</translation> <translation id="3628275722731025472">Inaktivera Bluetooth</translation> <translation id="3629631988386925734">Aktivera Smart Lock genom att ange lösenordet. Nästa gång låser din mobil upp <ph name="DEVICE_TYPE" />. Du kan inaktivera Smart Lock i inställningarna.</translation> +<translation id="3629664892718440872">Kom ihåg det här valet</translation> <translation id="3630132874740063857">Din mobil</translation> <translation id="3630995161997703415">Lägg till den här webbplatsen på hyllan och använd den när som helst</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Du kan tillåta att rapporter skickas till oss automatiskt från Chrome OS-enheter, vilket hjälper oss att prioritera vad som bör åtgärdas och förbättras i Chrome OS. Dessa rapporter kan innehålla information som när Chrome OS kraschar, vilka funktioner du använder och hur mycket minne du brukar använda.<ph name="END_PARAGRAPH1" /> @@ -3277,6 +3283,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Fullständig kontroll över MIDI-enheter har nekats</translation> +<translation id="4087328411748538168">Visa till höger</translation> <translation id="4089235344645910861">Inställningarna har sparats och synkroniseringen startats.</translation> <translation id="4090103403438682346">Aktivera verifierad åtkomst</translation> <translation id="4090947011087001172">Vill du återställa behörigheterna för webbplatsen <ph name="SITE" />?</translation> @@ -3561,6 +3568,7 @@ <translation id="4377058670119819762">Gör det möjligt att scrolla flikhuvudet åt vänster eller höger när det är fullt.</translation> <translation id="4377363674125277448">Det fanns ett problem i serverns certifikat.</translation> <translation id="4378154925671717803">Mobil</translation> +<translation id="4378308539633073595">Scrolla framåt</translation> <translation id="4378551569595875038">Ansluter ...</translation> <translation id="4378556263712303865">Enhetsrekvirering</translation> <translation id="4379281552162875326">Vill du avinstallera <ph name="APP_NAME" />?</translation> @@ -3970,6 +3978,7 @@ <translation id="4779766576531456629">Byt namn på eSIM-mobilnätverket</translation> <translation id="4780321648949301421">Spara sida som...</translation> <translation id="4781443161433589743">Du använder Chromes starkaste skydd</translation> +<translation id="4782861709165039462">Alla mikrofoner har inaktiverats med enhetens maskinvarureglage</translation> <translation id="4785719467058219317">Säkerhetsnyckeln som du använder är inte registrerad på den här webbplatsen</translation> <translation id="4785914069240823137">Avbryt beskärning</translation> <translation id="4788092183367008521">Kontrollera nätverksanslutningen och försök igen.</translation> @@ -4736,6 +4745,7 @@ <translation id="5548075230008247516">Alla objekt har avmarkerats. Markeringsläget har stängts.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{<ph name="TAB_TITLE" />}=1{<ph name="TAB_TITLE" /> och 1 flik till}other{<ph name="TAB_TITLE" /> och # flikar till}}</translation> <translation id="5548606607480005320">Säkerhetskontroll</translation> +<translation id="5548644592758170183">Visa till vänster</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Tangentbord och textinmatning</translation> <translation id="5553089923092577885">Mappningar för certifikatpolicy </translation> @@ -7363,6 +7373,7 @@ <translation id="8120505434908124087">Installera eSIM-profil</translation> <translation id="812260729110117038">Annonsörerna och utgivarna kan utvärdera annonsernas effektivitet med hjälp av andra metoder än att spåra dig från webbplats till webbplats.</translation> <translation id="81238879832906896">Gul och vit blomma</translation> +<translation id="8123975449645947908">Scrolla bakåt</translation> <translation id="8124313775439841391">Hanterad ONC</translation> <translation id="813082847718468539">Visa information om webbplatsen</translation> <translation id="8131740175452115882">Bekräfta</translation> @@ -8218,6 +8229,7 @@ <translation id="8980345560318123814">Feedbackrapporter</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kraschat</translation> <translation id="8981825781894055334">Papperet börjar ta slut</translation> +<translation id="8983018820925880511">Den nya profilen hanteras av <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> har redigeringsbehörighet till <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Du blir synlig för alla i <ph name="MINUTES" /> minuter. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Välkommen till Steam för Chromebook</translation> @@ -8278,6 +8290,7 @@ <translation id="9037640663275993951">Otillåten enhet</translation> <translation id="9037818663270399707">Anslutningen är inte privat för all nätverkstrafik</translation> <translation id="9037965129289936994">Visa original</translation> +<translation id="9038489124413477075">Namnlös mapp</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Du har ett försök kvar.}other{Du har # försök kvar.}}</translation> <translation id="9040473193163777637">Vill du aktivera ChromeVox, den inbyggda skärmläsaren för Chrome OS? I så fall håller du båda volymknapparna nedtryckta i fem sekunder.</translation> <translation id="9040661932550800571">Vill du uppdatera lösenordet för <ph name="ORIGIN" />?</translation> @@ -8314,6 +8327,7 @@ <translation id="9075413375877487220">Det här tillägget är inte betrott i Förbättrad säker webbsökning.</translation> <translation id="9076283476770535406">Den kan innehålla barnförbjudet innehåll</translation> <translation id="9076523132036239772">Det gick inte att verifiera e-postadressen eller lösenordet. Anslut till ett nätverk först.</translation> +<translation id="9076821103818989526">Sidopanel</translation> <translation id="9076977315710973122">SMB-filresurs</translation> <translation id="9078193189520575214">Tillämpar ändringar …</translation> <translation id="9078316009970372699">Inaktivera direktinternetdelning</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 0657fc3..fc9ea4e 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -1255,6 +1255,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Ongeza Wi-Fi...</translation> <translation id="2162155940152307086">Itaanza kusawazisha utakapofunga mipangilio ya usawazishaji</translation> +<translation id="2162705204091149050">Soma maelezo kuhusu kivinjari chako, mfumo wa uendeshaji, kifaa, programu iliyosakinishwa na faili</translation> <translation id="2162926944953615670">Hakuna wasifu wa eSIM unaopatikana</translation> <translation id="2163470535490402084">Tafadhali unganisha kwenye Intaneti ili uingie katika <ph name="DEVICE_TYPE" /> yako.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> na swichi nyingine moja</translation> @@ -1275,6 +1276,7 @@ <translation id="2180620921879609685">Kuzuia maudhui kwenye ukurasa wowote</translation> <translation id="2182058453334755893">Yamenakiliwa kwenye Ubao wa Kunakili</translation> <translation id="2184515124301515068">Ruhusu Chrome ichague wakati ambapo tovuti zitacheza sauti (inapendekezwa)</translation> +<translation id="2186206192313702726">Lenzi ya Google</translation> <translation id="2186711480981247270">Ukurasa umeshirikiwa kutoka kwenye kifaa kingine</translation> <translation id="2187675480456493911">Umesawazishwa na vifaa vingine kwenye akaunti yako. Mipangilio iliyorekebishwa na watumiaji wengine haitasawazishwa. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Hitilafu ya Kuleta Cheti cha Seva</translation> @@ -1808,6 +1810,7 @@ <translation id="2667144577800272420">Programu zingine zimeruhusiwa kufungua viungo vinavyofunguliwa na <ph name="APP_NAME" />. Hatua hii itazuia <ph name="APP_NAME_2" /> na <ph name="APP_NAME_3" /> zisifungue viungo vinavyoweza kutumika.</translation> <translation id="2667463864537187133">Dhibiti kikagua maendelezo</translation> <translation id="2669241540496514785">Imeshindwa kufungua <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Mtu yeyote anayetumia kifaa hiki anaweza kuona faili zilizopakuliwa</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> inashiriki kichupo cha Chrome.</translation> <translation id="2670403088701171361">Usiruhusu tovuti zione maandishi wala picha kwenye ubao wako wa kunakili</translation> <translation id="2670429602441959756">Ukurasa huu una vipengele visivyotumika katika VR. Unaondoka...</translation> @@ -2175,6 +2178,7 @@ <translation id="3008232374986381779">Tumia IDE, vihariri na zana za Linux kwenye <ph name="DEVICE_TYPE" /> yako. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Badilisha ruhusa</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> inahitaji uunganishe kwenye Wi-Fi leo ili upakue sasisho. Au, pakua kwa kutumia muunganisho wa mtandao unaopima data (huenda ukatozwa ada).}other{<ph name="MANAGER" /> inahitaji uunganishe kwenye Wi-Fi na upakue sasisho kabla ya tarehe ya mwisho. Au, pakua kwa kutumia muunganisho wa mtandao unaopima data (huenda ukatozwa ada).}}</translation> +<translation id="3009178788565917040">Towe</translation> <translation id="3009300415590184725">Je una uhakika unataka kughairi mchakato wa usanidi wa huduma ya data ya simu ya mkononi?</translation> <translation id="3009779501245596802">Hifadhidata zilizofahirisiwa</translation> <translation id="3010279545267083280">Nenosiri limefutwa</translation> @@ -2505,6 +2509,7 @@ <translation id="3359256513598016054">Vizuizi vya Sera ya Vyeti</translation> <translation id="3360297538363969800">Uchapishaji umeshindwa. Tafadhali angalia printa yako na ujaribu tena.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> inashiriki <ph name="ATTACHMENTS" /> nawe.}other{<ph name="DEVICE_NAME" /> inashiriki <ph name="ATTACHMENTS" /> nawe.}}</translation> +<translation id="3363202073972776113">Wasifu huu mpya utasimamiwa na shirika lako. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Kutoka kwa msimamizi wako: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Tumia Ctrl au Alt</translation> <translation id="3368922792935385530">Umeunganishwa</translation> @@ -2539,6 +2544,7 @@ <translation id="339722927132407568">Inasita kucheza</translation> <translation id="3399432415385675819">Arifa zitazimwa</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Hertz <ph name="REFRESH_RATE" />) - imejumuishwa pamoja</translation> +<translation id="3401484564516348917">Soma maelezo kuhusu kivinjari chako, mfumo wa uendeshaji, kifaa, programu iliyosakinishwa, thamani za usajili na faili</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Nenosiri {COUNT} limehifadhiwa kwenye kifaa hiki}other{Manenosiri {COUNT} yamehifadhiwa kwenye kifaa hiki}}</translation> <translation id="3402255108239926910">Chagua ishara</translation> <translation id="3402585168444815892">Inaandikisha katika Hali ya Onyesho</translation> @@ -2785,6 +2791,7 @@ <translation id="3627879631695760395">Sakinisha <ph name="APP" />...</translation> <translation id="3628275722731025472">Zima Bluetooth</translation> <translation id="3629631988386925734">Weka nenosiri lako ili uwashe Smart Lock. Wakati ujao, simu yako itafungua <ph name="DEVICE_TYPE" /> yako. Unaweza kuzima Smart Lock katika Mipangilio.</translation> +<translation id="3629664892718440872">Kumbuka chaguo hili</translation> <translation id="3630132874740063857">Simu yako</translation> <translation id="3630995161997703415">Ongeza tovuti hii kwenye rafu yako ili uitumie wakati wowote</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Hatua ya kuruhusu vifaa vyako vinavyotumia mfumo wa uendeshaji wa Chrome vitume ripoti kiotomatiki hutusaidia kujua vipengele tutakavyovipa kipaumbele wakati wa kurekebisha na kuboresha mfumo wa uendeshaji wa Chrome. Ripoti hizi zinaweza kujumuisha vitu kama vile mfumo wa uendeshaji wa Chrome unapoacha kufanya kazi, vipengele unavyotumia na kadirio la kiasi cha hifadhi unachotumia.<ph name="END_PARAGRAPH1" /> @@ -3272,6 +3279,7 @@ <translation id="4085298594534903246">JavaScript ilizuiwa kwenye ukurasa huu.</translation> <translation id="4087089424473531098">Imeunda kiendelezi: <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Haijaruhusiwa kutumia udhibiti kamili wa vifaa vya MIDI</translation> +<translation id="4087328411748538168">Onyesha katika upande wa kulia</translation> <translation id="4089235344645910861">Mipangilio imehifadhiwa. Imeanza kusawazisha.</translation> <translation id="4090103403438682346">Washa Ufikiaji Uliothibitishwa</translation> <translation id="4090947011087001172">Ungependa kubadilisha ruhusa za tovuti ya <ph name="SITE" />?</translation> @@ -3556,6 +3564,7 @@ <translation id="4377058670119819762">Hukuwezesha kusogeza ukanda wa vichupo kushoto na kulia unapojaa.</translation> <translation id="4377363674125277448">Kulikuwa na tatizo kwenye cheti cha seva.</translation> <translation id="4378154925671717803">Simu</translation> +<translation id="4378308539633073595">Sogeza mbele</translation> <translation id="4378551569595875038">Inaunganisha...</translation> <translation id="4378556263712303865">Ombi la kifaa</translation> <translation id="4379281552162875326">Je, ungependa kuondoa "<ph name="APP_NAME" />"?</translation> @@ -3965,6 +3974,7 @@ <translation id="4779766576531456629">Badilisha jina la Mtandao wa simu wa eSIM</translation> <translation id="4780321648949301421">Hifadhi Ukurasa Kama...</translation> <translation id="4781443161433589743">Unatumia kipengele thabiti zaidi cha usalama cha Chrome</translation> +<translation id="4782861709165039462">Maikrofoni zote zimezimwa na swichi ya maunzi ya kifaa</translation> <translation id="4785719467058219317">Unatumia ufunguo wa usalama ambao haujasajiliwa kwenye tovuti hii</translation> <translation id="4785914069240823137">Ghairi Kupunguza</translation> <translation id="4788092183367008521">Tafadhali kagua muunganisho wako wa mtandao na ujaribu tena.</translation> @@ -4731,6 +4741,7 @@ <translation id="5548075230008247516">Umeacha kuchagua vipengee vyote, hali ya kuchagua imefungwa.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" na Kichupo Kingine 1}other{"<ph name="TAB_TITLE" />" na Vichupo Vingine #}}</translation> <translation id="5548606607480005320">Angalizo la usalama</translation> +<translation id="5548644592758170183">Onyesha katika upande wa kushoto</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Kibodi na uwekaji wa maandishi</translation> <translation id="5553089923092577885">Ramani ya Sera za Vyeti</translation> @@ -7359,6 +7370,7 @@ <translation id="8120505434908124087">Weka wasifu wa eSIM</translation> <translation id="812260729110117038">Watangazaji na wachapishaji wanaweza kubaini ufanisi wa matangazo kwa njia ambayo haikufuatilii kwenye tovuti mbalimbali.</translation> <translation id="81238879832906896">Ua la rangi ya manjano na nyeupe</translation> +<translation id="8123975449645947908">Sogeza nyuma</translation> <translation id="8124313775439841391">ONC Inayodhibitiwa</translation> <translation id="813082847718468539">Angalia maelezo ya tovuti</translation> <translation id="8131740175452115882">Thibitisha</translation> @@ -8214,6 +8226,7 @@ <translation id="8980345560318123814">Ripoti za maoni</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Imeacha kufanya kazi</translation> <translation id="8981825781894055334">Karatasi zinakaribia kuisha</translation> +<translation id="8983018820925880511">Wasifu huu mpya unasimamiwa na <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" /> inaweza kubadilisha <ph name="FILENAME" /></translation> <translation id="8984694057134206124">Kila mtu ataona kifaa chako kwa dakika <ph name="MINUTES" />. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Karibu kwenye programu ya Steam iliyo mahususi kwa Chromebook</translation> @@ -8274,6 +8287,7 @@ <translation id="9037640663275993951">Kifaa hiki hakiruhusiwi</translation> <translation id="9037818663270399707">Muunganisho wako si wa faragha kwenye trafiki yote ya mtandao</translation> <translation id="9037965129289936994">Onyesha Asili</translation> +<translation id="9038489124413477075">Folda isiyo na jina</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Umebakisha mara moja ya kujaribu.}other{Umebakisha mara # za kujaribu.}}</translation> <translation id="9040473193163777637">Ungependa kuwasha ChromeVox, kisoma skrini kilichojumuishwa cha Mfumo wa Uendeshaji wa Chrome? Ikiwa ndivyo, bonyeza na ushikilie vitufe vya sauti vyote viwili kwa sekunde tano.</translation> <translation id="9040661932550800571">Ungependa kusasisha nenosiri la <ph name="ORIGIN" />?</translation> @@ -8310,6 +8324,7 @@ <translation id="9075413375877487220">Kiendelezi hiki hakiaminiki na Kipengele cha Kuvinjari Salama Kilichoboreshwa.</translation> <translation id="9076283476770535406">Huenda ina maudhui ya ngono</translation> <translation id="9076523132036239772">Samahani, barua pepe au nenosiri lako havingeweza kuthibitishwa. Jaribu kuunganisha kwenye mtandao kwanza.</translation> +<translation id="9076821103818989526">Kidirisha cha pembeni</translation> <translation id="9076977315710973122">Kushiriki SMB</translation> <translation id="9078193189520575214">Inaweka mabadiliko...</translation> <translation id="9078316009970372699">Zima Mtandao wa Kusambazwa Papo Hapo</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 2963d517..2a415b5 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -1812,6 +1812,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> ஆப்ஸ் திறக்கும் அதே இணைப்புகளைப் பிற ஆப்ஸும் திறக்கும் வகையில் அமைக்கப்பட்டுள்ளன. இதை மாற்றினால், ஆதரிக்கப்படும் இணைப்புகளைத் திறப்பதில் இருந்து <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ஆகியவை முடக்கப்படும்.</translation> <translation id="2667463864537187133">எழுத்துப் பிழை சரிபார்ப்பானை நிர்வகி</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ஆப்ஸைத் திறக்க முடியவில்லை</translation> +<translation id="2669454659051515572">இந்தச் சாதனத்தைப் பயன்படுத்தும் அனைவராலும் பதிவிறக்கிய ஃபைல்களைப் பார்க்க முடியும்</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome தாவலைப் பகிர்கிறது.</translation> <translation id="2670403088701171361">கிளிப்போர்டில் உள்ள உரையையோ படங்களையோ பார்க்க தளங்களை அனுமதிக்காதே</translation> <translation id="2670429602441959756">VR இல் இன்னும் ஆதரிக்கப்படாத அம்சங்கள், இந்தப் பக்கத்தில் உள்ளன. வெளியேறுகிறது...</translation> @@ -2179,6 +2180,7 @@ <translation id="3008232374986381779">உங்கள் <ph name="DEVICE_TYPE" /> சாதனத்தில் Linux கருவிகள், திருத்திகள், IDEகள் ஆகியவற்றை இயக்கும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation> <translation id="3008272652534848354">அனுமதிகளை மீட்டமை</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" />ஐப் பயன்படுத்த, வைஃபையுடன் இணைத்து இன்றே புதுப்பிப்பைப் பதிவிறக்க வேண்டும். அல்லது கட்டண நெட்வொர்க் இணைப்பிலிருந்து பதிவிறக்குங்கள் (கட்டணங்கள் விதிக்கப்படலாம்).}other{<ph name="MANAGER" />ஐப் பயன்படுத்த, வைஃபையுடன் இணைத்து காலக்கெடுவிற்கு முன்பு புதுப்பிப்பைப் பதிவிறக்க வேண்டும். அல்லது கட்டண நெட்வொர்க் இணைப்பிலிருந்து பதிவிறக்குங்கள் (கட்டணங்கள் விதிக்கப்படலாம்).}}</translation> +<translation id="3009178788565917040">வெளியீடு</translation> <translation id="3009300415590184725">மொபைல் டேட்டா சேவை அமைப்பு செயலாக்கத்தை நிச்சயம் ரத்துசெய்ய வேண்டுமா?</translation> <translation id="3009779501245596802">அட்டவணைப்படுத்திய தரவுத்தளங்கள்</translation> <translation id="3010279545267083280">கடவுச்சொல் நீக்கப்பட்டது</translation> @@ -3566,6 +3568,7 @@ <translation id="4377058670119819762">உலாவிப்பக்கப் பட்டி நிரம்பியிருக்கும்போது இடம் வலமாக ஸ்க்ரோல் செய்யலாம்.</translation> <translation id="4377363674125277448">பாதுகாப்புச் சான்றிதழில் சிக்கல் உள்ளது.</translation> <translation id="4378154925671717803">மொபைல்</translation> +<translation id="4378308539633073595">முன்செல்</translation> <translation id="4378551569595875038">இணைக்கிறது...</translation> <translation id="4378556263712303865">சாதனக் கோரிக்கை</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ஐ நிறுவல் நீக்கவா?</translation> @@ -7371,6 +7374,7 @@ <translation id="8120505434908124087">eSIM சுயவிவரத்தை நிறுவுதல்</translation> <translation id="812260729110117038">தளங்களில் உலாவும்போது உங்களைக் கண்காணிக்காத வகையில் விளம்பரங்களின் செயல்திறனை விளம்பரதாரர்களும் வெளியீட்டாளர்களும் அறிந்துகொள்ளலாம்.</translation> <translation id="81238879832906896">மஞ்சள் வெள்ளை மலர்</translation> +<translation id="8123975449645947908">பின்னே செல்</translation> <translation id="8124313775439841391">நிர்வகிக்கப்படும் ONC</translation> <translation id="813082847718468539">தள விவரங்களைக் காண்க</translation> <translation id="8131740175452115882">உறுதிப்படுத்து</translation> @@ -8287,6 +8291,7 @@ <translation id="9037640663275993951">சாதனம் அனுமதிக்கப்படவில்லை</translation> <translation id="9037818663270399707">சில நெட்வொர்க் டிராஃபிக்கிற்கு மட்டுமே உங்கள் இணைப்பு தனிப்பட்டது</translation> <translation id="9037965129289936994">அசல் மொழியில் காட்டு</translation> +<translation id="9038489124413477075">பெயரிடப்படாதக் கோப்புறை</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{இன்னும் ஒருமுறை முயலலாம்.}other{இன்னும் # முறை முயலலாம்.}}</translation> <translation id="9040473193163777637">ChromeOSஸுக்கான ChromeVox எனும் உள்ளமைந்த ஸ்கிரீன் ரீடரை இயக்க விரும்புகிறீர்களா? ஆம் என்றால் ஒலியளவு பட்டன்கள் இரண்டையும் 5 வினாடிகளுக்கு அழுத்திப் பிடித்திருக்கவும்.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" />க்கான கடவுச்சொல்லைப் புதுப்பிக்கவா?</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 32324672..2392caf 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -371,7 +371,7 @@ <translation id="1361164813881551742">మాన్యువల్గా జోడించండి</translation> <translation id="1361655923249334273">ఉపయోగించనిది</translation> <translation id="1361872463926621533">ప్రారంభంలో ధ్వనిని ప్లే చేయండి</translation> -<translation id="1362865166188278099">మెషీన్లో సమస్య. ప్రింటర్ను తనిఖీ చేయండి</translation> +<translation id="1362865166188278099">మెషీన్లో సమస్య. ప్రింటర్ను చెక్ చేయండి</translation> <translation id="1363585519747660921">USB ప్రింటర్ కోసం తప్పక కాన్ఫిగర్ చేయాలి</translation> <translation id="1367951781824006909">ఒక ఫైల్ని ఎంచుకోండి</translation> <translation id="1368603372088757436">మీ <ph name="DEVICE_TYPE" />లో Linuxకు సపోర్ట్ లేదు. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> @@ -482,7 +482,7 @@ <translation id="1459693405370120464">వాతావరణం</translation> <translation id="146000042969587795">ఈ ఫ్రేమ్లో అసురక్షిత కంటెంట్ ఉండటం వల్ల, అది బ్లాక్ చేయబడింది.</translation> <translation id="146219525117638703">ONC స్థితి</translation> -<translation id="146220085323579959">ఇంటర్నెట్ డిస్కనెక్ట్ చేయబడింది. దయచేసి మీ ఇంటర్నెట్ కనెక్షన్ని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="146220085323579959">ఇంటర్నెట్ డిస్కనెక్ట్ చేయబడింది. దయచేసి మీ ఇంటర్నెట్ కనెక్షన్ని చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="1462850958694534228">చిహ్నానికి సంబంధించిన అప్డేట్ను రివ్యూ చేయండి</translation> <translation id="1463112138205428654">అధునాతన రక్షణ ప్రోగ్రామ్ ద్వారా <ph name="FILE_NAME" /> బ్లాక్ చేయబడింది.</translation> <translation id="1464044141348608623">మీరు మీ పరికరాన్ని యాక్టివ్గా ఉపయోగించే సమయాలను తెలుసుకోవడానికి సైట్లను అనుమతించకండి</translation> @@ -530,7 +530,7 @@ <translation id="1509281256533087115">ఏ <ph name="DEVICE_NAME_AND_VENDOR" />ని అయినా USB ద్వారా యాక్సెస్ చేయడానికి అనుమతి</translation> <translation id="1510238584712386396">లాంచర్</translation> <translation id="1510785804673676069">మీరు ప్రాక్సీ సర్వర్ను ఉపయోగిస్తుంటే, ప్రాక్సీ సర్వర్ పని చేస్తోందని - తనిఖీ చేయడానికి మీ ప్రాక్సీ సెట్టింగ్లను తనిఖీ చేయండి లేదా మీ నెట్వర్క్ + చెక్ చేయడానికి మీ ప్రాక్సీ సెట్టింగ్లను చెక్ చేయండి లేదా మీ నెట్వర్క్ నిర్వాహకుడిని సంప్రదించండి. మీరు ప్రాక్సీ సర్వర్ను ఉపయోగిస్తున్నారని విశ్వసించకుంటే, మీ <ph name="LINK_START" />ప్రాక్సీ సెట్టింగ్ల<ph name="LINK_END" />ను సర్దుబాటు చేయండి.</translation> <translation id="1511997356770098059">ఈ 'సెక్యూరిటీ కీ'లో సైన్-ఇన్ డేటా ఏదీ నిల్వ చేయబడదు</translation> @@ -652,7 +652,7 @@ <translation id="1615433306336820465">మీ సెక్యూరిటీ కీలో స్టోర్ చేసి ఉన్న సైన్-ఇన్ డేటాను మేనేజ్ చేయండి</translation> <translation id="1616206807336925449">ఈ ఎక్స్టెన్షన్కు ప్రత్యేక అనుమతులు ఏవీ అవసరం లేదు.</translation> <translation id="1616298854599875024">ఇది షేర్ చేసిన మాడ్యూల్ కానందున ఎక్స్టెన్షన్ "<ph name="IMPORT_NAME" />"ను దిగుమతి చేయడం సాధ్యపడలేదు</translation> -<translation id="1617765145568323981">{NUM_FILES,plural, =0{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ డేటాను తనిఖీ చేస్తోంది...}=1{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ ఫైల్ను తనిఖీ చేస్తోంది...}other{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ ఫైల్స్ను తనిఖీ చేస్తోంది...}}</translation> +<translation id="1617765145568323981">{NUM_FILES,plural, =0{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ డేటాను చెక్ చేస్తోంది...}=1{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ ఫైల్ను చెక్ చేస్తోంది...}other{మీ సంస్థకు చెందిన భద్రతా పాలసీలతో ఈ ఫైల్స్ను చెక్ చేస్తోంది...}}</translation> <translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation> <translation id="1618268899808219593">స&హాయ కేంద్రం</translation> <translation id="1619879934359211038">Google Playకు కనెక్ట్ చేయడం సాధ్యపడలేదు. మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ట్రై చేయండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation> @@ -826,7 +826,7 @@ <translation id="1766957085594317166">పాస్వర్డ్లను మీ Google ఖాతాలో సురక్షితంగా సేవ్ చేయండి, మీరు ఇంకెప్పుడూ మళ్లీ టైప్ చేయవలసిన అవసరం ఉండదు</translation> <translation id="1767043563165955993">Android యాప్లతో ఉపయోగించండి</translation> <translation id="1768212860412467516"><ph name="EXPERIMENT_NAME" /> కోసం ఫీడ్బ్యాక్ను పంపండి.</translation> -<translation id="1768278914020124551">అయ్యో! లాగాన్ సర్వర్ను సంప్రదించడంలో సమస్య ఉంది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను మరియు డొమైన్ పేరును తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="1768278914020124551">అయ్యో! లాగాన్ సర్వర్ను సంప్రదించడంలో సమస్య ఉంది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను మరియు డొమైన్ పేరును చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="1769104665586091481">లింక్ను కొత్త &విండోలో తెరువు</translation> <translation id="177053719077591686">Google Driveకు Android యాప్లను బ్యాకప్ చేయండి.</translation> <translation id="177336675152937177">హోస్ట్ చేసిన యాప్ డేటా</translation> @@ -899,7 +899,7 @@ <translation id="182577151972096764">ఇటీవల చూసిన రెసిపీలు</translation> <translation id="18260074040409954">మీరు సేవ్ చేసిన పాస్వర్డ్లను ఏ పరికరంలోనైనా ఉపయోగించవచ్చు. <ph name="EMAIL" />కు <ph name="GOOGLE_PASSWORD_MANAGER" />లో అవి సేవ్ చేయబడతాయి.</translation> <translation id="1826192255355608658">మీ Chrome బ్రౌజర్ బుక్మార్క్లు, పాస్వర్డ్లు, హిస్టరీ, ఇంకా మరిన్నింటిని సింక్ చేయండి</translation> -<translation id="1826516787628120939">తనిఖీ చేస్తోంది</translation> +<translation id="1826516787628120939">చెక్ చేస్తోంది</translation> <translation id="1827738518074806965">చిత్రకళా గ్యాలరీ</translation> <translation id="1828378091493947763">ఈ పరికరంలో ఈ ప్లగిన్కు మద్దతు లేదు</translation> <translation id="1828879788654007962">{COUNT,plural, =0{అన్నింటినీ &తెరువు}=1{బుక్మార్క్ను &తెరువు}other{అన్నింటినీ ({COUNT}) &తెరువు}}</translation> @@ -1112,7 +1112,7 @@ మీ పరికరంలో Family Link యాప్ ఇన్స్టాల్ చేయడం ద్వారా మీరు ఈ ఖాతా సెట్టింగ్లను నిర్వహించవచ్చు. మీకు ఈమెయిల్లో సూచనలను పంపాము.</translation> <translation id="2039464276165755892">వేరొకరిని గుర్తించినప్పుడు, నోటిఫికేషన్ కంటెంట్ను దాచండి</translation> -<translation id="2040460856718599782">అయ్యో! మిమ్మల్ని ప్రామాణీకరించడానికి ప్రయత్నిస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి మీ సైన్-ఇన్ ప్రమాణాలను ఒకటికి రెండుసార్లు తనిఖీ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> +<translation id="2040460856718599782">అయ్యో! మిమ్మల్ని ప్రామాణీకరించడానికి ప్రయత్నిస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి మీ సైన్-ఇన్ ప్రమాణాలను ఒకటికి రెండుసార్లు చెక్ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> <translation id="2040894699575719559">లొకేషన్ బ్లాక్ చేయబడింది</translation> <translation id="2042279886444479655">యాక్టివ్ ప్రొఫైళ్లు</translation> <translation id="2044014337866019681">సెషన్ను అన్లాక్ చేయడానికి, మీరు <ph name="ACCOUNT" />ను వెరిఫై చేస్తున్నారని దయచేసి నిర్ధారించుకోండి.</translation> @@ -1122,7 +1122,7 @@ <translation id="204622017488417136">మీ పరికరం మునుపు ఇన్స్టాల్ చేసిన Chrome వెర్షన్కు తిరిగి మార్చబడింది. అన్ని వినియోగదారు ఖాతాలు మరియు స్థానిక డేటా తీసివేయబడుతుంది. దీన్ని రద్దు చేయడం సాధ్యపడదు.</translation> <translation id="2046702855113914483">రామెన్</translation> <translation id="2046770133657639077">పరికర EIDని చూపండి</translation> -<translation id="204706822916043810">వర్చువల్ మెషిన్ను తనిఖీ చేస్తోంది</translation> +<translation id="204706822916043810">వర్చువల్ మెషిన్ను చెక్ చేస్తోంది</translation> <translation id="2048182445208425546">మీ నెట్వర్క్ ట్రాఫిక్ను యాక్సెస్ చేయండి</translation> <translation id="2048554637254265991">కంటైనర్ మేనేజర్ను ప్రారంభించడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ట్రై చేయండి.</translation> <translation id="2048653237708779538">చర్య అందుబాటులో లేదు</translation> @@ -1186,7 +1186,7 @@ <ph name="BEGIN_BOLD" />గమనిక:<ph name="END_BOLD" /> ప్రాసెస్ సమయంలో సిస్టమ్ రీబూట్ అవుతుంది.</translation> <translation id="2095774564753225041">సపోర్ట్ ఉన్న ఫైల్ రకాలు</translation> <translation id="2096715839409389970">మూడవ పక్షం కుక్కీలను తొలగించు</translation> -<translation id="2098805196501063469">మిగిలిన పాస్వర్డ్లను తనిఖీ చేయండి</translation> +<translation id="2098805196501063469">మిగిలిన పాస్వర్డ్లను చెక్ చేయండి</translation> <translation id="2099686503067610784">సర్వర్ ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />" తొలగించాలా?</translation> <translation id="2100273922101894616">ఆటోమేటిక్ సైన్-ఇన్</translation> <translation id="2101225219012730419">వెర్షన్:</translation> @@ -1266,11 +1266,11 @@ <translation id="2165177462441582039">ప్రతి ఐటెమ్ ఎంత సమయం హైలైట్గా ఉండాలో ఎంచుకోండి</translation> <translation id="2166369534954157698">దేశ భాషలందు తెలుగు లెస్స</translation> <translation id="2169062631698640254">ఏదేమైనా సైన్ ఇన్ చేయండి</translation> -<translation id="2173302385160625112">మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి</translation> +<translation id="2173302385160625112">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేయండి</translation> <translation id="2173801458090845390">ఈ పరికరానికి రిక్వెస్ట్ IDని జోడించండి</translation> <translation id="2175384018164129879">సెర్చ్ ఇంజిన్లను, సైట్ సెర్చ్ను &మేనేజ్ చేయండి</translation> <translation id="2175607476662778685">త్వరిత ప్రారంభ బార్</translation> -<translation id="217576141146192373">ప్రింటర్ను జోడించడం సాధ్యపడలేదు. దయచేసి మీ ప్రింటర్ కాన్ఫిగరేషన్ తనిఖీ చేసుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> +<translation id="217576141146192373">ప్రింటర్ను జోడించడం సాధ్యపడలేదు. దయచేసి మీ ప్రింటర్ కాన్ఫిగరేషన్ చెక్ చేసుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="2175927920773552910">QR కోడ్</translation> <translation id="2177950615300672361">అజ్ఞాత ట్యాబ్: <ph name="TAB_NAME" /></translation> <translation id="2178585470774851578">మీరు ChromeOS Flex డీబగ్గింగ్ ఫీచర్లను ఎనేబుల్ చేస్తున్నారు, ఇది sshd daemonను సెటప్ చేస్తుంది అలాగే USB డిస్క్ల నుండి బూట్ చేయడాన్ని ఎనేబుల్ చేస్తుంది.</translation> @@ -1279,6 +1279,7 @@ <translation id="2180620921879609685">ఏ పేజీలోనైనా కంటెంట్ను బ్లాక్ చేయడం</translation> <translation id="2182058453334755893">మీ క్లిప్బోర్డ్కు కాపీ చేయబడింది</translation> <translation id="2184515124301515068">సైట్లు ధ్వనిని ఎప్పుడు ప్లే చేయాలనేది Chrome ఎంచుకునేలా సెట్ చేయండి (సిఫార్సు చేయబడింది)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">మరో పరికరం నుండి పేజీ షేర్ చేయబడింది</translation> <translation id="2187675480456493911">మీ ఖాతాలోని ఇతర పరికరాలతో సింక్ చేయబడింది. ఇతర యూజర్ల చేత మార్చబడిన సెట్టింగ్లు సింక్ చేయబడవు. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> <translation id="2187895286714876935">సర్వర్ ప్రమాణపత్రం దిగుమతి ఎర్రర్</translation> @@ -1554,7 +1555,7 @@ <translation id="2428510569851653187">ట్యాబ్ క్రాష్ అయిన సమయంలో మీరు ఏం చేస్తున్నారో వివరించండి</translation> <translation id="2428939361789119025">Wi-Fiను ఆఫ్ చేయండి</translation> <translation id="2428978615149723410">ఈ కార్ట్లు</translation> -<translation id="2431027948063157455">Google Assistantను లోడ్ చేయడం సాధ్యపడలేదు, దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> +<translation id="2431027948063157455">Google Assistantను లోడ్ చేయడం సాధ్యపడలేదు, దయచేసి మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> <translation id="243179355394256322">మీ సంస్థ అధికారిక యూజర్లకు మాత్రమే పరికర నమోదును పరిమితం చేస్తుంది. ఈ యూజర్కు పరికరాలను ఎన్రోల్ చేసే అధికారం లేదు. దయచేసి అడ్మిన్ కన్సోల్ యూజర్ల విభాగంలోని యూజర్ "Google Meet హార్డ్వేర్ను ఎన్రోల్ చేయి" అడ్మినిస్ట్రేటర్ ప్రత్యేక హక్కును కలిగి ఉన్నారని నిర్ధారించుకోండి.</translation> <translation id="243275146591958220">డౌన్లోడ్ను రద్దు చేయండి</translation> <translation id="2433452467737464329">పేజీని స్వీయ రీఫ్రెష్ చేయడానికి URLలో ప్రశ్న పరామితిని జోడించండి: chrome://network/?refresh=<sec></translation> @@ -1569,7 +1570,7 @@ <translation id="2439626940657133600"><ph name="WINDOW_TITLE" /> లోడ్ అవుతోంది</translation> <translation id="2440604414813129000">&సోర్స్ను చూడండి</translation> <translation id="2441719842399509963">డిఫాల్ట్లకు రీసెట్ చేయి</translation> -<translation id="244231003699905658">అడ్రస్ చెల్లదు. దయచేసి అడ్రస్ను తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> +<translation id="244231003699905658">అడ్రస్ చెల్లదు. దయచేసి అడ్రస్ను చెక్ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="2442916515643169563">వచన నీడ</translation> <translation id="2443487764245141020">ఐడెంటిఫయర్ను ఉపయోగించి సైట్లు మీ పరికరాన్ని గుర్తించాల్సిన అవసరం కూడా ఉంది</translation> <translation id="244475495405467108">ఎడమ వైపునకు ట్యాబ్లను మూసివేయండి</translation> @@ -1667,7 +1668,7 @@ <translation id="2518024842978892609">మీ క్లయింట్ సర్టిఫికెట్లను ఉపయోగించడానికి అనుమతి</translation> <translation id="2519517390894391510">సర్టిఫికెట్ ప్రొఫైల్ పేరు</translation> <translation id="2520644704042891903">అందుబాటులో ఉన్న సాకెట్ కోసం వేచి ఉంది...</translation> -<translation id="2521854691574443804">మీ సంస్థకు చెందిన భద్రతా పాలసీలతో <ph name="FILE_NAME" />ను తనిఖీ చేస్తోంది...</translation> +<translation id="2521854691574443804">మీ సంస్థకు చెందిన భద్రతా పాలసీలతో <ph name="FILE_NAME" />ను చెక్ చేస్తోంది...</translation> <translation id="252219247728877310">అంశం నవీకరించబడలేదు</translation> <translation id="2523184218357549926">మీరు సందర్శించే పేజీల URLలను Googleకి పంపుతుంది</translation> <translation id="252418934079508528"><ph name="DEVICE_OS" />ను ఇన్స్టాల్ చేయండి</translation> @@ -1687,7 +1688,7 @@ <translation id="253557089021624350">సక్రియ కార్యాచరణల గణన</translation> <translation id="2535799430745250929">సెల్యులార్ నెట్వర్క్ ఏదీ లేదు</translation> <translation id="2537395079978992874">కింది ఫైళ్లు, ఫోల్డర్లను <ph name="ORIGIN" /> చూడగలదు, సవరించగలదు</translation> -<translation id="2537927931785713436">వర్చువల్ మెషిన్ ఇమేజ్ను తనిఖీ చేస్తోంది</translation> +<translation id="2537927931785713436">వర్చువల్ మెషిన్ ఇమేజ్ను చెక్ చేస్తోంది</translation> <translation id="2538084450874617176"><ph name="DEVICE_TYPE" />ను ఎవరు ఉపయోగిస్తున్నారు?</translation> <translation id="2538361623464451692">సింక్ నిలిపివేయబడింది</translation> <translation id="2540449034743108469">ఎక్స్టెన్షన్ యాక్టివిటీలను వినడానికి "ప్రారంభించు" నొక్కండి</translation> @@ -1811,6 +1812,7 @@ <translation id="2667144577800272420">ఇతర యాప్లు, <ph name="APP_NAME" /> తెరిచిన అవే లింక్లను తెరవడానికి సిద్ధంగా ఉన్నాయి. ఇది సపోర్ట్ చేయబడిన లింక్లను తెరవకుండా <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />ను డిజేబుల్ చేస్తుంది.</translation> <translation id="2667463864537187133">స్పెల్ చెక్ను మేనేజ్ చేయండి</translation> <translation id="2669241540496514785"><ph name="APP_NAME" />ను తెరవడం సాధ్యపడలేదు</translation> +<translation id="2669454659051515572">డౌన్లోడ్ చేసిన ఫైల్స్ను ఈ పరికరాన్ని ఉపయోగించే ఎవరైనా చూడగలరు</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> ఒక Chrome ట్యాబ్ను షేర్ చేస్తోంది.</translation> <translation id="2670403088701171361">మీ క్లిప్బోర్డ్లోని టెక్స్ట్ లేదా ఇమేజ్లను చూడటానికి సైట్లను అనుమతించకండి</translation> <translation id="2670429602441959756">ఇప్పటికీ VRలో మద్దతు లేని ఫీచర్లను ఈ పేజీ కలిగి ఉంది. నిష్క్రమిస్తోంది...</translation> @@ -1900,7 +1902,7 @@ <translation id="2748061034695037846"><ph name="DOMAIN" /> పాజ్ చేయబడింది</translation> <translation id="2749756011735116528"><ph name="PRODUCT_NAME" />కు సైన్ ఇన్ చేయండి</translation> <translation id="2749836841884031656">SIM</translation> -<translation id="2749881179542288782">స్పెల్ చెక్తో పాటు వ్యాకరణాన్ని కూడా తనిఖీ చేయి</translation> +<translation id="2749881179542288782">స్పెల్ చెక్తో పాటు వ్యాకరణాన్ని కూడా చెక్ చేయండి</translation> <translation id="2753677631968972007">సైట్ అనుమతులను మాన్యువల్గా నియంత్రించడం.</translation> <translation id="2754825024506485820">పని చేసే సామర్థ్యాన్ని పెంచడం దగ్గర నుండి వినోదం దాకా మీకు అవసరమైన యాప్లను Google Play Storeలో కనుగొనండి. యాప్లను మీరు ఎప్పుడైనా ఇన్స్టాల్ చేయవచ్చు.</translation> <translation id="2755349111255270002">ఈ <ph name="DEVICE_TYPE" />ను రీసెట్ చేయండి</translation> @@ -2028,7 +2030,7 @@ <translation id="2862815659905780618">Linux డెవలప్మెంట్ ఎన్విరాన్మెంట్ను తీసివేయండి</translation> <translation id="2864601841139725659">మీ ప్రొఫైల్ చిత్రాన్ని సెట్ చేయండి</translation> <translation id="2865919525181940183">ప్రస్తుతం స్క్రీన్పై ఉన్న ప్రోగ్రామ్ల స్క్రీన్షాట్</translation> -<translation id="286674810810214575">పవర్ మూలాలను తనిఖీ చేస్తోంది...</translation> +<translation id="286674810810214575">పవర్ మూలాలను చెక్ చేస్తోంది...</translation> <translation id="2867768963760577682">పిన్ చేసిన ట్యాబ్ లాగా తెరువు</translation> <translation id="2868746137289129307">ఈ ఎక్స్టెన్షన్ చాలా పాతది, బిజినెస్ విధానం కారణంగా నిలిపివేయబడింది. అయితే, కొత్త వెర్షన్ అందుబాటులో ఉన్నప్పుడు ఇది ఆటోమేటిక్గా ప్రారంభించబడవచ్చు.</translation> <translation id="2870560284913253234">సైట్</translation> @@ -2123,7 +2125,7 @@ <translation id="2946054015403765210">ఫైల్స్కు వెళ్లండి</translation> <translation id="2946119680249604491">కనెక్షన్ని జోడించండి</translation> <translation id="2946640296642327832">Bluetoothని ప్రారంభించు</translation> -<translation id="2947605845283690091">వెబ్ బ్రౌజింగ్ వేగంగా ఉండాలి. ఇప్పుడే <ph name="BEGIN_LINK" />మీ ఎక్స్టెన్షన్లను తనిఖీ చేయడానికి<ph name="END_LINK" /> సమయం తీసుకోండి.</translation> +<translation id="2947605845283690091">వెబ్ బ్రౌజింగ్ వేగంగా ఉండాలి. ఇప్పుడే <ph name="BEGIN_LINK" />మీ ఎక్స్టెన్షన్లను చెక్ చేయడానికి<ph name="END_LINK" /> సమయం తీసుకోండి.</translation> <translation id="2948300991547862301"><ph name="PAGE_TITLE" />కు వెళ్లండి</translation> <translation id="29488703364906173">ఆధునిక వెబ్ కోసం రూపొందించబడిన వేగవంతమైన, సరళమైన మరియు సురక్షితమైన వెబ్ బ్రౌజర్.</translation> <translation id="2949289451367477459">స్థానాన్ని ఉపయోగించండి. స్థాన అనుమతిని కలిగిన యాప్లు మరియు సేవలు ఈ పరికర స్థానాన్ని ఉపయోగించడానికి అనుమతించండి. Google కాలానుగుణంగా స్థాన డేటాని సేకరించవచ్చు మరియు స్థాన ఖచ్చితత్వం మరియు స్థానం-ఆధారిత సేవలను మెరుగుపరచడం కోసం ఈ డేటాని అనామకంగా ఉపయోగించవచ్చు. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation> @@ -2170,7 +2172,7 @@ <translation id="3001144475369593262">చిన్నారి ఖాతాలు</translation> <translation id="3003144360685731741">ప్రాధాన్య నెట్వర్క్లు</translation> <translation id="3003623123441819449">CSS క్యాష్</translation> -<translation id="3003828226041301643">పరికరాన్ని డొమైన్కు చేర్చడం సాధ్యపడలేదు. పరికరాలను జోడించగల అధికారాలు మీకు ఉన్నాయో లేదో మీ ఖాతాలో తనిఖీ చేయండి.</translation> +<translation id="3003828226041301643">పరికరాన్ని డొమైన్కు చేర్చడం సాధ్యపడలేదు. పరికరాలను జోడించగల అధికారాలు మీకు ఉన్నాయో లేదో మీ ఖాతాలో చెక్ చేయండి.</translation> <translation id="3003967365858406397">మీ <ph name="PHONE_NAME" /> ప్రైవేట్ Wi-Fi కనెక్షన్ని సృష్టిస్తుంది.</translation> <translation id="3005574332301273731">చూపవద్దు</translation> <translation id="3006881078666935414">వినియోగ డేటా లేదు</translation> @@ -2178,6 +2180,7 @@ <translation id="3008232374986381779">మీ <ph name="DEVICE_TYPE" />లో Linux టూల్లు, ఎడిటర్లు, IDEలను రన్ చేయండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> <translation id="3008272652534848354">అనుమతులను రీసెట్ చేయి</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> కోసం అప్డేట్ను డౌన్లోడ్ చేయడానికి మీరు ఈరోజే Wi-Fiకి కనెక్ట్ కావలసి ఉంటుంది. లేదా డేటా నియంత్రణ ఉన్న కనెక్షన్ నుండి డౌన్లోడ్ చేయండి (ఛార్జీలు వర్తించవచ్చు).}other{<ph name="MANAGER" /> కోసం అప్డేట్ను డౌన్లోడ్ చేయడానికి మీరు గడువు తేదీలోపు Wi-Fiకి కనెక్ట్ కావలసి ఉంటుంది. లేదా డేటా నియంత్రణ ఉన్న కనెక్షన్ నుండి డౌన్లోడ్ చేయండి (ఛార్జీలు వర్తించవచ్చు).}}</translation> +<translation id="3009178788565917040">అవుట్పుట్</translation> <translation id="3009300415590184725">మొబైల్ డేటా సేవ సెటప్ ప్రాసెస్ను మీరు ఖచ్చితంగా రద్దు చేయాలనుకుంటున్నారా?</translation> <translation id="3009779501245596802">సూచికలోని డేటాబేస్లు</translation> <translation id="3010279545267083280">పాస్వర్డ్ తొలగించబడింది</translation> @@ -2394,7 +2397,7 @@ <translation id="3242665648857227438">ఈ ప్రొఫైల్ ChromeOS ప్రాక్సీ సెట్టింగ్లను ఉపయోగిస్తోంది.</translation> <translation id="3244294424315804309">సౌండ్ని మ్యూట్ చేయడాన్ని కొనసాగించు</translation> <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - నెట్వర్క్ ఎర్రర్</translation> -<translation id="3248902735035392926">భద్రత చాలా ముఖ్యమైనది. <ph name="BEGIN_LINK" />ఇప్పుడే మీ ఎక్స్టెన్షన్లను తనిఖీ చేయడానికి<ph name="END_LINK" /> సమయం తీసుకోండి</translation> +<translation id="3248902735035392926">భద్రత చాలా ముఖ్యమైనది. <ph name="BEGIN_LINK" />ఇప్పుడే మీ ఎక్స్టెన్షన్లను చెక్ చేయడానికి<ph name="END_LINK" /> సమయం తీసుకోండి</translation> <translation id="3251714896659475029">"Ok Google" అని అనడం ద్వారా Google Assistantను యాక్సెస్ చేయడానికి <ph name="SUPERVISED_USER_NAME" />ను అనుమతించండి</translation> <translation id="3251759466064201842"><సర్టిఫికెట్లో భాగం కాదు></translation> <translation id="325238099842880997">చిన్నారులు ఆడుకోవడానికి, అన్వేషించడానికి, అలాగే ఇంట్లో పాఠశాల విద్యను అభ్యసించడానికి సహాయపడేలా డిజిటల్ గ్రౌండ్ నియమాలను సెట్ చేయండి</translation> @@ -2437,7 +2440,7 @@ <translation id="328571385944182268">మీ పాస్వర్డ్లను సేవ్ చేయాలా?</translation> <translation id="3288047731229977326">డెవలపర్ మోడ్లో అమలవుతున్న ఎక్స్టెన్షన్లు మీ కంప్యూటర్కు హాని కలిగించవచ్చు. మీరు డెవలపర్ కాకపోతే, సురక్షితంగా ఉంచడానికి డెవలపర్ మోడ్లో అమలవుతున్న ఈ ఎక్స్టెన్షన్లను నిలిపివేయాలి.</translation> <translation id="3289668031376215426">ఆటోమెటిక్ క్యాపిటలైజేషన్</translation> -<translation id="3289856944988573801">అప్డేట్ల కోసం తనిఖీ చేయడానికి, దయచేసి ఈథర్నెట్ లేదా Wi-Fiని ఉపయోగించండి.</translation> +<translation id="3289856944988573801">అప్డేట్ల కోసం చెక్ చేయడానికి, దయచేసి ఈథర్నెట్ లేదా Wi-Fiని ఉపయోగించండి.</translation> <translation id="3290249595466894471">కొత్త రకం ప్రమాదాలను గుర్తించడంలో సహాయపడటానికి కొన్ని నమూనా పేజీలు, డౌన్లోడ్లు, ఎక్స్టెన్షన్ యాక్టివిటీ, సిస్టమ్ సమాచారాన్ని కూడా పంపుతుంది</translation> <translation id="3293644607209440645">ఈ పేజీని పంపండి</translation> <translation id="32939749466444286">Linux కంటైనర్ ప్రారంభించబడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> @@ -2494,7 +2497,7 @@ <translation id="3341703758641437857">ఫైల్ URLలకు ప్రాప్తిని అనుమతించు</translation> <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ఈ ఎక్స్టెన్షన్ని తీసివేయాలనుకుంటోంది.</translation> <translation id="3345135638360864351">ఈ సైట్ను యాక్సెస్ చేయడానికి మీరు చేసిన రిక్వెస్ట్ <ph name="NAME" />కు పంపబడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> -<translation id="3345634917232014253">ఒక క్షణం క్రితం భద్రతా తనిఖీ చేయబడింది</translation> +<translation id="3345634917232014253">ఒక క్షణం క్రితం భద్రతా చెక్ చేయబడింది</translation> <translation id="3345886924813989455">మద్దతు గల బ్రౌజర్ కనుగొనబడలేదు</translation> <translation id="3347086966102161372">చిత్రం అడ్రస్ను కా&పీ చేయి</translation> <translation id="3348038390189153836">తొలగించగల పరికరం కనుగొనబడింది</translation> @@ -2506,7 +2509,7 @@ <translation id="3356469410714175391">(వర్చువల్ కార్డ్ ఎనేబుల్ చేయబడింది)</translation> <translation id="3356580349448036450">పూర్తయింది</translation> <translation id="3359256513598016054">సర్టిఫికెట్ విధాన పరిమితులు</translation> -<translation id="3360297538363969800">ముద్రణ విఫలమైంది. దయచేసి మీ ప్రింటర్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.</translation> +<translation id="3360297538363969800">ముద్రణ విఫలమైంది. దయచేసి మీ ప్రింటర్ను చెక్ చేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> మీతో <ph name="ATTACHMENTS" />ని షేర్ చేస్తోంది.}other{<ph name="DEVICE_NAME" /> మీతో <ph name="ATTACHMENTS" />ని షేర్ చేస్తోంది.}}</translation> <translation id="3363202073972776113">ఈ కొత్త ప్రొఫైల్ను మీ సంస్థ మేనేజ్ చేస్తుంది. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> <translation id="3364986687961713424">మీ నిర్వాహకుడి నుండి: <ph name="ADMIN_MESSAGE" /></translation> @@ -2641,7 +2644,7 @@ <translation id="347670947055184738">అయ్యో! మీ పరికరానికి సంబంధించిన విధానాన్ని పొందడంలో సిస్టమ్ విఫలమైంది.</translation> <translation id="347785443197175480">మీ కెమెరా మరియు మైక్రోఫోన్ను యాక్సెస్ చేయడానికి <ph name="HOST" />ను అనుమతించడాన్ని కొనసాగించండి</translation> <translation id="3479552764303398839">ఇప్పుడు కాదు</translation> -<translation id="3479685872808224578">ప్రింట్ సర్వర్ని కనుగొనలేకపోయింది. దయచేసి అడ్రస్ను తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> +<translation id="3479685872808224578">ప్రింట్ సర్వర్ని కనుగొనలేకపోయింది. దయచేసి అడ్రస్ను చెక్ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="3480612136143976912">లైవ్ క్యాప్షన్ కోసం క్యాప్షన్ సైజ్ను, స్టయిల్ను అనుకూలంగా మార్చండి. ఈ సెట్టింగ్ను కొన్ని యాప్లు, సైట్లు కూడా ఉపయోగిస్తాయి.</translation> <translation id="3480827850068960424"><ph name="NUM" /> ట్యాబ్లు కనుగొనబడ్డాయి</translation> <translation id="3481268647794498892"><ph name="COUNTDOWN_SECONDS" /> క్షణాలలో <ph name="ALTERNATIVE_BROWSER_NAME" />లో తెరవబోతోంది</translation> @@ -3165,14 +3168,14 @@ <translation id="3971764089670057203">ఈ సెక్యూరిటీ 'కీ'లో వేలిముద్రలు ఉన్నాయి</translation> <translation id="3973005893595042880">యూజర్కు అనుమతి లేదు</translation> <translation id="3973062011568994448">పాస్వర్డ్లను దిగుమతి చేయడానికి, CSV ఫైల్ను ఎంచుకోండి.</translation> -<translation id="3973660817924297510">పాస్వర్డ్లను తనిఖీ చేస్తోంది (<ph name="TOTAL_PASSWORDS" />లో <ph name="CHECKED_PASSWORDS" />)…</translation> +<translation id="3973660817924297510">పాస్వర్డ్లను చెక్ చేస్తోంది (<ph name="TOTAL_PASSWORDS" />లో <ph name="CHECKED_PASSWORDS" />)…</translation> <translation id="3974514184580396500">స్క్రీన్పై మీ ఫోకస్ను ముందుకు జరపడానికి, “తర్వాత” ఆప్షన్ను ఉపయోగించండి</translation> <translation id="3975201861340929143">వివరణ</translation> <translation id="3975565978598857337">సర్వర్ కోసం నెట్వర్క్ పరిధిని కనెక్ట్ చేయడంలో విఫలమైంది</translation> <translation id="3976108569178263973">అందుబాటులో ఉన్న ప్రింటర్లు లేవు.</translation> <translation id="397703832102027365">పూర్తి చేస్తోంది...</translation> <translation id="3977145907578671392">అజ్ఞాత మోడ్లో కొన్ని సైట్లలోని ఫీచర్లు పని చేయవు</translation> -<translation id="3977886311744775419">ఈ రకమైన నెట్వర్క్లో ఆటోమేటిక్ అప్డేట్లు డౌన్లోడ్ చేయబడవు, కానీ మీరు మాన్యువల్గా అప్డేట్లను తనిఖీ చేయవచ్చు.</translation> +<translation id="3977886311744775419">ఈ రకమైన నెట్వర్క్లో ఆటోమేటిక్ అప్డేట్లు డౌన్లోడ్ చేయబడవు, కానీ మీరు మాన్యువల్గా అప్డేట్లను చెక్ చేయవచ్చు.</translation> <translation id="3979395879372752341">కొత్త ఎక్స్టెన్షన్ జోడించబడింది (<ph name="EXTENSION_NAME" />)</translation> <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />ను ప్రారంభించు</translation> <translation id="3981058120448670012">సమీపంలోని పరికరాలకు <ph name="REMAINING_TIME" /> పాటు <ph name="DEVICE_NAME" />గా కనిపిస్తుంది...</translation> @@ -3255,12 +3258,12 @@ <translation id="4057041477816018958"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" /></translation> <translation id="4057896668975954729">స్టోర్లో చూడండి</translation> <translation id="4058720513957747556">AppSocket (TCP/IP)</translation> -<translation id="4058793769387728514">డాక్యుమెంట్ను ఇప్పుడు తనిఖీ చేయి</translation> +<translation id="4058793769387728514">డాక్యుమెంట్ను ఇప్పుడు చెక్ చేయండి</translation> <translation id="4061374428807229313">షేర్ చేయడానికి, Files యాప్లోని ఫోల్డర్పై కుడి క్లిక్ చేయండి, తర్వాత "Parallels desktopతో షేర్ చేయి"ని ఎంచుకోండి.</translation> <translation id="406213378265872299">అనుకూలంగా మార్చిన ప్రవర్తనలు</translation> <translation id="4062561150282203854">మీ <ph name="DEVICE_TYPE" /> యాప్లు, సెట్టింగ్లు, ఇంకా మరిన్నింటిని సింక్ చేయండి</translation> <translation id="4065876735068446555">మీరు ఉపయోగిస్తున్న నెట్వర్క్ (<ph name="NETWORK_ID" />)కి మీరు దాని లాగిన్ పేజీని సందర్శించడం అవసరం కావచ్చు.</translation> -<translation id="4066207411788646768">మీ నెట్వర్క్లో అందుబాటులో గల ప్రింటర్లను చూడడానికి మీ కనెక్షన్ను తనిఖీ చేయండి</translation> +<translation id="4066207411788646768">మీ నెట్వర్క్లో అందుబాటులో గల ప్రింటర్లను చూడడానికి మీ కనెక్షన్ను చెక్ చేయండి</translation> <translation id="4068776064906523561">సేవ్ చేయబడిన వేలిముద్రలు</translation> <translation id="407173827865827707">క్లిక్ చేసినప్పుడు</translation> <translation id="4072701974556190758">పాస్వర్డ్, మీ Google ఖాతా <ph name="ACCOUNT" />లో సేవ్ చేయబడుతుంది. మీరు దీన్ని గుర్తుంచుకోవాల్సిన అవసరం లేదు.</translation> @@ -3448,8 +3451,8 @@ <translation id="4260699894265914672">అనుకూలంగా మార్చడానికి కీబోర్డ్ కీని నొక్కండి</translation> <translation id="4261429981378979799">ఎక్స్టెన్షన్ అనుమతులు</translation> <translation id="4262004481148703251">హెచ్చరికను విస్మరించండి</translation> -<translation id="4263223596040212967">మీ కీబోర్డ్ లేఅవుట్ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> -<translation id="426564820080660648">అప్డేట్ల కోసం తనిఖీ చేయడానికి, దయచేసి ఈథర్నెట్, Wi-Fi లేదా మొబైల్ డేటాను ఉపయోగించండి.</translation> +<translation id="4263223596040212967">మీ కీబోర్డ్ లేఅవుట్ను చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="426564820080660648">అప్డేట్ల కోసం చెక్ చేయడానికి, దయచేసి ఈథర్నెట్, Wi-Fi లేదా మొబైల్ డేటాను ఉపయోగించండి.</translation> <translation id="4266679478228765574">ఫోల్డర్లను తీసివేయడం వలన షేరింగ్ ఆపివేయబడుతుంది, కానీ ఫైళ్లు తొలగించబడవు.</translation> <translation id="4267455501101322486">విద్యా సంబంధమైన వనరులకు యాక్సెస్ కోసం ఖాతాను యాడ్ చేయడానికి, మీకు అనుమతి ఇవ్వాల్సిందిగా తల్లి/తండ్రిని అడగండి</translation> <translation id="4267924571297947682">అనుమతి కోసం తల్లి/తండ్రిని అడగండి</translation> @@ -3502,7 +3505,7 @@ <translation id="4309165024397827958">లొకేషన్ అనుమతిని కలిగిన Android యాప్లు, సర్వీస్లు మీ పరికర లొకేషన్ను ఉపయోగించడానికి అనుమతించండి. Google కాలానుగుణంగా లొకేషన్ డేటాను సేకరించవచ్చు, లొకేషన్ ఖచ్చితత్వాన్ని, లొకేషన్-ఆధారిత సర్వీస్లను మెరుగుపరచడం కోసం ఈ డేటాను అజ్ఞాతంగా ఉపయోగించవచ్చు.</translation> <translation id="4309420042698375243"><ph name="NUM_KILOBYTES" />K (<ph name="NUM_KILOBYTES_LIVE" />K ప్రత్యక్షంగా)</translation> <translation id="4310132194679586591">ఈ లింక్ను తెరవడానికి మీ పరికరంలో యాప్ను ఎంచుకోండి</translation> -<translation id="4310139701823742692">ఫైల్ తప్పు ఫార్మాట్లో ఉంది. PPD ఫైల్ని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="4310139701823742692">ఫైల్ తప్పు ఫార్మాట్లో ఉంది. PPD ఫైల్ని చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="431076611119798497">&వివరాలు</translation> <translation id="4312701113286993760">{COUNT,plural, =1{1 Google ఖాతా}other{<ph name="EXTRA_ACCOUNTS" /> Google ఖాతాలు}}</translation> <translation id="4312866146174492540">బ్లాక్ చేయి (డిఫాల్ట్)</translation> @@ -3565,6 +3568,7 @@ <translation id="4377058670119819762">ట్యాబ్ల బార్ పూర్తి వెడల్పును చేరుకున్నప్పుడు కుడి వైపు, ఎడమ వైపు స్క్రోల్ చేయడాన్ని ఎనేబుల్ చేస్తుంది.</translation> <translation id="4377363674125277448">సర్వర్ ప్రమాణపత్రంతో సమస్య ఏర్పడింది.</translation> <translation id="4378154925671717803">ఫోన్</translation> +<translation id="4378308539633073595">ముందుకు స్క్రోల్ చేస్తుంది</translation> <translation id="4378551569595875038">కనెక్టింగ్...</translation> <translation id="4378556263712303865">పరికరం రిక్వెస్ట్</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />"ను అన్ఇన్స్టాల్ చేయాలా?</translation> @@ -3837,7 +3841,7 @@ <translation id="4637189644956543313">కెమెరాను మళ్లీ ఉపయోగించు</translation> <translation id="4637252186848840278">{COUNT,plural, =1{టెక్స్ట్}other{# టెక్స్ట్లు}}</translation> <translation id="4638930039313743000">ADB డీబగ్గింగ్ను ఎనేబుల్ చేయండి</translation> -<translation id="4641539339823703554">Chrome సిస్టమ్ సమయాన్ని సెట్ చేయలేకపోయింది. దయచేసి దిగువ సమయాన్ని తనిఖీ చేసి, అవసరమైతే సరిదిద్దండి.</translation> +<translation id="4641539339823703554">Chrome సిస్టమ్ సమయాన్ని సెట్ చేయలేకపోయింది. దయచేసి దిగువ సమయాన్ని చెక్ చేసి, అవసరమైతే సరిదిద్దండి.</translation> <translation id="4643612240819915418">కొత్త ట్యాబ్లో వీడియోను &తెరవండి</translation> <translation id="4643833688073835173">మీ పరికరం ముందు వ్యక్తులను గుర్తించడానికి మీ Chromebook బిల్ట్-ఇన్ సెన్సార్ను ఉపయోగిస్తుంది. మీ పరికరంలో డేటా మొత్తం వెంటనే ప్రాసెస్ చేయబడుతుంది, ఆ తర్వాత తొలగించబడుతుంది. సెన్సార్ డేటా ఎప్పుడూ Googleకు పంపబడదు.</translation> <translation id="4644205769234414680">అజ్ఞాతంలో అనుమతించండి</translation> @@ -3977,7 +3981,7 @@ <translation id="4782861709165039462">పరికరాల హార్డ్వేర్ స్విచ్ ద్వారా అన్ని మైక్రోఫోన్లు డిజేబుల్ చేయబడ్డాయి</translation> <translation id="4785719467058219317">మీరు ఈ వెబ్సైట్తో నమోదు కాని సెక్యూరిటీ కీని ఉపయోగిస్తున్నారు</translation> <translation id="4785914069240823137">కత్తిరింపును రద్దు చేయండి</translation> -<translation id="4788092183367008521">దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="4788092183367008521">దయచేసి మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="4789550509729954245">పరికరాలు సమీపంలోని షేర్ చేస్తున్నప్పుడు నోటిఫికేషన్ను చూడండి</translation> <translation id="4791000909649665275"><ph name="NUMBER" /> ఫోటో</translation> <translation id="4791037424585594169">(UDP)</translation> @@ -4733,7 +4737,7 @@ <translation id="5542132724887566711">ప్రొఫైల్</translation> <translation id="5542750926112347543"><ph name="DOMAIN" /> నుండి కుక్కీలు బ్లాక్ చేయబడ్డాయి</translation> <translation id="5542949973455282971"><ph name="CARRIER_NAME" />కు కనెక్ట్ చేయబడుతోంది</translation> -<translation id="5543983818738093899">స్థితి కోసం తనిఖీ చేస్తోంది...</translation> +<translation id="5543983818738093899">స్థితి కోసం చెక్ చేస్తోంది...</translation> <translation id="554517701842997186">రెండరర్</translation> <translation id="5545335608717746497">{NUM_TABS,plural, =1{ట్యాబ్ను గ్రూప్నకు జోడించు}other{ట్యాబ్లను గ్రూప్నకు జోడించు}}</translation> <translation id="5545693483061321551">వివిధ సైట్లలో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి సైట్లు మీ కుక్కీలను ఉపయోగించలేవు, ఉదాహరణకు, యాడ్లను వ్యక్తిగతీకరించడం. కొన్ని సైట్లలోని ఫీచర్లు పని చేయకపోవచ్చు.</translation> @@ -5067,7 +5071,7 @@ <translation id="5876576639916258720">రన్ అవుతోంది...</translation> <translation id="5876851302954717356">కుడివైపున కొత్త ట్యాబ్</translation> <translation id="5877064549588274448">ఛానెల్ మార్చబడింది. మార్పులను వర్తింపజేయడానికి మీ పరికరాన్ని పునఃప్రారంభించండి.</translation> -<translation id="5877584842898320529">ఎంచుకున్న ప్రింటర్ అందుబాటులో లేదు లేదా సరిగ్గా ఇన్స్టాల్ చేయబడలేదు. <ph name="BR" /> మీ ప్రింటర్ను తనిఖీ చేయండి లేదా మరొక ప్రింటర్ను ఎంచుకోవడాన్ని ప్రయత్నించండి.</translation> +<translation id="5877584842898320529">ఎంచుకున్న ప్రింటర్ అందుబాటులో లేదు లేదా సరిగ్గా ఇన్స్టాల్ చేయబడలేదు. <ph name="BR" /> మీ ప్రింటర్ను చెక్ చేయండి లేదా మరొక ప్రింటర్ను ఎంచుకోవడాన్ని ప్రయత్నించండి.</translation> <translation id="5878945009165002849">గుర్తింపు సర్వీసుల నుండి సైన్-ఇన్ ప్రాంప్ట్లను బ్లాక్ చేయండి</translation> <translation id="5882919346125742463">తెలిసిన నెట్వర్క్లు</translation> <translation id="5883356647197510494"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> ఆటోమేటిక్గా బ్లాక్ చేయబడ్డాయి</translation> @@ -5248,7 +5252,7 @@ <translation id="6055392876709372977">RSA ఎన్క్రిప్షన్తో PKCS #1 SHA-256</translation> <translation id="6055544610007596637">Google Play Store నుండి మీ <ph name="DEVICE_TYPE" /> కోసం యాప్లను ఇన్స్టాల్ చేయండి</translation> <translation id="6056710589053485679">సాధారణంగా మళ్లీ లోడ్ చేయి</translation> -<translation id="6057312498756061228">భద్రతా తనిఖీ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను తెరవగలరు.</translation> +<translation id="6057312498756061228">భద్రతా చెక్ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను తెరవగలరు.</translation> <translation id="6057381398996433816">మోషన్ మరియు లైట్ సెన్సార్లను ఉపయోగించనీయకుండా ఈ సైట్ బ్లాక్ చేయబడింది.</translation> <translation id="6059276912018042191">ఇటీవలి Chrome ట్యాబ్లు</translation> <translation id="6059652578941944813">సర్టిఫికెట్ అధికార క్రమం</translation> @@ -5273,10 +5277,10 @@ <translation id="6077476112742402730">స్పీక్-టు-టైప్</translation> <translation id="6078121669093215958">{0,plural, =1{గెస్ట్}other{# తెరవబడిన గెస్ట్ విండోలు}}</translation> <translation id="6078323886959318429">షార్ట్కట్ను జోడించు</translation> -<translation id="6078752646384677957">దయచేసి మీ మైక్రోఫోన్ మరియు ఆడియో స్థాయిలను తనిఖీ చేయండి.</translation> +<translation id="6078752646384677957">దయచేసి మీ మైక్రోఫోన్ మరియు ఆడియో స్థాయిలను చెక్ చేయండి.</translation> <translation id="6078769373519310690">"<ph name="CHROME_EXTENSION_NAME" />" ఒక HID పరికరానికి కనెక్ట్ కావాలని కోరుకుంటుంది</translation> <translation id="608029822688206592">నెట్వర్క్ ఏదీ కనుగొనబడలేదు. దయచేసి మీ SIMను ఇన్సర్ట్ చేసి, మళ్లీ ట్రై చేయండి.</translation> -<translation id="6080689532560039067">మీ సిస్టమ్ సమయాన్ని తనిఖీ చేయండి</translation> +<translation id="6080689532560039067">మీ సిస్టమ్ సమయాన్ని చెక్ చేయండి</translation> <translation id="6082877069782862752">కీ మ్యాపింగ్</translation> <translation id="608531959444400877"><ph name="WINDOW_TITLE" /> - పేరు లేని గ్రూప్లో భాగం</translation> <translation id="6085886413119427067">సెక్యూర్ కనెక్షన్ ద్వారా వెబ్సైట్లకు ఎలా కనెక్ట్ కావాలో నిశ్చయిస్తుంది</translation> @@ -5306,7 +5310,7 @@ <translation id="6111972606040028426">Google Assistantను ఎనేబుల్ చేయండి</translation> <translation id="6112294629795967147">పరిమాణం మార్చడం కోసం తాకండి</translation> <translation id="6112727384379533756">టిక్కెట్ను జోడించు</translation> -<translation id="6112931163620622315">మీ ఫోన్ని తనిఖీ చేయండి</translation> +<translation id="6112931163620622315">మీ ఫోన్ని చెక్ చేయండి</translation> <translation id="6113434369102685411">Chrome బ్రౌజర్, <ph name="DEVICE_TYPE" /> లాంచర్ కోసం మీ ఆటోమేటిక్ సెర్చ్ ఇంజిన్ను సెట్ చేయండి</translation> <translation id="6113942107547980621">Smart Lockను ఉపయోగించడానికి, మీ ఫోన్లో ప్రాథమిక వినియోగదారు ప్రొఫైల్కు మారండి</translation> <translation id="6116921718742659598">భాష మరియు ఇన్పుట్ సెట్టింగ్లను మార్చండి</translation> @@ -5362,7 +5366,7 @@ <translation id="6163522313638838258">అన్నీ విస్తరించు...</translation> <translation id="6165508094623778733">మరింత తెలుసుకోండి</translation> <translation id="6166185671393271715">Chromeకి పాస్వర్డ్లను దిగుమతి చేయండి</translation> -<translation id="6169040057125497443">దయచేసి మీ మైక్రోఫోన్ని తనిఖీ చేయండి.</translation> +<translation id="6169040057125497443">దయచేసి మీ మైక్రోఫోన్ని చెక్ చేయండి.</translation> <translation id="6169967265765719844">Steam ద్వారా ఇన్స్టాల్ చేయబడిన గేమ్లు, యాప్ల కోసం అనుమతులు <ph name="LINK_BEGIN" />Steam యాప్ సెట్టింగ్ల<ph name="LINK_END" />లో మేనేజ్ చేయబడతాయి.</translation> <translation id="6170470584681422115">శాండ్విచ్</translation> <translation id="6170498031581934115">ADB డీబగ్గింగ్ను ఎనేబుల్ చేయడం సాధ్యపడలేదు. సెట్టింగ్లకు వెళ్లి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> @@ -5431,7 +5435,7 @@ <translation id="6240821072888636753">ప్రతిసారి అడుగు</translation> <translation id="6241530762627360640">మీ సిస్టమ్తో జత చేయబడిన బ్లూటూత్ పరికరాలకు సంబంధించిన సమాచారాన్ని యాక్సెస్ చేయడానికి, సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొనడానికి అనుమతి.</translation> <translation id="6241844896329831164">యాక్సెస్ అవసరం లేదు</translation> -<translation id="6242574558232861452">మీ సంస్థకు చెందిన భద్రతా పాలసీలను తనిఖీ చేస్తోంది.</translation> +<translation id="6242574558232861452">మీ సంస్థకు చెందిన భద్రతా పాలసీలను చెక్ చేస్తోంది.</translation> <translation id="6242589501614145408">మీ సెక్యూరిటీ కీని రీసెట్ చేయండి</translation> <translation id="6242852299490624841">ఈ ట్యాబ్పై దృష్టి కేంద్రీకరించు</translation> <translation id="6243774244933267674">సర్వర్ అందుబాటులో లేదు</translation> @@ -5727,7 +5731,7 @@ <translation id="6532101170117367231">Google డిస్క్కు సేవ్ చేయండి</translation> <translation id="6532106788206463496">మార్పులను సేవ్ చేయి</translation> <translation id="6532206849875187177">భద్రత మరియు సైన్ ఇన్</translation> -<translation id="6532527800157340614">మీ యాక్సెస్ టోకెన్ని పొందడం సాధ్యం కాలేదు కాబట్టి, సైన్ ఇన్ విఫలమైంది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="6532527800157340614">మీ యాక్సెస్ టోకెన్ని పొందడం సాధ్యం కాలేదు కాబట్టి, సైన్ ఇన్ విఫలమైంది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="6532663472409656417">ఎంటర్ప్రైజ్ నమోదు చేయబడింది</translation> <translation id="6535331821390304775">అనుబంధిత యాప్లో ఈ రకమైన లింక్లను తెరవడానికి <ph name="ORIGIN" />ను ఎల్లప్పుడూ అనుమతించు</translation> <translation id="653659894138286600">డాక్యుమెంట్లు, ఇమేజ్లను స్కాన్ చేయండి</translation> @@ -6139,7 +6143,7 @@ <translation id="6922745772873733498">ముద్రించడానికి పిన్ను నమోదు చేయండి</translation> <translation id="6922763095098248079">మీ పరికరం మీ సంస్థ ద్వారా మేనేజ్ చేయబడుతుంది. ఈ పరికరంలో ఎలాంటి ప్రొఫైల్లోని డేటాను అయినా అడ్మినిస్ట్రేటర్లు యాక్సెస్ చేయగలరు.</translation> <translation id="6923132443355966645">స్క్రోల్ / క్లిక్</translation> -<translation id="6923633482430812883">షేర్ని మౌంట్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది. దయచేసి మీరు కనెక్ట్ చేస్తున్న ఫైల్ సర్వర్లో SMBv2 లేదా అంతకంటే తాజా వెర్షన్కు మద్దతు ఉందో లేదో తనిఖీ చేయండి.</translation> +<translation id="6923633482430812883">షేర్ని మౌంట్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది. దయచేసి మీరు కనెక్ట్ చేస్తున్న ఫైల్ సర్వర్లో SMBv2 లేదా అంతకంటే తాజా వెర్షన్కు మద్దతు ఉందో లేదో చెక్ చేయండి.</translation> <translation id="6925127338315966709">మీరు ఈ బ్రౌజర్కు మేనేజ్ చేయబడిన ప్రొఫైల్ను జోడిస్తున్నారు. మీ అడ్మినిస్ట్రేటర్ ప్రొఫైల్పైన కంట్రోల్ను కలిగి ఉన్నారు, అలాగే దాని డేటాను యాక్సెస్ చేయగలరు. బుక్మార్క్లు, హిస్టరీ, పాస్వర్డ్లు, అలాగే ఇతర సెట్టింగ్లను మీ ఖాతాకు సింక్ చేయవచ్చు, అలాగే మీ అడ్మినిస్ట్రేటర్ ద్వారా మేనేజ్ చేయవచ్చు.</translation> <translation id="6929126689972602640">పాఠశాల ఖాతాలకు తల్లిదండ్రుల కంట్రోల్స్ సపోర్ట్ చేయబడవు. ఇంట్లో పాఠశాల విద్య కోసం Google Classroom, అలాగే ఇతర వెబ్సైట్లను యాక్సెస్ చేసేందుకు పాఠశాల ఖాతాను జోడించడానికి, ముందుగా మీ చిన్నారి వ్యక్తిగత ఖాతా నుండి సైన్ ఇన్ చేయండి. మీరు సెటప్లో పాఠశాల ఖాతాను తర్వాత జోడించవచ్చు.</translation> <translation id="6929760895658557216">Okay Google</translation> @@ -6576,7 +6580,7 @@ <translation id="73843634555824551">ఇన్పుట్లు, కీబోర్డ్లు</translation> <translation id="7384687527486377545">కీబోర్డ్ ఆటో-రిపీట్</translation> <translation id="7385490373498027129">ఈ <ph name="DEVICE_TYPE" />లో యూజర్లందరికీ సంబంధించిన అన్ని ఫైళ్లు, లోకల్ డేటా శాశ్వతంగా తొలగించబడతాయి.</translation> -<translation id="7385854874724088939">ముద్రించడానికి ప్రయత్నించే సమయంలో ఏదో తప్పు జరిగింది. దయచేసి కోడ్ను తనిఖీ చేసి, మళ్ళీ ప్రయత్నించండి.</translation> +<translation id="7385854874724088939">ముద్రించడానికి ప్రయత్నించే సమయంలో ఏదో తప్పు జరిగింది. దయచేసి కోడ్ను చెక్ చేసి, మళ్ళీ ప్రయత్నించండి.</translation> <translation id="7387273928653486359">ఆమోదించదగినది</translation> <translation id="7387951778417998929">ఆటోమేటిక్ సెర్చ్ ఇంజిన్ కాకుండా వేరొక సెర్చ్ ఇంజిన్ను ఉపయోగించాలంటే, అడ్రస్ బార్లో దాని షార్ట్కట్ను టైప్ చేసి, ఆ తర్వాత మీ ప్రాధాన్య కీబోర్డ్ షార్ట్కట్ను టైప్ చేయండి. మీరు ఇక్కడ మీ ఆటోమేటిక్ సెర్చ్ ఇంజిన్ను కూడా మార్చవచ్చు.</translation> <translation id="7388209873137778229">కేవలం సపోర్ట్ ఉన్న పరికరాలను మాత్రమే చూపుతుంది.</translation> @@ -6630,7 +6634,7 @@ <translation id="7433957986129316853">అలాగే ఉంచండి</translation> <translation id="7434509671034404296">డెవలపర్</translation> <translation id="7434757724413878233">మౌస్ యాక్సిలరేషన్</translation> -<translation id="7434969625063495310">ప్రింట్ సర్వర్ని జోడించడం సాధ్యపడలేదు. దయచేసి సర్వర్ కాన్ఫిగరేషన్ తనిఖీ చేసుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> +<translation id="7434969625063495310">ప్రింట్ సర్వర్ని జోడించడం సాధ్యపడలేదు. దయచేసి సర్వర్ కాన్ఫిగరేషన్ చెక్ చేసుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="7436921188514130341">అయ్యో! పేరు మారుస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది.</translation> <translation id="7438495332316988804">లాంచర్లో "Chrome" అని టైప్ చేయడం ద్వారా స్టాండర్డ్ బ్రౌజర్ను కనుగొనవచ్చు.</translation> <translation id="7439519621174723623">కొనసాగించడానికి, పరికరం పేరును జోడించండి</translation> @@ -6724,7 +6728,7 @@ <translation id="7526989658317409655">ప్లేస్హోల్డర్</translation> <translation id="7527758104894292229">మీ Google ఖాతా <ph name="ACCOUNT" />లో దానిని అప్డేట్ చేయండి</translation> <translation id="7528224636098571080">తెరవవద్దు</translation> -<translation id="7529411698175791732">మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి. సమస్య కొనసాగితే, సైన్ అవుట్ చేసి, మళ్లీ సైన్ ఇన్ చేయడాన్ని ప్రయత్నించండి.</translation> +<translation id="7529411698175791732">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేయండి. సమస్య కొనసాగితే, సైన్ అవుట్ చేసి, మళ్లీ సైన్ ఇన్ చేయడాన్ని ప్రయత్నించండి.</translation> <translation id="7529876053219658589">{0,plural, =1{గెస్ట్ విండోను మూసివేయండి}other{గెస్ట్ విండోను మూసివేయండి}}</translation> <translation id="7530016656428373557">వాట్లలో తరుగుదల రేట్</translation> <translation id="7531310913436731628">Mac సిస్టమ్ ప్రాధాన్యతలలో లొకేషన్ ఆఫ్ చేయబడింది</translation> @@ -6734,7 +6738,7 @@ <translation id="7535730537657706072">మీ పరికరం నుండి అజ్ఞాత మోడ్లో ఉన్న బ్రౌజింగ్ హిస్టరీని క్లియర్ చేయడానికి, అన్ని అజ్ఞాత ట్యాబ్లను మూసివేయండి</translation> <translation id="7537451260744431038">మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి సైట్లు కుక్కీలను ఉపయోగించలేవు, ఉదాహరణకు, మిమ్మల్ని సైన్ ఇన్ చేసి ఉంచడం, మీ షాపింగ్ కార్ట్లో ఐటెమ్లను గుర్తు చేయడం లాంటివి</translation> <translation id="7538932151125743389">ChromeOS పరికరం, అలాగే కాంపోనెంట్ సీరియల్ నంబర్లను చదువుతుంది.</translation> -<translation id="7540972813190816353">అప్డేట్ల కోసం తనిఖీ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది: <ph name="ERROR" /></translation> +<translation id="7540972813190816353">అప్డేట్ల కోసం చెక్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది: <ph name="ERROR" /></translation> <translation id="7541076351905098232"><ph name="MANAGER" />, ఈ పరికరాన్ని మునుపటి వెర్షన్కు మార్చారు. దయచేసి ముఖ్యమైన ఫైళ్లను సేవ్ చేసి, ఆపై రీస్టార్ట్ చేయండి. ఈ పరికరంలో ఉన్న మొత్తం డేటా తొలగించబడుతుంది.</translation> <translation id="7541773865713908457"><ph name="APP_NAME" /> యాప్తో <ph name="ACTION_NAME" /></translation> <translation id="754207240458482646">మీ ఖాతాలోని ఇతర పరికరాలతో సింక్ చేయబడింది. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation> @@ -6747,7 +6751,7 @@ <translation id="7551059576287086432"><ph name="FILE_NAME" /> డౌన్లోడ్ విఫలమైంది</translation> <translation id="7551643184018910560">అరకు పిన్ చేయండి</translation> <translation id="7552846755917812628">కింది చిట్కాలను ప్రయత్నించండి:</translation> -<translation id="7553012839257224005">Linux కంటెయినర్ను తనిఖీ చేస్తోంది</translation> +<translation id="7553012839257224005">Linux కంటెయినర్ను చెక్ చేస్తోంది</translation> <translation id="7553242001898162573">మీ పాస్వర్డ్ను నమోదు చేయండి</translation> <translation id="755472745191515939">మీ అడ్మినిస్ట్రేటర్ ఈ భాషను అనుమతించరు</translation> <translation id="7554791636758816595">కొత్త ట్యాబ్</translation> @@ -6928,7 +6932,7 @@ <translation id="7716781361494605745">Netscape సర్టిఫికెట్ అధికార విధాన URL</translation> <translation id="7717014941119698257">డౌన్లోడ్ అవుతోంది: <ph name="STATUS" /></translation> <translation id="771721654176725387">ఇది మీ బ్రౌజింగ్ డేటాను ఈ పరికరం నుండి శాశ్వతంగా తొలగిస్తుంది. డేటాను తిరిగి పొందడానికి, ఇలా సింక్ను ఆన్ చేయండి</translation> -<translation id="7717845620320228976">అప్డేట్ల కోసం తనిఖీ చేయి</translation> +<translation id="7717845620320228976">అప్డేట్ల కోసం చెక్ చేయండి</translation> <translation id="7719367874908701697">పేజీ జూమ్</translation> <translation id="7719588063158526969">పరికరం పేరు చాలా పొడవుగా ఉంది</translation> <translation id="7720216670798402294">ChromeOS పరికర సమాచారాన్ని, ఇంకా పరికర డేటాను చదువుతుంది.</translation> @@ -7234,12 +7238,12 @@ <translation id="8004582292198964060">బ్రౌజర్</translation> <translation id="8005600846065423578">క్లిప్బోర్డ్ను చూడటానికి ఎల్లప్పుడూ <ph name="HOST" />ని అనుమతించు</translation> <translation id="8006630792898017994">Space లేదా Tab</translation> -<translation id="8008356846765065031">ఇంటర్నెట్ డిస్కనెక్ట్ చేయబడింది. దయచేసి మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి.</translation> +<translation id="8008356846765065031">ఇంటర్నెట్ డిస్కనెక్ట్ చేయబడింది. దయచేసి మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేయండి.</translation> <translation id="8009225694047762179">పాస్వర్డ్లను నిర్వహించండి</translation> <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="8015163965024115122">మీ తల్లి/తండ్రి <ph name="IDS_SHORT_PRODUCT_NAME" /> లేదా <ph name="IDS_SHORT_PRODUCT_NAME" /> యాప్లపై సెట్ చేసిన పరిమితి మించిపోయింది.</translation> <translation id="8016266267177410919">తాత్కాలిక నిల్వ</translation> @@ -7365,6 +7369,7 @@ <translation id="8120505434908124087">eSIM ప్రొఫైల్ను ఇన్స్టాల్ చేయండి</translation> <translation id="812260729110117038">అడ్వర్టయిజర్లు, పబ్లిషర్లు సైట్లలో మిమ్మల్ని ట్రాక్ చేయని విధంగా యాడ్ల ప్రభావాన్ని అధ్యయనం చేయవచ్చు.</translation> <translation id="81238879832906896">పసుపు మరియు తెలుపు రంగు పుష్పం</translation> +<translation id="8123975449645947908">వెనుకకు స్క్రోల్ చేయి</translation> <translation id="8124313775439841391">నిర్వహిత ONC</translation> <translation id="813082847718468539">సైట్ సమాచారాన్ని చూడండి</translation> <translation id="8131740175452115882">నిర్ధారించు</translation> @@ -7422,7 +7427,7 @@ <translation id="8179188928355984576">Android యాప్లతో ఉపయోగించబడలేదు</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8180786512391440389">"<ph name="EXTENSION" />" ఎంచుకున్న స్థానాల్లోని చిత్రాలను, వీడియోను, సౌండ్ ఫైల్స్ను చదవగలదు. తొలగించగలదు.</translation> -<translation id="8181215761849004992">డొమైన్కు చేర్చడం సాధ్యపడలేదు. పరికరాలను జోడించడానికి తగిన అధికారాలు మీకు ఉన్నాయో లేదో మీ ఖాతాలో తనిఖీ చేయండి.</translation> +<translation id="8181215761849004992">డొమైన్కు చేర్చడం సాధ్యపడలేదు. పరికరాలను జోడించడానికి తగిన అధికారాలు మీకు ఉన్నాయో లేదో మీ ఖాతాలో చెక్ చేయండి.</translation> <translation id="8182105986296479640">అప్లికేషన్ స్పందించడం లేదు.</translation> <translation id="8182412589359523143">ఈ <ph name="DEVICE_TYPE" /> నుండి మొత్తం డేటాను తొలగించడానికి, <ph name="BEGIN_LINK" />ఇక్కడ క్లిక్ చేయండి<ph name="END_LINK" />.</translation> <translation id="8182664696082410784"><ph name="REASON" /> @@ -7431,7 +7436,7 @@ <translation id="8184318863960255706">మరింత సమాచారం</translation> <translation id="8184472985242519288">ఏకరీతి</translation> <translation id="8186609076106987817">సర్వర్ ఫైల్ను కనుగొనలేకపోయింది.</translation> -<translation id="8188389033983459049">మీ పరికర సెట్టింగ్లను తనిఖీ చేసి, కొనసాగించడానికి దాన్ని ఆన్ చేయండి</translation> +<translation id="8188389033983459049">మీ పరికర సెట్టింగ్లను చెక్ చేసి, కొనసాగించడానికి దాన్ని ఆన్ చేయండి</translation> <translation id="8188742492803591566">మీ స్క్రీన్ను ప్రసారం చేయడం ప్రారంభించడానికి, Chromecast లేదా TVలో కనిపించే యాక్సెస్ కోడ్ను ఎంటర్ చేయండి.</translation> <translation id="8189306097519446565">స్కూల్ ఖాతాలు</translation> <translation id="8189750580333936930">గోప్యతా పరిరక్షణ టెక్నాలజీల సెట్</translation> @@ -7830,7 +7835,7 @@ <translation id="8611682088849615761">MIDI డివైజ్లపై పూర్తి కంట్రోల్ను కలిగి ఉండటానికి ఈ సైట్ను అనుమతించడాన్ని కొనసాగించు</translation> <translation id="8613164732773110792">లోయర్కేస్ అక్షరాలు, అంకెలు, కింది గీతలు లేదా డాష్లు మాత్రమే</translation> <translation id="8613645710357126807">ఎక్స్టెన్షన్లను ఉపయోగించడానికి అనుమతి లేదు</translation> -<translation id="8613786722548417558">భద్రతా తనిఖీ చేయడానికి వీల్లేనంతగా <ph name="FILE_NAME" /> చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను తెరవగలరు.</translation> +<translation id="8613786722548417558">భద్రతా చెక్ చేయడానికి వీల్లేనంతగా <ph name="FILE_NAME" /> చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను తెరవగలరు.</translation> <translation id="8615618338313291042">అజ్ఞాత యాప్: <ph name="APP_NAME" /></translation> <translation id="8616441548384109662">మీ కాంటాక్ట్లకు <ph name="CONTACT_NAME" />ను జోడించండి</translation> <translation id="8617748779076050570">సురక్షిత కనెక్షన్ ID: <ph name="CONNECTION_ID" /></translation> @@ -7860,7 +7865,7 @@ <translation id="8636284842992792762">ఎక్స్టెన్షన్లను ప్రారంభిస్తోంది...</translation> <translation id="8636500887554457830">పాప్-అప్లను పంపడానికి లేదా మళ్లింపులను ఉపయోగించడానికి సైట్లను అనుమతించకండి</translation> <translation id="8637688295594795546">సిస్టమ్ అప్డేట్ అందుబాటులో ఉంది. డౌన్లోడ్ చేయడానికి సిద్ధం చేస్తోంది...</translation> -<translation id="8639047128869322042">హానికరమైన సాఫ్ట్వేర్ కోసం తనిఖీ చేస్తోంది...</translation> +<translation id="8639047128869322042">హానికరమైన సాఫ్ట్వేర్ కోసం చెక్ చేస్తోంది...</translation> <translation id="8639635302972078117">వినియోగం & విశ్లేషణల డేటాను పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ డేటాను, పరికరం డేటాను, దానితో పాటు యాప్ వినియోగ డేటాను ఆటోమేటిక్గా Googleకు పంపుతోంది. ఇది మీ చిన్నారిని గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత ఏకీకృత డేటా కూడా Google యాప్లకు, Android డెవలపర్ల లాంటి భాగస్వాములకు సహాయపడుతుంది. మీ చిన్నారి కోసం అదనపు వెబ్ & యాప్ యాక్టివిటీ సెట్టింగ్ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ చేయబడవచ్చు.</translation> <translation id="8642900771896232685">2 సెకన్లు</translation> <translation id="8642947597466641025">టెక్స్ట్ని పెద్దదిగా చేయి</translation> @@ -8069,7 +8074,7 @@ <translation id="8828933418460119530">DNS పేరు</translation> <translation id="883062543841130884">ప్రత్యామ్నాయాలు</translation> <translation id="8830779999439981481">అప్డేట్లను వర్తింపజేయడానికి రీస్టార్ట్ అవుతోంది</translation> -<translation id="8830796635868321089">ప్రస్తుత ప్రాక్సీ సెట్టింగ్లను ఉపయోగించి అప్డేట్ను తనిఖీ చేయడం విఫలమైంది. దయచేసి మీ <ph name="PROXY_SETTINGS_LINK_START" />ప్రాక్సీ సెట్టింగ్ల<ph name="PROXY_SETTINGS_LINK_END" />ను సర్దుబాటు చేయండి.</translation> +<translation id="8830796635868321089">ప్రస్తుత ప్రాక్సీ సెట్టింగ్లను ఉపయోగించి అప్డేట్ను చెక్ చేయడం విఫలమైంది. దయచేసి మీ <ph name="PROXY_SETTINGS_LINK_START" />ప్రాక్సీ సెట్టింగ్ల<ph name="PROXY_SETTINGS_LINK_END" />ను సర్దుబాటు చేయండి.</translation> <translation id="8832781841902333794">మీ ప్రొఫైళ్లు</translation> <translation id="8834039744648160717">నెట్వర్క్ కాన్ఫిగరేషన్ను <ph name="USER_EMAIL" /> నియంత్రిస్తున్నారు.</translation> <translation id="8835786707922974220">మీరు మీ సేవ్ చేయబడిన పాస్వర్డ్లను ఎల్లప్పుడూ యాక్సెస్ చేయగలరని నిర్ధారించుకోండి</translation> @@ -8237,7 +8242,7 @@ <translation id="8999560016882908256">ఒక విభాగంలో సింటాక్స్ ఎర్రర్: <ph name="ERROR_LINE" /></translation> <translation id="9003185744423389627">డివైజ్ మేనేజర్ సర్వర్కు కనెక్షన్ <ph name="FAILURE_TIME" />కు '<ph name="STATUS_TEXT" />' స్టేటస్తో విఫలమైంది</translation> <translation id="9003647077635673607">అన్ని వెబ్సైట్ల్లో అనుమతించు</translation> -<translation id="9003677638446136377">మళ్లీ తనిఖీ చేయి</translation> +<translation id="9003677638446136377">మళ్లీ చెక్ చేయండి</translation> <translation id="9004754973617721124"><ph name="SITE_NAME" />, దానికి సంబంధించిన అన్ని సైట్లు, ఇంకా ఇన్స్టాల్ చేయబడిన యాప్లో సైట్ డేటాను, ఇంకా అనుమతులను క్లియర్ చేయాలనుకుంటున్నారా?</translation> <translation id="9008201768610948239">విస్మరించు</translation> <translation id="9008201858626224558"><ph name="SUBPAGE_TITLE" /> వివరాలకు సంబంధించిన పేజీ 'వెనుకకు' బటన్</translation> @@ -8261,7 +8266,7 @@ <translation id="9023015617655685412">ఈ ట్యాబ్ను బుక్మార్క్ చేయి...</translation> <translation id="9023909777842748145">ఈ ఫీచర్ను ఆఫ్ చేయడం వలన సిస్టమ్ అప్డేట్లు, భద్రత లాంటి ముఖ్యమైన సేవలకు అవసరమైన సమాచారాన్ని పంపగల మీ పరికర సామర్థ్యం ప్రభావితం కాదు.</translation> <translation id="9024127637873500333">&కొత్త ట్యాబ్లో తెరువు</translation> -<translation id="9024158959543687197">షేర్ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. ఫైల్ షేర్ URLని తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> +<translation id="9024158959543687197">షేర్ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. ఫైల్ షేర్ URLని చెక్ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation> <translation id="9024692527554990034">ఒక నిర్దిష్ట సైట్ను వేగంగా వెతకడానికి లేదా వేరొక సెర్చ్ ఇంజిన్ను ఉపయోగించడానికి మీరు అడ్రస్ బార్లో షార్ట్కట్లను ఉపయోగించవచ్చు</translation> <translation id="9026731007018893674">డౌన్లోడ్</translation> <translation id="9026852570893462412">ఈ ప్రాసెస్కు కొన్ని నిమిషాలు పట్టవచ్చు. మర్చువల్ మెషీన్ డౌన్లోడ్ అవుతోంది.</translation> @@ -8281,6 +8286,7 @@ <translation id="9037640663275993951">పరికరానికి అనుమతి లేదు</translation> <translation id="9037818663270399707">మొత్తం నెట్వర్క్ ట్రాఫిక్కు మీ కనెక్షన్ ప్రైవేట్ కాదు</translation> <translation id="9037965129289936994">అసలైనది చూపు</translation> +<translation id="9038489124413477075">పేరులేని ఫోల్డర్</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{మీకు ఒక ప్రయత్నం మిగిలి ఉంది.}other{మీకు # ప్రయత్నాలు మిగిలి ఉన్నాయి.}}</translation> <translation id="9040473193163777637">ChromeOSకు బిల్ట్-ఇన్ స్క్రీన్ రీడర్ అయిన ChromeVoxను మీరు యాక్టివేట్ చేసుకోవాలనుకుంటున్నారా? అలా చేయాలనుకుంటే, రెండు వాల్యూమ్ 'కీ'లను ఐదు సెకన్ల పాటు నొక్కి, పట్టుకోండి.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> కోసం పాస్వర్డ్ను అప్డేట్ చేయాలా?</translation> @@ -8404,7 +8410,7 @@ <translation id="9157096865782046368">0.8 సెకన్లు</translation> <translation id="9157697743260533322">వినియోగదారులందరి కోసం ఆటోమేటిక్ అప్డేట్లను సెటప్ చేయడం విఫలమైంది (ప్రీఫ్లయిట్ ప్రారంభ ఎర్రర్: <ph name="ERROR_NUMBER" />)</translation> <translation id="9157915340203975005">ప్రింటర్ డోర్ తెరిచి ఉంది</translation> -<translation id="9158715103698450907">అయ్యో! ప్రామాణీకరణ సమయంలో నెట్వర్క్ కమ్యూనికేషన్ సమస్య ఏర్పడింది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="9158715103698450907">అయ్యో! ప్రామాణీకరణ సమయంలో నెట్వర్క్ కమ్యూనికేషన్ సమస్య ఏర్పడింది. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="9159643062839240276">ఇలా ప్రయత్నించండి: <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />నెట్వర్క్ కేబుల్లు, మోడెమ్, రూటర్ను చెక్ చేయండి @@ -8448,7 +8454,7 @@ <translation id="9203904171912129171">ఒక పరికరాన్ని ఎంచుకోండి</translation> <translation id="9206889157914079472">స్టైలస్ లాక్ స్క్రీన్ నుండి విషయ సేకరణ</translation> <translation id="9208192193641542858">లోకల్ డేటాను మీ పాత పాస్వర్డ్ భద్రపరుస్తుంది. మీరు ఇటీవలే మీ పాస్వర్డ్ను మార్చి ఉంటే, మీ పాత పాస్వర్డ్తో మళ్లీ ట్రై చేయండి.</translation> -<translation id="9209563766569767417">Linux కంటెయినర్ సెటప్ను తనిఖీ చేస్తోంది</translation> +<translation id="9209563766569767417">Linux కంటెయినర్ సెటప్ను చెక్ చేస్తోంది</translation> <translation id="9209689095351280025">వెబ్ అంతటా మిమ్మల్ని ట్రాక్ చేయడానికి ఉపయోగించే కుక్కీలను సైట్లు ఉపయోగించడం సాధ్యం కాదు</translation> <translation id="9211177926627870898">అప్డేట్ అవసరం</translation> <translation id="9214520840402538427">అయ్యో! ఇనస్టలేషన్-సమయ లక్షణాల ప్రారంభ సమయం ముగిసింది. దయచేసి మీ మద్దతు ప్రతినిధిని సంప్రదించండి.</translation> @@ -8467,7 +8473,7 @@ <translation id="930893132043726269">ప్రస్తుతం రోమింగ్లో ఉంది</translation> <translation id="932327136139879170">హోమ్</translation> <translation id="932508678520956232">ముద్రించడాన్ని ప్రారంభించడం సాధ్యం కాలేదు.</translation> -<translation id="933427034780221291">{NUM_FILES,plural, =1{భద్రతా తనిఖీ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను అప్లోడ్ చేయగలరు.}other{ఈ ఫైల్స్లో కొన్ని, భద్రతా తనిఖీ చేయడానికి వీల్లేనంత పెద్దగా ఉన్నాయి. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను అప్లోడ్ చేయగలరు.}}</translation> +<translation id="933427034780221291">{NUM_FILES,plural, =1{భద్రతా చెక్ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను అప్లోడ్ చేయగలరు.}other{ఈ ఫైల్స్లో కొన్ని, భద్రతా చెక్ చేయడానికి వీల్లేనంత పెద్దగా ఉన్నాయి. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్ను అప్లోడ్ చేయగలరు.}}</translation> <translation id="93343527085570547">చట్టపరమైన కారణాలతో కంటెంట్ మార్పులను అభ్యర్ధించడానికి <ph name="BEGIN_LINK1" />చట్టపరమైన అంశాల సహాయ పేజీ<ph name="END_LINK1" />కు వెళ్లండి. కొంత ఖాతా మరియు సిస్టమ్ సమాచారం Googleకి పంపబడవచ్చు. సాంకేతిక సమస్యల పరిష్కారానికి మరియు మా సేవలను మెరుగుపరచడానికి మీరు మాకు ఇచ్చిన సమాచారాన్ని మా <ph name="BEGIN_LINK2" />గోప్యతా పాలసీ<ph name="END_LINK2" /> మరియు <ph name="BEGIN_LINK3" />సేవా నిబంధనలు<ph name="END_LINK3" />కు లోబడి మేము ఉపయోగిస్తాము.</translation> <translation id="93393615658292258">పాస్వర్డ్ మాత్రమే</translation> <translation id="934244546219308557">ఈ గ్రూప్నకు పేరు పెట్టండి</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index ff7794d..8421053 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -352,6 +352,7 @@ <translation id="1340527397989195812">สำรองสื่อจากอุปกรณ์โดยใช้แอป Files</translation> <translation id="1343865611738742294">ให้สิทธิ์แอป Linux เข้าถึงอุปกรณ์ USB Linux จะไม่จำอุปกรณ์ USB หลังจากที่นำอุปกรณ์ดังกล่าวออก</translation> <translation id="1343920184519992513">ดำเนินการต่อจากจุดที่คุณค้างไว้และเปิดกลุ่มหน้าเว็บที่ต้องการ</translation> +<translation id="1344377983938103876">กำลังเปิด <ph name="URL" />...</translation> <translation id="134589511016534552">แท็บสื่อจะแสดงในส่วนแท็บที่เปิดอยู่ด้วย</translation> <translation id="1346630054604077329">ยืนยันและรีสตาร์ท</translation> <translation id="1346748346194534595">ขวา</translation> @@ -1798,6 +1799,7 @@ <translation id="2667144577800272420">มีแอปอื่นได้รับการตั้งค่าให้เปิดลิงก์เดียวกับ <ph name="APP_NAME" /> การดำเนินการนี้จะทำให้ <ph name="APP_NAME_2" /> และ <ph name="APP_NAME_3" /> ไม่สามารถเปิดลิงก์ที่รองรับ</translation> <translation id="2667463864537187133">จัดการการตรวจตัวสะกด</translation> <translation id="2669241540496514785">เปิด <ph name="APP_NAME" /> ไม่ได้</translation> +<translation id="2669454659051515572">ใครก็ตามที่ใช้อุปกรณ์นี้จะเห็นไฟล์ที่ดาวน์โหลด</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> กำลังแชร์แท็บใน Chrome</translation> <translation id="2670403088701171361">ไม่อนุญาตให้เว็บไซต์ดูข้อความหรือรูปภาพในคลิปบอร์ด</translation> <translation id="2670429602441959756">หน้านี้มีฟีเจอร์ที่ยังไม่รองรับใน VR กำลังออกจากโหมดนี้...</translation> @@ -2165,6 +2167,7 @@ <translation id="3008232374986381779">เรียกใช้เครื่องมือ ตัวแก้ไข และ IDE ของ Linux ใน <ph name="DEVICE_TYPE" /> <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation> <translation id="3008272652534848354">รีเซ็ตสิทธิ์</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> กำหนดให้คุณเชื่อมต่อ Wi-Fi วันนี้เพื่อดาวน์โหลดอัปเดต หรือดาวน์โหลดจากการเชื่อมต่อที่มีการวัดปริมาณอินเทอร์เน็ต (อาจมีค่าบริการ)}other{<ph name="MANAGER" /> กำหนดให้คุณเชื่อมต่อ Wi-Fi และดาวน์โหลดอัปเดตก่อนเวลาที่กำหนด หรือดาวน์โหลดจากการเชื่อมต่อที่มีการวัดปริมาณอินเทอร์เน็ต (อาจมีค่าบริการ)}}</translation> +<translation id="3009178788565917040">เอาต์พุต</translation> <translation id="3009300415590184725">คุณแน่ใจหรือไม่ว่าต้องการยกเลิกขั้นตอนการตั้งค่าบริการข้อมูลโทรศัพท์มือถือ</translation> <translation id="3009779501245596802">ฐานข้อมูลที่มีการจัดทำดัชนี</translation> <translation id="3010279545267083280">ลบรหัสผ่านแล้ว</translation> @@ -3552,6 +3555,7 @@ <translation id="4377058670119819762">เปิดใช้แนวแท็บเพื่อเลื่อนไปทางซ้ายและขวาเมื่อพื้นที่เต็มแล้ว</translation> <translation id="4377363674125277448">มีปัญหาเกี่ยวกับใบรับรองของเซิร์ฟเวอร์</translation> <translation id="4378154925671717803">โทรศัพท์</translation> +<translation id="4378308539633073595">เลื่อนไปข้างหน้า</translation> <translation id="4378551569595875038">กำลังเชื่อมต่อ</translation> <translation id="4378556263712303865">ข้อกำหนดของอุปกรณ์</translation> <translation id="4379281552162875326">ถอนการติดตั้ง "<ph name="APP_NAME" />" ใช่ไหม</translation> @@ -6949,6 +6953,7 @@ <translation id="7753735457098489144">ติดตั้งไม่สำเร็จเนื่องจากมีพื้นที่เก็บข้อมูลไม่เพียงพอ หากต้องการเพิ่มพื้นที่ว่าง ให้ลบไฟล์ออกจากพื้นที่เก็บข้อมูลของอุปกรณ์</translation> <translation id="7754347746598978109">ไม่ได้รับอนุญาตให้ใช้ JavaScript</translation> <translation id="7754704193130578113">สอบถามที่เก็บไฟล์ก่อนดาวน์โหลด</translation> +<translation id="7755134875397410803">Google จะได้รับ URL และเนื้อหาของเว็บไซต์ต่างๆ ที่คุณใช้งาน Assistant รวมถึงข้อมูลที่คุณส่งผ่าน Assistant เพื่อช่วยทำงานที่ต้องการให้เสร็จสิ้น ข้อมูลนี้อาจจัดเก็บไว้ในบัญชี Google คุณปิด Assistant ได้ในการตั้งค่า Chrome <ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">ผู้ปกครองสามารถเลิกบล็อกเว็บไซต์ให้คุณ</translation> <translation id="7757592200364144203">เปลี่ยนชื่ออุปกรณ์</translation> <translation id="7757739382819740102">รายชื่อติดต่อที่อยู่ใกล้เคียงจะแชร์กับคุณได้ โดยจะต้องมีการอนุมัติ</translation> @@ -7351,6 +7356,7 @@ <translation id="8120505434908124087">ติดตั้งโปรไฟล์ eSIM</translation> <translation id="812260729110117038">ผู้ลงโฆษณาและผู้เผยแพร่โฆษณาจะศึกษาประสิทธิภาพของโฆษณาได้ในลักษณะที่ไม่ติดตามคุณข้ามเว็บไซต์</translation> <translation id="81238879832906896">ดอกไม้สีเหลืองแซมขาว</translation> +<translation id="8123975449645947908">เลื่อนไปข้างหลัง</translation> <translation id="8124313775439841391">ONC ที่มีการจัดการ</translation> <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</translation> <translation id="8131740175452115882">ยืนยัน</translation> @@ -8267,6 +8273,7 @@ <translation id="9037640663275993951">ไม่อนุญาตอุปกรณ์นี้</translation> <translation id="9037818663270399707">การจราจรของข้อมูลทั้งหมดในเครือข่ายไม่เป็นส่วนตัวในการเชื่อมต่อของคุณ</translation> <translation id="9037965129289936994">แสดงหน้าเว็บเดิม</translation> +<translation id="9038489124413477075">โฟลเดอร์ที่ไม่มีชื่อ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{คุณใช้ลายนิ้วมือได้อีก 1 ครั้ง}other{คุณใช้ลายนิ้วมือได้อีก # ครั้ง}}</translation> <translation id="9040473193163777637">คุณต้องการเปิดใช้งาน ChromeVox ซึ่งเป็นโปรแกรมอ่านหน้าจอในตัวสำหรับ Chrome OS ไหม ถ้าต้องการ ให้กดปุ่มปรับระดับเสียงทั้งคู่ค้างไว้ 5 วินาที</translation> <translation id="9040661932550800571">อัปเดตรหัสผ่านสำหรับ <ph name="ORIGIN" /> ไหม</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 412222e8e..bd89f115 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1246,6 +1246,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Kablosuz Ekle...</translation> <translation id="2162155940152307086">Senkronizasyon işlemi, senkonizasyon ayarlarından çıktığınızda başlayacaktır</translation> +<translation id="2162705204091149050">Tarayıcınız, işletim sisteminiz, cihazınız, yüklü yazılımlar ve dosyalar hakkında bilgileri okuma</translation> <translation id="2162926944953615670">Kullanılabilir eSIM profili yok</translation> <translation id="2163470535490402084"><ph name="DEVICE_TYPE" /> cihazınızda oturum açmak için lütfen İnternet'e bağlanın.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ve 1 anahtar daha</translation> @@ -1266,6 +1267,7 @@ <translation id="2180620921879609685">Herhangi bir sayfadaki içeriği engelleme</translation> <translation id="2182058453334755893">Panonuza Kopyalandı</translation> <translation id="2184515124301515068">Sitelerin ne zaman ses çalacağını Chrome'un seçmesine izin verin (önerilir)</translation> +<translation id="2186206192313702726">Google Lens</translation> <translation id="2186711480981247270">Başka bir cihazdan paylaşılan sayfa</translation> <translation id="2187675480456493911">Hesabınızdaki diğer cihazlarla senkronize edildi. Diğer kullanıcılar tarafından değiştirilen ayarlar senkronize edilmez. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation> <translation id="2187895286714876935">Sunucu Sertifikası İçe Aktarma Hatası</translation> @@ -1794,6 +1796,7 @@ <translation id="2667144577800272420">Diğer uygulamalar <ph name="APP_NAME" /> ile aynı bağlantıları açacak şekilde ayarlandı. Bu işlemden sonra <ph name="APP_NAME_2" /> ve <ph name="APP_NAME_3" /> uygulamaları desteklenen bağlantıları açamayacak.</translation> <translation id="2667463864537187133">Yazım denetimini yönet</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> açılamadı</translation> +<translation id="2669454659051515572">Bu cihazı kullanan herkes indirilen dosyaları görebilir</translation> <translation id="2670102641511624474"><ph name="APP_NAME" />, bir Chrome sekmesini paylaşıyor.</translation> <translation id="2670403088701171361">Sitelerin panomdaki metin veya görselleri görmesine izin verme</translation> <translation id="2670429602441959756">Bu sayfa henüz Sanal Gerçeklik'te desteklenmeyen özellikler içeriyor. Sayfadan çıkılıyor...</translation> @@ -2160,6 +2163,7 @@ <translation id="3008232374986381779">Linux araçları, düzenleyicileri ve IDE'lerini <ph name="DEVICE_TYPE" /> cihazınızda çalıştırır. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation> <translation id="3008272652534848354">İzinleri sıfırla</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" />, güncelleme indirmek için bugün kablosuz ağa bağlanmanızı zorunlu tutuyor. İsterseniz sayaçlı bir bağlantı üzerinden indirebilirsiniz (bunun için ödeme alınabilir).}other{<ph name="MANAGER" />, kablosuz ağa bağlanıp son tarihten önce güncelleme indirmenizi zorunlu tutuyor. İsterseniz sayaçlı bir bağlantı üzerinden indirebilirsiniz (bunun için ödeme alınabilir).}}</translation> +<translation id="3009178788565917040">Çıkış</translation> <translation id="3009300415590184725">Mobil veri hizmeti kurulum işlemini iptal etmek istediğinizden emin misiniz?</translation> <translation id="3009779501245596802">Dizine alınmış veritabanları</translation> <translation id="3010279545267083280">Şifre silindi</translation> @@ -2490,6 +2494,7 @@ <translation id="3359256513598016054">Sertifika Politikası Kısıtlamaları</translation> <translation id="3360297538363969800">Yazdırma işlemi başarısız oldu. Lütfen yazıcınızı kontrol edin ve tekrar deneyin.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> sizinle <ph name="ATTACHMENTS" /> paylaşıyor.}other{<ph name="DEVICE_NAME" /> sizinle <ph name="ATTACHMENTS" /> paylaşıyor.}}</translation> +<translation id="3363202073972776113">Bu yeni profil, kuruluşunuz tarafından yönetilir. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Yöneticinizden: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Ctrl veya Alt tuşlarından birini kullanın</translation> <translation id="3368922792935385530">Bağlı</translation> @@ -2524,6 +2529,7 @@ <translation id="339722927132407568">Donuyor</translation> <translation id="3399432415385675819">Bildirimler devre dışı bırakılacak</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - birbirine geçmiş</translation> +<translation id="3401484564516348917">Tarayıcınız, işletim sisteminiz, cihazınız, yüklü yazılımlar, kayıt değerleri ve dosyalar hakkında bilgileri okuma</translation> <translation id="3402059702184703067">{COUNT,plural, =1{Bu cihazda {COUNT} şifre kayıtlı}other{Bu cihazda {COUNT} şifre kayıtlı}}</translation> <translation id="3402255108239926910">Avatar seçin</translation> <translation id="3402585168444815892">Demo Modu'na Kaydolunuyor</translation> @@ -2770,6 +2776,7 @@ <translation id="3627879631695760395"><ph name="APP" /> Uygulamasını Yükle...</translation> <translation id="3628275722731025472">Bluetooth'u kapat</translation> <translation id="3629631988386925734">Smart Lock'u açmak için şifrenizi girin. Böylece, bir dahaki sefere telefonunuzu kullanarak <ph name="DEVICE_TYPE" /> cihazınızın kilidini açabilirsiniz. Ayarlar'dan Smart Lock'u kapatabilirsiniz.</translation> +<translation id="3629664892718440872">Bu tercihi hatırla</translation> <translation id="3630132874740063857">Telefonunuz</translation> <translation id="3630995161997703415">Bu siteyi istediğiniz zaman kullanmak için rafınıza ekleyin</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Chrome OS kilitlenme zamanı, kullandığınız özellikler ve genellikle kullandığınız bellek miktarı gibi bilgiler bu raporlarda yer alabilir.<ph name="END_PARAGRAPH1" /> @@ -3259,6 +3266,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">MIDI cihazlarının tam denetimi reddedildi</translation> +<translation id="4087328411748538168">Sağda göster</translation> <translation id="4089235344645910861">Ayarlar kaydedildi. Senkronizasyon başladı.</translation> <translation id="4090103403438682346">Doğrulanmış Erişimi Etkinleştir</translation> <translation id="4090947011087001172"><ph name="SITE" /> için site izinleri sıfırlansın mı?</translation> @@ -3543,6 +3551,7 @@ <translation id="4377058670119819762">Dolduğunda sekme şeridinin sola ve sağa kaymasını etkinleştirir.</translation> <translation id="4377363674125277448">Sunucunun sertifikasıyla ilgili bir sorun vardı.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">İleri kaydırma</translation> <translation id="4378551569595875038">Bağlanıyor...</translation> <translation id="4378556263712303865">Cihaz talebi</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" kaldırılsın mı?</translation> @@ -3951,6 +3960,7 @@ <translation id="4779766576531456629">eSIM Hücresel ağını yeniden adlandır</translation> <translation id="4780321648949301421">Sayfayı Farklı Kaydet...</translation> <translation id="4781443161433589743">Chrome'un en güçlü güvenlik özelliğini kullanıyorsunuz</translation> +<translation id="4782861709165039462">Tüm mikrofonlar cihazın donanım anahtarıyla devre dışı bırakıldı</translation> <translation id="4785719467058219317">Bu web sitesine kaydettirilmemiş bir anahtar kullanıyorsunuz</translation> <translation id="4785914069240823137">Kırpmayı İptal Et</translation> <translation id="4788092183367008521">Lütfen ağ bağlantınızı kontrol edin ve tekrar deneyin.</translation> @@ -4717,6 +4727,7 @@ <translation id="5548075230008247516">Tüm öğelerin seçimi kaldırıldı, seçim modundan çıkıldı.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" ve 1 Diğer Sekme}other{"<ph name="TAB_TITLE" />" ve # Diğer Sekme}}</translation> <translation id="5548606607480005320">Güvenlik kontrolü</translation> +<translation id="5548644592758170183">Solda göster</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Klavye ve metin girişi</translation> <translation id="5553089923092577885">Sertifika Politikası Eşlemeleri</translation> @@ -7344,6 +7355,7 @@ <translation id="8120505434908124087">eSIM profili yükle</translation> <translation id="812260729110117038">Reklamverenler ve yayıncılar, sizi sitelerde izlemeden reklamların etkisini inceleyebilirler.</translation> <translation id="81238879832906896">Sarı ve beyaz çiçek</translation> +<translation id="8123975449645947908">Geriye kaydırma</translation> <translation id="8124313775439841391">Yönetilen ONC</translation> <translation id="813082847718468539">Site bilgilerini görüntüle</translation> <translation id="8131740175452115882">Onayla</translation> @@ -8199,6 +8211,7 @@ <translation id="8980345560318123814">Geri bildirim raporları</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Kilitlendi</translation> <translation id="8981825781894055334">Kağıt az</translation> +<translation id="8983018820925880511">Bu yeni profil <ph name="DOMAIN" /> tarafından yönetilir. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation> <translation id="8983632908660087688"><ph name="ORIGIN" />, <ph name="FILENAME" /> adlı dosyayı düzenleyebilir</translation> <translation id="8984694057134206124"><ph name="MINUTES" /> dakika süreyle herkes tarafından görülebileceksiniz. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Chromebook için Steam'e hoş geldiniz</translation> @@ -8259,6 +8272,7 @@ <translation id="9037640663275993951">Cihaza izin verilmiyor</translation> <translation id="9037818663270399707">Bağlantınız tüm ağ trafiği için gizli değil</translation> <translation id="9037965129289936994">Orijinali Göster</translation> +<translation id="9038489124413477075">Adsız Klasör</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Tek bir deneme hakkınız kaldı.}other{# deneme hakkınız kaldı.}}</translation> <translation id="9040473193163777637">ChromeOS'in yerleşik ekran okuyucusu olan ChromeVox'u etkinleştirmek istiyor musunuz? Cevabınız evet ise ses seviyesi tuşlarının ikisini birden beş saniyeliğine basılı tutun.</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> için şifre güncellensin mi?</translation> @@ -8295,6 +8309,7 @@ <translation id="9075413375877487220">Bu, Gelişmiş Güvenli Tarama tarafından güvenilmeyen bir uzantıdır.</translation> <translation id="9076283476770535406">Yetişkin içeriği bulunabilir</translation> <translation id="9076523132036239772">Maalesef, e-postanız veya şifreniz doğrulanamadı. Önce bir ağa bağlanmayı deneyin.</translation> +<translation id="9076821103818989526">Yan panel</translation> <translation id="9076977315710973122">SMB paylaşımı</translation> <translation id="9078193189520575214">Değişiklikler uygulanıyor...</translation> <translation id="9078316009970372699">Hızlı Tethering'i devre dışı bırak</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 011fb03..0ba367f7 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -1262,6 +1262,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Додати Wi-Fi...</translation> <translation id="2162155940152307086">Синхронізація почнеться, щойно ви вийдете з її налаштувань</translation> +<translation id="2162705204091149050">Перегляд інформації про ваш веб-переглядач, ОС, пристрій, установлене програмне забезпечення та файли</translation> <translation id="2162926944953615670">Немає профілів eSIM</translation> <translation id="2163470535490402084">Щоб увійти в <ph name="DEVICE_TYPE" />, під’єнайтеся до Інтернету.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> і ще 1 перемикач</translation> @@ -1814,6 +1815,7 @@ <translation id="2667144577800272420">Зараз їх можна відкривати не лише в додатку <ph name="APP_NAME" />. Після зміни додатки <ph name="APP_NAME_2" /> та <ph name="APP_NAME_3" /> більше не зможуть відкривати підтримувані посилання.</translation> <translation id="2667463864537187133">Керувати перевіркою орфографії</translation> <translation id="2669241540496514785">Не вдалося відкрити додаток <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Усі користувачі цього пристрою можуть бачити завантажені файли</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> транслює вкладку Chrome.</translation> <translation id="2670403088701171361">Заборонити сайтам доступ до тексту й зображень у буфері обміну</translation> <translation id="2670429602441959756">Ця сторінка містить функції, які не підтримуються в режимі віртуальної реальності. Вихід…</translation> @@ -2181,6 +2183,7 @@ <translation id="3008232374986381779">Запускайте інструменти, редактори й ІСР Linux на пристрої <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Скинути дозволи</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{Адміністратор домену <ph name="MANAGER" /> вимагає, щоб ви сьогодні підключилися до мережі Wi-Fi та завантажили оновлення. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).}one{Адміністратор домену <ph name="MANAGER" /> вимагає, щоб ви підключилися до мережі Wi-Fi та завантажили оновлення до кінцевого терміну. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).}few{Адміністратор домену <ph name="MANAGER" /> вимагає, щоб ви підключилися до мережі Wi-Fi та завантажили оновлення до кінцевого терміну. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).}many{Адміністратор домену <ph name="MANAGER" /> вимагає, щоб ви підключилися до мережі Wi-Fi та завантажили оновлення до кінцевого терміну. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).}other{Адміністратор домену <ph name="MANAGER" /> вимагає, щоб ви підключилися до мережі Wi-Fi та завантажили оновлення до кінцевого терміну. Ви також можете використовувати підключення з тарифікацією трафіку (може стягуватися плата).}}</translation> +<translation id="3009178788565917040">Вихід</translation> <translation id="3009300415590184725">Дійсно скасувати процес налаштування служби передавання мобільних даних?</translation> <translation id="3009779501245596802">Проіндексовані бази даних</translation> <translation id="3010279545267083280">Пароль видалено</translation> @@ -2511,6 +2514,7 @@ <translation id="3359256513598016054">Обмеження політики сертифіката</translation> <translation id="3360297538363969800">Помилка друку. Перевірте принтер і повторіть спробу.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}one{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}few{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}many{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}other{Пристрій <ph name="DEVICE_NAME" /> надсилає вам <ph name="ATTACHMENTS" />.}}</translation> +<translation id="3363202073972776113">Цим новим профілем керуватиме ваша організація. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Від вашого адміністратора: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Використовуйте Ctrl або Alt</translation> <translation id="3368922792935385530">Підключено</translation> @@ -2545,6 +2549,7 @@ <translation id="339722927132407568">Зависає</translation> <translation id="3399432415385675819">Сповіщення будуть вимкнені</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> герц) – з накладанням</translation> +<translation id="3401484564516348917">Перегляд інформації про ваш веб-переглядач, ОС, пристрій, установлене програмне забезпечення, значення реєстру та файли</translation> <translation id="3402059702184703067">{COUNT,plural, =1{На цьому пристрої зберігається {COUNT} пароль}one{На цьому пристрої зберігається {COUNT} пароль}few{На цьому пристрої зберігаються {COUNT} паролі}many{На цьому пристрої зберігаються {COUNT} паролів}other{На цьому пристрої зберігається {COUNT} пароля}}</translation> <translation id="3402255108239926910">Виберіть аватар</translation> <translation id="3402585168444815892">Реєстрація в демоверсії</translation> @@ -2791,6 +2796,7 @@ <translation id="3627879631695760395">Установити додаток <ph name="APP" />…</translation> <translation id="3628275722731025472">Вимкнути Bluetooth</translation> <translation id="3629631988386925734">Щоб увімкнути Smart Lock, введіть пароль. Наступного разу ви зможете розблокувати пристрій <ph name="DEVICE_TYPE" /> за допомогою свого телефона. Smart Lock можна вимкнути в налаштуваннях.</translation> +<translation id="3629664892718440872">Запам’ятати цей вибір</translation> <translation id="3630132874740063857">Ваш номер телефону</translation> <translation id="3630995161997703415">Додайте цей сайт на полицю, щоб завжди мати його під рукою</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Дозволивши пристроям з ОС Chrome автоматично надсилати звіти, ви допомагаєте нам визначити найважливіші проблеми та напрямки покращення операційної системи. Ці звіти можуть містити дані про збої ОС Chrome, застосовані функції та обсяг пам’яті, який ви зазвичай використовуєте.<ph name="END_PARAGRAPH1" /> @@ -3280,6 +3286,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Доступ до повного контролю над пристроями MIDI заблоковано</translation> +<translation id="4087328411748538168">Показувати справа</translation> <translation id="4089235344645910861">Налаштування збережено. Почато синхронізацію.</translation> <translation id="4090103403438682346">Увімкнути перевірений доступ</translation> <translation id="4090947011087001172">Скинути дозволи для сайту <ph name="SITE" />?</translation> @@ -3564,6 +3571,7 @@ <translation id="4377058670119819762">Дає змогу прокручувати панель вкладок праворуч і ліворуч, коли всі вкладки вже не вміщаються на екрані.</translation> <translation id="4377363674125277448">Виникла проблема із сертифікатом сервера.</translation> <translation id="4378154925671717803">Телефон</translation> +<translation id="4378308539633073595">Прокрутити вперед</translation> <translation id="4378551569595875038">Підключення…</translation> <translation id="4378556263712303865">Заявка пристрою</translation> <translation id="4379281552162875326">Видалити "<ph name="APP_NAME" />"?</translation> @@ -3973,6 +3981,7 @@ <translation id="4779766576531456629">Перейменувати мобільну мережу eSIM-карти</translation> <translation id="4780321648949301421">Зберегти сторінку як...</translation> <translation id="4781443161433589743">Вас захищає найнадійніша система безпеки Chrome</translation> +<translation id="4782861709165039462">Усі мікрофони вимкнено за допомогою перемикача на пристрої</translation> <translation id="4785719467058219317">Ви використовуєте ключ безпеки, не зареєстрований на цьому веб-сайті</translation> <translation id="4785914069240823137">Скасувати обрізування</translation> <translation id="4788092183367008521">Перевірте з’єднання з мережею та повторіть спробу.</translation> @@ -4739,6 +4748,7 @@ <translation id="5548075230008247516">Скасовано вибір усіх елементів. Ви вийшли з режиму вибору.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{"<ph name="TAB_TITLE" />"}=1{"<ph name="TAB_TITLE" />" і ще 1 вкладка}one{"<ph name="TAB_TITLE" />" і ще # вкладка}few{"<ph name="TAB_TITLE" />" і ще # вкладки}many{"<ph name="TAB_TITLE" />" і ще # вкладок}other{"<ph name="TAB_TITLE" />" і ще # вкладки}}</translation> <translation id="5548606607480005320">Перевірка безпеки</translation> +<translation id="5548644592758170183">Показувати зліва</translation> <translation id="554903022911579950">Kerberos</translation> <translation id="5551573675707792127">Клавіатура та введення тексту</translation> <translation id="5553089923092577885">Зіставлення політик сертифікатів</translation> @@ -7369,6 +7379,7 @@ <translation id="8120505434908124087">Установити профіль eSIM-карти</translation> <translation id="812260729110117038">Рекламодавці й видавці можуть досліджувати ефективність оголошень, не відстежуючи ваші дії на різних сайтах.</translation> <translation id="81238879832906896">Жовто-біла квітка</translation> +<translation id="8123975449645947908">Прокрутити назад</translation> <translation id="8124313775439841391">Керований ONC</translation> <translation id="813082847718468539">Перегляд інформації про сайт</translation> <translation id="8131740175452115882">Підтвердити</translation> @@ -8227,6 +8238,7 @@ <translation id="8980345560318123814">Надсилати відгуки</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – аварійне завершення роботи</translation> <translation id="8981825781894055334">Недостатньо паперу</translation> +<translation id="8983018820925880511">Цим новим профілем керуватиме <ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation> <translation id="8983632908660087688">Сайт <ph name="ORIGIN" /> може змінювати файл "<ph name="FILENAME" />"</translation> <translation id="8984694057134206124">Пристрій зможуть бачити всі користувачі впродовж <ph name="MINUTES" /> хв. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Вітаємо в додатку Steam для Chromebook</translation> @@ -8287,6 +8299,7 @@ <translation id="9037640663275993951">Пристрій заборонений</translation> <translation id="9037818663270399707">З'єднання неконфіденційне в усьому мережевому трафіку</translation> <translation id="9037965129289936994">Показати оригінал</translation> +<translation id="9038489124413477075">Папка без назви</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{У вас залишилася одна спроба.}one{У вас залишилася # спроба.}few{У вас залишилося # спроби.}many{У вас залишилося # спроб.}other{У вас залишилося # спроби.}}</translation> <translation id="9040473193163777637">Активувати ChromeVox, вбудовану програму зчитування з екрана для ОС Chrome? Щоб зробити це, утримуйте обидві клавіші гучності впродовж п’яти секунд.</translation> <translation id="9040661932550800571">Оновити пароль для <ph name="ORIGIN" />?</translation> @@ -8323,6 +8336,7 @@ <translation id="9075413375877487220">Це розширення не відповідає вимогам Безпечного перегляду з розширеним захистом.</translation> <translation id="9076283476770535406">На ньому може бути вміст для дорослих</translation> <translation id="9076523132036239772">На жаль, не вдалося підтвердити вашу електронну адресу чи пароль. Спробуйте спершу під’єднатися до мережі.</translation> +<translation id="9076821103818989526">Бічна панель</translation> <translation id="9076977315710973122">Мережевий файлообмінник</translation> <translation id="9078193189520575214">Застосовуються зміни…</translation> <translation id="9078316009970372699">Вимкнути миттєву точку доступу</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 83d25c2..757c9c5 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1269,6 +1269,7 @@ <translation id="2180620921879609685">کسی بھی صفحے پر مواد کو مسدود کریں</translation> <translation id="2182058453334755893">آپ کے کلپ بورڈ پر کاپی کر دیا گیا</translation> <translation id="2184515124301515068">Chrome کو منتخب کرنے دیں کہ سائٹس کب آواز چلا سکتی ہیں (تجویز کردہ)</translation> +<translation id="2186206192313702726">Google لینز</translation> <translation id="2186711480981247270">صفحہ کا اشتراک دوسرے آلے سے کیا گیا</translation> <translation id="2187675480456493911">آپ کے اکاؤنٹ پر موجود دیگر آلات کے ساتھ مطابقت پذیر۔ دوسرے صارفین کے ذریعے ترمیم کی گئی ترتیبات کو مطابقت پذیر نہیں کیا جائے گا۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="2187895286714876935">سرور سرٹیفکیٹ کی درآمد میں خرابی</translation> @@ -1799,6 +1800,7 @@ <translation id="2667144577800272420">دیگر ایپس کو <ph name="APP_NAME" /> کی طرح لنکس کو کھولنے کے لیے سیٹ کیا گیا ہے۔ یہ <ph name="APP_NAME_2" /> <ph name="APP_NAME_3" /> تعاون یافتہ لنکس کھولنے سے غیر فعال کر دیں گی۔</translation> <translation id="2667463864537187133">املا کی جانچ کا نظم کریں</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> کھولی نہیں جا سکی</translation> +<translation id="2669454659051515572">اس آلے کا استعمال کرنے والا کوئی بھی شخص ڈاؤن لوڈ کردہ فائلز کو دیکھ سکتا ہے</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> ایک Chrome ٹیب کا اشتراک کر رہی ہے۔</translation> <translation id="2670403088701171361">سائٹس کو اپنے کلپ بورڈ پر ٹیکسٹ یا تصاویر دیکھنے کی اجازت نہ دیں</translation> <translation id="2670429602441959756">یہ صفحہ ایسی خصوصیات پر مشتمل ہے جو فی الحال VR میں تعاون یافتہ نہیں ہیں۔ خروج ہو رہا ہے...</translation> @@ -2165,6 +2167,7 @@ <translation id="3008232374986381779">اپنے <ph name="DEVICE_TYPE" /> پر Linux ٹولز، ایڈیٹرز اور IDEs چلائیں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="3008272652534848354">اجازتیں دوبارہ ترتیب دیں</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> کا تقاضہ ہے کہ آج آپ Wi-Fi سے منسلک ہوں اور ایک اپ ڈیٹ ڈاؤن لوڈ کریں۔ یا میٹرڈ کنکشن سے ڈاؤن لوڈ کریں (چارجز لاگو ہو سکتے ہیں)۔}other{<ph name="MANAGER" /> کا تقاضہ ہے کہ آپ آخری تاریخ سے پہلے Wi-Fi سے منسلک ہوں اور ایک اپ ڈیٹ ڈاؤن لوڈ کریں۔ یا میٹرڈ کنکشن سے ڈاؤن لوڈ کریں (چارجز لاگو ہو سکتے ہیں)۔}}</translation> +<translation id="3009178788565917040">آؤٹ پٹ</translation> <translation id="3009300415590184725">کیا آپ واقعی موبائل ڈیٹا سروس سیٹ اپ کارروائی کو منسوخ کرنا چاہتے ہیں؟</translation> <translation id="3009779501245596802">انڈیکس کردہ ڈیٹا بیسز</translation> <translation id="3010279545267083280">پاس ورڈ کو حذف کر دیا گیا</translation> @@ -3552,6 +3555,7 @@ <translation id="4377058670119819762">بہت زیادہ ٹیبز کھولے جانے پر، بائیں اور دائیں اسکرول کرنے کیلئے ٹیب اسٹرپ فعال ہو جاتی ہے۔</translation> <translation id="4377363674125277448">سرور کی سرٹیفیکیٹ کے ساتھ ایک مسئلہ پیش آ گیا۔</translation> <translation id="4378154925671717803">فون</translation> +<translation id="4378308539633073595">آگے سکرول کریں</translation> <translation id="4378551569595875038">منسلک ہو رہا ہے…</translation> <translation id="4378556263712303865">آلہ کی درخواست</translation> <translation id="4379281552162875326">"<ph name="APP_NAME" />" ان انسٹال کریں؟</translation> @@ -7352,6 +7356,7 @@ <translation id="8120505434908124087">eSIM پروفائل انسٹال کریں</translation> <translation id="812260729110117038">مشتہرین اور ناشرین اشتہارات کی افادیت کا ایسے طریقے سے مطالعہ کر سکتے ہیں جو آپ کو مختلف سائٹس پر ٹریک نہ کرتا ہو۔</translation> <translation id="81238879832906896">زرد اور سفید پھول</translation> +<translation id="8123975449645947908">پیچھے اسکرول کریں</translation> <translation id="8124313775439841391">نظم کردہ ONC</translation> <translation id="813082847718468539">سائٹ کی معلومات دیکھیں</translation> <translation id="8131740175452115882">تصدیق کریں</translation> @@ -8268,6 +8273,7 @@ <translation id="9037640663275993951">اس آلے پر VM چلانے کی اجازت نہیں ہے</translation> <translation id="9037818663270399707">آپ کا کنکشن تمام نیٹ ورک ٹریفک کیلئے نجی نہیں ہے</translation> <translation id="9037965129289936994">اصل دکھائیں</translation> +<translation id="9038489124413477075">بغیر نام والا فولڈر</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{آپ کے پاس ایک کوشش باقی ہے۔}other{آپ کے پاس # کوششیں باقی ہیں۔}}</translation> <translation id="9040473193163777637">کیا آپ ChromeOS کے لئے پہلے سے موجود اسکرین ریڈر، ChromeVox کو فعال کرنا چاہتے ہیں؟ اگر ایسا ہے تو والیوم کی دونوں کلیدوں کو 5 سیکنڈ کے لئے چھوئیں اور دبائے رکھیں۔</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> کے لیے پاس ورڈ کو اپ ڈیٹ کریں؟</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 3519b48f..2f766f6b 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1801,6 +1801,7 @@ <translation id="2667144577800272420"><ph name="APP_NAME" /> ilovasini standart ilova sifatida oʻrnatishni istaysizmi? Bu havola oʻzgartirilgandan keyin <ph name="APP_NAME_2" /> va <ph name="APP_NAME_3" /> ilovalari ochilmay qoladi.</translation> <translation id="2667463864537187133">Imlo tekshirgichni boshqarish</translation> <translation id="2669241540496514785"><ph name="APP_NAME" /> ochilmadi</translation> +<translation id="2669454659051515572">Bu qurilmaning barcha foydalanuvchilar yuklab olingan fayllarni koʻra oladi</translation> <translation id="2670102641511624474">“<ph name="APP_NAME" />” ilovasi Chrome sahifasini translatsiya qilmoqda.</translation> <translation id="2670403088701171361">Saytlarga vaqtinchalik xotiradagi matn yoki rasmlarni koʻrishni taqiqlash</translation> <translation id="2670429602441959756">Bu sahifada VR qurilmasida ishlamaydigan kontent bor. VR rejimidan chiqilmoqda...</translation> @@ -2134,7 +2135,7 @@ <translation id="2966937470348689686">Android sozlamalarini boshqarish</translation> <translation id="2967926928600500959">Bu qoidalarga mos keluvchi URL manzillar maxsus brauzerda majburan ochiladi.</translation> <translation id="2972581237482394796">&Qaytarish</translation> -<translation id="2973324205039581528">Sayt ovozini o‘chirish</translation> +<translation id="2973324205039581528">Saytni ovozsiz qilish</translation> <translation id="2973537811036309675">Yon panel</translation> <translation id="2976557544729462544">Ayrim qurilmalar xatosiz ishlashi uchun maʼlumotlarga kirishni cheklashni faolsizlantirish kerak</translation> <translation id="2977480621796371840">Guruhdan chiqarish</translation> @@ -2168,6 +2169,7 @@ <translation id="3008232374986381779"><ph name="DEVICE_TYPE" /> qurilmangizda Linux uskunalar, tahrirchilar va IDE qobiqlarini ishga tushiring. <ph name="LINK_BEGIN" />Batafsil<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Ruxsatlarni qasliga qaytarish</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> domeni bugunoq Wi-Fi tarmoqqa ulanib, yangilanishni yuklab olishni talab qilmoqda. Yoki trafik hisoblanadigan ulanishdan foydalanib yuklab olish mumkin.}other{<ph name="MANAGER" /> Wi-Fi tarmoqqa ulanib, yangilanishni oxirgi muddatdan oldin yuklab olishni talab qilmoqda. Yoki trafik hisoblanadigan ulanishdan foydalanib yuklab olish mumkin.}}</translation> +<translation id="3009178788565917040">Chiqarish</translation> <translation id="3009300415590184725">Haqiqatan ham mobil ma’lumot xizmatini sozlash jarayonini bekor qilmoqchimisiz?</translation> <translation id="3009779501245596802">Indekslangan ma’lumot omborlari</translation> <translation id="3010279545267083280">Parol o‘chirildi</translation> @@ -3555,6 +3557,7 @@ <translation id="4377058670119819762">Toʻlgan darchalar panelini oʻng va chapga aylantirish imkonini beradi.</translation> <translation id="4377363674125277448">Server sertifikatida xatolik yuz berdi.</translation> <translation id="4378154925671717803">Telefon</translation> +<translation id="4378308539633073595">Oldinga varaqlash</translation> <translation id="4378551569595875038">Ulanmoqda...</translation> <translation id="4378556263712303865">Qurilma so‘rovi</translation> <translation id="4379281552162875326">“<ph name="APP_NAME" />” oʻchirib tashlansinmi?</translation> @@ -3932,7 +3935,7 @@ <translation id="4742334355511750246">Rasmlarni chiqarish taqiqlangan</translation> <translation id="4742970037960872810">Belgilovni olib tashlash</translation> <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Ilovalarni yangilash haqida axborot<ph name="END_LINK" /></translation> -<translation id="4744981231093950366">{NUM_TABS,plural, =1{Sayt ovozini yoqish}other{Saytlar ovozini yoqish}}</translation> +<translation id="4744981231093950366">{NUM_TABS,plural, =1{Sayt ovozini chiqarish}other{Saytlar ovozini chiqarish}}</translation> <translation id="474609389162964566">Asistentdan “Ok Google” deb aytib foydalaning</translation> <translation id="4746351372139058112">Xabarlar</translation> <translation id="4748783296226936791">Saytlar odatda notanish klaviatura, oʻyin joystiklari va hokazo qurilmalardan foydalanish uchun HID qurilmalarga ulanadi</translation> @@ -7358,6 +7361,7 @@ <translation id="8120505434908124087">eSIM profilini oʻrnatish</translation> <translation id="812260729110117038">Reklama beruvchilar va noshirlar sizni internetda kuzatmasdan reklamalar samaradorligini oʻrganishlari mumkin.</translation> <translation id="81238879832906896">Moychechak</translation> +<translation id="8123975449645947908">Orqaga varaqlash</translation> <translation id="8124313775439841391">Boshqariladigan ONC</translation> <translation id="813082847718468539">Sayt haqidagi ma’lumotlar</translation> <translation id="8131740175452115882">Tasdiqlash</translation> @@ -8274,6 +8278,7 @@ <translation id="9037640663275993951">Qurilmaga ruxsat berilmagan</translation> <translation id="9037818663270399707">Saytga ulanish butunlay xavfsiz emas</translation> <translation id="9037965129289936994">Asl tilda ko‘rsatish</translation> +<translation id="9038489124413477075">Nomsiz jild</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Yana bir marta urinishingiz mumkin.}other{Yana # marta urinishingiz mumkin.}}</translation> <translation id="9040473193163777637">ChromeOS tizimidagi ichki oʻrnatilgan ekrandan oʻqish vositasi – ChromeVox faollashtirilsinmi? Uni yoqish uchun ikkala tovush tugmasini birga besh soniya bosib turing</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> uchun parol yangilansinmi?</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index af6d52c..f62fdb12 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1813,6 +1813,7 @@ <translation id="2667144577800272420">Những ứng dụng khác cũng được đặt để mở các đường liên kết giống như <ph name="APP_NAME" />. Thao tác này sẽ ngăn <ph name="APP_NAME_2" /> và <ph name="APP_NAME_3" /> mở những đường liên kết được hỗ trợ.</translation> <translation id="2667463864537187133">Quản lý kiểm tra lỗi chính tả</translation> <translation id="2669241540496514785">Không mở được <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Bất cứ ai sử dụng thiết bị này đều có thể xem các tệp đã tải xuống</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> đang chia sẻ một thẻ trong Chrome.</translation> <translation id="2670403088701171361">Không cho phép trang web xem văn bản hoặc hình ảnh trên bảng nhớ tạm của bạn</translation> <translation id="2670429602441959756">Trang này có các tính năng chưa được hỗ trợ ở chế độ VR. Đang thoát...</translation> @@ -2180,6 +2181,7 @@ <translation id="3008232374986381779">Chạy các công cụ, trình chỉnh sửa và môi trường phát triển được tích hợp (IDE) của Linux trên <ph name="DEVICE_TYPE" /> của bạn. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Đặt lại quyền</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> yêu cầu bạn kết nối Wi-Fi ngay hôm nay để tải bản cập nhật xuống, hoặc tải xuống qua một đường kết nối có đo lượng dữ liệu (cước phí có thể phát sinh).}other{<ph name="MANAGER" /> yêu cầu bạn kết nối Wi-Fi và tải bản cập nhật xuống trước thời hạn, hoặc tải xuống qua một đường kết nối có đo lượng dữ liệu (cước phí có thể phát sinh).}}</translation> +<translation id="3009178788565917040">Thiết bị ra</translation> <translation id="3009300415590184725">Bạn có chắc chắn muốn hủy quá trình thiết lập dịch vụ dữ liệu di động không?</translation> <translation id="3009779501245596802">Cơ sở dữ liệu được lập chỉ mục</translation> <translation id="3010279545267083280">Đã xóa mật khẩu</translation> @@ -3567,6 +3569,7 @@ <translation id="4377058670119819762">Cho phép dải thẻ cuộn sang trái hoặc sang phải khi đầy.</translation> <translation id="4377363674125277448">Đã xảy ra sự cố với chứng chỉ của máy chủ.</translation> <translation id="4378154925671717803">Điện thoại</translation> +<translation id="4378308539633073595">Cuộn tiến</translation> <translation id="4378551569595875038">Đang kết nối…</translation> <translation id="4378556263712303865">Yêu cầu thiết bị</translation> <translation id="4379281552162875326">Gỡ cài đặt "<ph name="APP_NAME" />"?</translation> @@ -7371,6 +7374,7 @@ <translation id="8120505434908124087">Cài đặt hồ sơ eSIM</translation> <translation id="812260729110117038">Các nhà quảng cáo và nhà xuất bản có thể nghiên cứu tính hiệu quả của quảng cáo mà không cần theo dõi bạn trên các trang web.</translation> <translation id="81238879832906896">Hoa màu vàng và trắng</translation> +<translation id="8123975449645947908">Cuộn lùi</translation> <translation id="8124313775439841391">ONC được quản lý</translation> <translation id="813082847718468539">Xem thông tin trang web</translation> <translation id="8131740175452115882">Xác nhận</translation> @@ -8287,6 +8291,7 @@ <translation id="9037640663275993951">Thiết bị không được phép</translation> <translation id="9037818663270399707">Đường kết nối của bạn không ở chế độ riêng tư đối với một số lưu lượng truy cập mạng</translation> <translation id="9037965129289936994">Hiển thị văn bản gốc</translation> +<translation id="9038489124413477075">Thư mục không có tên</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Bạn còn một lần thử.}other{Bạn còn # lần thử.}}</translation> <translation id="9040473193163777637">Bạn có muốn kích hoạt ChromeVox (trình đọc màn hình tích hợp cho ChromeOS) không? Nếu có, hãy nhấn và giữ cả hai phím âm lượng trong 5 giây.</translation> <translation id="9040661932550800571">Bạn có muốn cập nhật mật khẩu cho <ph name="ORIGIN" /> không?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 0dcf5e7..3a34c5e5 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1790,6 +1790,7 @@ <translation id="2667144577800272420">其他应用已设为与<ph name="APP_NAME" />打开同样的链接。此操作会阻止<ph name="APP_NAME_2" />和<ph name="APP_NAME_3" />打开受支持的链接。</translation> <translation id="2667463864537187133">管理拼写检查</translation> <translation id="2669241540496514785">无法打开 <ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">任何使用此设备的用户都能看到已下载的文件</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> 正在共享 Chrome 标签页。</translation> <translation id="2670403088701171361">不允许网站查看您剪贴板中的文字或图片</translation> <translation id="2670429602441959756">此网页包含尚不受虚拟现实模式支持的功能。即将退出…</translation> @@ -2122,7 +2123,7 @@ <translation id="2966937470348689686">管理 Android 偏好设置</translation> <translation id="2967926928600500959">与这些规则匹配的网址将被强制在一款特定浏览器中打开。</translation> <translation id="2972581237482394796">重做(&R)</translation> -<translation id="2973324205039581528">将单个网站静音</translation> +<translation id="2973324205039581528">将网站静音</translation> <translation id="2973537811036309675">侧边栏</translation> <translation id="2976557544729462544">某些设备需要停用数据访问保护设置才能正常运行或马力全开。</translation> <translation id="2977480621796371840">从组中移除</translation> @@ -2156,6 +2157,7 @@ <translation id="3008232374986381779">在您的 <ph name="DEVICE_TYPE" /> 上运行 Linux 工具、编辑器和 IDE。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation> <translation id="3008272652534848354">重置权限</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> 要求您今天连接到 Wi-Fi 并下载更新。您也可使用按流量计费的网络连接进行下载(可能需要支付相应费用)。}other{<ph name="MANAGER" /> 要求您在截止日期前连接到 Wi-Fi 并下载更新。您也可使用按流量计费的网络连接进行下载(可能需要支付相应费用)。}}</translation> +<translation id="3009178788565917040">输出</translation> <translation id="3009300415590184725">确定要取消移动数据服务安装过程吗?</translation> <translation id="3009779501245596802">索引型数据库</translation> <translation id="3010279545267083280">密码已删除</translation> @@ -3540,6 +3542,7 @@ <translation id="4377058670119819762">如果您启用此实验,标签栏可以在填满后左右滚动。</translation> <translation id="4377363674125277448">服务器的证书存在问题。</translation> <translation id="4378154925671717803">电话机</translation> +<translation id="4378308539633073595">向前滚动</translation> <translation id="4378551569595875038">正在连接…</translation> <translation id="4378556263712303865">设备申请</translation> <translation id="4379281552162875326">卸载“<ph name="APP_NAME" />”?</translation> @@ -7339,6 +7342,7 @@ <translation id="8120505434908124087">安装 eSIM 卡配置文件</translation> <translation id="812260729110117038">广告主和发布商可通过一种不会对您进行跨网站跟踪的方式研究广告的效果。</translation> <translation id="81238879832906896">黄色和白色花朵</translation> +<translation id="8123975449645947908">向后滚动</translation> <translation id="8124313775439841391">受管理的 ONC</translation> <translation id="813082847718468539">查看网站信息</translation> <translation id="8131740175452115882">确认</translation> @@ -8255,6 +8259,7 @@ <translation id="9037640663275993951">不允许此设备运行虚拟机</translation> <translation id="9037818663270399707">您的连接在部分网络流量中不是私密连接</translation> <translation id="9037965129289936994">显示原始网页</translation> +<translation id="9038489124413477075">未命名的文件夹</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{您还剩 1 次尝试机会。}other{您还剩 # 次尝试机会。}}</translation> <translation id="9040473193163777637">您想为 Chrome 操作系统启用 ChromeVox(内置屏幕阅读器)吗?如要启用,请同时按住两个音量键 5 秒钟。</translation> <translation id="9040661932550800571">要更新 <ph name="ORIGIN" /> 的密码吗?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index b5494cc..a7db9204 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -354,6 +354,7 @@ <translation id="1340527397989195812">透過「檔案」應用程式備份裝置中的媒體。</translation> <translation id="1343865611738742294">請授權 Linux 應用程式存取 USB 裝置。移除後,Linux 將不會記住 USB 裝置。</translation> <translation id="1343920184519992513">繼續瀏覽上次開啟的網頁並開啟某組特定網頁</translation> +<translation id="1344377983938103876">正在開啟「<ph name="URL" />」...</translation> <translation id="134589511016534552">媒體分頁亦會在「開啟的分頁」部分顯示</translation> <translation id="1346630054604077329">確認並重新啟動</translation> <translation id="1346748346194534595">向右</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">其他應用程式所設定會開啟的連結與 <ph name="APP_NAME" /> 的設定相同,這會導致「<ph name="APP_NAME_2" />」和「<ph name="APP_NAME_3" />」無法開啟支援的連結。</translation> <translation id="2667463864537187133">管理拼字檢查</translation> <translation id="2669241540496514785">無法開啟 <ph name="APP_NAME" />。</translation> +<translation id="2669454659051515572">此裝置的所有使用者都能看到已下載的檔案</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> 正在共用 Chrome 分頁。</translation> <translation id="2670403088701171361">不允許網站查看剪貼簿中的文字或圖片</translation> <translation id="2670429602441959756">此網頁包含尚未支援 VR 模式的功能。即將退出…</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779">在您的 <ph name="DEVICE_TYPE" /> 上執行 Linux 工具、編輯器和整合開發環境 (IDE)。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="3008272652534848354">重設權限</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> 要求您在今天內連接 Wi-Fi 並下載更新,或使用按用量收費連線的下載更新 (可能需支付費用)。}other{<ph name="MANAGER" /> 要求您連接 Wi-Fi 並在期限前下載更新,或使用按用量收費連線的下載更新 (可能需支付費用)。}}</translation> +<translation id="3009178788565917040">輸出</translation> <translation id="3009300415590184725">您確定要取消流動數據服務設定程序嗎?</translation> <translation id="3009779501245596802">索引數據庫</translation> <translation id="3010279545267083280">已刪除密碼</translation> @@ -3567,6 +3570,7 @@ <translation id="4377058670119819762">當分頁列滿載時可以左右捲動分頁列。</translation> <translation id="4377363674125277448">伺服器憑證有問題。</translation> <translation id="4378154925671717803">電話號碼</translation> +<translation id="4378308539633073595">向前捲動</translation> <translation id="4378551569595875038">連線中…</translation> <translation id="4378556263712303865">裝置申請</translation> <translation id="4379281552162875326">要解除安裝「<ph name="APP_NAME" />」嗎?</translation> @@ -6966,6 +6970,7 @@ <translation id="7753735457098489144">儲存空間不足,因此無法完成安裝。如要釋出空間,請刪除裝置儲存空間內的檔案。</translation> <translation id="7754347746598978109">不允許使用 JavaScript</translation> <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation> +<translation id="7755134875397410803">為協助你完成工作,當你在網站上使用 Google 助理時,系統會將該網站的網址和內容,連同你透過 Google 助理提交的資訊,一併傳送給 Google。這類資訊可能會儲存在你的 Google 帳戶中。你可以在 Chrome 設定中停用 Google 助理。<ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">您的家長可以為您解除封鎖此網站</translation> <translation id="7757592200364144203">變更裝置名稱</translation> <translation id="7757739382819740102">附近所有聯絡人都可與您分享內容。此操作需要您的核准。</translation> @@ -7369,6 +7374,7 @@ <translation id="8120505434908124087">安裝 eSIM 卡設定檔</translation> <translation id="812260729110117038">廣告客戶和發佈者無需追蹤您的網站瀏覽記錄,就能瞭解廣告成效。</translation> <translation id="81238879832906896">黃色和白色的花</translation> +<translation id="8123975449645947908">向後捲動</translation> <translation id="8124313775439841391">管理 ONC</translation> <translation id="813082847718468539">檢視網站資料</translation> <translation id="8131740175452115882">確定</translation> @@ -8285,6 +8291,7 @@ <translation id="9037640663275993951">不允許使用裝置</translation> <translation id="9037818663270399707">您的連線有部分網絡流量不屬於私人連線</translation> <translation id="9037965129289936994">顯示原文</translation> +<translation id="9038489124413477075">未命名的資料夾</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{您還可再試 1 次。}other{您還可再試 # 次。}}</translation> <translation id="9040473193163777637">係咪要啟動 Chrome OS 內置嘅螢幕閱讀器 ChromeVox?係嘅話就請同時㩒住校高同校低音量鍵五秒。</translation> <translation id="9040661932550800571">要更新 <ph name="ORIGIN" /> 的密碼嗎?</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 76b95c9..b370ed6 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -352,6 +352,7 @@ <translation id="1340527397989195812">使用「檔案」應用程式備份裝置上的媒體。</translation> <translation id="1343865611738742294">請授權 Linux 應用程式存取 USB 裝置。移除後,Linux 將不會記住這部 USB 裝置。</translation> <translation id="1343920184519992513">繼續瀏覽上次開啟的網頁並開啟某組特定網頁</translation> +<translation id="1344377983938103876">正在開啟「<ph name="URL" />」...</translation> <translation id="134589511016534552">媒體分頁也會顯示在「開啟的分頁」部分</translation> <translation id="1346630054604077329">確認並重新啟動</translation> <translation id="1346748346194534595">向右</translation> @@ -1798,6 +1799,7 @@ <translation id="2667144577800272420">其他應用程式所設定會開啟的連結與「<ph name="APP_NAME" />」的設定相同,這會導致「<ph name="APP_NAME_2" />」和「<ph name="APP_NAME_3" />」無法開啟支援的連結。</translation> <translation id="2667463864537187133">管理拼字檢查</translation> <translation id="2669241540496514785">無法開啟「<ph name="APP_NAME" />」</translation> +<translation id="2669454659051515572">這部裝置的任何使用者都可以看到已下載的檔案</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> 正在共用 Chrome 分頁。</translation> <translation id="2670403088701171361">禁止網站查看剪貼簿中的文字或圖片</translation> <translation id="2670429602441959756">這個網頁所含的功能目前與 VR 不相容。正在結束 VR 模式...</translation> @@ -2165,6 +2167,7 @@ <translation id="3008232374986381779">在 <ph name="DEVICE_TYPE" /> 上執行 Linux 工具、編輯器和 IDE。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="3008272652534848354">重設權限</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> 要求你在今天內透過 Wi-Fi 連線下載更新,或使用計量付費連線下載更新 (可能要支付流量費用)。}other{<ph name="MANAGER" /> 要求你在期限內透過 Wi-Fi 連線下載更新,或使用計量付費連線下載更新 (可能要支付流量費用)。}}</translation> +<translation id="3009178788565917040">輸出</translation> <translation id="3009300415590184725">你確定要取消行動數據服務設定程序嗎?</translation> <translation id="3009779501245596802">索引資料庫</translation> <translation id="3010279545267083280">已刪除密碼</translation> @@ -3551,6 +3554,7 @@ <translation id="4377058670119819762">當分頁列滿載時可以左右捲動分頁列。</translation> <translation id="4377363674125277448">伺服器憑證有問題。</translation> <translation id="4378154925671717803">電話</translation> +<translation id="4378308539633073595">向前捲動</translation> <translation id="4378551569595875038">連線中…</translation> <translation id="4378556263712303865">裝置申請</translation> <translation id="4379281552162875326">要解除安裝「<ph name="APP_NAME" />」嗎?</translation> @@ -6948,6 +6952,7 @@ <translation id="7753735457098489144">儲存空間不足,無法安裝。如要釋出空間,請刪除裝置儲存空間中的檔案。</translation> <translation id="7754347746598978109">不得使用 JavaScript</translation> <translation id="7754704193130578113">下載每個檔案前先詢問儲存位置</translation> +<translation id="7755134875397410803">為協助你完成工作,當你在網站上使用 Google 助理時,系統會將該網站的網址和內容,連同你透過 Google 助理提交的資訊,一併傳送給 Google。這類資訊可能會儲存在你的 Google 帳戶中。你可以在 Chrome 設定中停用 Google 助理。<ph name="LEARN_MORE" /></translation> <translation id="7755287808199759310">你的家長可以為你解除封鎖這個網站</translation> <translation id="7757592200364144203">變更裝置名稱</translation> <translation id="7757739382819740102">附近的聯絡人都能與你分享內容。必須經過核准。</translation> @@ -7351,6 +7356,7 @@ <translation id="8120505434908124087">安裝 eSIM 卡設定檔</translation> <translation id="812260729110117038">廣告客戶和發布商不必追蹤你的網站瀏覽記錄,就能瞭解自身的廣告成效。</translation> <translation id="81238879832906896">黃色和白色花朵</translation> +<translation id="8123975449645947908">向後捲動</translation> <translation id="8124313775439841391">管理化 ONC</translation> <translation id="813082847718468539">查看網站資訊</translation> <translation id="8131740175452115882">確認</translation> @@ -8267,6 +8273,7 @@ <translation id="9037640663275993951">不允許使用裝置</translation> <translation id="9037818663270399707">你的連線有部分網路流量不屬於私人連線</translation> <translation id="9037965129289936994">顯示原文</translation> +<translation id="9038489124413477075">未命名的資料夾</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{你還可以再試 1 次。}other{你還可以再試 # 次。}}</translation> <translation id="9040473193163777637">是否要啟動 Chrome OS 內建的螢幕閱讀器 ChromeVox?如要啟動,請同時按住高低音量調整鍵五秒。</translation> <translation id="9040661932550800571">要更新 <ph name="ORIGIN" /> 的密碼嗎?</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 691d97f..32e606d 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -1259,6 +1259,7 @@ <translation id="2159488579268505102">USB-C</translation> <translation id="216169395504480358">Engeza i-Wi-Fi...</translation> <translation id="2162155940152307086">Ukuvumelanisa kuzoqala uma ushiya izilungiselelo zokuvumelanisa</translation> +<translation id="2162705204091149050">Funda ulwazi mayelana nebhrawuza yakho, i-OS, idivayisi, isofthiwe efakiwe namafayela</translation> <translation id="2162926944953615670">Awekho amaphrofayela we-SIM atholakalayo</translation> <translation id="2163470535490402084">Sicela uxhume ku-inthanethi ukuze ungene ngemvume ku-<ph name="DEVICE_TYPE" /> yakho.</translation> <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, kanye neswishi e-1 ngaphezulu</translation> @@ -1813,6 +1814,7 @@ <translation id="2667144577800272420">Amanye ama-app asethwe ukuthi avule amalinki afanayo njenge-<ph name="APP_NAME" />. Lokhu kuzokhubaza i-<ph name="APP_NAME_2" /> ne-<ph name="APP_NAME_3" /> ekuvuleni amalinki wosekelo.</translation> <translation id="2667463864537187133">Phatha ukuhlola ukupela</translation> <translation id="2669241540496514785">Ayikwazanga ukuvula i-<ph name="APP_NAME" /></translation> +<translation id="2669454659051515572">Noma ubani osebenzisa le divayisi angabona amafayela adawunilodiwe</translation> <translation id="2670102641511624474"><ph name="APP_NAME" /> yabelana ngethebhu ye-Chrome.</translation> <translation id="2670403088701171361">Ungavumeli amasayithi abone umbhalo noma izithombe ezisebhodini lokunamathisela</translation> <translation id="2670429602441959756">Leli khasi liqukethe izici ezingasekelwa ku-VR. Iyaphuma...</translation> @@ -2180,6 +2182,7 @@ <translation id="3008232374986381779">Qalisa amathuluzi e-Linux, abahleli, nama-IDE ku-<ph name="DEVICE_TYPE" /> yakho. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation> <translation id="3008272652534848354">Setha kabusha izimvume</translation> <translation id="3008694618228964140">{NUM_DAYS,plural, =1{I-<ph name="MANAGER" /> idinga ukuthi uxhumeke ku-Wi-Fi namuhla ukuze ulande isibuyekezo. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}one{I-<ph name="MANAGER" /> idinga ukuthi uxhume ku-Wi-Fi bese ulanda isibuyekezo ngaphambi kwesikhathi esimisiwe. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}other{I-<ph name="MANAGER" /> idinga ukuthi uxhume ku-Wi-Fi bese ulanda isibuyekezo ngaphambi kwesikhathi esimisiwe. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}}</translation> +<translation id="3009178788565917040">Okukhiphayo</translation> <translation id="3009300415590184725">Ingabe uqinisekile ukuthi ufuna ukukhansela inqubo yokusetha yesevisi yedatha yeselula?</translation> <translation id="3009779501245596802">Izizinda zemininingwane ezikhonjiwe</translation> <translation id="3010279545267083280">Iphasiwedi isusiwe</translation> @@ -2510,6 +2513,7 @@ <translation id="3359256513598016054">Izithiyo zenqubomgomo yesitifiketi</translation> <translation id="3360297538363969800">Ukuphrinta kwehlulekile. Sicela uhlole iphrinta yakho uphinde uzame futhi.</translation> <translation id="3361421571228286637">{COUNT,plural, =1{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}one{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}other{I-<ph name="DEVICE_NAME" /> yabelana nawe nge-<ph name="ATTACHMENTS" />.}}</translation> +<translation id="3363202073972776113">Le phrofayela entsha izophathwa inhlangano yakho. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation> <translation id="3364986687961713424">Kuvela kumlawuli wakho: <ph name="ADMIN_MESSAGE" /></translation> <translation id="3365598184818502391">Sebenzisa noma u-Ctrl noma u-Alt</translation> <translation id="3368922792935385530">Ixhunyiwe</translation> @@ -2544,6 +2548,7 @@ <translation id="339722927132407568">Misa imigqa</translation> <translation id="3399432415385675819">Izaziso zizokhutshazwa</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - okuhlanganisiwe</translation> +<translation id="3401484564516348917">Funda ulwazi mayelana nebhrawuza yakho, i-OS, idivayisi, isofthiwe efakiwe, amanani okubhalisa namafayela</translation> <translation id="3402059702184703067">{COUNT,plural, =1{iphasiwedi engu-{COUNT} igcinwe kule divayisi}one{amaphasiwedi angu-{COUNT} agcinwe kule divayisi}other{amaphasiwedi angu-{COUNT} agcinwe kule divayisi}}</translation> <translation id="3402255108239926910">Khetha isithombe</translation> <translation id="3402585168444815892">Ukubhalisa kumodi yedemo</translation> @@ -2790,6 +2795,7 @@ <translation id="3627879631695760395">Faka i-<ph name="APP" />...</translation> <translation id="3628275722731025472">Vala i-Bluetooth</translation> <translation id="3629631988386925734">Faka iphasiwedi yakho ukuze unike amandla i-Smart Lock. Ngesikhathi esilandelayo, ifoni yakho izovula i-<ph name="DEVICE_TYPE" />yakho. ungavala i-Smart Lock kuzilungiselelo.</translation> +<translation id="3629664892718440872">Khumbula lokhu kukhetha</translation> <translation id="3630132874740063857">Ifoni yakho</translation> <translation id="3630995161997703415">Engeza leli sayithi kushelufu lakho ukuze ulisebenzise noma kunini</translation> <translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Ukuvumela amadivayisi e-ChromeOS ukuthi athumele imibiko ezenzakalelayo kusisiza sikubeke phambili lokho okufanele sikulungise futhi sikuthuthukise ku-ChromeOS. Le mibiko ingabandakanya izinto ezifana nokuthi uma i-ChromeOS iphahlazeka, yiziphi izakhi ozisebenzisayo nokuthi ingakanani inkumbulo oyisebenzisayo.<ph name="END_PARAGRAPH1" /> @@ -3278,6 +3284,7 @@ <ph name="EXTENSION_FILE" /></translation> <translation id="408721682677442104">Ulawulo olugcwele lwamadivayisi e-MIDI lwenqatshiwe</translation> +<translation id="4087328411748538168">Bonisa kwesokudla</translation> <translation id="4089235344645910861">Izilungiselelo zilondoloziwe. Ukuvumelanisa kuqalisiwe.</translation> <translation id="4090103403438682346">Nika amandla ukufinyelela okuqinisekisiwe</translation> <translation id="4090947011087001172">Setha kabusha imvume yesayithi le-<ph name="SITE" />?</translation> @@ -3562,6 +3569,7 @@ <translation id="4377058670119819762">Inika amandla umugqa wamathebhu ukuskrola ngakwesokunxele nangakwesokudla lapho ugcwele.</translation> <translation id="4377363674125277448">Kube nenkinga ngesitifiketi seseva.</translation> <translation id="4378154925671717803">Ifoni</translation> +<translation id="4378308539633073595">Skrolela phambili</translation> <translation id="4378551569595875038">Iyaxhuma...</translation> <translation id="4378556263712303865">Ukudingeka kwedivayisi</translation> <translation id="4379281552162875326">Khipha i-"<ph name="APP_NAME" />"?</translation> @@ -3971,6 +3979,7 @@ <translation id="4779766576531456629">Qamba kabusha inethiwekhi ye-eSIM Cellular</translation> <translation id="4780321648949301421">Londoloza ikhasi njenge...</translation> <translation id="4781443161433589743">Usekuvikelekeni okunamandla kakhulu kwe-Chrome</translation> +<translation id="4782861709165039462">Wonke amamakrofoni akhutshazwe ukushintsha kwehadiwe yemishini</translation> <translation id="4785719467058219317">Usebenzisa ukhiye wokuvikela ongabhalisiwe ngale webhusayithi</translation> <translation id="4785914069240823137">Khansela Ukunqampuna</translation> <translation id="4788092183367008521">Sicela uhlole ukuxhumana kwenethiwekhi yakho bese uyazama futhi.</translation> @@ -4739,6 +4748,7 @@ <translation id="5548075230008247516">Zonke izinto ziyekiswe ukukhetha, kuphunyiwe kumodi yokukhetha.</translation> <translation id="5548159762883465903">{NUM_OTHER_TABS,plural, =0{I-"<ph name="TAB_TITLE" />"}=1{I-"<ph name="TAB_TITLE" />" nenye ithebhu engu-1}one{I-"<ph name="TAB_TITLE" />" namanye amathebhu angu-#}other{I-"<ph name="TAB_TITLE" />" namanye amathebhu angu-#}}</translation> <translation id="5548606607480005320">Ukuhlolwa kokuphepha</translation> +<translation id="5548644592758170183">Bonisa kwesobunxele</translation> <translation id="554903022911579950">I-Kerberos</translation> <translation id="5551573675707792127">Ikhibhodi nokokufaka kombhalo</translation> <translation id="5553089923092577885">Ukufaka kumephu kwenqubomgomo yesitifiketi</translation> @@ -7367,6 +7377,7 @@ <translation id="8120505434908124087">Faka iphrofayela le-eSIM</translation> <translation id="812260729110117038">Abakhangisi nabashicileli bangahlola ukusebenza kwezikhangiso ngendlela engakulandeleli kuwo wonke amasayithi.</translation> <translation id="81238879832906896">Imbali eliphuzi nemhlophe</translation> +<translation id="8123975449645947908">Skrolela emuva</translation> <translation id="8124313775439841391">I-ONC ephethwe</translation> <translation id="813082847718468539">Buka ulwazi lwesayithi</translation> <translation id="8131740175452115882">Qinisekisa</translation> @@ -8223,6 +8234,7 @@ <translation id="8980345560318123814">Imibiko yempendulo</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Ikhubazekile</translation> <translation id="8981825781894055334">Iphepha seliyaphela</translation> +<translation id="8983018820925880511">Le phrofayela entsha izophathwa ngu-<ph name="DOMAIN" />. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation> <translation id="8983632908660087688">I-<ph name="ORIGIN" /> ingahlela i-<ph name="FILENAME" /></translation> <translation id="8984694057134206124">Uzobonakala kuwo wonke umuntu imizuzu engu<ph name="MINUTES" />. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation> <translation id="8985191021574400965">Siyakwamukela ku-Steam ye-Chromebook</translation> @@ -8283,6 +8295,7 @@ <translation id="9037640663275993951">Idivayisi ayivumelekile</translation> <translation id="9037818663270399707">Ukuxhuma kwakho akusi yimfihlo kuyo yonke ithrafikhi yenethiwekhi</translation> <translation id="9037965129289936994">Bonisa okwangempela</translation> +<translation id="9038489124413477075">Ifolda engenagama</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Unomzamo owodwa osele.}one{Unemizamo engu-# esele.}other{Unemizamo engu-# esele.}}</translation> <translation id="9040473193163777637">Ingabe ufuna ukwenza i-ChromeVox isebenze, isifundi sesikrini esakhelwe phakathi se-ChromeOS? Uma kunjalo, cindezela futhi ubambe bobabili okhiye bevolumu imizuzwana emihlanu.</translation> <translation id="9040661932550800571">Buyekeza iphasiwedi ye-<ph name="ORIGIN" />?</translation> @@ -8319,6 +8332,7 @@ <translation id="9075413375877487220">Lesi sandiso asithenjwa Ukuphequlula Ngokuphepha Okugqamile.</translation> <translation id="9076283476770535406">Ingahle ibe nokuqukethwe okukhulile</translation> <translation id="9076523132036239772">Uxolo, i-imeyili yakho noma iphasiwedi ayikwazanga ukuqinisekiswa. Zama ukuxhumeka kunethiwekhi kuqala.</translation> +<translation id="9076821103818989526">Iphaneli eseceleni</translation> <translation id="9076977315710973122">Ukwabelana kwe-SMB</translation> <translation id="9078193189520575214">Isebenzisa izinguquko...</translation> <translation id="9078316009970372699">Khubaza i-Tethering Esheshayo</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index 49e2488..b4d880f1 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -12,7 +12,7 @@ <translation id="110877069173485804">Este es tu navegador Chrome</translation> <translation id="1125124144982679672">¿Qué perfil de Chrome quieres usar?</translation> <translation id="1142745911746664600">No se puede actualizar Chrome</translation> -<translation id="1152920704813762236">Información de Chrome OS</translation> +<translation id="1152920704813762236">Información de ChromeOS</translation> <translation id="1154147086299354128">&Abrir en Chrome</translation> <translation id="1178374936842835197">Si no se muestra alguno de los ajustes en esta página, mira en la <ph name="LINK_BEGIN" /> configuración de ChromeOS Flex<ph name="LINK_END" /></translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb index b64f5ca..9cc2c1a 100644 --- a/chrome/app/resources/google_chrome_strings_te.xtb +++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -72,7 +72,7 @@ <translation id="2309047409763057870">ఇది Google Chrome యొక్క రెండవ ఇనస్టలేషన్. దీన్ని మీ డిఫాల్ట్ బ్రౌజర్గా చేయడం సాధ్యపడదు.</translation> <translation id="2345992953227471816">ఈ ఎక్స్టెన్షన్లు మాల్వేర్ను కలిగి ఉన్నట్టుగా Chrome కనుగొన్నది:</translation> <translation id="2348335408836342058">ఈ సైట్ కోసం మీ కెమెరా మరియు మైక్రోఫోన్ను యాక్సెస్ చేయడానికి Chromeకు అనుమతి అవసరం</translation> -<translation id="234869673307233423">Chrome మీ పాస్వర్డ్లను తనిఖీ చేయలేకపోయింది. తర్వాత మళ్లీ ట్రై చేయండి.</translation> +<translation id="234869673307233423">Chrome మీ పాస్వర్డ్లను చెక్ చేయలేకపోయింది. తర్వాత మళ్లీ ట్రై చేయండి.</translation> <translation id="235650106824528204">ఈ ప్రొఫైల్ను ఉపయోగిస్తున్నప్పుడు జెనరేట్ అయిన ఏదైనా Chrome డేటాను (బుక్మార్క్లు, హిస్టరీ, పాస్వర్డ్లు, ఇంకా ఇతర సెట్టింగ్లు వంటివి క్రియేట్ చేయడం) వర్క్ ప్రొఫైల్ అడ్మినిస్ట్రేటర్ తీసివేయవచ్చు. <ph name="LEARN_MORE" /></translation> <translation id="2359808026110333948">కొనసాగించు</translation> <translation id="2401189691232800402">ChromeOS సిస్టమ్</translation> @@ -178,7 +178,7 @@ <translation id="4334294535648607276">డౌన్లోడ్ పూర్తయింది.</translation> <translation id="4335235004908507846">డేటా ఉల్లంఘనలు, చెడు ఎక్స్టెన్షన్లు మొదలైన వాటి నుండి మిమ్మల్ని సురక్షితంగా ఉంచడంలో Chrome సహాయపడగలదు</translation> <translation id="4343195214584226067">Chromeకు <ph name="EXTENSION_NAME" /> జోడించబడింది</translation> -<translation id="4384570495110188418">మీరు సైన్ ఇన్ చేయలేదు కాబట్టి Chrome మీ పాస్వర్డ్లను తనిఖీ చేయలేదు</translation> +<translation id="4384570495110188418">మీరు సైన్ ఇన్ చేయలేదు కాబట్టి Chrome మీ పాస్వర్డ్లను చెక్ చేయలేదు</translation> <translation id="4427306783828095590">ఫిషింగ్, అలాగే మాల్వేర్ను బ్లాక్ చేయడానికి మెరుగుపరచిన రక్షణ మరింత చేయగలదు</translation> <translation id="4450664632294415862">Chrome - నెట్వర్క్ సైన్ ఇన్ - <ph name="PAGE_TITLE" /></translation> <translation id="4458462641685292929">Google Chromeలో మరొక వ్యవస్థాపన జరుగుతోంది. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి.</translation> @@ -321,7 +321,7 @@ <translation id="7649070708921625228">సహాయం</translation> <translation id="7651907282515937834">Chrome ఎంటర్ప్రైజ్ లోగో</translation> <translation id="7655455401911432608">మీ బ్రౌజింగ్ హిస్టరీ, ఈ పరికరంలో Chromeను ఉపయోగించి మీరు సందర్శించిన సైట్ల రికార్డ్.</translation> -<translation id="7747138024166251722">ఇన్స్టాలర్ ఒక తాత్కాలిక డైరక్టరీని సృష్టించలేకపోయింది. సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయడానికి దయచేసి ఖాళీ డిస్క్ స్థలం, అనుమతిని తనిఖీ చేయండి.</translation> +<translation id="7747138024166251722">ఇన్స్టాలర్ ఒక తాత్కాలిక డైరక్టరీని సృష్టించలేకపోయింది. సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయడానికి దయచేసి ఖాళీ డిస్క్ స్థలం, అనుమతిని చెక్ చేయండి.</translation> <translation id="7761834446675418963">Chromeను తెరిచి, బ్రౌజింగ్ను ప్రారంభించడానికి మీ పేరును క్లిక్ చేయండి.</translation> <translation id="7777080907402804672">చిత్రంలో ఉపయోగకరమైన వివరణ లేకుంటే, మీ కోసం ఒక వివరణను అందించడానికి Chrome ప్రయత్నిస్తుంది. వివరణలను క్రియేట్ చేయడానికి, చిత్రాలు Googleకు పంపబడతాయి. మీరు దీన్ని ఎప్పుడైనా సెట్టింగ్లలో ఆఫ్ చేయవచ్చు.</translation> <translation id="7781002470561365167">Google Chrome యొక్క కొత్త వెర్షన్ ఇప్పుడు అందుబాటులో ఉంది.</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 5c55028..e99255c7 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -7629,6 +7629,13 @@ ] } + if (chrome_root_store_supported) { + sources += [ + "feedback/system_logs/log_sources/chrome_root_store_log_source.cc", + "feedback/system_logs/log_sources/chrome_root_store_log_source.h", + ] + } + if (use_udev) { deps += [ "//device/udev_linux" ] }
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 0e6d33f3..44082e8d 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -79,6 +79,7 @@ #include "components/autofill/core/common/autofill_util.h" #include "components/autofill_assistant/browser/features.h" #include "components/browser_sync/browser_sync_switches.h" +#include "components/browser_ui/site_settings/android/features.h" #include "components/browsing_data/core/features.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/flag_descriptions.h" @@ -7512,6 +7513,12 @@ "OverridePrivacySandboxSettingsLocalTesting," "SharedStorageAPI")}, +#if BUILDFLAG(IS_ANDROID) + {"site-data-improvements", flag_descriptions::kSiteDataImprovementsName, + flag_descriptions::kSiteDataImprovementsDescription, kOsAndroid, + FEATURE_VALUE_TYPE(browser_ui::kSiteDataImprovements)}, +#endif // BUILDFLAG(IS_ANDROID) + {"animated-image-resume", flag_descriptions::kAnimatedImageResumeName, flag_descriptions::kAnimatedImageResumeDescription, kOsAll, FEATURE_VALUE_TYPE(features::kAnimatedImageResume)},
diff --git a/chrome/browser/android/examples/custom_tabs_client/src/java/org/chromium/customtabsclient/MainActivity.java b/chrome/browser/android/examples/custom_tabs_client/src/java/org/chromium/customtabsclient/MainActivity.java index 3238393..ceb64af 100644 --- a/chrome/browser/android/examples/custom_tabs_client/src/java/org/chromium/customtabsclient/MainActivity.java +++ b/chrome/browser/android/examples/custom_tabs_client/src/java/org/chromium/customtabsclient/MainActivity.java
@@ -19,7 +19,6 @@ import android.os.Handler; import android.os.Looper; import android.text.TextUtils; -import android.util.Log; import android.util.Pair; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +33,8 @@ import android.widget.Spinner; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.browser.customtabs.CustomTabsCallback; import androidx.browser.customtabs.CustomTabsClient; @@ -43,6 +44,7 @@ import com.google.android.material.button.MaterialButtonToggleGroup; +import org.chromium.base.Log; import org.chromium.customtabsclient.shared.CustomTabsHelper; import org.chromium.customtabsclient.shared.ServiceConnection; import org.chromium.customtabsclient.shared.ServiceConnectionCallback; @@ -55,7 +57,7 @@ */ public class MainActivity extends AppCompatActivity implements OnClickListener, ServiceConnectionCallback { - private static final String TAG = "CustomTabsClientExample"; + private static final String TAG = "CustomTabsClientEx"; private static final String TOOLBAR_COLOR = "#ef6c00"; private EditText mEditText; @@ -106,6 +108,15 @@ public void onNavigationEvent(int navigationEvent, Bundle extras) { Log.w(TAG, "onNavigationEvent: Code = " + navigationEvent); } + + @Override + public void extraCallback(@NonNull String callbackName, @Nullable Bundle args) { + if (callbackName.equals("onVerticalScrollEvent") && args != null) { + Log.w(TAG, + "onVerticalScrollEvent: isDirectionUp = " + + args.getBoolean("isDirectionUp")); + } + } } @Override
diff --git a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc index 371d584..0560167 100644 --- a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc +++ b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc
@@ -3123,7 +3123,7 @@ // Snap |window| to the left and store its window properties. // TODO(sammiequon): Store and check desk id and restore bounds. auto* window_state = ash::WindowState::Get(window); - const ash::WMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); + const ash::WindowSnapWMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&left_snap_event); const chromeos::WindowStateType pre_save_state_type = window_state->GetStateType();
diff --git a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc index 791fcce..0a434c99 100644 --- a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc +++ b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.cc
@@ -375,7 +375,7 @@ ArcFileSystemWatcherService::~ArcFileSystemWatcherService() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - StopWatchingFileSystem(base::DoNothing()); + StopWatchingFileSystem(); DCHECK(removable_media_watchers_.empty()); DCHECK(!myfiles_watcher_); @@ -384,52 +384,45 @@ void ArcFileSystemWatcherService::OnConnectionReady() { DCHECK_CURRENTLY_ON(BrowserThread::UI); + StopWatchingFileSystem(); StartWatchingFileSystem(); } void ArcFileSystemWatcherService::OnConnectionClosed() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - StopWatchingFileSystem(base::DoNothing()); + StopWatchingFileSystem(); } void ArcFileSystemWatcherService::StartWatchingFileSystem() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - - // Triggered SendAllMountEvents as reply to make sure that callback is - // triggered after StopWatchingFileSystem() is triggered in the - // file_task_runner. Without this synchronization, the - // StopWatchingFileSystem() might race with - // ArcVolumeMounter::RequestAllMountPoints. If RequestAllMountPoints is - // triggered before StopWatchingFileSystem, then the watcher for existing - // removable media will be accidentally removed, even though the removable - // media is still attached. This can happen if there is an attached removable - // media during startup. - StopWatchingFileSystem( - base::BindOnce(&ArcFileSystemWatcherService::TriggerSendAllMountEvents, - weak_ptr_factory_.GetWeakPtr())); - - Profile* profile = Profile::FromBrowserContext(context_); - DCHECK(!myfiles_watcher_); + + // Attach a watcher to MyFiles and trigger SendAllMountEvents(). + Profile* profile = Profile::FromBrowserContext(context_); myfiles_watcher_ = CreateAndStartFileSystemWatcher( file_manager::util::GetMyFilesFolderForProfile(profile), - base::FilePath(kAndroidMyFilesDir), base::DoNothing()); + base::FilePath(kAndroidMyFilesDir), + base::BindOnce(&ArcFileSystemWatcherService::OnMyFilesWatcherStarted, + weak_ptr_factory_.GetWeakPtr())); } -void ArcFileSystemWatcherService::StopWatchingFileSystem( - base::OnceClosure callback) { +void ArcFileSystemWatcherService::StopWatchingFileSystem() { DCHECK_CURRENTLY_ON(BrowserThread::UI); + watching_file_system_changes_ = false; + for (auto& watcher : removable_media_watchers_) { file_task_runner_->DeleteSoon(FROM_HERE, watcher.second.release()); } removable_media_watchers_.clear(); - // Trigger the callback at the end of the StopWatchingFileSystem. This is - // equivalent with DeleteSoon with a callback. - file_task_runner_->PostTaskAndReply( - FROM_HERE, - base::BindOnce([](std::unique_ptr<FileSystemWatcher> watcher) {}, - std::move(myfiles_watcher_)), - std::move(callback)); + + file_task_runner_->DeleteSoon(FROM_HERE, myfiles_watcher_.release()); +} + +void ArcFileSystemWatcherService::OnMyFilesWatcherStarted() { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + DCHECK(myfiles_watcher_); + watching_file_system_changes_ = true; + TriggerSendAllMountEvents(); } std::unique_ptr<ArcFileSystemWatcherService::FileSystemWatcher> @@ -462,6 +455,11 @@ instance->RequestMediaScan(paths); } +bool ArcFileSystemWatcherService::IsWatchingFileSystemChanges() { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + return watching_file_system_changes_; +} + void ArcFileSystemWatcherService::StartWatchingRemovableMedia( const std::string& fs_uuid, const std::string& mount_path,
diff --git a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.h b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.h index a849e45..91889aa 100644 --- a/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.h +++ b/chrome/browser/ash/arc/file_system_watcher/arc_file_system_watcher_service.h
@@ -57,17 +57,19 @@ void OnConnectionClosed() override; // ArcVolumeMounterBridge::Delegate overrides. + bool IsWatchingFileSystemChanges() override; void StartWatchingRemovableMedia(const std::string& fs_uuid, const std::string& mount_path, base::OnceClosure callback) override; - void StopWatchingRemovableMedia(const std::string& mount_path) override; private: class FileSystemWatcher; void StartWatchingFileSystem(); - void StopWatchingFileSystem(base::OnceClosure); + void StopWatchingFileSystem(); + + void OnMyFilesWatcherStarted(); void TriggerSendAllMountEvents() const; @@ -80,6 +82,8 @@ content::BrowserContext* const context_; ArcBridgeService* const arc_bridge_service_; // Owned by ArcServiceManager. + bool watching_file_system_changes_ = false; + std::unique_ptr<FileSystemWatcher> myfiles_watcher_; // A map from mount path to watcher. std::map<std::string, std::unique_ptr<FileSystemWatcher>>
diff --git a/chrome/browser/ash/crosapi/browser_manager.cc b/chrome/browser/ash/crosapi/browser_manager.cc index 0bee63e..e13131f 100644 --- a/chrome/browser/ash/crosapi/browser_manager.cc +++ b/chrome/browser/ash/crosapi/browser_manager.cc
@@ -434,12 +434,14 @@ const gfx::Rect& bounds, ui::WindowShowState show_state, int32_t active_tab_index, - const std::string& app_name) + const std::string& app_name, + int32_t restore_window_id) : urls(urls), bounds(bounds), show_state(show_state), active_tab_index(active_tab_index), - app_name(app_name) {} + app_name(app_name), + restore_window_id(restore_window_id) {} BrowserManager::RestoreFromDeskTemplate::RestoreFromDeskTemplate( RestoreFromDeskTemplate&&) = default; @@ -731,7 +733,8 @@ const gfx::Rect& bounds, const ui::WindowShowState show_state, int32_t active_tab_index, - const std::string& app_name) { + const std::string& app_name, + int32_t restore_window_id) { auto result = MaybeStart(browser_util::InitialBrowserAction( mojom::InitialBrowserAction::kDoNotOpenWindow)); // The service will not be available, return immediately. @@ -739,7 +742,7 @@ return; windows_to_restore_.emplace_back(urls, bounds, show_state, active_tab_index, - app_name); + app_name, restore_window_id); if (result == MaybeStartResult::kRunning) RestoreWindowsFromTemplate(); } @@ -1645,7 +1648,8 @@ for (const auto& data : windows_to_restore_) { crosapi::mojom::DeskTemplateStatePtr additional_state = crosapi::mojom::DeskTemplateState::New(data.urls, data.active_tab_index, - data.app_name); + data.app_name, + data.restore_window_id); crosapi::CrosapiManager::Get() ->crosapi_ash() ->desk_template_ash()
diff --git a/chrome/browser/ash/crosapi/browser_manager.h b/chrome/browser/ash/crosapi/browser_manager.h index 428e9a57..f907ab7 100644 --- a/chrome/browser/ash/crosapi/browser_manager.h +++ b/chrome/browser/ash/crosapi/browser_manager.h
@@ -203,7 +203,8 @@ const gfx::Rect& bounds, const ui::WindowShowState show_state, int32_t active_tab_index, - const std::string& app_name); + const std::string& app_name, + int32_t restore_window_id); // Initialize resources and start Lacros. This class provides two approaches // to fulfill different requirements. @@ -358,7 +359,8 @@ const gfx::Rect& bounds, ui::WindowShowState show_state, int32_t active_tab_index, - const std::string& app_name); + const std::string& app_name, + int32_t restore_window_id); RestoreFromDeskTemplate(const RestoreFromDeskTemplate&) = delete; RestoreFromDeskTemplate& operator=(const RestoreFromDeskTemplate&) = delete; RestoreFromDeskTemplate(RestoreFromDeskTemplate&&); @@ -370,6 +372,7 @@ int32_t active_tab_index; // An non-empty |app_name| indicates that it's an app type browser window. std::string app_name; + int32_t restore_window_id; }; // Returns true if the binary is ready to launch or already launched.
diff --git a/chrome/browser/ash/login/enrollment/enrollment_screen_browsertest.cc b/chrome/browser/ash/login/enrollment/enrollment_screen_browsertest.cc index 283ae78..33b98841 100644 --- a/chrome/browser/ash/login/enrollment/enrollment_screen_browsertest.cc +++ b/chrome/browser/ash/login/enrollment/enrollment_screen_browsertest.cc
@@ -337,8 +337,10 @@ } }; +// TODO(crbug.com/1344492): Consistent failures, unable to cleanly revert +// culprit CL. IN_PROC_BROWSER_TEST_F(EnrollmentScreenHandsOffTest, - SkipEnrollmentCompleteScreen) { + DISABLED_SkipEnrollmentCompleteScreen) { enrollment_ui_.SetExitHandler(); enrollment_screen()->OnDeviceAttributeUpdatePermission(false /* granted */); EnrollmentScreen::Result screen_result = enrollment_ui_.WaitForScreenExit();
diff --git a/chrome/browser/ash/login/lock/screen_locker.cc b/chrome/browser/ash/login/lock/screen_locker.cc index 3a85c79..a6c2257 100644 --- a/chrome/browser/ash/login/lock/screen_locker.cc +++ b/chrome/browser/ash/login/lock/screen_locker.cc
@@ -76,6 +76,10 @@ #include "ui/gfx/image/image.h" #include "url/gurl.h" +// TODO(b/228873153): Remove after figuring out the root cause of the bug +#undef ENABLED_VLOG_LEVEL +#define ENABLED_VLOG_LEVEL 1 + namespace ash { namespace { @@ -204,6 +208,7 @@ } void ScreenLocker::Init() { + VLOG(1) << "ScreenLocker::Init()"; input_method::InputMethodManager* imm = input_method::InputMethodManager::Get(); saved_ime_state_ = imm->GetActiveIMEState(); @@ -609,6 +614,7 @@ // static void ScreenLocker::Show() { + VLOG(1) << "ScreenLocker::Show()"; base::RecordAction(UserMetricsAction("ScreenLocker_Show")); DCHECK(base::CurrentUIThread::IsSet());
diff --git a/chrome/browser/ash/login/lock/views_screen_locker.cc b/chrome/browser/ash/login/lock/views_screen_locker.cc index d5d46e02..5429240 100644 --- a/chrome/browser/ash/login/lock/views_screen_locker.cc +++ b/chrome/browser/ash/login/lock/views_screen_locker.cc
@@ -40,6 +40,10 @@ #include "google_apis/gaia/gaia_auth_util.h" #include "ui/base/ime/ash/ime_keyboard.h" +// TODO(b/228873153): Remove after figuring out the root cause of the bug +#undef ENABLED_VLOG_LEVEL +#define ENABLED_VLOG_LEVEL 1 + namespace ash { ViewsScreenLocker::ViewsScreenLocker(ScreenLocker* screen_locker) @@ -58,6 +62,7 @@ } void ViewsScreenLocker::Init() { + VLOG(1) << "b/228873153 : ViewsScreenLocker::Init()"; lock_time_ = base::TimeTicks::Now(); user_selection_screen_->Init(screen_locker_->GetUsersToShow());
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc index 5f29dbc..13c5fee 100644 --- a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc +++ b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
@@ -41,7 +41,6 @@ #include "chrome/browser/web_applications/web_app_ui_manager.h" #include "chrome/browser/web_applications/web_app_utils.h" #include "chrome/common/chrome_features.h" -#include "chrome/common/pref_names.h" #include "chrome/common/webui_url_constants.h" #include "chrome/grit/generated_resources.h" #include "components/prefs/pref_service.h" @@ -635,11 +634,11 @@ // TODO(qjw): Figure out where install_results come from, decide if // installation failures need to be handled - pref_service_->SetString(::prefs::kSystemWebAppLastUpdateVersion, + pref_service_->SetString(prefs::kSystemWebAppLastUpdateVersion, CurrentVersion().GetString()); - pref_service_->SetString(::prefs::kSystemWebAppLastInstalledLocale, + pref_service_->SetString(prefs::kSystemWebAppLastInstalledLocale, CurrentLocale()); - pref_service_->SetInteger(::prefs::kSystemWebAppInstallFailureCount, 0); + pref_service_->SetInteger(prefs::kSystemWebAppInstallFailureCount, 0); // Report install duration only if the install pipeline actually installs // all the apps (e.g. on version upgrade). @@ -690,10 +689,10 @@ return true; base::Version current_installed_version( - pref_service_->GetString(::prefs::kSystemWebAppLastUpdateVersion)); + pref_service_->GetString(prefs::kSystemWebAppLastUpdateVersion)); const std::string& current_installed_locale( - pref_service_->GetString(::prefs::kSystemWebAppLastInstalledLocale)); + pref_service_->GetString(prefs::kSystemWebAppLastInstalledLocale)); // If Chrome version rolls back for some reason, ensure System Web Apps are // always in sync with Chrome version. @@ -709,32 +708,32 @@ void SystemWebAppManager::UpdateLastAttemptedInfo() { base::Version last_attempted_version( - pref_service_->GetString(::prefs::kSystemWebAppLastAttemptedVersion)); + pref_service_->GetString(prefs::kSystemWebAppLastAttemptedVersion)); const std::string& last_attempted_locale( - pref_service_->GetString(::prefs::kSystemWebAppLastAttemptedLocale)); + pref_service_->GetString(prefs::kSystemWebAppLastAttemptedLocale)); const bool is_retry = last_attempted_version.IsValid() && last_attempted_version == CurrentVersion() && last_attempted_locale == CurrentLocale(); if (!is_retry) { - pref_service_->SetInteger(::prefs::kSystemWebAppInstallFailureCount, 0); + pref_service_->SetInteger(prefs::kSystemWebAppInstallFailureCount, 0); } - pref_service_->SetString(::prefs::kSystemWebAppLastAttemptedVersion, + pref_service_->SetString(prefs::kSystemWebAppLastAttemptedVersion, CurrentVersion().GetString()); - pref_service_->SetString(::prefs::kSystemWebAppLastAttemptedLocale, + pref_service_->SetString(prefs::kSystemWebAppLastAttemptedLocale, CurrentLocale()); pref_service_->CommitPendingWrite(); } bool SystemWebAppManager::CheckAndIncrementRetryAttempts() { int installation_failures = - pref_service_->GetInteger(::prefs::kSystemWebAppInstallFailureCount); + pref_service_->GetInteger(prefs::kSystemWebAppInstallFailureCount); bool reached_retry_limit = installation_failures > kInstallFailureAttempts; if (!reached_retry_limit) { - pref_service_->SetInteger(::prefs::kSystemWebAppInstallFailureCount, + pref_service_->SetInteger(prefs::kSystemWebAppInstallFailureCount, installation_failures + 1); pref_service_->CommitPendingWrite(); return false;
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc index 5f56850..6059efb4 100644 --- a/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc +++ b/chrome/browser/ash/system_web_apps/system_web_app_manager_factory.cc
@@ -4,13 +4,13 @@ #include "chrome/browser/ash/system_web_apps/system_web_app_manager_factory.h" +#include "ash/constants/ash_pref_names.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/ash/system_web_apps/system_web_app_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/web_applications/web_app_provider.h" #include "chrome/browser/web_applications/web_app_provider_factory.h" #include "chrome/browser/web_applications/web_app_utils.h" -#include "chrome/common/pref_names.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/pref_registry/pref_registry_syncable.h" @@ -76,11 +76,11 @@ void SystemWebAppManagerFactory::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { - registry->RegisterStringPref(::prefs::kSystemWebAppLastUpdateVersion, ""); - registry->RegisterStringPref(::prefs::kSystemWebAppLastInstalledLocale, ""); - registry->RegisterStringPref(::prefs::kSystemWebAppLastAttemptedVersion, ""); - registry->RegisterStringPref(::prefs::kSystemWebAppLastAttemptedLocale, ""); - registry->RegisterIntegerPref(::prefs::kSystemWebAppInstallFailureCount, 0); + registry->RegisterStringPref(prefs::kSystemWebAppLastUpdateVersion, ""); + registry->RegisterStringPref(prefs::kSystemWebAppLastInstalledLocale, ""); + registry->RegisterStringPref(prefs::kSystemWebAppLastAttemptedVersion, ""); + registry->RegisterStringPref(prefs::kSystemWebAppLastAttemptedLocale, ""); + registry->RegisterIntegerPref(prefs::kSystemWebAppInstallFailureCount, 0); } } // namespace ash
diff --git a/chrome/browser/browsing_data/access_context_audit_database.cc b/chrome/browser/browsing_data/access_context_audit_database.cc index 70fbe5a8..f55db86 100644 --- a/chrome/browser/browsing_data/access_context_audit_database.cc +++ b/chrome/browser/browsing_data/access_context_audit_database.cc
@@ -18,6 +18,7 @@ #include "sql/meta_table.h" #include "sql/statement.h" #include "sql/transaction.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" namespace { @@ -734,7 +735,7 @@ void AccessContextAuditDatabase::RemoveStorageApiRecords( const std::set<StorageAPIType>& storage_api_types, - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher, + content::StoragePartition::StorageKeyMatcherFunction storage_key_matcher, base::Time begin, base::Time end) { sql::Transaction transaction(&db_); @@ -763,7 +764,8 @@ auto origin = url::Origin::Create(GURL(select_storage_api.ColumnString(0))); auto type = static_cast<StorageAPIType>(select_storage_api.ColumnInt(1)); if (storage_api_types.count(type) && - (!origin_matcher || origin_matcher.Run(origin))) { + (!storage_key_matcher || + storage_key_matcher.Run(blink::StorageKey(origin)))) { origin_type_pairs_for_removal.emplace_back(origin, type); } }
diff --git a/chrome/browser/browsing_data/access_context_audit_database.h b/chrome/browser/browsing_data/access_context_audit_database.h index e6d1f77..895d0387 100644 --- a/chrome/browser/browsing_data/access_context_audit_database.h +++ b/chrome/browser/browsing_data/access_context_audit_database.h
@@ -9,6 +9,7 @@ #include "base/memory/ref_counted.h" #include "base/time/time.h" #include "components/content_settings/core/browser/cookie_settings.h" +#include "content/public/browser/storage_partition.h" #include "net/cookies/canonical_cookie.h" #include "sql/database.h" #include "sql/init_status.h" @@ -134,11 +135,11 @@ const ContentSettingsForOneType& content_settings); // Remove storage API access records for which the storage type is a member of - // |storage_api_types|, the timestamp is between |begin| and |end|, and the - // |origin_matcher| callback, if set, returns true for the storage origin. + // `storage_api_types`, the timestamp is between `begin` and `end`, and the + // `storage_key_matcher` callback, if set, returns true for the storage key. void RemoveStorageApiRecords( const std::set<StorageAPIType>& storage_api_types, - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher, + content::StoragePartition::StorageKeyMatcherFunction storage_key_matcher, base::Time begin, base::Time end);
diff --git a/chrome/browser/browsing_data/access_context_audit_database_unittest.cc b/chrome/browser/browsing_data/access_context_audit_database_unittest.cc index 47512ba..66c652b4 100644 --- a/chrome/browser/browsing_data/access_context_audit_database_unittest.cc +++ b/chrome/browser/browsing_data/access_context_audit_database_unittest.cc
@@ -16,6 +16,7 @@ #include "sql/test/scoped_error_expecter.h" #include "sql/test/test_helpers.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" namespace { @@ -643,14 +644,16 @@ auto kStorageOrigin = url::Origin::Create(GURL(kManyContextsStorageAPIOrigin)); - auto origin_matcher = base::BindLambdaForTesting( - [&](const url::Origin& origin) { return origin == kStorageOrigin; }); + auto storage_key_matcher = + base::BindLambdaForTesting([&](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey(kStorageOrigin); + }); auto begin_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(5)); auto end_time = base::Time::FromDeltaSinceWindowsEpoch(base::Hours(9)); - database()->RemoveStorageApiRecords(storage_types, origin_matcher, begin_time, - end_time); + database()->RemoveStorageApiRecords(storage_types, storage_key_matcher, + begin_time, end_time); test_records.erase( std::remove_if( test_records.begin(), test_records.end(),
diff --git a/chrome/browser/browsing_data/access_context_audit_service.cc b/chrome/browser/browsing_data/access_context_audit_service.cc index 0baa966..45a1dfe 100644 --- a/chrome/browser/browsing_data/access_context_audit_service.cc +++ b/chrome/browser/browsing_data/access_context_audit_service.cc
@@ -234,9 +234,9 @@ ClearSessionOnlyRecords(); } -void AccessContextAuditService::OnOriginDataCleared( +void AccessContextAuditService::OnStorageKeyDataCleared( uint32_t remove_mask, - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher, + content::StoragePartition::StorageKeyMatcherFunction storage_key_matcher, const base::Time begin, const base::Time end) { std::set<AccessContextAuditDatabase::StorageAPIType> types; @@ -263,15 +263,15 @@ "are accounted for when checking |remove_mask|."; bool all_origin_storage_types = types.size() == 7; - if (begin == base::Time() && end == base::Time::Max() && !origin_matcher && - all_origin_storage_types) { + if (begin == base::Time() && end == base::Time::Max() && + !storage_key_matcher && all_origin_storage_types) { database_task_runner_->PostTask( FROM_HERE, base::BindOnce(&AccessContextAuditDatabase::RemoveAllRecords, database_)); return; } - if (!origin_matcher && all_origin_storage_types) { + if (!storage_key_matcher && all_origin_storage_types) { database_task_runner_->PostTask( FROM_HERE, base::BindOnce( @@ -283,7 +283,8 @@ database_task_runner_->PostTask( FROM_HERE, base::BindOnce(&AccessContextAuditDatabase::RemoveStorageApiRecords, - database_, types, std::move(origin_matcher), begin, end)); + database_, types, std::move(storage_key_matcher), begin, + end)); } void AccessContextAuditService::OnCookieChange(
diff --git a/chrome/browser/browsing_data/access_context_audit_service.h b/chrome/browser/browsing_data/access_context_audit_service.h index ac0a30d8..4bb4f20 100644 --- a/chrome/browser/browsing_data/access_context_audit_service.h +++ b/chrome/browser/browsing_data/access_context_audit_service.h
@@ -119,9 +119,9 @@ void Shutdown() override; // StoragePartition::DataRemovalObserver: - void OnOriginDataCleared( + void OnStorageKeyDataCleared( uint32_t remove_mask, - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher, + content::StoragePartition::StorageKeyMatcherFunction storage_key_matcher, const base::Time begin, const base::Time end) override;
diff --git a/chrome/browser/browsing_data/access_context_audit_service_unittest.cc b/chrome/browser/browsing_data/access_context_audit_service_unittest.cc index 436eff8b..5e4ad4e 100644 --- a/chrome/browser/browsing_data/access_context_audit_service_unittest.cc +++ b/chrome/browser/browsing_data/access_context_audit_service_unittest.cc
@@ -31,6 +31,7 @@ #include "content/public/test/test_storage_partition.h" #include "services/network/test/test_cookie_manager.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" namespace { @@ -690,9 +691,9 @@ ASSERT_EQ(0u, records.size()); } -TEST_F(AccessContextAuditServiceTest, OnOriginDataCleared) { +TEST_F(AccessContextAuditServiceTest, OnStorageKeyDataCleared) { // Check that providing parameters with varying levels of specificity to the - // OnOriginDataCleared function all clear data correctly. + // OnStorageKeyDataCleared function all clear data correctly. auto kTopFrameOrigin = url::Origin::Create(GURL("https://example.com")); auto kTestOrigin1 = url::Origin::Create(GURL("https://test1.com")); auto kTestOrigin2 = url::Origin::Create(GURL("https://test2.com")); @@ -724,10 +725,12 @@ EXPECT_EQ(3U, GetAllAccessRecords().size()); // Provide all parameters such that TestOrigin1's record is removed. - auto origin_matcher = base::BindLambdaForTesting( - [&](const url::Origin& origin) { return origin == kTestOrigin1; }); - service()->OnOriginDataCleared( - content::StoragePartition::REMOVE_DATA_MASK_WEBSQL, origin_matcher, + auto storage_key_matcher = + base::BindLambdaForTesting([&](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey(kTestOrigin1); + }); + service()->OnStorageKeyDataCleared( + content::StoragePartition::REMOVE_DATA_MASK_WEBSQL, storage_key_matcher, base::Time() + base::Minutes(50), base::Time() + base::Minutes(80)); auto records = GetAllAccessRecords(); @@ -738,7 +741,7 @@ kTopFrameOrigin, kAccessTime2, records); // Provide more generalised parameters that target TestOrigin2's record. - service()->OnOriginDataCleared( + service()->OnStorageKeyDataCleared( content::StoragePartition::REMOVE_DATA_MASK_ALL, base::NullCallback(), base::Time() + base::Minutes(80), base::Time() + base::Minutes(130)); @@ -749,7 +752,7 @@ // Provide broadest possible parameters which should result in the final // record being removed. - service()->OnOriginDataCleared( + service()->OnStorageKeyDataCleared( content::StoragePartition::REMOVE_DATA_MASK_ALL, base::NullCallback(), base::Time(), base::Time::Max());
diff --git a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc index 0f23d86..b223b25 100644 --- a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc +++ b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc
@@ -114,11 +114,11 @@ } #endif -bool DoesOriginMatchPredicate( - base::OnceCallback<bool(const url::Origin&)> predicate, +bool DoesStorageKeyMatchPredicate( + content::StoragePartition::StorageKeyMatcherFunction predicate, const blink::StorageKey& storage_key, storage::SpecialStoragePolicy* policy) { - if (!std::move(predicate).Run(storage_key.origin())) + if (!std::move(predicate).Run(storage_key)) return false; if (policy && policy->IsStorageProtected(storage_key.origin().GetURL())) @@ -135,8 +135,8 @@ content::StoragePartition::StorageKeyPolicyMatcherFunction storage_key_matcher = filter_builder - ? base::BindRepeating(&DoesOriginMatchPredicate, - filter_builder->BuildOriginFilter()) + ? base::BindRepeating(&DoesStorageKeyMatchPredicate, + filter_builder->BuildStorageKeyFilter()) : base::NullCallback(); const uint32_t removal_mask =
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index 1132140..a1dd3194 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -56,6 +56,7 @@ #include "components/dom_distiller/content/common/mojom/distiller_javascript_service.mojom.h" #include "components/dom_distiller/core/dom_distiller_service.h" #include "components/feed/buildflags.h" +#include "components/feed/feed_feature_list.h" #include "components/history_clusters/core/history_clusters_service.h" #include "components/history_clusters/history_clusters_internals/webui/history_clusters_internals_ui.h" #include "components/live_caption/caption_util.h" @@ -138,6 +139,7 @@ #include "chrome/browser/badging/badge_manager.h" #include "chrome/browser/cart/chrome_cart.mojom.h" #include "chrome/browser/new_tab_page/modules/drive/drive.mojom.h" +#include "chrome/browser/new_tab_page/modules/feed/feed.mojom.h" #include "chrome/browser/new_tab_page/modules/photos/photos.mojom.h" #include "chrome/browser/new_tab_page/modules/task_module/task_module.mojom.h" #include "chrome/browser/payments/payment_request_factory.h" @@ -912,6 +914,11 @@ task_module::mojom::TaskModuleHandler, NewTabPageUI>(map); } + if (base::FeatureList::IsEnabled(ntp_features::kNtpFeedModule)) { + RegisterWebUIControllerInterfaceBinder<ntp::feed::mojom::FeedHandler, + NewTabPageUI>(map); + } + RegisterWebUIControllerInterfaceBinder< reading_list::mojom::PageHandlerFactory, ReadingListUI>(map);
diff --git a/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc b/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc index 501b7e97..f484f40 100644 --- a/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc +++ b/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc
@@ -822,3 +822,38 @@ EXPECT_TRUE(RunExtensionTest("file_browser/dlp_metadata", {}, {.load_as_component = true})); } + +IN_PROC_BROWSER_TEST_F(FileManagerPrivateApiDlpTest, DlpMetadata_Disabled) { + policy::DlpRulesManagerFactory::GetInstance()->SetTestingFactory( + browser()->profile(), + base::BindRepeating(&FileManagerPrivateApiDlpTest::SetDlpRulesManager, + base::Unretained(this))); + ASSERT_TRUE(policy::DlpRulesManagerFactory::GetForPrimaryProfile()); + EXPECT_CALL(*mock_rules_manager_, IsFilesPolicyEnabled) + .WillOnce(testing::Return(false)) + .RetiresOnSaturation(); + // We should not get to the point of checking DLP. + EXPECT_CALL(*mock_rules_manager_, IsRestrictedByAnyRule).Times(0); + + AddLocalFileSystem(browser()->profile(), temp_dir_.GetPath()); + + const base::FilePath blocked_file_path = + temp_dir_.GetPath().Append("blocked_file.txt"); + + { + base::ScopedAllowBlockingForTesting allow_io; + base::File blocked_test_file( + blocked_file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE); + ASSERT_TRUE(blocked_test_file.IsValid()); + } + + base::MockCallback<chromeos::DlpClient::AddFileCallback> add_file_cb; + EXPECT_CALL(add_file_cb, Run).Times(1); + dlp::AddFileRequest request; + request.set_file_path(blocked_file_path.value()); + request.set_source_url("https://example1.com"); + chromeos::DlpClient::Get()->AddFile(request, add_file_cb.Get()); + + EXPECT_TRUE(RunExtensionTest("file_browser/dlp_metadata_disabled", {}, + {.load_as_component = true})); +}
diff --git a/chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc b/chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc index c00b7ff..d1e2480a 100644 --- a/chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc +++ b/chrome/browser/feedback/system_logs/about_system_logs_fetcher.cc
@@ -11,6 +11,11 @@ #include "chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.h" #include "chrome/browser/feedback/system_logs/log_sources/memory_details_log_source.h" #include "components/feedback/system_logs/system_logs_fetcher.h" +#include "net/net_buildflags.h" + +#if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) +#include "chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.h" +#endif #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/system_logs/bluetooth_log_source.h" @@ -37,6 +42,10 @@ fetcher->AddSource(std::make_unique<ChromeInternalLogSource>()); fetcher->AddSource(std::make_unique<MemoryDetailsLogSource>()); +#if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) + fetcher->AddSource(std::make_unique<ChromeRootStoreLogSource>()); +#endif + #if BUILDFLAG(IS_CHROMEOS_ASH) // These sources rely on scrubbing in SystemLogsFetcher. fetcher->AddSource(std::make_unique<BluetoothLogSource>());
diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.cc new file mode 100644 index 0000000..35390dba --- /dev/null +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.cc
@@ -0,0 +1,54 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.h" + +#include "base/strings/string_number_conversions.h" +#include "components/feedback/system_logs/system_logs_source.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/network_service_instance.h" +#include "services/cert_verifier/cert_verifier_service_factory.h" +#include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom.h" + +namespace system_logs { + +namespace { + +constexpr char kChromeRootStoreKey[] = "chrome_root_store"; + +void PopulateChromeRootStoreLogsAsync( + system_logs::SysLogsSourceCallback callback, + cert_verifier::mojom::ChromeRootStoreInfoPtr info) { + auto response = std::make_unique<system_logs::SystemLogsResponse>(); + + std::string entry; + entry += "version: " + base::NumberToString(info->version) + "\n\n"; + for (auto const& cert_info : info->root_cert_info) { + entry += "hash: " + cert_info->sha256hash_hex + + " name: " + cert_info->name + "\n"; + } + response->emplace(kChromeRootStoreKey, std::move(entry)); + std::move(callback).Run(std::move(response)); +} + +} // namespace + +ChromeRootStoreLogSource::ChromeRootStoreLogSource() + : SystemLogsSource("ChromeRootStore") {} + +ChromeRootStoreLogSource::~ChromeRootStoreLogSource() {} + +void ChromeRootStoreLogSource::Fetch( + system_logs::SysLogsSourceCallback callback) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + DCHECK(!callback.is_null()); + + cert_verifier::mojom::CertVerifierServiceFactory* factory = + content::GetCertVerifierServiceFactory(); + DCHECK(factory); + factory->GetChromeRootStoreInfo( + base::BindOnce(&PopulateChromeRootStoreLogsAsync, std::move(callback))); +} + +} // namespace system_logs
diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.h b/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.h new file mode 100644 index 0000000..f5f5ef6 --- /dev/null +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_root_store_log_source.h
@@ -0,0 +1,28 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_FEEDBACK_SYSTEM_LOGS_LOG_SOURCES_CHROME_ROOT_STORE_LOG_SOURCE_H_ +#define CHROME_BROWSER_FEEDBACK_SYSTEM_LOGS_LOG_SOURCES_CHROME_ROOT_STORE_LOG_SOURCE_H_ + +#include "components/feedback/system_logs/system_logs_source.h" + +namespace system_logs { + +// Get information about the contents of the Chrome Root Store in use. +class ChromeRootStoreLogSource : public system_logs::SystemLogsSource { + public: + ChromeRootStoreLogSource(); + + ChromeRootStoreLogSource(const ChromeRootStoreLogSource&) = delete; + ChromeRootStoreLogSource& operator=(const ChromeRootStoreLogSource&) = delete; + + ~ChromeRootStoreLogSource() override; + + // SystemLogsSource override. + void Fetch(system_logs::SysLogsSourceCallback callback) override; +}; + +} // namespace system_logs + +#endif // CHROME_BROWSER_FEEDBACK_SYSTEM_LOGS_LOG_SOURCES_CHROME_ROOT_STORE_LOG_SOURCE_H_
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 25adad0..1633fd2 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -5758,6 +5758,15 @@ "expiry_milestone": 106 }, { + "name": "site-data-improvements", + "owners": [ + "andzaytsev@google.com", + "sauski@google.com", + "chrome-friendly-settings@google.com" + ], + "expiry_milestone": 109 + }, + { "_comment1": "Shipping some form of Site Isolation to Android is tracked", "_comment2": "in https://crbug.com/849815.", "name": "site-isolation-trial-opt-out",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 72ffc721..73fa6d58 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -3743,6 +3743,10 @@ const char kSearchResumptionModuleAndroidDescription[] = "Enable showing search suggestions on NTP"; +const char kSiteDataImprovementsName[] = "Site data improvements"; +const char kSiteDataImprovementsDescription[] = + "Improved 'All sites' and 'Site settings' pages on Android."; + const char kStartSurfaceRefactorName[] = "Start Surface Refactor"; const char kStartSurfaceRefactorDescription[] = "Enable splitting Tab switcher from Start surface";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 9aaa268..1c6834a3 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -2129,6 +2129,9 @@ extern const char kSearchResumptionModuleAndroidName[]; extern const char kSearchResumptionModuleAndroidDescription[]; +extern const char kSiteDataImprovementsName[]; +extern const char kSiteDataImprovementsDescription[]; + extern const char kStartSurfaceRefactorName[]; extern const char kStartSurfaceRefactorDescription[];
diff --git a/chrome/browser/lacros/desk_template_client_lacros.cc b/chrome/browser/lacros/desk_template_client_lacros.cc index c3f6930..23b1005 100644 --- a/chrome/browser/lacros/desk_template_client_lacros.cc +++ b/chrome/browser/lacros/desk_template_client_lacros.cc
@@ -69,6 +69,7 @@ create_params.initial_show_state = static_cast<ui::WindowShowState>(show_state); create_params.initial_bounds = bounds; + create_params.restore_id = additional_state->restore_window_id; Browser* browser = Browser::Create(create_params); for (size_t i = 0; i < additional_state->urls.size(); i++) { chrome::AddTabAt(
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb index 0c865c9..9c47fbe4 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_te.xtb
@@ -4,7 +4,7 @@ <translation id="1355944513479998918">Chrome అన్ని పాస్వర్డ్లను చెక్ చేయలేకపోయింది. రేపు మళ్లీ ట్రై చేయండి లేదా <ph name="BEGIN_LINK" />మీ Google ఖాతాలో పాస్వర్డ్లను చెక్ చేయండి<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">పాస్వర్డ్ను తొలగించు</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# పాస్వర్డ్ చోరీకి గురయ్యింది}other{# పాస్వర్డ్లు చోరీకి గురయ్యాయి}}</translation> -<translation id="1599766761352751884">పాస్వర్డ్లను తనిఖీ చేస్తోంది (<ph name="TOTAL_PASSWORDS" />లో <ph name="ANALYSED_PASSWORDS" />)…</translation> +<translation id="1599766761352751884">పాస్వర్డ్లను చెక్ చేస్తోంది (<ph name="TOTAL_PASSWORDS" />లో <ph name="ANALYSED_PASSWORDS" />)…</translation> <translation id="1713125606790339209">ఈ కింద చూపించిన ఖాతాలు థర్డ్-పార్టీ డేటా ఉల్లంఘనలో బహిర్గతమైన లేదా మోసపూరిత సైట్లో ఎంటర్ చేసిన పాస్వర్డ్లను ఉపయోగిస్తున్నాయి. మీ ఖాతాలను సురక్షితంగా ఉంచడానికి ఈ పాస్వర్డ్లను వెంటనే మార్చండి.</translation> <translation id="2224120951664717045">చోరీకి గురైన పాస్వర్డ్తో మీరు సైన్ ఇన్ చేసినప్పుడు, Chrome తెలియజేస్తుంది.</translation> <translation id="2388655922303272221">మాన్యువల్గా మార్చండి</translation> @@ -13,18 +13,18 @@ <translation id="3235063766008841141">మోసపూరిత సైట్లోకి ప్రవేశించబడింది, అలాగే డేటా ఉల్లంఘన కనుగొనబడింది</translation> <translation id="3533694711092285624">సేవ్ చేసిన పాస్వర్డ్లు లేవు. మీరు మీ పాస్వర్డ్లను సేవ్ చేసినప్పుడు Chrome వాటిని చెక్ చేయగలదు.</translation> <translation id="3568945271227339929">చోరీకి గురైన పాస్వర్డ్లు ఏవీ లేవు</translation> -<translation id="3918034518766455210">పాస్వర్డ్లు తనిఖీ చేసిన సమయం · <ph name="TIME_SINCE_LAST_CHECK" /></translation> +<translation id="3918034518766455210">పాస్వర్డ్లు చెక్ చేసిన సమయం · <ph name="TIME_SINCE_LAST_CHECK" /></translation> <translation id="543338862236136125">పాస్వర్డ్ను ఎడిట్ చేయండి</translation> <translation id="5539342724706569402">మోసపూరిత సైట్లోకి ప్రవేశించారు</translation> <translation id="5840081916976222104">పాస్వర్డ్ను యాప్లో మార్చండి</translation> <translation id="6342069812937806050">ఇప్పుడే</translation> <translation id="6407955178761087876">మీ పాస్వర్డ్ను మార్చడంలో Google Assistantను మీకు సహాయం చేయనివ్వండి</translation> -<translation id="7253951228444156601">పాస్వర్డ్లను తనిఖీ చేస్తోంది…</translation> +<translation id="7253951228444156601">పాస్వర్డ్లను చెక్ చేస్తోంది…</translation> <translation id="7658239707568436148">రద్దు చేయండి</translation> -<translation id="7693089333295158718">Chrome మీ పాస్వర్డ్లను తనిఖీ చేయలేకపోయింది. మళ్లీ ట్రై చేయండి.</translation> +<translation id="7693089333295158718">Chrome మీ పాస్వర్డ్లను చెక్ చేయలేకపోయింది. మళ్లీ ట్రై చేయండి.</translation> <translation id="7744192722284567281">డేటా ఉల్లంఘనలో కనుగొనబడింది</translation> <translation id="808894953321890993">పాస్వర్డ్ను మార్చు</translation> <translation id="8399282673057829204">పాస్వర్డ్ను చూడండి</translation> <translation id="8603820497269504141">మీరు మీ Google ఖాతాతో సైన్ ఇన్ చేసి ఉన్నప్పుడు Chrome మీ పాస్వర్డ్లను చెక్ చేయగలుగుతుంది.</translation> -<translation id="8798925345090498040">Chrome అన్ని పాస్వర్డ్లను తనిఖీ చేయలేకపోయింది. రేపు మళ్లీ ట్రై చేయండి.</translation> +<translation id="8798925345090498040">Chrome అన్ని పాస్వర్డ్లను చెక్ చేయలేకపోయింది. రేపు మళ్లీ ట్రై చేయండి.</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn index 70c8aef7..f98ca8e 100644 --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -125,6 +125,7 @@ sources = [ "java/src/org/chromium/chrome/browser/password_manager/ConfirmationDialogHelper.java", + "java/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialog.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordChangeSuccessTrackerBridge.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientMetricsRecorder.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java", @@ -171,6 +172,7 @@ "java/src/org/chromium/chrome/browser/password_manager/tests/FakePasswordStoreAndroidBackendTest.java", "junit/src/org/chromium/chrome/browser/password_manager/FakeCredentialManagerLauncherTest.java", "junit/src/org/chromium/chrome/browser/password_manager/FakePasswordSettingsAccessorFactoryImplTest.java", + "junit/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialogTest.java", "junit/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientMetricsRecorderTest.java", "junit/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtilTest.java", "junit/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelperTest.java",
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialog.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialog.java new file mode 100644 index 0000000..237b902 --- /dev/null +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialog.java
@@ -0,0 +1,65 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.password_manager; + +import android.content.Context; + +import org.chromium.base.Callback; +import org.chromium.ui.modaldialog.DialogDismissalCause; +import org.chromium.ui.modaldialog.ModalDialogManager; +import org.chromium.ui.modaldialog.ModalDialogProperties; +import org.chromium.ui.modaldialog.SimpleModalDialogController; +import org.chromium.ui.modelutil.PropertyModel; + +/** + * Dialog that informs user that the GMS Core needs to be updated and confirms whether the user + * agrees to proceed with the update. + */ +class OutdatedGmsCoreDialog { + private final ModalDialogManager mModalDialogManager; + private final Context mContext; + private final Callback<Boolean> mResultHandler; + + /** + * Constructor for {@link OutdatedGmsCoreDialog}. + * + * @param modalDialogManager The {@link ModalDialogManager} which is going to display the + * dialog. + * @param context The context for accessing resources. + * @param resultHandler Handler to be called on whether the user have chosen to update or not. + */ + OutdatedGmsCoreDialog(ModalDialogManager modalDialogManager, Context context, + Callback<Boolean> resultHandler) { + mModalDialogManager = modalDialogManager; + mContext = context; + mResultHandler = resultHandler; + } + + /** Shows the dialog. */ + void show() { + SimpleModalDialogController modalDialogController = + new SimpleModalDialogController(mModalDialogManager, result -> { + mResultHandler.onResult(result == DialogDismissalCause.POSITIVE_BUTTON_CLICKED); + }); + + PropertyModel dialogModel = + new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS) + .with(ModalDialogProperties.CONTROLLER, modalDialogController) + .with(ModalDialogProperties.MESSAGE_PARAGRAPH_1, + mContext.getResources().getString( + R.string.password_manager_outdated_gms_dialog_description)) + .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, + mContext.getResources().getString( + R.string.password_manager_outdated_gms_positive_button)) + .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, + mContext.getResources().getString( + R.string.password_manager_outdated_gms_negative_button)) + .with(ModalDialogProperties.BUTTON_STYLES, + ModalDialogProperties.ButtonStyles.PRIMARY_FILLED_NEGATIVE_OUTLINE) + .build(); + + mModalDialogManager.showDialog(dialogModel, ModalDialogManager.ModalDialogType.APP); + } +}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientHelper.java index f71c0e53..176b258 100644 --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupClientHelper.java
@@ -35,57 +35,9 @@ * account will be used. * @param successCallback callback called with the intent if the retrieving was successful * @param failureCallback callback called if the retrieving failed with the encountered error. - * The error should be a value from {@link CredentialManagerError}. */ - @Deprecated - default void getPasswordCheckupPendingIntent(@PasswordCheckReferrer int referrer, - Optional<String> accountName, Callback<PendingIntent> successCallback, - Callback<Integer> failureCallback) {} - - /** - * Asynchronously runs Password Checkup and stores the result in PasswordSpecifics then saves it - * to the ChromeSync module. - * - * @param referrer the place that requested to start a check. - * @param accountName the account name that is syncing passwords. If no value was provided local - * account will be used. - * @param successCallback callback called with Password Check started successful - * @param failureCallback callback called if encountered an error. - * The error should be a value from {@link CredentialManagerError}. - */ - @Deprecated - default void runPasswordCheckup(@PasswordCheckReferrer int referrer, - Optional<String> accountName, Callback<Void> successCallback, - Callback<Integer> failureCallback) {} - - /** - * Asynchronously returns the number of breached credentials for the provided account. - * - * @param referrer the place that requested number of breached credentials. - * @param accountName the account name that is syncing passwords. If no value was provided local - * account will be used. - * @param successCallback callback called with the number of breached passwords. - * @param failureCallback callback called if encountered an error. - * The error should be a value from {@link CredentialManagerError}. - */ - @Deprecated - default void getNumberOfBreachedCredentials(@PasswordCheckReferrer int referrer, - Optional<String> accountName, Callback<Integer> successCallback, - Callback<Integer> failureCallback) {} - - /** - * Retrieves a pending intent that can be used to launch the Password Checkup UI in the - * credential manager. The intent is to either be used immediately or discarded. - * - * @param referrer the place that will launch the password checkup UI - * @param accountName the account name that is syncing passwords. If no value was provided local - * account will be used. - * @param successCallback callback called with the intent if the retrieving was successful - * @param failureCallback callback called if the retrieving failed with the encountered error. - */ - default void getPasswordCheckupIntent(@PasswordCheckReferrer int referrer, - Optional<String> accountName, Callback<PendingIntent> successCallback, - Callback<Exception> failureCallback) {} + void getPasswordCheckupIntent(@PasswordCheckReferrer int referrer, Optional<String> accountName, + Callback<PendingIntent> successCallback, Callback<Exception> failureCallback); /** * Asynchronously runs Password Checkup and stores the result in PasswordSpecifics then saves it @@ -97,9 +49,9 @@ * @param successCallback callback called with Password Check started successful * @param failureCallback callback called if encountered an error. */ - default void runPasswordCheckupInBackground(@PasswordCheckReferrer int referrer, + void runPasswordCheckupInBackground(@PasswordCheckReferrer int referrer, Optional<String> accountName, Callback<Void> successCallback, - Callback<Exception> failureCallback) {} + Callback<Exception> failureCallback); /** * Asynchronously returns the number of breached credentials for the provided account. @@ -110,7 +62,7 @@ * @param successCallback callback called with the number of breached passwords. * @param failureCallback callback called if encountered an error. */ - default void getBreachedCredentialsCount(@PasswordCheckReferrer int referrer, + void getBreachedCredentialsCount(@PasswordCheckReferrer int referrer, Optional<String> accountName, Callback<Integer> successCallback, - Callback<Exception> failureCallback) {} + Callback<Exception> failureCallback); }
diff --git a/chrome/browser/password_manager/android/junit/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialogTest.java b/chrome/browser/password_manager/android/junit/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialogTest.java new file mode 100644 index 0000000..6b67da81 --- /dev/null +++ b/chrome/browser/password_manager/android/junit/src/org/chromium/chrome/browser/password_manager/OutdatedGmsCoreDialogTest.java
@@ -0,0 +1,86 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.password_manager; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import androidx.test.core.app.ApplicationProvider; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.robolectric.annotation.Config; + +import org.chromium.base.Callback; +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.ui.modaldialog.DialogDismissalCause; +import org.chromium.ui.modaldialog.ModalDialogManager; +import org.chromium.ui.modaldialog.ModalDialogProperties; +import org.chromium.ui.modelutil.PropertyModel; + +/** + * Tests for the outdated GMS Core dialog. + */ +@RunWith(BaseRobolectricTestRunner.class) +@Config(manifest = Config.NONE) +public class OutdatedGmsCoreDialogTest { + @Rule + public MockitoRule mMockitoRule = MockitoJUnit.rule(); + + @Mock + private Callback<Boolean> mResultHandler; + + private ModalDialogManager mModalDialogManager; + + private OutdatedGmsCoreDialog mOutdatedGmsCoreDialog; + + @Before + public void setUp() throws Exception { + mModalDialogManager = new ModalDialogManager( + mock(ModalDialogManager.Presenter.class), ModalDialogManager.ModalDialogType.APP); + mOutdatedGmsCoreDialog = new OutdatedGmsCoreDialog( + mModalDialogManager, ApplicationProvider.getApplicationContext(), mResultHandler); + } + + @Test + public void testHandlesUpdateButtonClick() { + mOutdatedGmsCoreDialog.show(); + PropertyModel dialogModel = mModalDialogManager.getCurrentDialogForTest(); + assertNotNull(dialogModel); + dialogModel.get(ModalDialogProperties.CONTROLLER) + .onClick(dialogModel, ModalDialogProperties.ButtonType.POSITIVE); + + verify(mResultHandler).onResult(true); + assertNull(mModalDialogManager.getCurrentDialogForTest()); + } + + @Test + public void testHandlesNegativeButtonClick() { + mOutdatedGmsCoreDialog.show(); + PropertyModel dialogModel = mModalDialogManager.getCurrentDialogForTest(); + assertNotNull(dialogModel); + dialogModel.get(ModalDialogProperties.CONTROLLER) + .onClick(dialogModel, ModalDialogProperties.ButtonType.NEGATIVE); + + verify(mResultHandler).onResult(false); + assertNull(mModalDialogManager.getCurrentDialogForTest()); + } + + @Test + public void testHandlesDialogDismiss() { + mOutdatedGmsCoreDialog.show(); + mModalDialogManager.dismissAllDialogs(DialogDismissalCause.UNKNOWN); + + verify(mResultHandler).onResult(false); + assertNull(mModalDialogManager.getCurrentDialogForTest()); + } +}
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index 5008f1b..2743e7a6 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -2069,8 +2069,10 @@ menu_interceptor.Wait(); } -IN_PROC_BROWSER_TEST_F(PDFExtensionTest, - ContextMenuPrintCommandEmbeddedExtensionMainFrame) { +// TODO(crbug.com/1344508): Test is flaky on multiple platforms. +IN_PROC_BROWSER_TEST_F( + PDFExtensionTest, + DISABLED_ContextMenuPrintCommandEmbeddedExtensionMainFrame) { content::WebContents* guest_contents = LoadPdfGetGuestContents( embedded_test_server()->GetURL("/pdf/pdf_embed.html")); content::RenderFrameHost* plugin_frame = GetPluginFrame(guest_contents);
diff --git a/chrome/browser/privacy_budget/BUILD.gn b/chrome/browser/privacy_budget/BUILD.gn index 250a28aa..fd2423f 100644 --- a/chrome/browser/privacy_budget/BUILD.gn +++ b/chrome/browser/privacy_budget/BUILD.gn
@@ -96,6 +96,8 @@ sources = [ "canvas_input_key_browsertest.cc", "privacy_budget_browsertest.cc", + "privacy_budget_browsertest_util.cc", + "privacy_budget_browsertest_util.h", "privacy_budget_reid_score_browsertest.cc", ]
diff --git a/chrome/browser/privacy_budget/privacy_budget_browsertest.cc b/chrome/browser/privacy_budget/privacy_budget_browsertest.cc index 7b13453f..f002322a 100644 --- a/chrome/browser/privacy_budget/privacy_budget_browsertest.cc +++ b/chrome/browser/privacy_budget/privacy_budget_browsertest.cc
@@ -13,19 +13,18 @@ #include <vector> #include "base/barrier_closure.h" -#include "base/containers/flat_map.h" #include "base/feature_list.h" #include "base/logging.h" #include "base/metrics/field_trial_params.h" #include "base/run_loop.h" #include "base/test/scoped_feature_list.h" -#include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "chrome/browser/metrics/testing/sync_metrics_test_utils.h" #include "chrome/browser/privacy_budget/identifiability_study_state.h" +#include "chrome/browser/privacy_budget/privacy_budget_browsertest_util.h" #include "chrome/browser/privacy_budget/privacy_budget_prefs.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/sync/test/integration/sync_service_impl_harness.h" @@ -34,20 +33,14 @@ #include "chrome/common/privacy_budget/privacy_budget_features.h" #include "chrome/common/privacy_budget/scoped_privacy_budget_config.h" #include "chrome/common/privacy_budget/types.h" -#include "chrome/test/base/chrome_test_utils.h" #include "components/metrics_services_manager/metrics_services_manager.h" #include "components/prefs/pref_service.h" #include "components/sync/test/fake_server/fake_server.h" #include "components/ukm/test_ukm_recorder.h" #include "components/ukm/ukm_test_helper.h" #include "components/unified_consent/unified_consent_service.h" -#include "components/variations/service/buildflags.h" -#include "content/public/browser/back_forward_cache.h" -#include "content/public/browser/navigation_controller.h" -#include "content/public/browser/web_contents.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" -#include "content/public/test/test_utils.h" #include "mojo/public/cpp/bindings/struct_ptr.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "services/metrics/public/cpp/ukm_builders.h" @@ -63,18 +56,18 @@ #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-shared.h" #include "url/gurl.h" -class Profile; - -namespace ukm { -class UkmService; -} // namespace ukm - #if BUILDFLAG(IS_ANDROID) #include "chrome/test/base/android/android_browser_test.h" #else #include "chrome/test/base/in_process_browser_test.h" #endif +class Profile; + +namespace ukm { +class UkmService; +} // namespace ukm + namespace { using testing::IsSupersetOf; @@ -86,143 +79,33 @@ .ToUkmMetricHash(); } -// This test runs on Android as well as desktop platforms. -class PrivacyBudgetBrowserTestBase : public SyncTest { +class EnableRandomSampling { public: - PrivacyBudgetBrowserTestBase() : SyncTest(SINGLE_CLIENT) {} - - content::WebContents* web_contents() { - return chrome_test_utils::GetActiveWebContents(this); - } - - static ukm::UkmService* ukm_service() { - return g_browser_process->GetMetricsServicesManager()->GetUkmService(); - } - - static PrefService* local_state() { return g_browser_process->local_state(); } - - bool EnableUkmRecording() { - // 1. Enable sync. - Profile* profile = ProfileManager::GetLastUsedProfileIfLoaded(); - sync_test_harness_ = metrics::test::InitializeProfileForSync( - profile, GetFakeServer()->AsWeakPtr()); - EXPECT_TRUE(sync_test_harness_->SetupSync()); - - // 2. Signal consent for UKM reporting. - unified_consent::UnifiedConsentService* consent_service = - UnifiedConsentServiceFactory::GetForProfile(profile); - if (consent_service != nullptr) - consent_service->SetUrlKeyedAnonymizedDataCollectionEnabled(true); - - // 3. Enable metrics reporting. - is_metrics_reporting_enabled_ = true; - ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( - &is_metrics_reporting_enabled_); - - // UpdateUploadPermissions causes the MetricsServicesManager to look at the - // consent signals and re-evaluate whether reporting should be enabled. - g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions( - true); - - // The following sequence synchronously completes UkmService initialization - // (if it wasn't initialized yet) and flushes any accumulated metrics. - ukm::UkmTestHelper ukm_test_helper(ukm_service()); - ukm_test_helper.BuildAndStoreLog(); - std::unique_ptr<ukm::Report> report_to_discard = - ukm_test_helper.GetUkmReport(); - - ukm_service()->SetSamplingForTesting(1); - return ukm::UkmTestHelper(ukm_service()).IsRecordingEnabled(); - } - - bool DisableUkmRecording() { - EXPECT_TRUE(is_metrics_reporting_enabled_) - << "DisableUkmRecording() should only be called after " - "EnableUkmRecording()"; - is_metrics_reporting_enabled_ = false; - g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions( - true); - ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( - nullptr); - return !ukm::UkmTestHelper(ukm_service()).IsRecordingEnabled(); - } - - void TearDown() override { - if (is_metrics_reporting_enabled_) { - ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( - nullptr); - } - } - - private: - bool is_metrics_reporting_enabled_ = false; - std::unique_ptr<SyncServiceImplHarness> sync_test_harness_; -}; - -class PrivacyBudgetBrowserTestWithScopedConfig - : public PrivacyBudgetBrowserTestBase { - public: - PrivacyBudgetBrowserTestWithScopedConfig() { - privacy_budget_config_.Apply(test::ScopedPrivacyBudgetConfig::Parameters( - test::ScopedPrivacyBudgetConfig::Presets::kEnableRandomSampling)); - feature_list_.InitAndEnableFeatureWithParameters( - ukm::kUkmFeature, - base::FieldTrialParams{{"WhitelistEntries", "Identifiability"}}); - } + EnableRandomSampling() + : privacy_budget_config_( + test::ScopedPrivacyBudgetConfig::Presets::kEnableRandomSampling) {} private: test::ScopedPrivacyBudgetConfig privacy_budget_config_; - base::test::ScopedFeatureList feature_list_; }; +class PrivacyBudgetBrowserTestEnableRandomSampling + : private EnableRandomSampling, + public PlatformBrowserTest {}; + class PrivacyBudgetBrowserTestWithTestRecorder - : public PrivacyBudgetBrowserTestWithScopedConfig { - public: - void SetUpOnMainThread() override { - PrivacyBudgetBrowserTestBase::SetUpOnMainThread(); - // Do an initial empty navigation then create the recorder to make sure we - // start on a clean slate. This clears the platform differences in between - // Android and Desktop. - content::NavigateToURLBlockUntilNavigationsComplete(web_contents(), - GURL("about:blank"), 1); - - // Ensure that the actively sampled surfaces reported at browser startup go - // through before we set up the test recorder. - content::RunAllTasksUntilIdle(); - ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>(); - } - - ukm::TestUkmRecorder& recorder() { return *ukm_recorder_; } - - private: - std::unique_ptr<ukm::TestAutoSetUkmRecorder> ukm_recorder_; -}; + : private EnableRandomSampling, + public PrivacyBudgetBrowserTestBaseWithTestRecorder {}; } // namespace -IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithTestRecorder, +IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestEnableRandomSampling, BrowserSideSettingsIsActive) { ASSERT_TRUE(base::FeatureList::IsEnabled(features::kIdentifiabilityStudy)); const auto* settings = blink::IdentifiabilityStudySettings::Get(); EXPECT_TRUE(settings->IsActive()); } -// When UKM resets the Client ID for some reason the study should reset its -// local state as well. -IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithTestRecorder, - UkmClientIdChangesResetStudyState) { - EXPECT_TRUE(blink::IdentifiabilityStudySettings::Get()->IsActive()); - ASSERT_TRUE(EnableUkmRecording()); - - local_state()->SetString(prefs::kPrivacyBudgetSeenSurfaces, "1,2,3"); - - ASSERT_TRUE(DisableUkmRecording()); - - EXPECT_TRUE( - local_state()->GetString(prefs::kPrivacyBudgetSeenSurfaces).empty()) - << "Active surface list still exists after resetting client ID"; -} - IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithTestRecorder, SamplingScreenAPIs) { ASSERT_TRUE(embedded_test_server()->Start()); @@ -392,7 +275,6 @@ GURL("about:blank"), 1); // Wait for the metrics to come down the pipe. - content::RunAllTasksUntilIdle(); run_loop.Run(); auto merged_entries = recorder().GetMergedEntriesByName( @@ -463,7 +345,6 @@ GURL("about:blank"), 1); // Wait for the metrics to come down the pipe. - content::RunAllTasksUntilIdle(); run_loop.Run(); auto merged_entries = recorder().GetMergedEntriesByName( @@ -504,7 +385,97 @@ } } -IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithScopedConfig, +namespace { + +// Test class that allows to enable UKM recording. +class PrivacyBudgetBrowserTestWithUkmRecording : private EnableRandomSampling, + public SyncTest { + public: + PrivacyBudgetBrowserTestWithUkmRecording() : SyncTest(SINGLE_CLIENT) {} + + static ukm::UkmService* ukm_service() { + return g_browser_process->GetMetricsServicesManager()->GetUkmService(); + } + + static PrefService* local_state() { return g_browser_process->local_state(); } + + bool EnableUkmRecording() { + // 1. Enable sync. + Profile* profile = ProfileManager::GetLastUsedProfileIfLoaded(); + sync_test_harness_ = metrics::test::InitializeProfileForSync( + profile, GetFakeServer()->AsWeakPtr()); + EXPECT_TRUE(sync_test_harness_->SetupSync()); + + // 2. Signal consent for UKM reporting. + unified_consent::UnifiedConsentService* consent_service = + UnifiedConsentServiceFactory::GetForProfile(profile); + if (consent_service != nullptr) + consent_service->SetUrlKeyedAnonymizedDataCollectionEnabled(true); + + // 3. Enable metrics reporting. + is_metrics_reporting_enabled_ = true; + ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( + &is_metrics_reporting_enabled_); + + // UpdateUploadPermissions causes the MetricsServicesManager to look at the + // consent signals and re-evaluate whether reporting should be enabled. + g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions( + true); + + // The following sequence synchronously completes UkmService initialization + // (if it wasn't initialized yet) and flushes any accumulated metrics. + ukm::UkmTestHelper ukm_test_helper(ukm_service()); + ukm_test_helper.BuildAndStoreLog(); + std::unique_ptr<ukm::Report> report_to_discard = + ukm_test_helper.GetUkmReport(); + + ukm_service()->SetSamplingForTesting(1); + return ukm::UkmTestHelper(ukm_service()).IsRecordingEnabled(); + } + + bool DisableUkmRecording() { + EXPECT_TRUE(is_metrics_reporting_enabled_) + << "DisableUkmRecording() should only be called after " + "EnableUkmRecording()"; + is_metrics_reporting_enabled_ = false; + g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions( + true); + ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( + nullptr); + return !ukm::UkmTestHelper(ukm_service()).IsRecordingEnabled(); + } + + void TearDown() override { + if (is_metrics_reporting_enabled_) { + ChromeMetricsServiceAccessor::SetMetricsAndCrashReportingForTesting( + nullptr); + } + } + + private: + bool is_metrics_reporting_enabled_ = false; + std::unique_ptr<SyncServiceImplHarness> sync_test_harness_; +}; + +} // namespace + +// When UKM resets the Client ID for some reason the study should reset its +// local state as well. +IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithUkmRecording, + UkmClientIdChangesResetStudyState) { + EXPECT_TRUE(blink::IdentifiabilityStudySettings::Get()->IsActive()); + ASSERT_TRUE(EnableUkmRecording()); + + local_state()->SetString(prefs::kPrivacyBudgetSeenSurfaces, "1,2,3"); + + ASSERT_TRUE(DisableUkmRecording()); + + EXPECT_TRUE( + local_state()->GetString(prefs::kPrivacyBudgetSeenSurfaces).empty()) + << "Active surface list still exists after resetting client ID"; +} + +IN_PROC_BROWSER_TEST_F(PrivacyBudgetBrowserTestWithUkmRecording, IncludesMetadata) { ASSERT_TRUE(base::FeatureList::IsEnabled(features::kIdentifiabilityStudy)); ASSERT_TRUE(EnableUkmRecording());
diff --git a/chrome/browser/privacy_budget/privacy_budget_browsertest_util.cc b/chrome/browser/privacy_budget/privacy_budget_browsertest_util.cc new file mode 100644 index 0000000..660c239 --- /dev/null +++ b/chrome/browser/privacy_budget/privacy_budget_browsertest_util.cc
@@ -0,0 +1,32 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/privacy_budget/privacy_budget_browsertest_util.h" +#include "chrome/test/base/chrome_test_utils.h" +#include "content/public/test/browser_test_utils.h" +#include "content/public/test/test_utils.h" + +PrivacyBudgetBrowserTestBaseWithTestRecorder:: + PrivacyBudgetBrowserTestBaseWithTestRecorder() = default; +PrivacyBudgetBrowserTestBaseWithTestRecorder:: + ~PrivacyBudgetBrowserTestBaseWithTestRecorder() = default; + +void PrivacyBudgetBrowserTestBaseWithTestRecorder::SetUpOnMainThread() { + PlatformBrowserTest::SetUpOnMainThread(); + // Do an initial empty navigation then create the recorder to make sure we + // start on a clean slate. This clears the platform differences in between + // Android and Desktop. + content::NavigateToURLBlockUntilNavigationsComplete(web_contents(), + GURL("about:blank"), 1); + + // Ensure that the actively sampled surfaces reported at browser startup go + // through before we set up the test recorder. + content::RunAllTasksUntilIdle(); + ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>(); +} + +content::WebContents* +PrivacyBudgetBrowserTestBaseWithTestRecorder::web_contents() { + return chrome_test_utils::GetActiveWebContents(this); +}
diff --git a/chrome/browser/privacy_budget/privacy_budget_browsertest_util.h b/chrome/browser/privacy_budget/privacy_budget_browsertest_util.h new file mode 100644 index 0000000..d65e004 --- /dev/null +++ b/chrome/browser/privacy_budget/privacy_budget_browsertest_util.h
@@ -0,0 +1,37 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PRIVACY_BUDGET_PRIVACY_BUDGET_BROWSERTEST_UTIL_H_ +#define CHROME_BROWSER_PRIVACY_BUDGET_PRIVACY_BUDGET_BROWSERTEST_UTIL_H_ + +#include "build/build_config.h" +#include "build/buildflag.h" +#include "components/ukm/test_ukm_recorder.h" + +#if BUILDFLAG(IS_ANDROID) +#include "chrome/test/base/android/android_browser_test.h" +#else +#include "chrome/test/base/in_process_browser_test.h" +#endif + +namespace content { +class WebContents; +} // namespace content + +class PrivacyBudgetBrowserTestBaseWithTestRecorder + : public PlatformBrowserTest { + public: + PrivacyBudgetBrowserTestBaseWithTestRecorder(); + ~PrivacyBudgetBrowserTestBaseWithTestRecorder() override; + void SetUpOnMainThread() override; + + ukm::TestUkmRecorder& recorder() { return *ukm_recorder_; } + + content::WebContents* web_contents(); + + private: + std::unique_ptr<ukm::TestAutoSetUkmRecorder> ukm_recorder_; +}; + +#endif // CHROME_BROWSER_PRIVACY_BUDGET_PRIVACY_BUDGET_BROWSERTEST_UTIL_H_
diff --git a/chrome/browser/privacy_budget/privacy_budget_reid_score_browsertest.cc b/chrome/browser/privacy_budget/privacy_budget_reid_score_browsertest.cc index ff7301a..f06b6b7 100644 --- a/chrome/browser/privacy_budget/privacy_budget_reid_score_browsertest.cc +++ b/chrome/browser/privacy_budget/privacy_budget_reid_score_browsertest.cc
@@ -3,8 +3,11 @@ // found in the LICENSE file. #include "base/barrier_closure.h" +#include "build/build_config.h" +#include "build/buildflag.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/privacy_budget/identifiability_study_state.h" +#include "chrome/browser/privacy_budget/privacy_budget_browsertest_util.h" #include "chrome/browser/privacy_budget/privacy_budget_ukm_entry_filter.h" #include "chrome/common/privacy_budget/privacy_budget_features.h" #include "chrome/common/privacy_budget/scoped_privacy_budget_config.h" @@ -24,13 +27,9 @@ using testing::IsSupersetOf; using testing::Key; -class PrivacyBudgetReidScoreBrowserTest : public PlatformBrowserTest { +class EnableReidEstimation { public: - content::WebContents* web_contents() { - return chrome_test_utils::GetActiveWebContents(this); - } - - PrivacyBudgetReidScoreBrowserTest() { + EnableReidEstimation() { test::ScopedPrivacyBudgetConfig::Parameters parameters; parameters.reid_blocks = { @@ -46,26 +45,17 @@ scoped_config_.Apply(parameters); } - void SetUpOnMainThread() override { - // Do an initial empty navigation then create the recorder to make sure we - // start on a clean slate. This clears the platform differences in between - // Android and Desktop. - content::NavigateToURLBlockUntilNavigationsComplete(web_contents(), - GURL("about:blank"), 1); - - // Ensure that the actively sampled surfaces reported at browser startup go - // through before we set up the test recorder. - content::RunAllTasksUntilIdle(); - ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>(); - } - - ukm::TestUkmRecorder& recorder() { return *ukm_recorder_; } - private: test::ScopedPrivacyBudgetConfig scoped_config_; - std::unique_ptr<ukm::TestAutoSetUkmRecorder> ukm_recorder_; }; +class PrivacyBudgetReidScoreBrowserTest : private EnableReidEstimation, + public PlatformBrowserTest {}; + +class PrivacyBudgetReidScoreBrowserTestWithTestRecorder + : private EnableReidEstimation, + public PrivacyBudgetBrowserTestBaseWithTestRecorder {}; + } // namespace IN_PROC_BROWSER_TEST_F(PrivacyBudgetReidScoreBrowserTest, LoadsAGroup) { @@ -75,7 +65,8 @@ ASSERT_TRUE(settings->IsActive()); } -IN_PROC_BROWSER_TEST_F(PrivacyBudgetReidScoreBrowserTest, ReidHashIsReported) { +IN_PROC_BROWSER_TEST_F(PrivacyBudgetReidScoreBrowserTestWithTestRecorder, + ReidHashIsReported) { blink::IdentifiabilityStudySettings::ResetStateForTesting(); auto study_state = std::make_unique<IdentifiabilityStudyState>( g_browser_process->local_state()); @@ -102,7 +93,6 @@ content::NavigateToURLBlockUntilNavigationsComplete(web_contents(), GURL("about:blank"), 1); // Wait for the metrics to come down the pipe. - content::RunAllTasksUntilIdle(); run_loop.Run(); auto merged_entries = recorder().GetMergedEntriesByName(
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb index 8d44d2b..432ba19 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
@@ -263,7 +263,7 @@ <translation id="2723001399770238859">ఆడియో</translation> <translation id="27349076983469322">తేలికపాటి నేపథ్యం</translation> <translation id="2737898226590637227">తర్వాత ARIA ల్యాండ్మార్క్ లేదు</translation> -<translation id="2749275490991666823">తనిఖీ చేయబడింది</translation> +<translation id="2749275490991666823">చెక్ చేయబడింది</translation> <translation id="27527859628328957">తరువాత ఫోకస్ చేయగల అంశానికి వెళ్లండి</translation> <translation id="2756452585631602151">అనుకూల లేబుల్ను ఎంటర్ చేయండి</translation> <translation id="2766299274563946262">ఎడమవైపున సెల్ లేదు</translation> @@ -722,7 +722,7 @@ <translation id="5847883414085148048">అంకితం</translation> <translation id="5850707923114094062">వెనుకవైపుకు ప్యాన్ చేయండి</translation> <translation id="5851548754964597211">ట్యాబ్ లిస్ట్</translation> -<translation id="5866042630553435010">పాక్షికంగా తనిఖీ చేయబడింది</translation> +<translation id="5866042630553435010">పాక్షికంగా చెక్ చేయబడింది</translation> <translation id="5866210856231860256">ఈ టాపిక్పై పాఠాలను బ్రౌజ్ చేయడానికి సెర్చ్ + కుడి వైపు బాణం, లేదా సెర్చ్ + ఎడమ వైపు బాణాన్ని నొక్కండి</translation> <translation id="5867591286054666064">ఈ ట్యుటోరియల్ జరుగుతున్నప్పుడు, ఏదైనా కీ పేరును వినడానికి దానిపై నొక్కండి.</translation> <translation id="5869546221129391014">గ్రిడ్</translation>
diff --git a/chrome/browser/resources/new_tab_page/BUILD.gn b/chrome/browser/resources/new_tab_page/BUILD.gn index 1e0d80b..06fe62b 100644 --- a/chrome/browser/resources/new_tab_page/BUILD.gn +++ b/chrome/browser/resources/new_tab_page/BUILD.gn
@@ -48,6 +48,7 @@ deps = [ "//chrome/browser/cart:mojo_bindings_js__generator", "//chrome/browser/new_tab_page/modules/drive:mojo_bindings_js__generator", + "//chrome/browser/new_tab_page/modules/feed:mojo_bindings_js__generator", "//chrome/browser/new_tab_page/modules/photos:mojo_bindings_js__generator", "//chrome/browser/new_tab_page/modules/task_module:mojo_bindings_js__generator", "//chrome/browser/ui/webui/new_tab_page:mojo_bindings_js__generator", @@ -56,6 +57,7 @@ sources = [ "$root_gen_dir/mojom-webui/chrome/browser/cart/chrome_cart.mojom-webui.js", "$root_gen_dir/mojom-webui/chrome/browser/new_tab_page/modules/drive/drive.mojom-webui.js", + "$root_gen_dir/mojom-webui/chrome/browser/new_tab_page/modules/feed/feed.mojom-webui.js", "$root_gen_dir/mojom-webui/chrome/browser/new_tab_page/modules/photos/photos.mojom-webui.js", "$root_gen_dir/mojom-webui/chrome/browser/new_tab_page/modules/task_module/task_module.mojom-webui.js", "$root_gen_dir/mojom-webui/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom-webui.js", @@ -94,6 +96,7 @@ ":build_grd", "//chrome/browser/cart:mojo_bindings_js", "//chrome/browser/new_tab_page/modules/drive:mojo_bindings_js", + "//chrome/browser/new_tab_page/modules/feed:mojo_bindings_js", "//chrome/browser/new_tab_page/modules/photos:mojo_bindings_js", "//chrome/browser/new_tab_page/modules/task_module:mojo_bindings_js", "//chrome/browser/ui/webui/new_tab_page:mojo_bindings_js", @@ -204,6 +207,7 @@ grdp_files = [ "$target_gen_dir/icons/resources.grdp", "$target_gen_dir/modules/cart/icons/resources.grdp", + "$target_gen_dir/modules/feed/icons/resources.grdp", "$target_gen_dir/modules/photos/icons/resources.grdp", "$target_gen_dir/modules/photos/images/resources.grdp", "$target_gen_dir/modules/recipes_v2/icons/resources.grdp", @@ -213,6 +217,7 @@ deps = [ "icons:build_grdp", "modules/cart/icons:build_grdp", + "modules/feed/icons:build_grdp", "modules/photos/icons:build_grdp", "modules/photos/images:build_grdp", "modules/recipes_v2/icons:build_grdp",
diff --git a/chrome/browser/resources/new_tab_page/lazy_load.ts b/chrome/browser/resources/new_tab_page/lazy_load.ts index 79a43a0..1f4e00c 100644 --- a/chrome/browser/resources/new_tab_page/lazy_load.ts +++ b/chrome/browser/resources/new_tab_page/lazy_load.ts
@@ -33,6 +33,8 @@ export {FooProxy} from './modules/dummy_v2/foo_proxy.js'; export {DummyModuleElement, dummyV2Descriptor} from './modules/dummy_v2/module.js'; // </if> +export {FeedProxy} from './modules/feed/feed_module_proxy.js'; +export {feedDescriptor, FeedModuleElement, feedV2Descriptor} from './modules/feed/module.js'; export {InfoDialogElement} from './modules/info_dialog.js'; export {InitializeModuleCallback, Module, ModuleDescriptor, ModuleDescriptorV2, ModuleHeight} from './modules/module_descriptor.js'; export {counterfactualLoad} from './modules/module_descriptors.js';
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/feed.gni b/chrome/browser/resources/new_tab_page/modules/feed/feed.gni new file mode 100644 index 0000000..68928d61 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/feed.gni
@@ -0,0 +1,9 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# List of files that don't need to be passed to html_to_js(). +feed_non_web_component_files = [ "modules/feed/feed_module_proxy.ts" ] + +# List of files that should be passed to html_to_js(). +feed_web_component_files = [ "modules/feed/module.ts" ]
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/feed_module_proxy.ts b/chrome/browser/resources/new_tab_page/modules/feed/feed_module_proxy.ts new file mode 100644 index 0000000..6350970 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/feed_module_proxy.ts
@@ -0,0 +1,25 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {FeedHandler, FeedHandlerRemote} from '../../feed.mojom-webui.js'; + +/** + * @fileoverview This file provides a class that exposes the Mojo handler + * interface used for sending requests from Feed NTP module JS to the browser + * and receiving the browser response. + */ + +let handler: FeedHandlerRemote|null = null; + +export class FeedProxy { + static getHandler(): FeedHandlerRemote { + return handler || (handler = FeedHandler.getRemote()); + } + + static setHandler(newHandler: FeedHandlerRemote) { + handler = newHandler; + } + + private constructor() {} +}
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/icons/BUILD.gn b/chrome/browser/resources/new_tab_page/modules/feed/icons/BUILD.gn new file mode 100644 index 0000000..79be2001 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/icons/BUILD.gn
@@ -0,0 +1,13 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//ui/webui/resources/tools/generate_grd.gni") + +generate_grd("build_grdp") { + grd_prefix = "feed" + out_grd = "$target_gen_dir/resources.grdp" + input_files = [ "plus.svg" ] + input_files_base_dir = rebase_path(".", "//") + resource_path_prefix = "modules/feed/icons" +}
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/icons/plus.svg b/chrome/browser/resources/new_tab_page/modules/feed/icons/plus.svg new file mode 100644 index 0000000..059a42fe --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/icons/plus.svg
@@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="M8.854 16.104v-4.958H3.896V8.854h4.958V3.896h2.292v4.958h4.958v2.292h-4.958v4.958Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/module.html b/chrome/browser/resources/new_tab_page/modules/feed/module.html new file mode 100644 index 0000000..bc7819cc --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/module.html
@@ -0,0 +1,90 @@ +<style> + +:host { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; +} + +#articles { + display: block; + margin: 16px; +} + +a { + text-decoration: none; +} + +.card { + display: flex; + flex-direction: row; +} + +.left-text { + display: flex; + flex-direction: column; + flex-grow: 3; +} + +.title { + color: var(--cr-primary-text-color); + font-size: 14px; + margin-bottom: 14px; +} + +.info { + color: var(--cr-secondary-text-color); + display: inline; +} + +.favicon { + display: inline; + float: left; + margin-inline-end: 1em; + max-height: 14px; +} + +.info-text { + font-size: 12px; +} + +.thumbnail { + aspect-ratio: 1.33; + border-radius: 12px; + margin-inline-start: 1em; + object-fit: cover; + width: 25%; +} + +.card-divider { + margin: 16px 0 16px 0; +} + +.card-divider:last-of-type { + display: none; +} + +</style> +<ntp-module-header icon-src="modules/feed/icons/plus.svg"> + $i18n{modulesFeedTitle} +</ntp-module-header> +<div id="articles"> + <template id="articleRepeat" is="dom-repeat" items="[[articles]]"> + <a class="card" href="[[item.url.url]]" on-click="onArticleClick_" + on-auxclick="onArticleClick_"> + <div class="left-text"> + <div class="title" dir="auto">[[item.title]]</div> + <div class="info"> + <img is="cr-auto-img" class="favicon" + auto-src="[[item.faviconUrl.url]]" draggable="false"></img> + <div class="info-text">[[item.publisher]]</div> + </div> + </div> + <img is="cr-auto-img" + class="thumbnail" auto-src="[[item.thumbnailUrl.url]]" + draggable="false"></img> + </a> + <hr class="card-divider"> + </template> +</div>
diff --git a/chrome/browser/resources/new_tab_page/modules/feed/module.ts b/chrome/browser/resources/new_tab_page/modules/feed/module.ts new file mode 100644 index 0000000..f138d40 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/feed/module.ts
@@ -0,0 +1,68 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import '../module_header.js'; +import 'chrome://resources/cr_elements/cr_auto_img/cr_auto_img.js'; +import 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.m.js'; + +import {CrLazyRenderElement} from 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.m.js'; +import {DomRepeat, DomRepeatEvent, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {Article} from '../../feed.mojom-webui.js'; +import {I18nMixin, loadTimeData} from '../../i18n_setup.js'; +import {InfoDialogElement} from '../info_dialog.js'; +import {ModuleDescriptor, ModuleDescriptorV2, ModuleHeight} from '../module_descriptor.js'; + +import {FeedProxy} from './feed_module_proxy.js'; +import {getTemplate} from './module.html.js'; + +export interface FeedModuleElement { + $: { + articleRepeat: DomRepeat, + articles: HTMLElement, + infoDialogRender: CrLazyRenderElement<InfoDialogElement>, + }; +} + +/** The Feed module, which shows users following feed articles. */ +export class FeedModuleElement extends I18nMixin +(PolymerElement) { + static get is() { + return 'feed-ntp-module'; + } + + static get properties() { + return { + articles: Array, + }; + } + + articles: Article[]; + + private onArticleClick_(_: DomRepeatEvent<Article>) { + FeedProxy.getHandler().articleOpened(); + } + + static get template() { + return getTemplate(); + } +} + +customElements.define(FeedModuleElement.is, FeedModuleElement); + +async function createFeedElement(): Promise<HTMLElement> { + const {articles} = await FeedProxy.getHandler().getFollowingFeedArticles(); + const element = new FeedModuleElement(); + element.articles = articles; + return element; +} + +export const feedDescriptor: ModuleDescriptor = new ModuleDescriptor( + /*id=*/ 'feed', + /*name=*/ loadTimeData.getString('modulesFeedTitle'), createFeedElement); + +export const feedV2Descriptor: ModuleDescriptorV2 = new ModuleDescriptorV2( + /*id=*/ 'feed', + /*name=*/ loadTimeData.getString('modulesFeedTitle'), + /*height=*/ ModuleHeight.TALL, createFeedElement);
diff --git a/chrome/browser/resources/new_tab_page/modules/module_descriptors.ts b/chrome/browser/resources/new_tab_page/modules/module_descriptors.ts index 3d60cdd..d947710 100644 --- a/chrome/browser/resources/new_tab_page/modules/module_descriptors.ts +++ b/chrome/browser/resources/new_tab_page/modules/module_descriptors.ts
@@ -16,6 +16,7 @@ // <if expr="not is_official_build"> import {dummyV2Descriptor, dummyV2Descriptor02, dummyV2Descriptor03, dummyV2Descriptor04, dummyV2Descriptor05, dummyV2Descriptor06, dummyV2Descriptor07, dummyV2Descriptor08, dummyV2Descriptor09, dummyV2Descriptor10, dummyV2Descriptor11, dummyV2Descriptor12} from './dummy_v2/module.js'; // </if> +import {feedDescriptor, feedV2Descriptor} from './feed/module.js'; import {ModuleDescriptor, ModuleDescriptorV2} from './module_descriptor.js'; import {ModuleRegistry} from './module_registry.js'; import {photosDescriptor} from './photos/module.js'; @@ -54,6 +55,14 @@ descriptors.push(photosDescriptor); } +if (loadTimeData.getBoolean('feedModuleEnabled')) { + if (loadTimeData.getBoolean('modulesRedesignedEnabled')) { + descriptorsV2.push(feedV2Descriptor); + } else { + descriptors.push(feedDescriptor); + } +} + // <if expr="not is_official_build"> if (loadTimeData.getBoolean('dummyModulesEnabled')) { if (loadTimeData.getBoolean('modulesRedesignedEnabled')) {
diff --git a/chrome/browser/resources/new_tab_page/modules/modules.gni b/chrome/browser/resources/new_tab_page/modules/modules.gni index 1f08db9..c67a1dd 100644 --- a/chrome/browser/resources/new_tab_page/modules/modules.gni +++ b/chrome/browser/resources/new_tab_page/modules/modules.gni
@@ -6,6 +6,7 @@ import("./cart_v2/cart_v2.gni") import("./drive/drive.gni") import("./drive_v2/drive_v2.gni") +import("./feed/feed.gni") import("./photos/photos.gni") import("./recipes_v2/recipes_v2.gni") import("./task_module/task_module.gni") @@ -21,7 +22,8 @@ "modules/module_descriptors.ts", "modules/module_registry.ts", ] + cart_non_web_component_files + drive_non_web_component_files + - photos_non_web_component_files + task_module_non_web_component_files + feed_non_web_component_files + photos_non_web_component_files + + task_module_non_web_component_files if (!is_official_build) { modules_non_web_component_files += dummy_v2_non_web_component_files @@ -36,8 +38,8 @@ "modules/module_wrapper.ts", ] + cart_web_component_files + cart_v2_web_component_files + drive_web_component_files + drive_v2_web_component_files + - photos_web_component_files + recipes_v2_web_component_files + - task_module_web_component_files + feed_web_component_files + photos_web_component_files + + recipes_v2_web_component_files + task_module_web_component_files if (!is_official_build) { modules_web_component_files += dummy_v2_web_component_files
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page.gni b/chrome/browser/resources/new_tab_page/new_tab_page.gni index bedb1b8..66ce04f2 100644 --- a/chrome/browser/resources/new_tab_page/new_tab_page.gni +++ b/chrome/browser/resources/new_tab_page/new_tab_page.gni
@@ -52,6 +52,7 @@ mojo_js_files = [ "chrome_cart.mojom-webui.js", "drive.mojom-webui.js", + "feed.mojom-webui.js", "new_tab_page.mojom-webui.js", "photos.mojom-webui.js", "realbox.mojom-webui.js",
diff --git a/chrome/browser/resources/settings/chromeos/os_a11y_page/cursor_and_touchpad_page.js b/chrome/browser/resources/settings/chromeos/os_a11y_page/cursor_and_touchpad_page.js index 135898f..07b6449 100644 --- a/chrome/browser/resources/settings/chromeos/os_a11y_page/cursor_and_touchpad_page.js +++ b/chrome/browser/resources/settings/chromeos/os_a11y_page/cursor_and_touchpad_page.js
@@ -195,6 +195,17 @@ }, /** + * Whether a setting for enabling shelf navigation buttons in tablet mode + * should be displayed in the accessibility settings. + * @protected + */ + showShelfNavigationButtonsSettings_: { + type: Boolean, + computed: + 'computeShowShelfNavigationButtonsSettings_(isKioskModeActive_)', + }, + + /** * Boolean indicating whether shelf navigation buttons should implicitly * be enabled in tablet mode - the navigation buttons are implicitly * enabled when spoken feedback, automatic clicks, or switch access are
diff --git a/chrome/browser/sync/test/integration/sync_test.cc b/chrome/browser/sync/test/integration/sync_test.cc index a3f8a46a..c6a3f55 100644 --- a/chrome/browser/sync/test/integration/sync_test.cc +++ b/chrome/browser/sync/test/integration/sync_test.cc
@@ -859,6 +859,17 @@ ASSERT_TRUE(client->SetupSyncNoWaitForCompletion()) << "SetupSync() failed."; } + if (TestUsesSelfNotifications()) { + // On Android, invalidations for Session data type are disabled by + // default. This may result in test flakiness when using when using + // AwaitQuiescence() because Android commits Session for "about:blank" + // page, hence AwaitQuiescence() would wait for downloading updates + // forever. + // TODO(crbug.com/1188034): remove this workaround once SetupSync doesn't + // rely on self-notifications. + DCHECK(GetSyncService(client_index)->IsEngineInitialized()); + GetSyncService(client_index)->SetInvalidationsForSessionsEnabled(true); + } // It's important to wait for each client before setting up the next one, // otherwise multi-client tests get flaky.
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 8e55885..d0f7398 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1755,6 +1755,7 @@ "//chrome/browser/media/router/discovery/access_code:access_code_sink_service", "//chrome/browser/new_tab_page/chrome_colors:generate_chrome_colors_info", "//chrome/browser/new_tab_page/modules/drive:mojo_bindings", + "//chrome/browser/new_tab_page/modules/feed:mojo_bindings", "//chrome/browser/new_tab_page/modules/photos:mojo_bindings", "//chrome/browser/new_tab_page/modules/task_module:mojo_bindings", "//chrome/browser/profile_resetter:profile_reset_report_proto",
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index c1b10171..9486322 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2340,6 +2340,15 @@ <message name="IDS_PASSWORD_FILLING_REAUTH_PROMPT_TITLE" desc="The title of the authentication dialog displayed before the password manager fills a saved password into a website."> Verify it’s you </message> + <message name="IDS_PASSWORD_MANAGER_OUTDATED_GMS_DIALOG_DESCRIPTION" desc="Description text of the dialog appearing when the Google Play Services needs to be updated to use the Google Password Manager. Dialog suggests to update the Google Play Services."> + To manage your passwords, update Google Play services + </message> + <message name="IDS_PASSWORD_MANAGER_OUTDATED_GMS_POSITIVE_BUTTON" desc="Label for the positive ('update') button of the dialog appearing when the Google Play Services needs to be updated to use the Google Password Manager. Clicking on this button opens the Google Play services page in the Google Play Store."> + Update + </message> + <message name="IDS_PASSWORD_MANAGER_OUTDATED_GMS_NEGATIVE_BUTTON" desc="Label for the negative ('not now') button of the dialog appearing when the Google Play Services needs to be updated to use the Google Password Manager. Clicking on this button dismisses the dialog without further actions."> + Not now + </message> <!-- Runtime permission strings --> <message name="IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT" desc="Text shown educating the user that Chrome is missing the Android storage permission, which is required to download files.">
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_DIALOG_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_DIALOG_DESCRIPTION.png.sha1 new file mode 100644 index 0000000..ea7edb4b --- /dev/null +++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_DIALOG_DESCRIPTION.png.sha1
@@ -0,0 +1 @@ +d25da6c556c285f37921b2ed33841190c89c800a \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_NEGATIVE_BUTTON.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_NEGATIVE_BUTTON.png.sha1 new file mode 100644 index 0000000..ea7edb4b --- /dev/null +++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_NEGATIVE_BUTTON.png.sha1
@@ -0,0 +1 @@ +d25da6c556c285f37921b2ed33841190c89c800a \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_POSITIVE_BUTTON.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_POSITIVE_BUTTON.png.sha1 new file mode 100644 index 0000000..ea7edb4b --- /dev/null +++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_PASSWORD_MANAGER_OUTDATED_GMS_POSITIVE_BUTTON.png.sha1
@@ -0,0 +1 @@ +d25da6c556c285f37921b2ed33841190c89c800a \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index 4761363..9a54b028 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Skakel sinkronisering af?</translation> <translation id="1430915738399379752">Druk uit</translation> <translation id="1436784010935106834">Verwyder</translation> +<translation id="1437543266176261764">Loop tans in <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organiseer jou nagespoorde produkte in Boekmerke</translation> <translation id="1450753235335490080">Kan nie <ph name="CONTENT_TYPE" /> deel nie</translation> <translation id="1466383950273130737">Kies Chrome se taal</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index dbfff6ab..ac5c70b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Pəncərələri idarə edin</translation> <translation id="3631987586758005671"><ph name="DEVICE_NAME" /> ilə paylaşılır</translation> <translation id="363596933471559332">Saxlanmış kredensialları istifadə edərək vebsaytlara avtomatik daxil olun. Funksiya deaktiv olanda sayta hər dəfə girdiyinizdə doğrulama tələb olunacaq.</translation> +<translation id="3636940436873918441">Tərcih etdiyiniz dillər</translation> <translation id="3677911431265050325">Mobil saytı tələb edin</translation> <translation id="3687645719033307815">Bu səhifənin önizləməsinə baxırsınız</translation> <translation id="3690369331356918524">Data pozulması halında parolların ələ keçirilib-keçirilmədiyini Sizə bildirir</translation> @@ -1276,6 +1277,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> köhnədir.</translation> <translation id="7944772052836377867">Sinxronizasiya kimliyinizi təsdiqləməlidir</translation> <translation id="7947953824732555851">Qəbul edin və daxil olun</translation> +<translation id="7957413488482743710">Virtual kart sizi potensial dələduzluqdan qorumaq üçün faktiki kartınızı gizlədir. <ph name="BEGIN_LINK1" />Virtual kartlar haqqında ətraflı məlumat<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Heç vaxt</translation> <translation id="7961926449547174351">Yaddaş girişini deaktiv etmisiniz, aktiv etmək üçün Ayarlara keçin.</translation> <translation id="7963646190083259054">Vendor:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index f45e620..9e94bc9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Выключыць сінхранізацыю?</translation> <translation id="1430915738399379752">Друк</translation> <translation id="1436784010935106834">Выдалены</translation> +<translation id="1437543266176261764">Выконваецца ў <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Упарадкоўвайце тавары, за якімі сочыце, у Закладках</translation> <translation id="1450753235335490080">Не ўдалося абагуліць наступнае змесціва: <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Выберыце мову Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb index 35f4dc2..7899c06 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Да се изключи ли синхронизирането?</translation> <translation id="1430915738399379752">Печат</translation> <translation id="1436784010935106834">Премахнато</translation> +<translation id="1437543266176261764">Изпълнява се в(ъв) <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Организирайте проследяваните от вас продукти в „Отметки“</translation> <translation id="1450753235335490080">Споделянето на <ph name="CONTENT_TYPE" /> не е възможно</translation> <translation id="1466383950273130737">Изберете език за Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index 6c706b85..0e926c14 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Upravljajte prozorima</translation> <translation id="3631987586758005671">Dijeljenje s uređajem <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Automatski se prijavite na web lokacije korištenjem pohranjenih akreditiva. Kada je ova funkcija isključena, od vas će se tražiti potvrda prilikom svake prijave na web lokaciju.</translation> +<translation id="3636940436873918441">Preferirani jezici</translation> <translation id="3677911431265050325">Zatraži web lokaciju za mobilni uređaj</translation> <translation id="3687645719033307815">Prikazan vam je pregled ove stranice</translation> <translation id="3690369331356918524">Upozorava vas ako su lozinke izložene prilikom narušavanja podataka</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Proizvod <ph name="PRODUCT_NAME" /> je zastario.</translation> <translation id="7944772052836377867">Sinhronizacija mora potvrditi da ste to vi</translation> <translation id="7947953824732555851">Prihvati i prijavi me</translation> +<translation id="7957413488482743710">Virtualna kartica skriva vašu stvarnu karticu kako bi vas bolje zaštitila od potencijalne prijevare. <ph name="BEGIN_LINK1" />Saznajte više o virtualnim karticama<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nikada</translation> <translation id="7961926449547174351">Onemogućili ste pristup pohrani. Idite u Postavke da ga omogućite.</translation> <translation id="7963646190083259054">Dobavljač:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index c5f902b..6952a98 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Spravovat okna</translation> <translation id="3631987586758005671">Sdílení se zařízením <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Přihlašovat se na weby automaticky pomocí uložených identifikačních údajů. Když je tato funkce vypnutá, budete před každým přihlášením na web požádáni o ověření.</translation> +<translation id="3636940436873918441">Preferované jazyky</translation> <translation id="3677911431265050325">Požadovat mobilní web</translation> <translation id="3687645719033307815">Prohlížíte si náhled této stránky</translation> <translation id="3690369331356918524">Upozorní vás v případě vyzrazení hesel při porušení zabezpečení</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Aplikace <ph name="PRODUCT_NAME" /> je zastaralá.</translation> <translation id="7944772052836377867">Synchronizace potřebuje ověřit vaši identitu</translation> <translation id="7947953824732555851">Přijmout a přihlásit</translation> +<translation id="7957413488482743710">Virtuální karta skryje vaši skutečnou kartu a chrání vás před případným podvodem. <ph name="BEGIN_LINK1" />Další informace o virtuálních kartách<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nikdy</translation> <translation id="7961926449547174351">Zakázali jste přístup k úložišti. Přejděte do Nastavení a povolte ho.</translation> <translation id="7963646190083259054">Dodavatel:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index dcc91435..f92ad766 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Synchronisierung deaktivieren?</translation> <translation id="1430915738399379752">Drucken</translation> <translation id="1436784010935106834">Entfernt</translation> +<translation id="1437543266176261764">Wird ausgeführt in <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Du kannst deine beobachteten Produkte in den Lesezeichen organisieren</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> kann nicht geteilt werden</translation> <translation id="1466383950273130737">Sprache für Chrome auswählen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb index 96f0efd..26db970 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">¿Quieres desactivar la sincronización?</translation> <translation id="1430915738399379752">Imprimir</translation> <translation id="1436784010935106834">Eliminado</translation> +<translation id="1437543266176261764">Se ejecuta en <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organizar tus productos con seguimiento en Favoritos</translation> <translation id="1450753235335490080">No se puede compartir <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Elegir el idioma de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index 5a459f53..da11010 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">همگامسازی خاموش شود؟</translation> <translation id="1430915738399379752">چاپ</translation> <translation id="1436784010935106834">حذف شد</translation> +<translation id="1437543266176261764">درحال اجرا در <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">محصولات پیگیریشده را در «نشانکها» سازماندهی کنید</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> همرسانی نشد</translation> <translation id="1466383950273130737">انتخاب زبان Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index 922ef84a..f5f4145 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Désactiver la synchronisation ?</translation> <translation id="1430915738399379752">Imprimer</translation> <translation id="1436784010935106834">Supprimé</translation> +<translation id="1437543266176261764">Exécution dans <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organisez vos produits suivis dans les favoris</translation> <translation id="1450753235335490080">Impossible de partager le contenu suivant : <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Choisissez la langue de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index a1076b0..1f81420b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Queres desactivar a sincronización?</translation> <translation id="1430915738399379752">Imprimir</translation> <translation id="1436784010935106834">Eliminados</translation> +<translation id="1437543266176261764">Executándose en <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organiza os produtos dos que fagas un seguimento en Marcadores</translation> <translation id="1450753235335490080">Non se puido compartir este contido: <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Escolle o idioma de Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index f6f47d5f..1505b52 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">क्या आपको सिंक करने की सुविधा बंद करनी है?</translation> <translation id="1430915738399379752">प्रिंट करें</translation> <translation id="1436784010935106834">निकाला गया</translation> +<translation id="1437543266176261764"><ph name="APP_NAME" /> में चल रही है</translation> <translation id="1448440926884431741">ट्रैक किए गए प्रॉडक्ट को Bookmarks में व्यवस्थित करें</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> शेयर नहीं किया जा सकता</translation> <translation id="1466383950273130737">Chrome की भाषा चुनें</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb index 6eeb4d65..2a7fcb9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Upravljanje prozorima</translation> <translation id="3631987586758005671">Dijeljenje s uređajem <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Automatski se prijavite na web-lokacije pomoću spremljenih vjerodajnica. Kada je ta značajka isključena, tražit će se potvrda prije svakog prijavljivanja na web-lokaciju.</translation> +<translation id="3636940436873918441">Preferirani jezici</translation> <translation id="3677911431265050325">Zatraži web-lokaciju za mobilne uređaje</translation> <translation id="3687645719033307815">Gledate pregled ove stranice</translation> <translation id="3690369331356918524">Upozorava ako su zaporke ugrožene zbog povrede podataka</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Proizvod <ph name="PRODUCT_NAME" /> zastario je.</translation> <translation id="7944772052836377867">Sinkronizacija treba potvrditi da ste to vi</translation> <translation id="7947953824732555851">Prihv. i prijavi se</translation> +<translation id="7957413488482743710">Virtualna kartica skriva vašu stvarnu karticu kako bi vas bolje zaštitila od potencijalne prijevare. <ph name="BEGIN_LINK1" />Saznajte više o virtualnim karticama<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nikad</translation> <translation id="7961926449547174351">Onemogućili ste pristup pohrani. Omogućite ga u Postavkama.</translation> <translation id="7963646190083259054">Dobavljač:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index d8900ca..00babb4b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Slökkva á samstillingu?</translation> <translation id="1430915738399379752">Prenta</translation> <translation id="1436784010935106834">Fjarlægð</translation> +<translation id="1437543266176261764">Keyrt í <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Notaðu bókamerki til að flokka vörur sem þú vaktar</translation> <translation id="1450753235335490080">Ekki er hægt að deila <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Velja tungumál Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index a86afee..9b9a8be 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Vuoi disattivare la sincronizzazione?</translation> <translation id="1430915738399379752">Stampa</translation> <translation id="1436784010935106834">Rimosso</translation> +<translation id="1437543266176261764">Esecuzione in <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organizza i tuoi prodotti monitorati in Segnalibri</translation> <translation id="1450753235335490080">Impossibile condividere <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Seleziona la lingua di Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index ffd44c57..89d64803 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">לכבות את הסנכרון?</translation> <translation id="1430915738399379752">הדפסה</translation> <translation id="1436784010935106834">הוסר</translation> +<translation id="1437543266176261764">הפעילות מתבצעת ב-<ph name="APP_NAME" /></translation> <translation id="1448440926884431741">יש לך אפשרות לארגן את המוצרים שבמעקב ב-Bookmarks</translation> <translation id="1450753235335490080">לא ניתן לשתף את ה<ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">בחירת השפה ב-Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index 7c4eb8d4..c3c8f37 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">បិទសមកាលកម្មឬ?</translation> <translation id="1430915738399379752">បោះពុម្ព</translation> <translation id="1436784010935106834">បានដកចេញ</translation> +<translation id="1437543266176261764">កំពុងដំណើរការក្នុង <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">រៀបចំផលិតផលដែលអ្នកតាមដាននៅក្នុងចំណាំ</translation> <translation id="1450753235335490080">មិនអាចចែករំលែក <ph name="CONTENT_TYPE" /> បានទេ</translation> <translation id="1466383950273130737">ជ្រើសរើសភាសារបស់ Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index 54caeec8..7895eef 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Išjungti sinchronizavimą?</translation> <translation id="1430915738399379752">Spausdinti</translation> <translation id="1436784010935106834">Pašalinta</translation> +<translation id="1437543266176261764">Vykdoma programoje „<ph name="APP_NAME" />“</translation> <translation id="1448440926884431741">Tvarkykite stebimus produktus Žymėse</translation> <translation id="1450753235335490080">Nepavyko bendrinti turinio: <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">„Chrome“ kalbos pasirinkimas</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index 1b1c7881..c5c58d5b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Vai izslēgt sinhronizāciju?</translation> <translation id="1430915738399379752">Drukāt</translation> <translation id="1436784010935106834">Noņemts</translation> +<translation id="1437543266176261764">Darbojas pārlūkā <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Kārtojiet savus izsekotos produktus grāmatzīmēs</translation> <translation id="1450753235335490080">Nevar kopīgot: <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Izvēlieties pārlūka Chrome valodu</translation> @@ -488,6 +489,7 @@ <translation id="3622349720008044802">Logu pārvaldība</translation> <translation id="3631987586758005671">Notiek kopīgošana ar ierīci <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Automātiski pierakstīties vietnēs, izmantojot saglabātos akreditācijas datus. Ja funkcija ir izslēgta, verifikācija būs jāveic ikreiz, kad pierakstīsieties vietnē.</translation> +<translation id="3636940436873918441">Vēlamās valodas</translation> <translation id="3677911431265050325">Pieprasīt mobilo vietni</translation> <translation id="3687645719033307815">Jūs skatāt šīs lapas priekšskatījumu.</translation> <translation id="3690369331356918524">Tiek parādīts brīdinājums, ja paroles ir atklātas datu aizsardzības pārkāpuma dēļ.</translation> @@ -1277,6 +1279,7 @@ <translation id="7942131818088350342">Spraudnis <ph name="PRODUCT_NAME" /> ir novecojis.</translation> <translation id="7944772052836377867">Sinhronizēšanai nepieciešams apstiprināt jūsu identitāti</translation> <translation id="7947953824732555851">Pieņemt un pierakst.</translation> +<translation id="7957413488482743710">Virtuāla karte paslēpj jūsu faktisko karti, lai efektīvāk aizsargātu jūs pret iespējamu krāpšanu. <ph name="BEGIN_LINK1" />Uzziniet vairāk par virtuālajām kartēm<ph name="END_LINK1" />.</translation> <translation id="7961015016161918242">Nekad</translation> <translation id="7961926449547174351">Jūs esat atspējojis piekļuvi krātuvei. Lai to iespējotu, pārejiet uz iestatījumiem.</translation> <translation id="7963646190083259054">Nodrošina:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb index bc377798..da71016 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Управувајте со прозорци</translation> <translation id="3631987586758005671">Се споделува на <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Автоматски најавувајте се на веб-сајтови со складирани акредитиви. Кога функцијата е исклучена, ќе се бара проверка од вас секогаш пред најавување на веб-сајт.</translation> +<translation id="3636940436873918441">Претпочитани јазици</translation> <translation id="3677911431265050325">Побарај мобилна верзија на сајтот</translation> <translation id="3687645719033307815">Гледате преглед на страницава</translation> <translation id="3690369331356918524">Ве предупредува ако лозинките се откриени при упад во податоците</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> е застарен.</translation> <translation id="7944772052836377867">Синхронизацијата треба да потврди дека сте вие</translation> <translation id="7947953824732555851">Прифати и најави се</translation> +<translation id="7957413488482743710">Виртуелната картичка ја сокрива вашата актуелна картичка за да ја заштити од потенцијална измама. <ph name="BEGIN_LINK1" />Дознајте повеќе за виртуелните картички<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Никогаш</translation> <translation id="7961926449547174351">Сте го оневозможиле пристапот до „Капацитет“, одете во „Поставки“ за да го овозможите.</translation> <translation id="7963646190083259054">Продавач:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index 96401a2..94674c1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">सिंक बंद करायचे आहे का?</translation> <translation id="1430915738399379752">प्रिंट</translation> <translation id="1436784010935106834">काढली</translation> +<translation id="1437543266176261764"><ph name="APP_NAME" /> मध्ये रन होत आहे</translation> <translation id="1448440926884431741">तुमची माग ठेवलेली उत्पादने Bookmarks मध्ये व्यवस्थापित करा</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> शेअर करू शकत नाही</translation> <translation id="1466383950273130737">Chrome ची भाषा निवडा</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb index 62b2cf3..9a328e8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Zarządzaj oknami</translation> <translation id="3631987586758005671">Udostępniam urządzeniu <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Automatycznie loguj się na stronach, używając zapisanych danych logowania. Gdy ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o weryfikację.</translation> +<translation id="3636940436873918441">Preferowane języki</translation> <translation id="3677911431265050325">Otwórz stronę mobilną</translation> <translation id="3687645719033307815">Widzisz podgląd strony</translation> <translation id="3690369331356918524">Ostrzega, jeśli wskutek naruszenia bezpieczeństwa danych doszło do ujawnienia haseł</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Przeglądarka <ph name="PRODUCT_NAME" /> jest nieaktualna.</translation> <translation id="7944772052836377867">Synchronizacja musi potwierdzić Twoją tożsamość</translation> <translation id="7947953824732555851">Zaakceptuj i zaloguj się</translation> +<translation id="7957413488482743710">Karta wirtualna ukrywa Twoją prawdziwą kartę, aby chronić Cię przed oszustwami. <ph name="BEGIN_LINK1" />Więcej informacji o kartach wirtualnych<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nigdy</translation> <translation id="7961926449547174351">Został wyłączony dostęp do pamięci. Otwórz ustawienia i włącz go.</translation> <translation id="7963646190083259054">Dostawca:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index 3d36b813..c1019b8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Faça a gestão das janelas</translation> <translation id="3631987586758005671">A partilhar com <ph name="DEVICE_NAME" />…</translation> <translation id="363596933471559332">Inicie automaticamente sessão em Sites com as credenciais armazenadas. Quando a funcionalidade está desativada, é-lhe sempre pedida validação antes de iniciar sessão num Website.</translation> +<translation id="3636940436873918441">Idiomas preferidos</translation> <translation id="3677911431265050325">Pedir site para dispositivos móveis</translation> <translation id="3687645719033307815">Está a ver uma pré-visualização desta página.</translation> <translation id="3690369331356918524">Envia-lhe um aviso se as palavras-passe forem expostas numa violação de dados.</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">O <ph name="PRODUCT_NAME" /> está desatualizado.</translation> <translation id="7944772052836377867">A sincronização precisa de validar a sua identidade</translation> <translation id="7947953824732555851">Aceitar e in. sessão</translation> +<translation id="7957413488482743710">Um cartão virtual oculta o seu cartão real como medida de proteção contra potenciais fraudes. <ph name="BEGIN_LINK1" />Saiba mais sobre cartões virtuais<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nunca</translation> <translation id="7961926449547174351">Desativou o acesso ao armazenamento. Aceda às Definições para o ativar.</translation> <translation id="7963646190083259054">Fornecedor:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index 03044ea..3b5b322 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Të çaktivizohet sinkronizimi?</translation> <translation id="1430915738399379752">Printo</translation> <translation id="1436784010935106834">U hoq</translation> +<translation id="1437543266176261764">Po ekzekutohet në <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organizo produktet e tua të monitoruara te "Faqeshënuesit"</translation> <translation id="1450753235335490080">Nuk mund të ndahet <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Zgjidh gjuhën e Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb index 68e53609..6650c38a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Upravljajte prozorima</translation> <translation id="3631987586758005671">Deli se sa: <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Automatski se prijavljujte na veb-sajtove pomoću sačuvanih akreditiva. Kada je ova funkcija isključena, tražićemo vam da se verifikujete pre svakog prijavljivanja na veb-sajt.</translation> +<translation id="3636940436873918441">Željeni jezici</translation> <translation id="3677911431265050325">Zahtevaj mobilni sajt</translation> <translation id="3687645719033307815">Pregledate ovu stranicu</translation> <translation id="3690369331356918524">Upozorava vas ako su lozinke otkrivene pri upadu u podatke</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Proizvod <ph name="PRODUCT_NAME" /> je zastareo.</translation> <translation id="7944772052836377867">Sinhronizacija mora da potvrdi da ste to vi</translation> <translation id="7947953824732555851">Prihvati i prijavi me</translation> +<translation id="7957413488482743710">Virtuelna kartica krije vašu stvarnu karticu da bi vas zaštitila od potencijalne prevare. <ph name="BEGIN_LINK1" />Saznajte više o virtuelnim karticama<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Nikad</translation> <translation id="7961926449547174351">Onemogućili ste pristup memorijskom prostoru. Idite u Podešavanja da biste ga omogućili.</translation> <translation id="7963646190083259054">Prodavac:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb index b4f9e50..beb5dac8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -489,6 +489,7 @@ <translation id="3622349720008044802">Управљајте прозорима</translation> <translation id="3631987586758005671">Дели се са: <ph name="DEVICE_NAME" /></translation> <translation id="363596933471559332">Аутоматски се пријављујте на веб-сајтове помоћу сачуваних акредитива. Када је ова функција искључена, тражићемо вам да се верификујете пре сваког пријављивања на веб-сајт.</translation> +<translation id="3636940436873918441">Жељени језици</translation> <translation id="3677911431265050325">Захтевај мобилни сајт</translation> <translation id="3687645719033307815">Прегледате ову страницу</translation> <translation id="3690369331356918524">Упозорава вас ако су лозинке откривене при упаду у податке</translation> @@ -1278,6 +1279,7 @@ <translation id="7942131818088350342">Производ <ph name="PRODUCT_NAME" /> је застарео.</translation> <translation id="7944772052836377867">Синхронизација мора да потврди да сте то ви</translation> <translation id="7947953824732555851">Прихвати и пријави ме</translation> +<translation id="7957413488482743710">Виртуелна картица крије вашу стварну картицу да би вас заштитила од потенцијалне преваре. <ph name="BEGIN_LINK1" />Сазнајте више о виртуелним картицама<ph name="END_LINK1" /></translation> <translation id="7961015016161918242">Никад</translation> <translation id="7961926449547174351">Онемогућили сте приступ меморијском простору. Идите у Подешавања да бисте га омогућили.</translation> <translation id="7963646190083259054">Продавац:</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index 4001d9dc..afaae52 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Vill du inaktivera synkronisering?</translation> <translation id="1430915738399379752">Skriv ut</translation> <translation id="1436784010935106834">Borttagna</translation> +<translation id="1437543266176261764">Körs i <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Organisera bevakade produkter under Bokmärken</translation> <translation id="1450753235335490080">Det gick inte att dela <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Välj språk i Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb index 2bcd68d29..243462f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Ungependa kuzima usawazishaji?</translation> <translation id="1430915738399379752">Chapisha</translation> <translation id="1436784010935106834">Zimeondolewa</translation> +<translation id="1437543266176261764">Inatumika kwenye programu ya <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Panga bidhaa unazofuatilia kwenye Alamisho</translation> <translation id="1450753235335490080">Imeshindwa kushiriki <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Chagua lugha ya Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb index ace30ef6..d535a45 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -248,7 +248,7 @@ <translation id="2328985652426384049">సైన్ ఇన్ చేయడం సాధ్యపడదు</translation> <translation id="234265804618409743">మీ కెమెరాను తెరవడం సాధ్యపడలేదు. ఏదో పొరపాటు జరిగింది.</translation> <translation id="2349710944427398404">ఖాతాలు, బుక్మార్క్లు, సేవ్ చేసిన సెట్టింగ్లతో సహా Chrome ఉపయోగించిన మొత్తం డేటా</translation> -<translation id="2353636109065292463">మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేస్తోంది</translation> +<translation id="2353636109065292463">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేస్తోంది</translation> <translation id="235789365079050412">Google గోప్యతా పాలసీ</translation> <translation id="2359808026110333948">కొనసాగించు</translation> <translation id="2386938421315164605">అంశాలను దాచండి లేదా చూపండి</translation> @@ -336,7 +336,7 @@ <translation id="2838367486340230368">గోప్యతా గైడ్ వివరణ షీట్ స్క్రీన్లో సగం వరకు తెరవబడింది</translation> <translation id="2839327205551510876"><ph name="SITE_NAME" /> అనుసరణ రద్దు చేయబడింది</translation> <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> అజ్ఞాత ట్యాబ్ మూసివేయబడుతుంది}other{<ph name="TAB_COUNT_MANY" /> అజ్ఞాత ట్యాబ్లు మూసివేయబడతాయి}}</translation> -<translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 రోజు క్రితం తనిఖీ చేసింది}other{# రోజుల క్రితం తనిఖీ చేసింది}}</translation> +<translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 రోజు క్రితం చెక్ చేసింది}other{# రోజుల క్రితం చెక్ చేసింది}}</translation> <translation id="2842985007712546952">మూల ఫోల్డర్</translation> <translation id="2856503607207334158">సైన్ ఇన్ చేయడం విఫలమైంది</translation> <translation id="2860954141821109167">ఈ పరికరంలో ఫోన్ యాప్ ప్రారంభించబడిందని నిర్ధారించుకోండి</translation> @@ -997,7 +997,7 @@ <translation id="6437478888915024427">పేజీ సమాచారం</translation> <translation id="6441734959916820584">పేరు చాలా పొడువు ఉంది</translation> <translation id="6444421004082850253">{FILE_COUNT,plural, =1{# ఫోటో}other{# ఫోటోలు}}</translation> -<translation id="6447558397796644647">ఆ బుక్మార్క్ను కనుగొనడం సాధ్యం కాలేదు. మీ స్పెల్లింగ్ను తనిఖీ చేయండి లేదా కొత్త బుక్మార్క్ను జోడించండి.</translation> +<translation id="6447558397796644647">ఆ బుక్మార్క్ను కనుగొనడం సాధ్యం కాలేదు. మీ స్పెల్లింగ్ను చెక్ చేయండి లేదా కొత్త బుక్మార్క్ను జోడించండి.</translation> <translation id="6459045781120991510">సర్వేలు</translation> <translation id="6461962085415701688">ఫైల్ను తెరవడం సాధ్యపడదు</translation> <translation id="6464977750820128603">Chromeలో మీరు ఏయే సైట్లను సందర్శించారో చూడవచ్చు, వాటికి టైమర్లను సెట్ చేయవచ్చు.\n\nమీరు టైమర్లను సెట్ చేసిన సైట్ల సమాచారం, మీరు ఎంతసేపు వాటిని సందర్శించారనే వివరాలు Googleకు అందించబడతాయి. డిజిటల్ సంక్షేమాన్ని మరింత మెరుగుపరచడానికి ఈ సమాచారం ఉపయోగించబడుతుంది.</translation> @@ -1013,7 +1013,7 @@ <translation id="6534565668554028783">Google ప్రతిస్పందించడానికి చాలా ఎక్కువ సమయం తీసుకుంది</translation> <translation id="6539092367496845964">ఏదో తప్పు జరిగింది. తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="6541042852576515209">పరిమాణం మార్చండి, అలాగే తిప్పండి</translation> -<translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 గంట క్రితం తనిఖీ చేసింది}other{# గంటల క్రితం తనిఖీ చేసింది}}</translation> +<translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 గంట క్రితం చెక్ చేసింది}other{# గంటల క్రితం చెక్ చేసింది}}</translation> <translation id="6545017243486555795">మొత్తం డేటాను తీసివేయి</translation> <translation id="6546511553472444032">ఫైల్ హానికరమైనది కావచ్చు</translation> <translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" />, ఇంకా మరో <ph name="TAB_COUNT_ONE" /> ట్యాబ్ మూసివేయబడుతుంది}other{<ph name="TAB_TITLE" />, ఇంకా మరో <ph name="TAB_COUNT_MANY" /> ట్యాబ్లు మూసివేయబడతాయి}}</translation> @@ -1053,7 +1053,7 @@ <translation id="6674571176963658787">సింక్ను ప్రారంభించడానికి, రహస్య పదబంధాన్ని ఎంటర్ చేయండి</translation> <translation id="6676840375528380067">ఈ పరికరం నుండి మీ Chrome డేటాని తీసివేయాలా?</translation> <translation id="6684809838922667136">Chromeను మెరుగుపరచండి</translation> -<translation id="670498945988402717">నిన్న తనిఖీ చేసింది</translation> +<translation id="670498945988402717">నిన్న చెక్ చేసింది</translation> <translation id="6710213216561001401">మునుపటి</translation> <translation id="671481426037969117">మీ <ph name="FQDN" /> టైమర్ పూర్తయింది. అది మళ్లీ రేపు ప్రారంభమవుతుంది.</translation> <translation id="6715020873764921614">మీరు ఏదేమైనా <ph name="FILE_NAME" /> (<ph name="FILE_SIZE" />)ను డౌన్లోడ్ చేయాలనుకుంటున్నారా?</translation> @@ -1120,7 +1120,7 @@ <translation id="7071521146534760487">ఖాతాను నిర్వహిస్తుంది</translation> <translation id="707155805709242880">దేనిని సింక్ చేయాలో దిగువున ఎంచుకోండి</translation> <translation id="7077143737582773186">SD కార్డ్</translation> -<translation id="7080806333218412752">URLలను తనిఖీ చేయడానికి వాటిని సురక్షిత బ్రౌజింగ్కు పంపుతుంది. కొత్త రకం ప్రమాదాలను గుర్తించడంలో సహాయపడటానికి కొన్ని నమూనా పేజీలు, డౌన్లోడ్లు, ఎక్స్టెన్షన్ యాక్టివిటీ, సిస్టమ్ సమాచారాన్ని కూడా పంపుతుంది. మీరు సైన్ ఇన్ చేసి ఉన్నప్పుడు, మిమ్మల్ని అన్ని Google యాప్లలో కాపాడటానికి ఈ డేటాను తాత్కాలికంగా మీ Google ఖాతాకు లింక్ చేస్తుంది.</translation> +<translation id="7080806333218412752">URLలను చెక్ చేయడానికి వాటిని సురక్షిత బ్రౌజింగ్కు పంపుతుంది. కొత్త రకం ప్రమాదాలను గుర్తించడంలో సహాయపడటానికి కొన్ని నమూనా పేజీలు, డౌన్లోడ్లు, ఎక్స్టెన్షన్ యాక్టివిటీ, సిస్టమ్ సమాచారాన్ని కూడా పంపుతుంది. మీరు సైన్ ఇన్ చేసి ఉన్నప్పుడు, మిమ్మల్ని అన్ని Google యాప్లలో కాపాడటానికి ఈ డేటాను తాత్కాలికంగా మీ Google ఖాతాకు లింక్ చేస్తుంది.</translation> <translation id="7085332316435785646">Google సర్వీస్లలో మరింత వ్యక్తిగతీకరించిన అనుభవం కోసం Chrome హిస్టరీని చేర్చాలో, లేదో ఎంచుకోండి</translation> <translation id="7088681679121566888">Chrome అప్డేట్ చేసి ఉంది</translation> <translation id="7093803425429738190">ఎమోషన్ను జోడించండి</translation> @@ -1297,7 +1297,7 @@ <translation id="8032569120109842252">ఫాలో చేస్తున్నారు</translation> <translation id="8035133914807600019">కొత్త ఫోల్డర్…</translation> <translation id="8037750541064988519"><ph name="DAYS" /> రోజులు మిగిలి ఉంది</translation> -<translation id="8037801708772278989">ఇప్పుడే తనిఖీ చేసింది</translation> +<translation id="8037801708772278989">ఇప్పుడే చెక్ చేసింది</translation> <translation id="804335162455518893">SD కార్డ్ కనుగొనబడలేదు</translation> <translation id="8048533522416101084">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> అజ్ఞాత ట్యాబ్}other{<ph name="TAB_COUNT_NORMAL" /> అజ్ఞాత ట్యాబ్లు}}</translation> <translation id="8051695050440594747"><ph name="MEGABYTES" /> MB అందుబాటులో ఉంది</translation> @@ -1525,7 +1525,7 @@ <translation id="916446198114569890">మీరు సందర్శించే URLలు మీ Google ఖాతాకు సేవ్ చేయబడతాయి</translation> <translation id="9169507124922466868">నావిగేషన్ చరిత్ర సగం తెరిచి ఉంది</translation> <translation id="9187955620966010988">ప్రతిస్పందన సర్దుబాటు చేయబడింది</translation> -<translation id="9199368092038462496">{NUM_MINS,plural, =1{1 నిమిషం క్రితం తనిఖీ చేసింది}other{# నిమిషాల క్రితం తనిఖీ చేసింది}}</translation> +<translation id="9199368092038462496">{NUM_MINS,plural, =1{1 నిమిషం క్రితం చెక్ చేసింది}other{# నిమిషాల క్రితం చెక్ చేసింది}}</translation> <translation id="9204836675896933765">1 ఫైల్ మిగిలి ఉంది</translation> <translation id="9205933215779845960">ఆ పేజీని కనుగొనడం సాధ్యపడలేదు. మీ స్పెల్లింగ్ను చెక్ చేయండి లేదా <ph name="SEARCH_ENGINE" />లో సెర్చ్ చేయడానికి ట్రై చేయండి.</translation> <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index 0a327efb..88ff41b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Senkronizasyon kapatılsın mı?</translation> <translation id="1430915738399379752">Yazdır</translation> <translation id="1436784010935106834">Kaldırıldı</translation> +<translation id="1437543266176261764"><ph name="APP_NAME" /> uygulamasında çalışıyor</translation> <translation id="1448440926884431741">Takip edilen ürünlerinizi yer işaretlerinde düzenleyin</translation> <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> paylaşılamıyor</translation> <translation id="1466383950273130737">Chrome’un dilini seçin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index ef4a255..71634ea 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Вимкнути синхронізацію?</translation> <translation id="1430915738399379752">Друк</translation> <translation id="1436784010935106834">Видалено</translation> +<translation id="1437543266176261764">Запущено в додатку <ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Впорядковуйте відстежувані товари в закладках</translation> <translation id="1450753235335490080">Не вдалося надіслати: <ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Виберіть мову Chrome</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb index b516950..57c46647 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -97,6 +97,7 @@ <translation id="1428770807407000502">Vala ukuvumelanisa?</translation> <translation id="1430915738399379752">Phrinta</translation> <translation id="1436784010935106834">Isusiwe</translation> +<translation id="1437543266176261764">Qalisa ku-<ph name="APP_NAME" /></translation> <translation id="1448440926884431741">Hlela imikhiqizo yakho elandelelwe Kumabhukhimakhi</translation> <translation id="1450753235335490080">Ayikwazi ukwabelana nge-<ph name="CONTENT_TYPE" /></translation> <translation id="1466383950273130737">Khetha ulimi lwe-Chrome</translation>
diff --git a/chrome/browser/ui/ash/clipboard_history_browsertest.cc b/chrome/browser/ui/ash/clipboard_history_browsertest.cc index 40b6da0..145afcf 100644 --- a/chrome/browser/ui/ash/clipboard_history_browsertest.cc +++ b/chrome/browser/ui/ash/clipboard_history_browsertest.cc
@@ -1227,7 +1227,7 @@ // in this test case. // Flaky: crbug/1224777 IN_PROC_BROWSER_TEST_F(ClipboardHistoryWebContentsBrowserTest, - DISABLED_VerifyHTMLRendering) { + VerifyHTMLRendering) { // Load the web page which contains images and text. ASSERT_TRUE(ui_test_utils::NavigateToURL( browser(), embedded_test_server()->GetURL("/image-and-text.html"))); @@ -1252,8 +1252,19 @@ // history shows, the process of HTML rendering starts. auto event_generator = std::make_unique<ui::test::EventGenerator>( ash::Shell::GetPrimaryRootWindow()); + + EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing()); event_generator->PressAndReleaseKey(ui::VKEY_V, ui::EF_COMMAND_DOWN); + // Add a callback that collects the stack trace when the clipboard history + // menu is closed. It helps to investigate the reason why the clipboard + // history menu is closed unexpectedly. + // TODO(https://crbug.com/1224777): when the flakiness is fixed, remove it. + GetClipboardHistoryController()->set_on_menu_closed_callback_for_test( + base::BindOnce([]() { + ADD_FAILURE() << "The clipboard history menu should not be closed"; + })); + // Render HTML with auto-resize mode enabled. Wait until the rendering // finishes. ImageModelRequestTestParams test_params(/*callback=*/base::NullCallback(), @@ -1273,6 +1284,14 @@ // Verify that the clipboard history menu shows. Then close the menu. EXPECT_TRUE(GetClipboardHistoryController()->IsMenuShowing()); + + // Reset the callback that runs when the clipboard history menu is closed. + // According to the CQ record, the unexpected menu close happens before + // this line. + // TODO(https://crbug.com/1224777): when the flakiness is fixed, remove it. + GetClipboardHistoryController()->set_on_menu_closed_callback_for_test( + base::NullCallback()); + event_generator->PressAndReleaseKey(ui::VKEY_ESCAPE, ui::EF_NONE); EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
diff --git a/chrome/browser/ui/ash/desks/desks_client_browsertest.cc b/chrome/browser/ui/ash/desks/desks_client_browsertest.cc index c5d1e7e7..5ef415b1 100644 --- a/chrome/browser/ui/ash/desks/desks_client_browsertest.cc +++ b/chrome/browser/ui/ash/desks/desks_client_browsertest.cc
@@ -1412,7 +1412,7 @@ aura::Window* window = browser()->window()->GetNativeWindow(); // Snap the window to the left. - const ash::WMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); + const ash::WindowSnapWMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); ash::WindowState::Get(window)->OnWMEvent(&left_snap_event); ASSERT_EQ(gfx::Rect(1000, 1000), window->GetBoundsInScreen()); @@ -2413,6 +2413,8 @@ loop2.Run(); } +// TODO(crbug.com/1333965): Add some tests to launch LaCros browser. + class DesksTemplatesClientArcTest : public InProcessBrowserTest { public: DesksTemplatesClientArcTest() {
diff --git a/chrome/browser/ui/ash/desks/desks_templates_app_launch_handler.cc b/chrome/browser/ui/ash/desks/desks_templates_app_launch_handler.cc index 7f8e0d6..d6d5f57 100644 --- a/chrome/browser/ui/ash/desks/desks_templates_app_launch_handler.cc +++ b/chrome/browser/ui/ash/desks/desks_templates_app_launch_handler.cc
@@ -295,10 +295,7 @@ if (app_id != app_constants::kLacrosAppId) continue; - for (const auto& window_iter : iter.second) { - const std::unique_ptr<app_restore::AppRestoreData>& app_restore_data = - window_iter.second; - + for (const auto& [restore_window_id, app_restore_data] : iter.second) { if (!app_restore_data->active_tab_index.has_value() || !app_restore_data->urls.has_value()) { LOG(WARNING) << "Corrupted data for the Lacros window found"; @@ -312,7 +309,7 @@ app_restore_data->window_state_type.value_or( chromeos::WindowStateType::kDefault)), app_restore_data->active_tab_index.value(), - GetBrowserAppName(app_restore_data, app_id)); + GetBrowserAppName(app_restore_data, app_id), restore_window_id); } } restore_data()->RemoveApp(app_constants::kLacrosAppId);
diff --git a/chrome/browser/ui/ash/session_controller_client_impl.cc b/chrome/browser/ui/ash/session_controller_client_impl.cc index f2f42df..5f472d6 100644 --- a/chrome/browser/ui/ash/session_controller_client_impl.cc +++ b/chrome/browser/ui/ash/session_controller_client_impl.cc
@@ -56,6 +56,10 @@ using user_manager::UserList; using user_manager::UserManager; +// TODO(b/228873153): Remove after figuring out the root cause of the bug +#undef ENABLED_VLOG_LEVEL +#define ENABLED_VLOG_LEVEL 1 + namespace { // The minimum session length limit that can be set. @@ -410,7 +414,8 @@ if (!CanLockScreen()) return; - VLOG(1) << "Requesting screen lock from SessionControllerClientImpl"; + VLOG(1) << "b/228873153 : Requesting screen lock from " + "SessionControllerClientImpl"; ash::SessionManagerClient::Get()->RequestLockScreen(); }
diff --git a/chrome/browser/ui/side_search/side_search_utils.cc b/chrome/browser/ui/side_search/side_search_utils.cc index a1c826f..06f5ae14 100644 --- a/chrome/browser/ui/side_search/side_search_utils.cc +++ b/chrome/browser/ui/side_search/side_search_utils.cc
@@ -14,6 +14,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_service.h" #include "chrome/browser/sessions/session_service_factory.h" +#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/side_search/side_search_prefs.h" #include "chrome/browser/ui/side_search/side_search_tab_contents_helper.h" #include "chrome/browser/ui/side_search/side_search_tab_data.pb.h" @@ -114,6 +115,10 @@ IsSideSearchEnabled(profile); } +bool IsEnabledForBrowser(const Browser* browser) { + return IsSideSearchEnabled(browser->profile()) && browser->is_type_normal(); +} + } // namespace side_search bool IsSideSearchEnabled(const Profile* profile) {
diff --git a/chrome/browser/ui/side_search/side_search_utils.h b/chrome/browser/ui/side_search/side_search_utils.h index 844b4ad..ec0b5819 100644 --- a/chrome/browser/ui/side_search/side_search_utils.h +++ b/chrome/browser/ui/side_search/side_search_utils.h
@@ -12,6 +12,7 @@ #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" +class Browser; class Profile; namespace content { @@ -45,6 +46,9 @@ // is enabled. bool IsDSESupportEnabled(const Profile* profile); +// Returns true if side search is enabled and is supported for `browser`. +bool IsEnabledForBrowser(const Browser* browser); + } // namespace side_search bool IsSideSearchEnabled(const Profile* profile);
diff --git a/chrome/browser/ui/views/frame/browser_frame_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_frame_ash_browsertest.cc index 979df0d..8d4d574 100644 --- a/chrome/browser/ui/views/frame/browser_frame_ash_browsertest.cc +++ b/chrome/browser/ui/views/frame/browser_frame_ash_browsertest.cc
@@ -96,7 +96,7 @@ window->SetBounds(restored_bounds); // Snap the window to the left. - const ash::WMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); + const ash::WindowSnapWMEvent left_snap_event(ash::WM_EVENT_SNAP_PRIMARY); ash::WindowState::Get(window)->OnWMEvent(&left_snap_event); const gfx::Size snapped_size = window->GetBoundsInScreen().size();
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index a6f5515c..d6863069 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -911,7 +911,7 @@ } #endif - if (browser_->is_type_normal() && IsSideSearchEnabled(browser_->profile())) { + if (side_search::IsEnabledForBrowser(browser_.get())) { if (!base::FeatureList::IsEnabled(features::kUnifiedSidePanel)) { side_search_side_panel_ = AddChildView(std::make_unique<SidePanel>(this)); left_aligned_side_panel_separator_ =
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.cc b/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.cc index 420e25ea..87aae9e 100644 --- a/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.cc +++ b/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.cc
@@ -108,7 +108,7 @@ content::WebContents* web_contents, content_settings::CookieControlsController* controller) : LocationBarBubbleDelegateView(anchor_view, web_contents), - controller_(controller) { + controller_(controller->AsWeakPtr()) { SetShowTitle(true); SetShowCloseButton(true); controller_observation_.Observe(controller); @@ -250,7 +250,7 @@ switch (status_) { case CookieControlsStatus::kEnabled: return l10n_util::GetPluralStringFUTF16( - (controller_->FirstPartyCookiesBlocked() + (controller_ && controller_->FirstPartyCookiesBlocked() ? IDS_COOKIE_CONTROLS_DIALOG_TITLE_ALL_BLOCKED : IDS_COOKIE_CONTROLS_DIALOG_TITLE), blocked_cookies_.value_or(0)); @@ -271,10 +271,14 @@ if (this_bubble) g_instance = nullptr; - controller_->OnUiClosing(); + if (controller_) + controller_->OnUiClosing(); } void CookieControlsBubbleView::OnDialogAccepted() { + if (!controller_) + return; + if (intermediate_step_ == IntermediateStep::kTurnOffButton) { controller_->OnCookieBlockingEnabledForSite(false); } else {
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.h b/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.h index 4a7639ae..46816b6 100644 --- a/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.h +++ b/chrome/browser/ui/views/location_bar/cookie_controls_bubble_view.h
@@ -6,6 +6,7 @@ #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_COOKIE_CONTROLS_BUBBLE_VIEW_H_ #include "base/memory/raw_ptr.h" +#include "base/memory/weak_ptr.h" #include "chrome/browser/ui/cookie_controls/cookie_controls_service.h" #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view.h" #include "components/content_settings/browser/ui/cookie_controls_controller.h" @@ -85,7 +86,7 @@ void OnTooltipBubbleShown(views::TooltipIcon* icon) override; void OnTooltipIconDestroying(views::TooltipIcon* icon) override; - raw_ptr<content_settings::CookieControlsController> controller_ = nullptr; + base::WeakPtr<content_settings::CookieControlsController> controller_; CookieControlsStatus status_ = CookieControlsStatus::kUninitialized;
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 d51db309..eb46527 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -301,7 +301,7 @@ // TODO(crbug.com/1318890): Improve the ordering heuristics for page action // icons and determine a way to handle simultaneous icon animations. if (side_search::IsDSESupportEnabled(profile_) && - browser_->is_type_normal()) { + side_search::IsEnabledForBrowser(browser_)) { params.types_enabled.push_back(PageActionIconType::kSideSearch); } params.types_enabled.push_back(PageActionIconType::kSendTabToSelf);
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index 2409c06..32d39af77 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -1614,7 +1614,8 @@ GURL(chrome::kOsUIVersionURL), GURL(chrome::kChromeUIVmUrl), GURL(chrome::kOsUISystemURL), - GURL(chrome::kOsUIHelpAppURL)}; + GURL(chrome::kOsUIHelpAppURL), + GURL(chrome::kOsUINetExportURL)}; #elif BUILDFLAG(IS_CHROMEOS_LACROS) return std::vector<GURL>{GURL(chrome::kChromeUIAboutURL), GURL(chrome::kChromeUIComponentsUrl),
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc index e7c606c3b..94cd9983 100644 --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -19,6 +19,7 @@ #include "chrome/browser/buildflags.h" #include "chrome/browser/cart/cart_handler.h" #include "chrome/browser/new_tab_page/modules/drive/drive_handler.h" +#include "chrome/browser/new_tab_page/modules/feed/feed_handler.h" #include "chrome/browser/new_tab_page/modules/photos/photos_handler.h" #include "chrome/browser/new_tab_page/modules/task_module/task_module_handler.h" #include "chrome/browser/profiles/profile.h" @@ -52,6 +53,7 @@ #include "chrome/grit/theme_resources.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/favicon_base/favicon_url_parser.h" +#include "components/feed/feed_feature_list.h" #include "components/google/core/common/google_util.h" #include "components/grit/components_scaled_resources.h" #include "components/prefs/pref_registry_simple.h" @@ -330,6 +332,7 @@ {"modulesDummy10Title", IDS_NTP_MODULES_DUMMY2_TITLE}, {"modulesDummy11Title", IDS_NTP_MODULES_DUMMY2_TITLE}, {"modulesDummy12Title", IDS_NTP_MODULES_DUMMY2_TITLE}, + {"modulesFeedTitle", IDS_NTP_MODULES_FEED_TITLE}, {"modulesKaleidoscopeTitle", IDS_NTP_MODULES_KALEIDOSCOPE_TITLE}, {"modulesPhotosInfo", IDS_NTP_MODULES_PHOTOS_INFO}, {"modulesPhotosSentence", IDS_NTP_MODULES_PHOTOS_MEMORIES_TITLE}, @@ -453,6 +456,8 @@ source->AddBoolean( "modulesRedesignedLayoutEnabled", base::FeatureList::IsEnabled(ntp_features::kNtpModulesRedesignedLayout)); + source->AddBoolean("feedModuleEnabled", base::FeatureList::IsEnabled( + ntp_features::kNtpFeedModule)); std::vector<std::string> splitExperimentGroup = base::SplitString( base::GetFieldTrialParamValueByFeature( @@ -666,6 +671,12 @@ profile_, web_contents_); } +void NewTabPageUI::BindInterface( + mojo::PendingReceiver<ntp::feed::mojom::FeedHandler> pending_receiver) { + feed_handler_ = + ntp::FeedHandler::Create(std::move(pending_receiver), profile_); +} + #if !defined(OFFICIAL_BUILD) void NewTabPageUI::BindInterface( mojo::PendingReceiver<foo::mojom::FooHandler> pending_page_handler) {
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h index 081137b..18549fcc 100644 --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h
@@ -9,6 +9,7 @@ #include "base/time/time.h" #include "chrome/browser/cart/chrome_cart.mojom.h" #include "chrome/browser/new_tab_page/modules/drive/drive.mojom.h" +#include "chrome/browser/new_tab_page/modules/feed/feed.mojom.h" #include "chrome/browser/new_tab_page/modules/photos/photos.mojom.h" #include "chrome/browser/new_tab_page/modules/task_module/task_module.mojom.h" #include "ui/webui/resources/js/browser_command/browser_command.mojom.h" @@ -61,7 +62,9 @@ class CartHandler; class DriveHandler; class PhotosHandler; - +namespace ntp { +class FeedHandler; +} class NewTabPageUI : public ui::MojoWebUIController, public new_tab_page::mojom::PageHandlerFactory, @@ -134,6 +137,11 @@ void BindInterface( mojo::PendingReceiver<photos::mojom::PhotosHandler> pending_receiver); + // Instantiates the implementor of ntp::feed::mojom::FeedHandler mojo + // interface passing the pending receiver that will be internally bound. + void BindInterface( + mojo::PendingReceiver<ntp::feed::mojom::FeedHandler> pending_receiver); + #if !defined(OFFICIAL_BUILD) // Instantiates the implementor of the foo::mojom::FooHandler mojo interface // passing the pending receiver that will be internally bound. @@ -235,6 +243,7 @@ std::unique_ptr<TaskModuleHandler> task_module_handler_; std::unique_ptr<DriveHandler> drive_handler_; std::unique_ptr<PhotosHandler> photos_handler_; + std::unique_ptr<ntp::FeedHandler> feed_handler_; PrefChangeRegistrar pref_change_registrar_;
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc index c5685687..7ed7c67 100644 --- a/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc
@@ -58,13 +58,17 @@ {IDS_OS_SETTINGS_TAG_A11Y_ALWAYS_SHOW_OPTIONS_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_STICKY_KEYS, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, {.setting = mojom::Setting::kStickyKeys}}, {IDS_OS_SETTINGS_TAG_A11Y_LARGE_CURSOR, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kCursorAndTouchpadSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -102,7 +106,9 @@ {IDS_OS_SETTINGS_TAG_A11y_CHROMEVOX_ALT1, IDS_OS_SETTINGS_TAG_A11y_CHROMEVOX_ALT2, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_MONO_AUDIO, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kAudioAndCaptionsSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kLow, mojom::SearchResultType::kSetting, @@ -125,7 +131,9 @@ mojom::SearchResultType::kSubpage, {.subpage = mojom::Subpage::kCaptions}}, {IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_CURSOR, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kCursorAndTouchpadSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -142,13 +150,17 @@ {.subpage = mojom::Subpage::kManageAccessibility}, {IDS_OS_SETTINGS_TAG_A11Y_MANAGE_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_ON_SCREEN_KEYBOARD, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, {.setting = mojom::Setting::kOnScreenKeyboard}}, {IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_TEXT_CARET, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -156,7 +168,9 @@ {IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_TEXT_CARET_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_DICTATION, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -176,7 +190,9 @@ {IDS_OS_SETTINGS_TAG_A11Y_HIGH_CONTRAST_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_KEYBOARD_FOCUS, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -184,7 +200,9 @@ {IDS_OS_SETTINGS_TAG_A11Y_HIGHLIGHT_KEYBOARD_FOCUS_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_STARTUP_SOUND, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kAudioAndCaptionsSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -192,7 +210,9 @@ {IDS_OS_SETTINGS_TAG_A11Y_STARTUP_SOUND_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_AUTOMATICALLY_CLICK, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kCursorAndTouchpadSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -238,13 +258,17 @@ IDS_OS_SETTINGS_TAG_A11Y_FULLSCREEN_MAGNIFIER_ALT2, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_A11Y_ENABLE_SWITCH_ACCESS, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kKeyboardAndTextInputSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, {.setting = mojom::Setting::kEnableSwitchAccess}}, {IDS_OS_SETTINGS_TAG_A11Y_CURSOR_COLOR, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kCursorAndTouchpadSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -283,7 +307,9 @@ GetA11yTabletNavigationButtonSearchConcepts() { static const base::NoDestructor<std::vector<SearchConcept>> tags({ {IDS_OS_SETTINGS_TAG_A11Y_TABLET_NAVIGATION_BUTTONS, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kCursorAndTouchpadSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -357,7 +383,9 @@ GetA11yFullscreenMagnifierFocusFollowingSearchConcepts() { static const base::NoDestructor<std::vector<SearchConcept>> tags({ {IDS_OS_SETTINGS_TAG_A11Y_FULLSCREEN_MAGNIFIER_FOCUS_FOLLOWING, - mojom::kManageAccessibilitySubpagePath, + ::features::IsAccessibilityOSSettingsVisibilityEnabled() + ? mojom::kDisplayAndMagnificationSubpagePath + : mojom::kManageAccessibilitySubpagePath, mojom::SearchResultIcon::kA11y, mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSetting, @@ -393,6 +421,25 @@ mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultType::kSubpage, {.subpage = mojom::Subpage::kKeyboardAndTextInput}}, + {IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE, + mojom::kCursorAndTouchpadSubpagePath, + mojom::SearchResultIcon::kA11y, + mojom::SearchResultDefaultRank::kMedium, + mojom::SearchResultType::kSubpage, + {.subpage = mojom::Subpage::kCursorAndTouchpad}, + {IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT1, + IDS_OS_SETTINGS_TAG_A11Y_CURSOR_AND_TOUCHPAD_PAGE_ALT2, + SearchConcept::kAltTagEnd}}, + {IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE, + mojom::kAudioAndCaptionsSubpagePath, + mojom::SearchResultIcon::kA11y, + mojom::SearchResultDefaultRank::kMedium, + mojom::SearchResultType::kSubpage, + {.subpage = mojom::Subpage::kAudioAndCaptions}, + {IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT1, + IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT2, + IDS_OS_SETTINGS_TAG_A11Y_AUDIO_AND_CAPTIONS_PAGE_ALT3, + SearchConcept::kAltTagEnd}}, }); return *tags; }
diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc index 02aa1fd8..5cd9340 100644 --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -300,8 +300,8 @@ int index = args[0].GetInt(); TemplateURL* engine = nullptr; - if (index >= 0 && static_cast<size_t>(index) >= - list_controller_.table_model()->RowCount()) { + if (index >= 0 && + static_cast<size_t>(index) < list_controller_.table_model()->RowCount()) { engine = list_controller_.GetTemplateURL(index); } else if (index != kNewSearchEngineIndex) { return;
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index efea86c..af8c9fe30 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1657756544-344fa5d9e1277514e143017cd5399dcb1df9c4e8.profdata +chrome-linux-main-1657799781-a01447279cac714c4f98702cdc6aba4e280774a3.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 6b86c917..d85c25c 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1657777050-2730c995b40447047590f783799286f8a9b690c2.profdata +chrome-mac-arm-main-1657799781-3a3555f6870839761b74bf6194a5dab4d7413c5d.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 7b18f94..16ff78c 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1657777050-7789022ab6e0009d8f7868f31b9e3b03944700ca.profdata +chrome-mac-main-1657799781-c64dfe6a5c2e378641e259e3b6fa2497ebeba521.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 3cdbc8f..20127f6f 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1657777050-f27c9d633c21685385016d81f2f3f64fc2fef1f3.profdata +chrome-win32-main-1657799781-bdb9803ecc4b0b098e660a5b7f5c84e99210c2eb.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 84cf7fa..8474fed 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1657777050-0d9eea687473c164385870a8450bfa751395b9aa.profdata +chrome-win64-main-1657799781-8abf5c58805234b19f6ff14d70e561c65e92b7a8.profdata
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index ed8041b2..139d1a8 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc
@@ -2125,36 +2125,6 @@ const char kWebAppsUrlHandlerInfo[] = "web_apps.url_handler_info"; #endif -// A string representing the last version of Chrome that System Web Apps were -// updated for. -const char kSystemWebAppLastUpdateVersion[] = - "web_apps.system_web_app_last_update"; - -// A string representing the last locale that System Web Apps were installed in. -// This is used to refresh System Web Apps i18n when the locale is changed. -const char kSystemWebAppLastInstalledLocale[] = - "web_apps.system_web_app_last_installed_language"; - -// An int representing the number of failures to install SWAs for a given -// version & locale pair. After 3 failures, we'll abandon this version to avoid -// bootlooping, and wait for a new version to come along. -const char kSystemWebAppInstallFailureCount[] = - "web_apps.system_web_app_failure_count"; - -// A string representing the latest Chrome version where an attempt was made -// to install. In the case of success, this and LastUpdateVersion will be the -// same. If there is an installation failure, they will diverge until a -// successful installation is made. -extern const char kSystemWebAppLastAttemptedVersion[] = - "web_apps.system_web_app_last_attempted_update"; - -// A string representing the most recent locale that was attempted to be -// installed. In the case of success, this and LastUpdateVersion will be the -// same. If there is an installation failure, they will diverge until a -// successful installation is made. -extern const char kSystemWebAppLastAttemptedLocale[] = - "web_apps.system_web_app_last_attempted_language"; - // The default audio capture device used by the Media content setting. const char kDefaultAudioCaptureDevice[] = "media.default_audio_capture_device";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index 02dc8c1..50004c13 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -711,12 +711,6 @@ extern const char kWebAppsUrlHandlerInfo[]; #endif -extern const char kSystemWebAppLastUpdateVersion[]; -extern const char kSystemWebAppLastInstalledLocale[]; -extern const char kSystemWebAppInstallFailureCount[]; -extern const char kSystemWebAppLastAttemptedVersion[]; -extern const char kSystemWebAppLastAttemptedLocale[]; - extern const char kDefaultAudioCaptureDevice[]; extern const char kDefaultVideoCaptureDevice[]; extern const char kMediaDeviceIdSalt[];
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc index 8e6f444f..1d2cb98 100644 --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc
@@ -392,6 +392,7 @@ const char kOsUIInvalidationsURL[] = "os://invalidations"; const char kOsUILockScreenNetworkURL[] = "os://lock-network"; const char kOsUINetworkURL[] = "os://network"; +const char kOsUINetExportURL[] = "os://net-export"; const char kOsUIRestartURL[] = "os://restart"; const char kOsUISettingsURL[] = "os://settings"; const char kOsUISignInInternalsURL[] = "os://signin-internals";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h index 6daf10b..b45428c 100644 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h
@@ -364,6 +364,7 @@ extern const char kOsUIHistogramsURL[]; extern const char kOsUIInvalidationsURL[]; extern const char kOsUILockScreenNetworkURL[]; +extern const char kOsUINetExportURL[]; extern const char kOsUINetworkURL[]; extern const char kOsUIRestartURL[]; extern const char kOsUISettingsURL[];
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc index 61d2a70..d5b1bbe5 100644 --- a/chrome/installer/util/shell_util.cc +++ b/chrome/installer/util/shell_util.cc
@@ -42,11 +42,13 @@ #include "base/strings/utf_string_conversions.h" #include "base/synchronization/atomic_flag.h" #include "base/values.h" +#include "base/win/access_token.h" #include "base/win/default_apps_util.h" #include "base/win/pe_image.h" #include "base/win/registry.h" #include "base/win/scoped_co_mem.h" #include "base/win/shortcut.h" +#include "base/win/sid.h" #include "base/win/win_util.h" #include "base/win/windows_version.h" #include "chrome/common/chrome_constants.h" @@ -93,6 +95,8 @@ const wchar_t kReinstallCommand[] = L"ReinstallCommand"; +constexpr wchar_t kRegHash[] = L"Hash"; + const wchar_t kRegProgId[] = L"ProgId"; const wchar_t kFilePathSeparator[] = L"\\"; @@ -1645,6 +1649,37 @@ return ShellUtil::DeleteApplicationClass(prog_id); } +std::wstring GetSID() { + std::wstring result; + absl::optional<base::win::AccessToken> current_process = + base::win::AccessToken::FromProcess(GetCurrentProcess(), false); + if (!current_process) + return result; + + absl::optional<std::wstring> sid = current_process->User().ToSddlString(); + if (!sid) + return result; + + result = *sid; + return result; +} + +std::wstring GetCurrentDateTimeForHashing() { + SYSTEMTIME system_time; + ::GetSystemTime(&system_time); + // The user choice hash function uses the registry write time as an input into + // the hash function. Considering only time down to the minute significantly + // increases the chance that the computed hash and registry write time are the + // same. If the registry write occurs near a minute boundary, the hash will + // likely need to be recomputed and rewritten. + system_time.wSecond = 0; + system_time.wMilliseconds = 0; + FILETIME file_time; + ::SystemTimeToFileTime(&system_time, &file_time); + return base::StringPrintf(L"%08lx%08lx", file_time.dwHighDateTime, + file_time.dwLowDateTime); +} + // The user choice hash function uses a shell32 wide string as a salt. This // function attempts to extract that string. std::wstring GetShellUserChoiceSalt() { @@ -1763,6 +1798,54 @@ base::span<uint8_t>(reinterpret_cast<uint8_t*>(input), sizeof(input)))); } +bool IsUserChoiceHashValid(const base::win::RegKey& user_choice_reg_key, + const std::wstring& extension, + const std::wstring& sid, + const std::wstring& prog_id, + const std::wstring& salt) { + // Manually validate the hash instead of using + // IApplicationAssociationRegistration because + // IApplicationAssociationRegistration may trigger a UI notification and reset + // all of the defaults upon encountering an invalid hash. + FILETIME last_write_time = user_choice_reg_key.GetLastWriteTime(); + SYSTEMTIME last_write_system_time; + ::FileTimeToSystemTime(&last_write_time, &last_write_system_time); + // The hash computation aligns the time to minute boundaries. + last_write_system_time.wSecond = 0; + last_write_system_time.wMilliseconds = 0; + ::SystemTimeToFileTime(&last_write_system_time, &last_write_time); + std::wstring last_write_time_string = + base::StringPrintf(L"%08lx%08lx", last_write_time.dwHighDateTime, + last_write_time.dwLowDateTime); + std::wstring current_hash; + if (user_choice_reg_key.ReadValue(kRegHash, ¤t_hash) != ERROR_SUCCESS) + return false; + + std::wstring expected_hash = ComputeUserChoiceHash( + extension, sid, prog_id, last_write_time_string, salt); + return current_hash == expected_hash; +} + +bool WriteUserChoiceValues(base::win::RegKey& user_choice_reg_key, + const std::wstring& extension, + const std::wstring& sid, + const std::wstring& prog_id, + const std::wstring& salt) { + // Allow 5 retries in the event the hash is computed near a minute boundary. + for (int i = 0; i < 5; ++i) { + std::wstring datetime = GetCurrentDateTimeForHashing(); + std::wstring hash = + ComputeUserChoiceHash(extension, sid, prog_id, datetime, salt); + user_choice_reg_key.WriteValue(kRegHash, hash.c_str()); + user_choice_reg_key.WriteValue(kRegProgId, prog_id.c_str()); + if (IsUserChoiceHashValid(user_choice_reg_key, extension, sid, prog_id, + salt)) { + return true; + } + } + return false; +} + } // namespace const wchar_t* ShellUtil::kRegAppProtocolHandlers = L"\\AppProtocolHandlers"; @@ -2321,6 +2404,75 @@ return ret; } +bool ShellUtil::MakeChromeDefaultDirectly(int shell_change, + const base::FilePath& chrome_exe, + bool elevate_if_not_admin) { + DCHECK(!(shell_change & SYSTEM_LEVEL) || IsUserAnAdmin()); + + if (base::win::GetVersion() < base::win::Version::WIN10) + return false; + + if (!install_static::SupportsSetAsDefaultBrowser()) + return false; + + if (!RegisterChromeBrowser(chrome_exe, std::wstring(), + elevate_if_not_admin)) { + return false; + } + + std::wstring suffix; + if (!GetInstallationSpecificSuffix(chrome_exe, &suffix)) + return false; + + std::wstring prog_id = GetBrowserProgId(suffix); + + std::wstring sid = GetSID(); + if (sid.empty()) + return false; + + std::wstring shell_salt = GetShellUserChoiceSalt(); + if (shell_salt.empty()) + return false; + + base::win::RegKey url_associations_key( + HKEY_CURRENT_USER, + L"SOFTWARE\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations", + KEY_ALL_ACCESS); + for (size_t i = 0; kBrowserProtocolAssociations[i] != nullptr; ++i) { + std::wstring subkey_path( + base::StrCat({kBrowserProtocolAssociations[i], L"\\UserChoice"})); + // Deleting the key works around the deny set value ACL on UserChoice. + url_associations_key.DeleteKey(subkey_path.c_str()); + base::win::RegKey key(url_associations_key.Handle(), subkey_path.c_str(), + KEY_READ | KEY_WRITE); + if (!WriteUserChoiceValues(key, kBrowserProtocolAssociations[i], sid, + prog_id, shell_salt)) { + return false; + } + } + + base::win::RegKey file_extensions_key( + HKEY_CURRENT_USER, + L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts", + KEY_ALL_ACCESS); + for (size_t i = 0; kDefaultFileAssociations[i] != nullptr; ++i) { + std::wstring subkey_path( + base::StrCat({kDefaultFileAssociations[i], L"\\UserChoice"})); + // Deleting the key works around the deny set value ACL on UserChoice. + file_extensions_key.DeleteKey(subkey_path.c_str()); + base::win::RegKey key(file_extensions_key.Handle(), subkey_path.c_str(), + KEY_READ | KEY_WRITE); + if (!WriteUserChoiceValues(key, kDefaultFileAssociations[i], sid, prog_id, + shell_salt)) { + return false; + } + } + + SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nullptr, nullptr); + + return true; +} + // static bool ShellUtil::LaunchUninstallAppsSettings() { DCHECK_GE(base::win::GetVersion(), base::win::Version::WIN10); @@ -3036,3 +3188,13 @@ return ComputeUserChoiceHash(extension, sid, prog_id, datetime, shell_salt); } + +// static +std::wstring ShellUtil::GetCurrentProgIdForTesting( + const base::FilePath& chrome_exe) { + std::wstring suffix; + if (!GetInstallationSpecificSuffix(chrome_exe, &suffix)) + return std::wstring(); + + return GetBrowserProgId(suffix); +}
diff --git a/chrome/installer/util/shell_util.h b/chrome/installer/util/shell_util.h index 027e510..d3cc277f 100644 --- a/chrome/installer/util/shell_util.h +++ b/chrome/installer/util/shell_util.h
@@ -529,16 +529,33 @@ // TODO(benwells): Attempt to undo any changes that were successfully made. // http://crbug.com/83970 // - // shell_change: Defined whether to register as default browser at system + // shell_change: Defines whether to register as default browser at system // level or user level. If value has ShellChange::SYSTEM_LEVEL // we should be running as admin user. // chrome_exe: The chrome.exe path to register as default browser. - // elevate_if_not_admin: On Vista if user is not admin, try to elevate for + // elevate_if_not_admin: On Win7 if user is not admin, try to elevate for // Chrome registration. static bool MakeChromeDefault(int shell_change, const base::FilePath& chrome_exe, bool elevate_if_not_admin); + // Make Chrome the default browser. This function works by going through + // the url protocols and file associations that are related to general + // browsing, e.g. http, https, .html etc., and directly setting the relevant + // registry entries for each. If any of these fails the operation will return + // false to indicate failure, which is consistent with the return value of + // shell_integration::GetDefaultBrowser. + // + // shell_change: Defines whether to register as default browser at system + // level or user level. If value has ShellChange::SYSTEM_LEVEL + // we should be running as admin user. + // chrome_exe: The chrome.exe path to register as default browser. + // elevate_if_not_admin: On Win7 if user is not admin, try to elevate for + // Chrome registration. + static bool MakeChromeDefaultDirectly(int shell_change, + const base::FilePath& chrome_exe, + bool elevate_if_not_admin); + // Opens the Apps & Features page in the Windows settings in branded builds. // // This function DCHECKS that it is only called on Windows 10 or higher. @@ -859,6 +876,9 @@ const std::wstring& sid, const std::wstring& prog_id, const std::wstring& datetime); + + static std::wstring GetCurrentProgIdForTesting( + const base::FilePath& chrome_exe); }; #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_
diff --git a/chrome/installer/util/shell_util_unittest.cc b/chrome/installer/util/shell_util_unittest.cc index 9555bd00..72a39fb9 100644 --- a/chrome/installer/util/shell_util_unittest.cc +++ b/chrome/installer/util/shell_util_unittest.cc
@@ -5,7 +5,9 @@ #include "chrome/installer/util/shell_util.h" #include <cguid.h> +#include <shobjidl.h> #include <stddef.h> +#include <wrl/client.h> #include <memory> #include <string> @@ -23,7 +25,9 @@ #include "base/test/scoped_path_override.h" #include "base/test/test_reg_util_win.h" #include "base/test/test_shortcut_win.h" +#include "base/win/com_init_util.h" #include "base/win/registry.h" +#include "base/win/scoped_co_mem.h" #include "base/win/shortcut.h" #include "base/win/windows_version.h" #include "chrome/install_static/install_util.h" @@ -1628,3 +1632,76 @@ L".html", L"S-1-5-21-2745944652-1798522384-4190209206-1001", L"ChromiumHTM.77HL62E3NQOIRZILVHSWMGHIQE", L"01d88bf3ee5fd000")); } + +namespace { + +std::wstring GetCurrentDefault( + IApplicationAssociationRegistration* registration, + const wchar_t* query, + ASSOCIATIONTYPE query_type, + ASSOCIATIONLEVEL query_level) { + base::win::ScopedCoMem<wchar_t> current_app; + if (FAILED(registration->QueryCurrentDefault(query, query_type, query_level, + ¤t_app))) { + return std::wstring(); + } + return current_app.get(); +} + +} // namespace + +TEST(ShellUtilTest, MakeChromeDefaultDirectly) { + // Direct default setting is only supported on Win10 or above. + if (base::win::GetVersion() < base::win::Version::WIN10) + GTEST_SKIP(); + + base::win::AssertComInitialized(); + + base::ScopedTempDir temp_dir; + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); + registry_util::RegistryOverrideManager registry_overrides; + ASSERT_NO_FATAL_FAILURE( + registry_overrides.OverrideRegistry(HKEY_CURRENT_USER)); + + Microsoft::WRL::ComPtr<IApplicationAssociationRegistration> registration; + ASSERT_HRESULT_SUCCEEDED( + ::CoCreateInstance(CLSID_ApplicationAssociationRegistration, nullptr, + CLSCTX_INPROC_SERVER, IID_PPV_ARGS(®istration))); + + // IApplicationAssociationRegistration::SetAppAsDefault only works for + // "MSEdgeHTM" for http, https, .htm, and .html on Win10+ and serves as a + // convenient initial environment setup for this test. + ASSERT_HRESULT_SUCCEEDED( + registration->SetAppAsDefault(L"MSEdgeHTM", L"http", AT_URLPROTOCOL)); + ASSERT_HRESULT_SUCCEEDED( + registration->SetAppAsDefault(L"MSEdgeHTM", L"https", AT_URLPROTOCOL)); + ASSERT_HRESULT_SUCCEEDED( + registration->SetAppAsDefault(L"MSEdgeHTM", L".htm", AT_FILEEXTENSION)); + ASSERT_HRESULT_SUCCEEDED( + registration->SetAppAsDefault(L"MSEdgeHTM", L".html", AT_FILEEXTENSION)); + + ASSERT_EQ(L"MSEdgeHTM", GetCurrentDefault(registration.Get(), L"http", + AT_URLPROTOCOL, AL_EFFECTIVE)); + ASSERT_EQ(L"MSEdgeHTM", GetCurrentDefault(registration.Get(), L"https", + AT_URLPROTOCOL, AL_EFFECTIVE)); + ASSERT_EQ(L"MSEdgeHTM", GetCurrentDefault(registration.Get(), L".htm", + AT_FILEEXTENSION, AL_EFFECTIVE)); + ASSERT_EQ(L"MSEdgeHTM", GetCurrentDefault(registration.Get(), L".html", + AT_FILEEXTENSION, AL_EFFECTIVE)); + + base::FilePath chrome_exe(temp_dir.GetPath().Append(installer::kChromeExe)); + ASSERT_TRUE(ShellUtil::MakeChromeDefaultDirectly(ShellUtil::CURRENT_USER, + chrome_exe, false)); + std::wstring prog_id = ShellUtil::GetCurrentProgIdForTesting(chrome_exe); + + // If the expectations fail below, the default browser mechanism has changed + // and will need to be reexamined. + EXPECT_EQ(prog_id, GetCurrentDefault(registration.Get(), L"http", + AT_URLPROTOCOL, AL_EFFECTIVE)); + EXPECT_EQ(prog_id, GetCurrentDefault(registration.Get(), L"https", + AT_URLPROTOCOL, AL_EFFECTIVE)); + EXPECT_EQ(prog_id, GetCurrentDefault(registration.Get(), L".htm", + AT_FILEEXTENSION, AL_EFFECTIVE)); + EXPECT_EQ(prog_id, GetCurrentDefault(registration.Get(), L".html", + AT_FILEEXTENSION, AL_EFFECTIVE)); +}
diff --git a/chrome/services/system_signals/BUILD.gn b/chrome/services/system_signals/BUILD.gn new file mode 100644 index 0000000..39c431c3 --- /dev/null +++ b/chrome/services/system_signals/BUILD.gn
@@ -0,0 +1,22 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/config/features.gni") + +source_set("unit_tests") { + testonly = true + deps = [] + + if (is_win) { + deps += [ "//chrome/services/system_signals/win:unit_tests" ] + } + + if (is_mac) { + deps += [ "//chrome/services/system_signals/mac:unit_tests" ] + } + + if (is_linux) { + deps += [ "//chrome/services/system_signals/linux:unit_tests" ] + } +}
diff --git a/chrome/services/system_signals/linux/BUILD.gn b/chrome/services/system_signals/linux/BUILD.gn index bdab721..3f048e9e5 100644 --- a/chrome/services/system_signals/linux/BUILD.gn +++ b/chrome/services/system_signals/linux/BUILD.gn
@@ -1,4 +1,4 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. +# Copyright 2022 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -11,5 +11,26 @@ public_deps = [ "//components/device_signals/core/common/mojom" ] - deps = [ "//base" ] + deps = [ + "//base", + "//components/device_signals/core/common", + "//components/device_signals/core/common/linux", + ] +} + +source_set("unit_tests") { + testonly = true + sources = [ "linux_system_signals_service_unittest.cc" ] + + deps = [ + ":linux", + "//base", + "//base/test:test_support", + "//components/device_signals/core/common", + "//components/device_signals/core/common:test_support", + "//components/device_signals/core/common/mojom", + "//mojo/public/mojom/base", + "//testing/gmock", + "//testing/gtest", + ] }
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service.cc b/chrome/services/system_signals/linux/linux_system_signals_service.cc index 78d894e1..2e567b0 100644 --- a/chrome/services/system_signals/linux/linux_system_signals_service.cc +++ b/chrome/services/system_signals/linux/linux_system_signals_service.cc
@@ -4,16 +4,29 @@ #include "chrome/services/system_signals/linux/linux_system_signals_service.h" +#include <utility> + +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/linux/linux_platform_delegate.h" +#include "components/device_signals/core/common/platform_delegate.h" + namespace system_signals { -LinuxSystemSignalsService::LinuxSystemSignalsService() = default; +LinuxSystemSignalsService::LinuxSystemSignalsService() + : LinuxSystemSignalsService(device_signals::FileSystemService::Create( + std::make_unique<device_signals::LinuxPlatformDelegate>())) {} + +LinuxSystemSignalsService::LinuxSystemSignalsService( + std::unique_ptr<device_signals::FileSystemService> file_system_service) + : file_system_service_(std::move(file_system_service)) {} + LinuxSystemSignalsService::~LinuxSystemSignalsService() = default; void LinuxSystemSignalsService::GetFileSystemSignals( const std::vector<device_signals::GetFileSystemInfoOptions>& requests, GetFileSystemSignalsCallback callback) { - // TODO(b/231326345): Implement this. - std::move(callback).Run({}); + std::move(callback).Run(file_system_service_->GetSignals(requests)); } } // namespace system_signals
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service.h b/chrome/services/system_signals/linux/linux_system_signals_service.h index 385a57c0..eecc1db 100644 --- a/chrome/services/system_signals/linux/linux_system_signals_service.h +++ b/chrome/services/system_signals/linux/linux_system_signals_service.h
@@ -5,10 +5,15 @@ #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_LINUX_LINUX_SYSTEM_SIGNALS_SERVICE_H_ #define CHROME_SERVICES_SYSTEM_SIGNALS_LINUX_LINUX_SYSTEM_SIGNALS_SERVICE_H_ +#include <memory> #include <vector> #include "components/device_signals/core/common/mojom/system_signals.mojom.h" +namespace device_signals { +class FileSystemService; +} // namespace device_signals + namespace system_signals { class LinuxSystemSignalsService @@ -25,6 +30,15 @@ void GetFileSystemSignals( const std::vector<device_signals::GetFileSystemInfoOptions>& requests, GetFileSystemSignalsCallback callback) override; + + private: + friend class LinuxSystemSignalsServiceTest; + + // Constructor that can be used by tests to mock out dependencies. + explicit LinuxSystemSignalsService( + std::unique_ptr<device_signals::FileSystemService> file_system_service); + + std::unique_ptr<device_signals::FileSystemService> file_system_service_; }; } // namespace system_signals
diff --git a/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc b/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc new file mode 100644 index 0000000..ddbf64d --- /dev/null +++ b/chrome/services/system_signals/linux/linux_system_signals_service_unittest.cc
@@ -0,0 +1,72 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/services/system_signals/linux/linux_system_signals_service.h" + +#include <memory> +#include <utility> + +#include "base/files/file_path.h" +#include "base/test/task_environment.h" +#include "base/test/test_future.h" +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/mock_file_system_service.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using device_signals::MockFileSystemService; +using testing::Return; + +namespace system_signals { + +class LinuxSystemSignalsServiceTest : public testing::Test { + protected: + LinuxSystemSignalsServiceTest() { + auto file_system_service = + std::make_unique<testing::StrictMock<MockFileSystemService>>(); + file_system_service_ = file_system_service.get(); + + // Have to use "new" since make_unique doesn't have access to friend private + // constructor. + linux_system_signals_service_ = std::unique_ptr<LinuxSystemSignalsService>( + new LinuxSystemSignalsService(std::move(file_system_service))); + } + + base::test::TaskEnvironment task_environment_; + MockFileSystemService* file_system_service_; + std::unique_ptr<LinuxSystemSignalsService> linux_system_signals_service_; +}; + +// Tests that GetFileSystemSignals forwards the signal collection to +// FileSystemService. +TEST_F(LinuxSystemSignalsServiceTest, GetFileSystemSignals) { + device_signals::GetFileSystemInfoOptions options; + options.file_path = base::FilePath::FromUTF8Unsafe("/some/file/path"); + + std::vector<device_signals::GetFileSystemInfoOptions> requests; + requests.push_back(std::move(options)); + + device_signals::FileSystemItem returned_item; + returned_item.file_path = + base::FilePath::FromUTF8Unsafe("/some/other/file/path"); + returned_item.presence = device_signals::PresenceValue::kFound; + + std::vector<device_signals::FileSystemItem> response; + response.push_back(std::move(returned_item)); + + EXPECT_CALL(*file_system_service_, GetSignals(requests)) + .WillOnce(Return(response)); + + base::test::TestFuture<const std::vector<device_signals::FileSystemItem>&> + future; + linux_system_signals_service_->GetFileSystemSignals(requests, + future.GetCallback()); + + auto results = future.Get(); + EXPECT_EQ(results.size(), response.size()); + EXPECT_EQ(results[0], response[0]); +} + +} // namespace system_signals
diff --git a/chrome/services/system_signals/mac/BUILD.gn b/chrome/services/system_signals/mac/BUILD.gn index 6f256473..c14e7439 100644 --- a/chrome/services/system_signals/mac/BUILD.gn +++ b/chrome/services/system_signals/mac/BUILD.gn
@@ -1,4 +1,4 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. +# Copyright 2022 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -11,5 +11,26 @@ public_deps = [ "//components/device_signals/core/common/mojom" ] - deps = [ "//base" ] + deps = [ + "//base", + "//components/device_signals/core/common", + "//components/device_signals/core/common/mac", + ] +} + +source_set("unit_tests") { + testonly = true + sources = [ "mac_system_signals_service_unittest.mm" ] + + deps = [ + ":mac", + "//base", + "//base/test:test_support", + "//components/device_signals/core/common", + "//components/device_signals/core/common:test_support", + "//components/device_signals/core/common/mojom", + "//mojo/public/mojom/base", + "//testing/gmock", + "//testing/gtest", + ] }
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service.h b/chrome/services/system_signals/mac/mac_system_signals_service.h index 7a0a871..bf2c54d 100644 --- a/chrome/services/system_signals/mac/mac_system_signals_service.h +++ b/chrome/services/system_signals/mac/mac_system_signals_service.h
@@ -5,10 +5,15 @@ #ifndef CHROME_SERVICES_SYSTEM_SIGNALS_MAC_MAC_SYSTEM_SIGNALS_SERVICE_H_ #define CHROME_SERVICES_SYSTEM_SIGNALS_MAC_MAC_SYSTEM_SIGNALS_SERVICE_H_ +#include <memory> #include <vector> #include "components/device_signals/core/common/mojom/system_signals.mojom.h" +namespace device_signals { +class FileSystemService; +} // namespace device_signals + namespace system_signals { class MacSystemSignalsService @@ -24,6 +29,15 @@ void GetFileSystemSignals( const std::vector<device_signals::GetFileSystemInfoOptions>& requests, GetFileSystemSignalsCallback callback) override; + + private: + friend class MacSystemSignalsServiceTest; + + // Constructor that can be used by tests to mock out dependencies. + explicit MacSystemSignalsService( + std::unique_ptr<device_signals::FileSystemService> file_system_service); + + std::unique_ptr<device_signals::FileSystemService> file_system_service_; }; } // namespace system_signals
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service.mm b/chrome/services/system_signals/mac/mac_system_signals_service.mm index c3adbfd..5e963787 100644 --- a/chrome/services/system_signals/mac/mac_system_signals_service.mm +++ b/chrome/services/system_signals/mac/mac_system_signals_service.mm
@@ -4,16 +4,29 @@ #include "chrome/services/system_signals/mac/mac_system_signals_service.h" +#include <utility> + +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/mac/mac_platform_delegate.h" +#include "components/device_signals/core/common/platform_delegate.h" + namespace system_signals { -MacSystemSignalsService::MacSystemSignalsService() = default; +MacSystemSignalsService::MacSystemSignalsService() + : MacSystemSignalsService(device_signals::FileSystemService::Create( + std::make_unique<device_signals::MacPlatformDelegate>())) {} + +MacSystemSignalsService::MacSystemSignalsService( + std::unique_ptr<device_signals::FileSystemService> file_system_service) + : file_system_service_(std::move(file_system_service)) {} + MacSystemSignalsService::~MacSystemSignalsService() = default; void MacSystemSignalsService::GetFileSystemSignals( const std::vector<device_signals::GetFileSystemInfoOptions>& requests, GetFileSystemSignalsCallback callback) { - // TODO(b/231326198): Implement this. - std::move(callback).Run({}); + std::move(callback).Run(file_system_service_->GetSignals(requests)); } } // namespace system_signals
diff --git a/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm b/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm new file mode 100644 index 0000000..b243241 --- /dev/null +++ b/chrome/services/system_signals/mac/mac_system_signals_service_unittest.mm
@@ -0,0 +1,72 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/services/system_signals/mac/mac_system_signals_service.h" + +#include <memory> +#include <utility> + +#include "base/files/file_path.h" +#include "base/test/task_environment.h" +#include "base/test/test_future.h" +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/mock_file_system_service.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using device_signals::MockFileSystemService; +using testing::Return; + +namespace system_signals { + +class MacSystemSignalsServiceTest : public testing::Test { + protected: + MacSystemSignalsServiceTest() { + auto file_system_service = + std::make_unique<testing::StrictMock<MockFileSystemService>>(); + file_system_service_ = file_system_service.get(); + + // Have to use "new" since make_unique doesn't have access to friend private + // constructor. + mac_system_signals_service_ = std::unique_ptr<MacSystemSignalsService>( + new MacSystemSignalsService(std::move(file_system_service))); + } + + base::test::TaskEnvironment task_environment_; + MockFileSystemService* file_system_service_; + std::unique_ptr<MacSystemSignalsService> mac_system_signals_service_; +}; + +// Tests that GetFileSystemSignals forwards the signal collection to +// FileSystemService. +TEST_F(MacSystemSignalsServiceTest, GetFileSystemSignals) { + device_signals::GetFileSystemInfoOptions options; + options.file_path = base::FilePath::FromUTF8Unsafe("/some/file/path"); + + std::vector<device_signals::GetFileSystemInfoOptions> requests; + requests.push_back(std::move(options)); + + device_signals::FileSystemItem returned_item; + returned_item.file_path = + base::FilePath::FromUTF8Unsafe("/some/other/file/path"); + returned_item.presence = device_signals::PresenceValue::kFound; + + std::vector<device_signals::FileSystemItem> response; + response.push_back(std::move(returned_item)); + + EXPECT_CALL(*file_system_service_, GetSignals(requests)) + .WillOnce(Return(response)); + + base::test::TestFuture<const std::vector<device_signals::FileSystemItem>&> + future; + mac_system_signals_service_->GetFileSystemSignals(requests, + future.GetCallback()); + + auto results = future.Get(); + EXPECT_EQ(results.size(), response.size()); + EXPECT_EQ(results[0], response[0]); +} + +} // namespace system_signals
diff --git a/chrome/services/system_signals/public/cpp/browser/BUILD.gn b/chrome/services/system_signals/public/cpp/browser/BUILD.gn index d78c8085..cf5fed9 100644 --- a/chrome/services/system_signals/public/cpp/browser/BUILD.gn +++ b/chrome/services/system_signals/public/cpp/browser/BUILD.gn
@@ -1,4 +1,4 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. +# Copyright 2022 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
diff --git a/chrome/services/system_signals/win/BUILD.gn b/chrome/services/system_signals/win/BUILD.gn index f1e4005..9c09314 100644 --- a/chrome/services/system_signals/win/BUILD.gn +++ b/chrome/services/system_signals/win/BUILD.gn
@@ -1,4 +1,4 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. +# Copyright 2022 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -20,7 +20,10 @@ "//mojo/public/mojom/base", ] - deps = [ "//base" ] + deps = [ + "//base", + "//components/device_signals/core/common", + ] } source_set("unit_tests") { @@ -31,6 +34,8 @@ ":win", "//base", "//base/test:test_support", + "//components/device_signals/core/common", + "//components/device_signals/core/common:test_support", "//components/device_signals/core/common/mojom", "//components/device_signals/core/common/win", "//components/device_signals/core/system_signals/win",
diff --git a/chrome/services/system_signals/win/win_system_signals_service.cc b/chrome/services/system_signals/win/win_system_signals_service.cc index 9b90b6da..a3355f3 100644 --- a/chrome/services/system_signals/win/win_system_signals_service.cc +++ b/chrome/services/system_signals/win/win_system_signals_service.cc
@@ -6,6 +6,10 @@ #include "base/win/windows_version.h" #include "chrome/services/system_signals/win/metrics_utils.h" +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/platform_delegate.h" +#include "components/device_signals/core/system_signals/win/win_platform_delegate.h" #include "components/device_signals/core/system_signals/win/wmi_client.h" #include "components/device_signals/core/system_signals/win/wmi_client_impl.h" #include "components/device_signals/core/system_signals/win/wsc_client.h" @@ -17,14 +21,18 @@ mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver) : WinSystemSignalsService( std::move(receiver), + device_signals::FileSystemService::Create( + std::make_unique<device_signals::WinPlatformDelegate>()), std::make_unique<device_signals::WmiClientImpl>(), std::make_unique<device_signals::WscClientImpl>()) {} WinSystemSignalsService::WinSystemSignalsService( mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver, + std::unique_ptr<device_signals::FileSystemService> file_system_service, std::unique_ptr<device_signals::WmiClient> wmi_client, std::unique_ptr<device_signals::WscClient> wsc_client) : receiver_(this, std::move(receiver)), + file_system_service_(std::move(file_system_service)), wmi_client_(std::move(wmi_client)), wsc_client_(std::move(wsc_client)) {} @@ -33,8 +41,7 @@ void WinSystemSignalsService::GetFileSystemSignals( const std::vector<device_signals::GetFileSystemInfoOptions>& requests, GetFileSystemSignalsCallback callback) { - // TODO(b/231298500): Implement this. - std::move(callback).Run({}); + std::move(callback).Run(file_system_service_->GetSignals(requests)); } void WinSystemSignalsService::GetAntiVirusSignals(
diff --git a/chrome/services/system_signals/win/win_system_signals_service.h b/chrome/services/system_signals/win/win_system_signals_service.h index 849987e..1b2a6393 100644 --- a/chrome/services/system_signals/win/win_system_signals_service.h +++ b/chrome/services/system_signals/win/win_system_signals_service.h
@@ -14,6 +14,7 @@ #include "mojo/public/cpp/bindings/receiver.h" namespace device_signals { +class FileSystemService; class WmiClient; class WscClient; } // namespace device_signals @@ -42,15 +43,16 @@ private: friend class WinSystemSignalsServiceTest; - // Constructor that can be used by tests to mock out `wmi_client` and - // `wsc_client`. + // Constructor that can be used by tests to mock out dependencies. WinSystemSignalsService( mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> receiver, + std::unique_ptr<device_signals::FileSystemService> file_system_service, std::unique_ptr<device_signals::WmiClient> wmi_client, std::unique_ptr<device_signals::WscClient> wsc_client); mojo::Receiver<device_signals::mojom::SystemSignalsService> receiver_; + std::unique_ptr<device_signals::FileSystemService> file_system_service_; std::unique_ptr<device_signals::WmiClient> wmi_client_; std::unique_ptr<device_signals::WscClient> wsc_client_; base::win::ScopedCOMInitializer scoped_com_initializer_;
diff --git a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc index bac1ff24..65c10ac 100644 --- a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc +++ b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc
@@ -6,11 +6,16 @@ #include <array> #include <memory> +#include <utility> +#include "base/files/file_path.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_os_info_override_win.h" #include "base/test/task_environment.h" #include "base/test/test_future.h" +#include "components/device_signals/core/common/common_types.h" +#include "components/device_signals/core/common/file_system_service.h" +#include "components/device_signals/core/common/mock_file_system_service.h" #include "components/device_signals/core/common/win/win_types.h" #include "components/device_signals/core/system_signals/win/mock_wmi_client.h" #include "components/device_signals/core/system_signals/win/mock_wsc_client.h" @@ -20,6 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" +using device_signals::MockFileSystemService; using device_signals::MockWmiClient; using device_signals::MockWscClient; using testing::Return; @@ -29,6 +35,10 @@ class WinSystemSignalsServiceTest : public testing::Test { protected: WinSystemSignalsServiceTest() { + auto file_system_service = + std::make_unique<testing::StrictMock<MockFileSystemService>>(); + file_system_service_ = file_system_service.get(); + auto wmi_client = std::make_unique<testing::StrictMock<MockWmiClient>>(); wmi_client_ = wmi_client.get(); @@ -37,21 +47,55 @@ mojo::PendingReceiver<device_signals::mojom::SystemSignalsService> fake_receiver; + + // Have to use "new" since make_unique doesn't have access to friend private + // constructor. win_system_signals_service_ = std::unique_ptr<WinSystemSignalsService>(new WinSystemSignalsService( - std::move(fake_receiver), std::move(wmi_client), - std::move(wsc_client))); + std::move(fake_receiver), std::move(file_system_service), + std::move(wmi_client), std::move(wsc_client))); } base::test::TaskEnvironment task_environment_; base::HistogramTester histogram_tester_; absl::optional<base::test::ScopedOSInfoOverride> os_info_override_; + MockFileSystemService* file_system_service_; MockWmiClient* wmi_client_; MockWscClient* wsc_client_; std::unique_ptr<WinSystemSignalsService> win_system_signals_service_; }; +// Tests that GetFileSystemSignals forwards the signal collection to +// FileSystemService. +TEST_F(WinSystemSignalsServiceTest, GetFileSystemSignals) { + device_signals::GetFileSystemInfoOptions options; + options.file_path = base::FilePath::FromUTF8Unsafe("/some/file/path"); + + std::vector<device_signals::GetFileSystemInfoOptions> requests; + requests.push_back(std::move(options)); + + device_signals::FileSystemItem returned_item; + returned_item.file_path = + base::FilePath::FromUTF8Unsafe("/some/other/file/path"); + returned_item.presence = device_signals::PresenceValue::kFound; + + std::vector<device_signals::FileSystemItem> response; + response.push_back(std::move(returned_item)); + + EXPECT_CALL(*file_system_service_, GetSignals(requests)) + .WillOnce(Return(response)); + + base::test::TestFuture<const std::vector<device_signals::FileSystemItem>&> + future; + win_system_signals_service_->GetFileSystemSignals(requests, + future.GetCallback()); + + auto results = future.Get(); + EXPECT_EQ(results.size(), response.size()); + EXPECT_EQ(results[0], response[0]); +} + // Tests that AV products cannot be retrieve on Win Server environments. TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Server) { std::array<base::test::ScopedOSInfoOverride::Type, 3> server_versions = {
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index d5c19e0..044951e 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -8242,8 +8242,8 @@ ] } - if (is_win) { - deps += [ "../services/system_signals/win:unit_tests" ] + if (is_win || is_mac || is_linux) { + deps += [ "../services/system_signals:unit_tests" ] } if (enable_pdf) {
diff --git a/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/manifest.json b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/manifest.json new file mode 100644 index 0000000..cefe40d --- /dev/null +++ b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/manifest.json
@@ -0,0 +1,21 @@ +{ + "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtDfX9dHNh948bt00YhZBm3P6E5QLaOt+v8kXVtibQfiPtOD2FTScB/f0wX/EQWVO7BkaSOsRkTPcPIgocyMPYr2FLgqGLFlYT9nQpKJZUFNF5oJ5rG6Nv7ppf4zEB3j6da1IBRTz2yOZ+6O1TMZxol/V62/QcqrJeggsHTEPGLdr9Ua4b1Ka0xKJnJngZljsbw93FI1o+P9dAh5BS6wTPiZI/vmJVjvMTkSTnaZ3n9Go2t7A0XLcSxLcVyuLAd2mAvSN0mIviOukdM66wr7llif71nKuUt+4qvlr/r9HfwzN6pA4jkwhtS1UD+3CmB+wsHwsnohNcuu4FIQ6rgq/7QIDAQAB", + "name": "chrome.fileManagerPrivate tests", + "version": "0.1", + "manifest_version": 2, + "description": "Tests of chrome.fileManagerPrivate getDlpMetadata when DLP is disabled", + "app": { + "background": { + "scripts": [ + "test.js" + ] + } + }, + "permissions": [ + "fileManagerPrivate", + { + "fileSystem": ["requestFileSystem", "write"] + }, + "unlimitedStorage" + ] + }
diff --git a/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/test.js b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/test.js new file mode 100644 index 0000000..293cf71 --- /dev/null +++ b/chrome/test/data/extensions/api_test/file_browser/dlp_metadata_disabled/test.js
@@ -0,0 +1,79 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * Gets the metadata of a volume having a specified type. + * @param {string} volumeType volume type for entry. + * @return {!Promise<chrome.fileManagerPrivate.VolumeMetadata>} Volume metadata. + */ +async function getVolumeMetadataByType(volumeType) { + return new Promise( + (resolve, + reject) => {chrome.fileManagerPrivate.getVolumeMetadataList(list => { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); + return; + } + resolve(list.find(v => v.volumeType === volumeType)); + })}); +} + +/** + * Gets the file system of specific volume type. + * @param {string} volumeType volume type. + * @return {!Promise<chrome.fileManagerPrivate.FileSystem>} Volume metadata. + */ +async function getFileSystem(volumeType) { + const volume = await getVolumeMetadataByType(volumeType); + return new Promise((resolve, reject) => { + chrome.fileSystem.requestFileSystem( + {volumeId: volume.volumeId, writable: true}, fs => { + if (chrome.runtime.lastError) { + reject(chrome.runtime.lastError.message); + return; + } + resolve(fs); + }); + }); +} + +/** + * Gets an external file entry from a specified path. + * @param {string} volumeType volume type for entry. + * @param {string} path path of entry. + * @return {!Promise<Entry>} specified entry. + */ +async function getFileEntry(volumeType, path) { + const fs = await getFileSystem(volumeType); + return new Promise(resolve => { + fs.root.getFile(path, {}, entry => { + chrome.fileManagerPrivate.resolveIsolatedEntries( + [entry], externalEntries => { + resolve(externalEntries[0]); + }); + }); + }); +} + +/** + * Wrapper around getFileEntry() that resolves multiple paths. + * @param {string} volumeType + * @param {Array<string>} paths + * @return {!Promise<Array<Entry>>} + */ +async function getFileEntries(volumeType, paths) { + return Promise.all(paths.map(path => getFileEntry(volumeType, path))); +} + +chrome.test.runTests([ + async function getDlpMetadata_Disabled() { + const [file] = await getFileEntries('testing', ['blocked_file.txt']); + // Since the DLP feature is disabled, an empty list should be returned. + await new Promise((resolve, reject) => file.remove(resolve, reject)); + chrome.fileManagerPrivate.getDlpMetadata( + [file], chrome.test.callbackPass(dlpMetadata => { + chrome.test.assertEq([], dlpMetadata); + })) + }, +]);
diff --git a/chrome/test/data/webui/new_tab_page/modules/feed/feed.gni b/chrome/test/data/webui/new_tab_page/modules/feed/feed.gni new file mode 100644 index 0000000..a6f6d10b --- /dev/null +++ b/chrome/test/data/webui/new_tab_page/modules/feed/feed.gni
@@ -0,0 +1,5 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +feed_test_files = [ "modules/feed/module_test.ts" ]
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 new file mode 100644 index 0000000..889617b --- /dev/null +++ b/chrome/test/data/webui/new_tab_page/modules/feed/module_test.ts
@@ -0,0 +1,75 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'chrome://webui-test/mojo_webui_test_support.js'; + +import {FeedHandlerRemote} from 'chrome://new-tab-page/feed.mojom-webui.js'; +import {FeedModuleElement, FeedProxy, feedV2Descriptor} from 'chrome://new-tab-page/lazy_load.js'; +import {CrAutoImgElement} from 'chrome://new-tab-page/new_tab_page.js'; +import {assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js'; +import {isVisible} from 'chrome://webui-test/test_util.js'; + +import {installMock} from '../../test_support.js'; + +suite('NewTabPageModulesFeedModuleTest', () => { + let handler: TestBrowserProxy; + + setup(() => { + document.body.innerHTML = ''; + handler = installMock(FeedHandlerRemote, FeedProxy.setHandler); + }); + + test('module appears on render', async () => { + handler.setResultFor('getFollowingFeedArticles', Promise.resolve((() => { + const articles: Object[] = []; + const exampleUrl = 'https://example.com/'; + for (let i = 0; i < 3; ++i) { + articles.push({ + title: 'Title ' + i, + publisher: 'Publisher ' + i, + thumbnailUrl: {url: exampleUrl + 'thumbnail/' + i + '.png'}, + faviconUrl: {url: exampleUrl + 'favicon/' + i + '.ico'}, + url: {url: exampleUrl + i}, + }); + } + return {articles: articles}; + })())); + + const module = await feedV2Descriptor.initialize(0) as FeedModuleElement; + assertTrue(!!module); + + document.body.append(module); + await handler.whenCalled('getFollowingFeedArticles'); + module.$.articleRepeat.render(); + const cards = Array.from(module.shadowRoot!.querySelectorAll('.card')); + const urls = + module.shadowRoot!.querySelectorAll<HTMLAnchorElement>('.card'); + + assertTrue(isVisible(module.$.articles)); + assertEquals(3, cards.length); + assertEquals( + 'Title 1', cards[1]!.querySelector<HTMLElement>('.title')!.textContent); + assertEquals( + 'Publisher 1', + cards[1]!.querySelector<HTMLElement>('.info-text')!.textContent); + assertEquals( + 'https://example.com/thumbnail/1.png', + cards[1]!.querySelector<CrAutoImgElement>('.thumbnail')!.autoSrc); + assertEquals( + 'https://example.com/favicon/1.ico', + cards[1]!.querySelector<CrAutoImgElement>('.favicon')!.autoSrc); + assertEquals('https://example.com/0', urls[0]!.href); + assertEquals('https://example.com/1', urls[1]!.href); + }); + + test('empty module shows without data', async () => { + handler.setResultFor( + 'getFollowingFeedArticles', Promise.resolve({articles: []})); + + const module = await feedV2Descriptor.initialize(0); + await handler.whenCalled('getFollowingFeedArticles'); + assertTrue(!!module); + }); +});
diff --git a/chrome/test/data/webui/new_tab_page/modules/modules.gni b/chrome/test/data/webui/new_tab_page/modules/modules.gni index f964270..3454845 100644 --- a/chrome/test/data/webui/new_tab_page/modules/modules.gni +++ b/chrome/test/data/webui/new_tab_page/modules/modules.gni
@@ -6,6 +6,7 @@ import("./cart_v2/cart_v2.gni") import("./drive/drive.gni") import("./drive_v2/drive_v2.gni") +import("./feed/feed.gni") import("./photos/photos.gni") import("./recipes_v2/recipes_v2.gni") import("./task_module/task_module.gni") @@ -23,8 +24,8 @@ "modules/module_wrapper_test.ts", "modules/modules_test.ts", ] + cart_test_files + cart_v2_test_files + drive_test_files + - drive_v2_test_files + photos_test_files + recipes_v2_test_files + - task_module_test_files + drive_v2_test_files + feed_test_files + photos_test_files + + recipes_v2_test_files + task_module_test_files if (!is_official_build) { modules_test_files += dummy_v2_test_files
diff --git a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js index 62ad9357..e24f1c02 100644 --- a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js +++ b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js
@@ -333,6 +333,17 @@ } }; +var NewTabPageModulesFeedModuleTest = class extends NewTabPageBrowserTest { + /** @override */ + get browsePreload() { + return 'chrome://new-tab-page/test_loader.html?module=new_tab_page/modules/feed/module_test.js'; + } +}; + +TEST_F('NewTabPageModulesFeedModuleTest', 'All', function() { + mocha.run(); +}); + // https://crbug.com/1227564: Flaky on Chrome OS. GEN('#if BUILDFLAG(IS_CHROMEOS)'); GEN('#define MAYBE_All DISABLED_All');
diff --git a/chromeos/ash/components/network/cellular_metrics_logger.cc b/chromeos/ash/components/network/cellular_metrics_logger.cc index ef46bfc3..1ee7130a 100644 --- a/chromeos/ash/components/network/cellular_metrics_logger.cc +++ b/chromeos/ash/components/network/cellular_metrics_logger.cc
@@ -87,6 +87,10 @@ "Network.Cellular.Pin.ChangeSuccess"; // static +const char CellularMetricsLogger::kSimLockNotificationEventHistogram[] = + "Network.Ash.Cellular.SimLock.Policy.Notification.Event"; + +// static const base::TimeDelta CellularMetricsLogger::kInitializationTimeout = base::Seconds(15); @@ -116,6 +120,13 @@ } // static +void CellularMetricsLogger::RecordSimLockNotificationEvent( + const SimLockNotificationEvent notification_event) { + base::UmaHistogramEnumeration(kSimLockNotificationEventHistogram, + notification_event); +} + +// static void CellularMetricsLogger::RecordSimPinOperationResult( const SimPinOperation& pin_operation, const absl::optional<std::string>& shill_error_name) {
diff --git a/chromeos/ash/components/network/cellular_metrics_logger.h b/chromeos/ash/components/network/cellular_metrics_logger.h index 873e516..6333c64 100644 --- a/chromeos/ash/components/network/cellular_metrics_logger.h +++ b/chromeos/ash/components/network/cellular_metrics_logger.h
@@ -64,6 +64,9 @@ static const char kESimPolicyAllConnectionResultHistogram[]; static const char kPSimAllConnectionResultHistogram[]; + // Histograms associated with SIM Lock notification events. + static const char kSimLockNotificationEventHistogram[]; + // PIN operations that are tracked by metrics. enum class SimPinOperation { kRequireLock = 0, @@ -73,11 +76,22 @@ kChange = 4, }; + // SIM lock notification events + enum class SimLockNotificationEvent { + kShown = 0, + kClicked = 1, + kDismissed = 2, + kMaxValue = kDismissed + }; + // Records the result of pin operations performed. static void RecordSimPinOperationResult( const SimPinOperation& pin_operation, const absl::optional<std::string>& shill_error_name = absl::nullopt); + static void RecordSimLockNotificationEvent( + const SimLockNotificationEvent notification_event); + CellularMetricsLogger(); CellularMetricsLogger(const CellularMetricsLogger&) = delete;
diff --git a/chromeos/crosapi/mojom/desk_template.mojom b/chromeos/crosapi/mojom/desk_template.mojom index a3621ab3..c947c6f8 100644 --- a/chromeos/crosapi/mojom/desk_template.mojom +++ b/chromeos/crosapi/mojom/desk_template.mojom
@@ -20,6 +20,8 @@ uint32 active_index@1; [MinVersion=2] string? browser_app_name@2; + + [MinVersion=3] int64 restore_window_id@3; }; // Interface for desk template clients. Implemented by lacros-chrome.
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt index b1db3cb..80ab1b6 100644 --- a/chromeos/profiles/orderfile.newest.txt +++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@ -chromeos-chrome-orderfile-field-105-5140.0-1656929358-benchmark-105.0.5169.0-r1.orderfile.xz +chromeos-chrome-orderfile-field-105-5140.0-1657535009-benchmark-105.0.5173.0-r2.orderfile.xz
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb index 780b64d..b3163247 100644 --- a/chromeos/strings/chromeos_strings_af.xtb +++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Ongeïnisieer</translation> <translation id="8620617069779373398">Swerfstatus</translation> <translation id="8655295600908251630">Kanaal</translation> +<translation id="8655828773034788261">Deel URL:</translation> <translation id="8660881923941176839">pond</translation> <translation id="8662671328352114214">Sluit by <ph name="TYPE" />-netwerk aan</translation> <translation id="8671972493856476349">Dateer op na <ph name="VERSION_NUMBER" /> en herbegin</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb index 4c19cce..2b64ee82 100644 --- a/chromeos/strings/chromeos_strings_be.xtb +++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Неініцыялізаваная</translation> <translation id="8620617069779373398">Стан роўмінгу</translation> <translation id="8655295600908251630">Версія</translation> +<translation id="8655828773034788261">Абагуліць URL-адрас:</translation> <translation id="8660881923941176839">фунт.</translation> <translation id="8662671328352114214">Падключэнне да сеткі <ph name="TYPE" /></translation> <translation id="8671972493856476349">Абнавіць да версіі <ph name="VERSION_NUMBER" /> і перазапусціць</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 7212bf3..252f2b5 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Неинициализирана</translation> <translation id="8620617069779373398">Състояние на роуминга</translation> <translation id="8655295600908251630">Канал</translation> +<translation id="8655828773034788261">Споделяне на URL адреса:</translation> <translation id="8660881923941176839">фунта</translation> <translation id="8662671328352114214">Присъединяване към <ph name="TYPE" /> мрежа</translation> <translation id="8671972493856476349">Актуализиране до <ph name="VERSION_NUMBER" /> и рестартиране</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb index 3bcc199..a911603 100644 --- a/chromeos/strings/chromeos_strings_de.xtb +++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Noch nicht initialisiert</translation> <translation id="8620617069779373398">Roaming-Status</translation> <translation id="8655295600908251630">Kanal</translation> +<translation id="8655828773034788261">URL teilen:</translation> <translation id="8660881923941176839">Pfund</translation> <translation id="8662671328352114214">Mit <ph name="TYPE" /> verbinden</translation> <translation id="8671972493856476349">Update auf <ph name="VERSION_NUMBER" /> durchführen und neu starten</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb index e684c381f..bda6498 100644 --- a/chromeos/strings/chromeos_strings_es-419.xtb +++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">No se inicializó</translation> <translation id="8620617069779373398">Estado de roaming</translation> <translation id="8655295600908251630">Canal</translation> +<translation id="8655828773034788261">Compartir URL:</translation> <translation id="8660881923941176839">libras</translation> <translation id="8662671328352114214">Unirse a la red <ph name="TYPE" /></translation> <translation id="8671972493856476349">Actualizar a <ph name="VERSION_NUMBER" /> y reiniciar</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 3981269..d59f44f 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">راهاندازینشده</translation> <translation id="8620617069779373398">وضعیت فراگردی</translation> <translation id="8655295600908251630">کانال</translation> +<translation id="8655828773034788261">نشانی وب همرسانی:</translation> <translation id="8660881923941176839">پوند</translation> <translation id="8662671328352114214">پیوستن به شبکه <ph name="TYPE" /></translation> <translation id="8671972493856476349">بهروزرسانی به <ph name="VERSION_NUMBER" /> و بازراهاندازی</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb index 903be1cb..cedbaad 100644 --- a/chromeos/strings/chromeos_strings_fr.xtb +++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Non initialisé</translation> <translation id="8620617069779373398">État d'itinérance</translation> <translation id="8655295600908251630">Version</translation> +<translation id="8655828773034788261">Partager l'URL :</translation> <translation id="8660881923941176839">livres</translation> <translation id="8662671328352114214">Rejoindre le réseau <ph name="TYPE" /></translation> <translation id="8671972493856476349">Installer <ph name="VERSION_NUMBER" /> et redémarrer</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb index 40dbc63e..fc62622 100644 --- a/chromeos/strings/chromeos_strings_gl.xtb +++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Non iniciada</translation> <translation id="8620617069779373398">Estado de itinerancia</translation> <translation id="8655295600908251630">Canle</translation> +<translation id="8655828773034788261">Compartir URL:</translation> <translation id="8660881923941176839">libras</translation> <translation id="8662671328352114214">Unirse á rede <ph name="TYPE" /></translation> <translation id="8671972493856476349">Actualiza á versión <ph name="VERSION_NUMBER" /> e reinicia o dispositivo</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb index d750a1ddb..f964ca7 100644 --- a/chromeos/strings/chromeos_strings_hi.xtb +++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">शुरू नहीं किया गया</translation> <translation id="8620617069779373398">रोमिंग की स्थिति</translation> <translation id="8655295600908251630">चैनल</translation> +<translation id="8655828773034788261">यूआरएल शेयर करें:</translation> <translation id="8660881923941176839">पाउंड</translation> <translation id="8662671328352114214"><ph name="TYPE" /> नेटवर्क में शामिल हों</translation> <translation id="8671972493856476349"><ph name="VERSION_NUMBER" /> वर्शन में अपडेट करें और रीस्टार्ट करें</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb index ae1aff8..7ca67c7 100644 --- a/chromeos/strings/chromeos_strings_is.xtb +++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Ekki frumstillt</translation> <translation id="8620617069779373398">Reikistaða</translation> <translation id="8655295600908251630">Rás</translation> +<translation id="8655828773034788261">Deila vefslóð:</translation> <translation id="8660881923941176839">pund</translation> <translation id="8662671328352114214">Tengjast <ph name="TYPE" /> neti</translation> <translation id="8671972493856476349">Uppfæra í <ph name="VERSION_NUMBER" /> og endurræsa</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb index fe8d16b..9c644b1b 100644 --- a/chromeos/strings/chromeos_strings_it.xtb +++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Non inizializzato</translation> <translation id="8620617069779373398">Stato roaming</translation> <translation id="8655295600908251630">Canale</translation> +<translation id="8655828773034788261">Condividi URL:</translation> <translation id="8660881923941176839">libbre</translation> <translation id="8662671328352114214">Aggiungi la rete <ph name="TYPE" /></translation> <translation id="8671972493856476349">Esegui l'aggiornamento alla versione <ph name="VERSION_NUMBER" /> e riavvia il dispositivo</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 0f1abcf..bdac50e 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">לא מאותחלת</translation> <translation id="8620617069779373398">סטטוס נדידה</translation> <translation id="8655295600908251630">ערוץ</translation> +<translation id="8655828773034788261">שיתוף כתובת ה-URL:</translation> <translation id="8660881923941176839">פאונד</translation> <translation id="8662671328352114214">התחברות לרשת <ph name="TYPE" /></translation> <translation id="8671972493856476349">עדכון לגרסה <ph name="VERSION_NUMBER" /> והפעלה מחדש</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb index d97a457..896ad1e 100644 --- a/chromeos/strings/chromeos_strings_km.xtb +++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -864,6 +864,7 @@ <translation id="8576249514688522074">មិនបានចាប់ផ្ដើម</translation> <translation id="8620617069779373398">ស្ថានភាពរ៉ូមីង</translation> <translation id="8655295600908251630">បណ្តាញ</translation> +<translation id="8655828773034788261">ចែករំលែក URL៖</translation> <translation id="8660881923941176839">ផោន</translation> <translation id="8662671328352114214">ចូលរួមបណ្ដាញ <ph name="TYPE" /></translation> <translation id="8671972493856476349">ដំឡើងកំណែទៅ <ph name="VERSION_NUMBER" /> រួចចាប់ផ្ដើមឡើងវិញ</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb index fa68f11..8f4c2cb 100644 --- a/chromeos/strings/chromeos_strings_lt.xtb +++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Neinicijuota</translation> <translation id="8620617069779373398">Tarptinklinio ryšio būsena</translation> <translation id="8655295600908251630">Kanalas</translation> +<translation id="8655828773034788261">Bendrinti URL:</translation> <translation id="8660881923941176839">svar.</translation> <translation id="8662671328352114214">Prisijungimas prie „<ph name="TYPE" />“ tinklo</translation> <translation id="8671972493856476349">Atnaujinti į <ph name="VERSION_NUMBER" /> versiją ir paleisti iš naujo</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb index ea4a085..c80431f2 100644 --- a/chromeos/strings/chromeos_strings_lv.xtb +++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Pārbaude nav sākta</translation> <translation id="8620617069779373398">Viesabonēšanas statuss</translation> <translation id="8655295600908251630">Kanāls</translation> +<translation id="8655828773034788261">Kopīgot URL:</translation> <translation id="8660881923941176839">mārciņas</translation> <translation id="8662671328352114214">Pievienošanās <ph name="TYPE" /> tīklam</translation> <translation id="8671972493856476349">Atjaunināt uz versiju <ph name="VERSION_NUMBER" /> un restartēt</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb index 1f809391..03ffb8f8 100644 --- a/chromeos/strings/chromeos_strings_mr.xtb +++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">सुरुवात केलेली नाही</translation> <translation id="8620617069779373398">रोमिंग स्थिती</translation> <translation id="8655295600908251630">खाडी</translation> +<translation id="8655828773034788261">URL शेअर करा:</translation> <translation id="8660881923941176839">पाउंड</translation> <translation id="8662671328352114214"><ph name="TYPE" /> नेटवर्कमध्ये सामील व्हा</translation> <translation id="8671972493856476349"><ph name="VERSION_NUMBER" /> वर अपडेट करा आणि रीस्टार्ट करा</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb index e0466c4..b69b22b 100644 --- a/chromeos/strings/chromeos_strings_sq.xtb +++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -864,6 +864,7 @@ <translation id="8576249514688522074">E pafilluar</translation> <translation id="8620617069779373398">Statusi në roaming</translation> <translation id="8655295600908251630">Kanali</translation> +<translation id="8655828773034788261">Ndaj URL-në:</translation> <translation id="8660881923941176839">paundë</translation> <translation id="8662671328352114214">Bashkohu në rrjetin <ph name="TYPE" /></translation> <translation id="8671972493856476349">Përditësoje në <ph name="VERSION_NUMBER" /> dhe rinise</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb index 40d19513..50cb9634 100644 --- a/chromeos/strings/chromeos_strings_sv.xtb +++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Inte initierat</translation> <translation id="8620617069779373398">Dirigeringsstatus</translation> <translation id="8655295600908251630">Kanal</translation> +<translation id="8655828773034788261">Dela webbadress:</translation> <translation id="8660881923941176839">pund</translation> <translation id="8662671328352114214">Anslut till <ph name="TYPE" />-nätverket</translation> <translation id="8671972493856476349">Uppdatera till version <ph name="VERSION_NUMBER" /> och starta om enheten</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index 2c255e0b..18bdb41 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -864,6 +864,7 @@ <translation id="8576249514688522074">Haijaanzishwa</translation> <translation id="8620617069779373398">Hali ya kutumia mtandao usio wako wa kawaida</translation> <translation id="8655295600908251630">Kituo</translation> +<translation id="8655828773034788261">Shiriki URL:</translation> <translation id="8660881923941176839">wakia</translation> <translation id="8662671328352114214">Jiunge na mtandao wa <ph name="TYPE" /></translation> <translation id="8671972493856476349">Sasisha iwe <ph name="VERSION_NUMBER" /> na uzime kisha uwashe</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index f2aef86..e29c49e 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Başlatılmamış</translation> <translation id="8620617069779373398">Dolaşım durumu</translation> <translation id="8655295600908251630">Kanal</translation> +<translation id="8655828773034788261">URL'yi paylaş:</translation> <translation id="8660881923941176839">libre</translation> <translation id="8662671328352114214"><ph name="TYPE" /> ağına katılın</translation> <translation id="8671972493856476349"><ph name="VERSION_NUMBER" /> sürümüne güncelle ve yeniden başlat</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb index 58fff93..06f2172f 100644 --- a/chromeos/strings/chromeos_strings_uk.xtb +++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Не ініціалізовано</translation> <translation id="8620617069779373398">Статус роумінгу</translation> <translation id="8655295600908251630">Канал</translation> +<translation id="8655828773034788261">Надіслати URL-адресу:</translation> <translation id="8660881923941176839">фунт.</translation> <translation id="8662671328352114214">Під’єднатися до мережі <ph name="TYPE" /></translation> <translation id="8671972493856476349">Установити версію <ph name="VERSION_NUMBER" /> і перезапустити</translation>
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb index 98fdac9..5ed202a 100644 --- a/chromeos/strings/chromeos_strings_zu.xtb +++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -865,6 +865,7 @@ <translation id="8576249514688522074">Akuqaliswanga</translation> <translation id="8620617069779373398">Isimo sokuzulazula</translation> <translation id="8655295600908251630">Isiteshi</translation> +<translation id="8655828773034788261">Yabelana i-URL:</translation> <translation id="8660881923941176839">amaphawundi</translation> <translation id="8662671328352114214">Jona inethiwekhi ye-<ph name="TYPE" /></translation> <translation id="8671972493856476349">Buyekezela ku-<ph name="VERSION_NUMBER" /> futhi uqale kabusha</translation>
diff --git a/components/autofill_assistant/browser/features.cc b/components/autofill_assistant/browser/features.cc index 49ba0b0..feb1186 100644 --- a/components/autofill_assistant/browser/features.cc +++ b/components/autofill_assistant/browser/features.cc
@@ -16,7 +16,7 @@ // Controls whether to enable Autofill Assistant's way of annotating DOM. If // enabled will create an |AnnotateDomModelService|. const base::Feature kAutofillAssistantAnnotateDom{ - "AutofillAssistantAnnotateDom", base::FEATURE_DISABLED_BY_DEFAULT}; + "AutofillAssistantAnnotateDom", base::FEATURE_ENABLED_BY_DEFAULT}; // Controls whether to enable Assistant Autofill in a normal Chrome tab. const base::Feature kAutofillAssistantChromeEntry{
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn index f1ab039..07dd647 100644 --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn
@@ -5,11 +5,17 @@ import("//build/config/android/rules.gni") generate_jni("site_settings_jni_headers") { - sources = [ "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java" ] + sources = [ + "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsFeatureList.java", + "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", + ] } source_set("android") { sources = [ + "features.cc", + "features.h", + "site_settings_feature_list.cc", "storage_info_fetcher.cc", "storage_info_fetcher.h", "website_preference_bridge.cc", @@ -57,6 +63,7 @@ "java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java", "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java", "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java", + "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsFeatureList.java", "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsPreferenceFragment.java", "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsUtil.java", "java/src/org/chromium/components/browser_ui/site_settings/StorageInfo.java",
diff --git a/components/browser_ui/site_settings/android/features.cc b/components/browser_ui/site_settings/android/features.cc new file mode 100644 index 0000000..de6a0d2 --- /dev/null +++ b/components/browser_ui/site_settings/android/features.cc
@@ -0,0 +1,15 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/browser_ui/site_settings/android/features.h" + +#include "base/feature_list.h" +#include "base/metrics/field_trial_params.h" + +namespace browser_ui { + +const base::Feature kSiteDataImprovements{"SiteDataImprovements", + base::FEATURE_DISABLED_BY_DEFAULT}; + +} // namespace browser_ui
diff --git a/components/browser_ui/site_settings/android/features.h b/components/browser_ui/site_settings/android/features.h new file mode 100644 index 0000000..56bcdf5 --- /dev/null +++ b/components/browser_ui/site_settings/android/features.h
@@ -0,0 +1,19 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_BROWSER_UI_SITE_SETTINGS_ANDROID_FEATURES_H_ +#define COMPONENTS_BROWSER_UI_SITE_SETTINGS_ANDROID_FEATURES_H_ + +namespace base { +struct Feature; +} // namespace base + +namespace browser_ui { + +// Improved 'All sites' and 'Site settings' pages on Android. +extern const base::Feature kSiteDataImprovements; + +} // namespace browser_ui + +#endif // COMPONENTS_BROWSER_UI_SITE_SETTINGS_ANDROID_FEATURES_H_
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsFeatureList.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsFeatureList.java new file mode 100644 index 0000000..7e39935 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsFeatureList.java
@@ -0,0 +1,44 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.components.browser_ui.site_settings; + +import org.chromium.base.FeatureList; +import org.chromium.base.annotations.JNINamespace; +import org.chromium.base.annotations.MainDex; +import org.chromium.base.annotations.NativeMethods; + +/** + * Provides an API for querying the status of Site Settings features. + */ +// TODO(crbug.com/1060097): Remove/update this once a generalized FeatureList exists. +@JNINamespace("browser_ui") +@MainDex +public class SiteSettingsFeatureList { + public static final String SITE_DATA_IMPROVEMENTS = "SiteDataImprovements"; + + private SiteSettingsFeatureList() {} + + /** + * Returns whether the specified feature is enabled or not. + * + * Note: Features queried through this API must be added to the array + * |kFeaturesExposedToJava| in + * //components/browser_ui/site_settings/android/site_settings_feature_list.cc + * + * @param featureName The name of the feature to query. + * @return Whether the feature is enabled or not. + */ + public static boolean isEnabled(String featureName) { + Boolean testValue = FeatureList.getTestValueForFeature(featureName); + if (testValue != null) return testValue; + assert FeatureList.isNativeInitialized(); + return SiteSettingsFeatureListJni.get().isEnabled(featureName); + } + + @NativeMethods + interface Natives { + boolean isEnabled(String featureName); + } +}
diff --git a/components/browser_ui/site_settings/android/site_settings_feature_list.cc b/components/browser_ui/site_settings/android/site_settings_feature_list.cc new file mode 100644 index 0000000..835bc6ae --- /dev/null +++ b/components/browser_ui/site_settings/android/site_settings_feature_list.cc
@@ -0,0 +1,46 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/android/jni_string.h" +#include "base/feature_list.h" +#include "base/notreached.h" +#include "components/browser_ui/site_settings/android/features.h" +#include "components/browser_ui/site_settings/android/site_settings_jni_headers/SiteSettingsFeatureList_jni.h" + +using base::android::ConvertJavaStringToUTF8; +using base::android::JavaParamRef; + +namespace browser_ui { + +namespace { + +// Array of features exposed through the Java ContentFeatureList API. Entries in +// this array may either refer to features defined in the header of this file or +// in other locations in the code base (e.g. content_features.h). +const base::Feature* const kFeaturesExposedToJava[] = { + &kSiteDataImprovements, +}; + +// TODO(crbug.com/1060097): Remove this once a generalized FeatureList exists. +const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { + for (const base::Feature* feature : kFeaturesExposedToJava) { + if (feature->name == feature_name) + return feature; + } + NOTREACHED() << "Queried feature not found in SiteSettingsFeatureList: " + << feature_name; + return nullptr; +} + +} // namespace + +static jboolean JNI_SiteSettingsFeatureList_IsEnabled( + JNIEnv* env, + const JavaParamRef<jstring>& jfeature_name) { + const base::Feature* feature = + FindFeatureExposedToJava(ConvertJavaStringToUTF8(env, jfeature_name)); + return base::FeatureList::IsEnabled(*feature); +} + +} // namespace browser_ui
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index d77766c..43aec76 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "10.41", - "log_list_timestamp": "2022-07-13T12:54:17Z", + "version": "10.42", + "log_list_timestamp": "2022-07-14T12:54:48Z", "operators": [ { "name": "Google",
diff --git a/components/content_settings/browser/ui/cookie_controls_controller.h b/components/content_settings/browser/ui/cookie_controls_controller.h index 35b0be8..71572736 100644 --- a/components/content_settings/browser/ui/cookie_controls_controller.h +++ b/components/content_settings/browser/ui/cookie_controls_controller.h
@@ -7,6 +7,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/scoped_observation.h" #include "components/content_settings/browser/page_specific_content_settings.h" @@ -25,7 +26,9 @@ class CookieControlsView; // Handles the tab specific state for cookie controls. -class CookieControlsController : content_settings::CookieSettings::Observer { +class CookieControlsController + : content_settings::CookieSettings::Observer, + public base::SupportsWeakPtr<CookieControlsController> { public: CookieControlsController( scoped_refptr<content_settings::CookieSettings> cookie_settings,
diff --git a/components/crash/core/app/DEPS b/components/crash/core/app/DEPS index 2a92793..9717215 100644 --- a/components/crash/core/app/DEPS +++ b/components/crash/core/app/DEPS
@@ -7,6 +7,7 @@ "+components/gwp_asan/buildflags/buildflags.h", "+components/gwp_asan/crash_handler/crash_handler.h", "+content/public/common/content_descriptors.h", + "+third_party/abseil-cpp/absl/base/internal/raw_logging.h", "+third_party/crashpad", "+third_party/lss/linux_syscall_support.h", ]
diff --git a/components/crash/core/app/crashpad.cc b/components/crash/core/app/crashpad.cc index 9058d56..b8f49d1 100644 --- a/components/crash/core/app/crashpad.cc +++ b/components/crash/core/app/crashpad.cc
@@ -28,6 +28,7 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "components/crash/core/app/crash_reporter_client.h" +#include "third_party/abseil-cpp/absl/base/internal/raw_logging.h" #include "third_party/crashpad/crashpad/client/annotation.h" #include "third_party/crashpad/crashpad/client/annotation_list.h" #include "third_party/crashpad/crashpad/client/crash_report_database.h" @@ -48,6 +49,26 @@ namespace { +void SetLogFatalCrashKey(const char* file, + int line, + const char* message_without_prefix) { + static crashpad::StringAnnotation<512> crash_key("LOG_FATAL"); + crash_key.Set(logging::LogMessage::BuildCrashString(file, line, + message_without_prefix)); +} + +void AbslAbortHook(const char* file, + int line, + const char* buf_start, + const char* prefix_end, + const char* buf_end) { + SetLogFatalCrashKey(file, line, prefix_end); + + // IMMEDIATE_CRASH() generates better stack dumps than the abort() that absl:: + // would trigger if this returns. + IMMEDIATE_CRASH(); +} + base::FilePath* g_database_path; crashpad::CrashReportDatabase* g_database; @@ -72,19 +93,8 @@ } base::AutoReset<bool> guard(&guarded, true); - // Only log last path component. This matches logging.cc. - if (file) { - const char* slash = strrchr(file, '/'); - if (slash) { - file = slash + 1; - } - } - CHECK_LE(message_start, string.size()); - std::string message = base::StringPrintf("%s:%d: %s", file, line, - string.c_str() + message_start); - static crashpad::StringAnnotation<512> crash_key("LOG_FATAL"); - crash_key.Set(message); + SetLogFatalCrashKey(file, line, string.c_str() + message_start); // Rather than including the code to force the crash here, allow the caller to // do it. @@ -191,6 +201,12 @@ // the same file and line. base::debug::SetDumpWithoutCrashingFunction(DumpWithoutCrashing); + // TODO(pbos): Update this to not rely on a _internal namespace once there's + // a public API in absl::. + // Note: If this fails to compile because of an absl roll, this is fair to + // remove if you file a crbug.com/new and assign it to pbos@. + absl::raw_logging_internal::RegisterAbortHook(&AbslAbortHook); + #if BUILDFLAG(IS_APPLE) // On Mac, we only want the browser to initialize the database, but not the // relauncher.
diff --git a/components/cronet/android/BUILD.gn b/components/cronet/android/BUILD.gn index 99a8f50..0fb077bc 100644 --- a/components/cronet/android/BUILD.gn +++ b/components/cronet/android/BUILD.gn
@@ -793,6 +793,7 @@ sources = [ "sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java" ] deps = [ ":cronet_sample_apk_java", + ":package_impl_common_java", "//third_party/android_deps:espresso_java", "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java",
diff --git a/components/cronet/android/cronet_url_request_adapter.cc b/components/cronet/android/cronet_url_request_adapter.cc index 92a8296..5d1be921 100644 --- a/components/cronet/android/cronet_url_request_adapter.cc +++ b/components/cronet/android/cronet_url_request_adapter.cc
@@ -301,7 +301,9 @@ const base::TimeTicks& request_end, bool socket_reused, int64_t sent_bytes_count, - int64_t received_bytes_count) { + int64_t received_bytes_count, + bool quic_connection_migration_attempted, + bool quic_connection_migration_successful) { JNIEnv* env = base::android::AttachCurrentThread(); Java_CronetUrlRequest_onMetricsCollected( env, owner_, @@ -319,7 +321,9 @@ metrics_util::ConvertTime(receive_headers_end, start_ticks, start_time), metrics_util::ConvertTime(request_end, start_ticks, start_time), socket_reused ? JNI_TRUE : JNI_FALSE, sent_bytes_count, - received_bytes_count); + received_bytes_count, + quic_connection_migration_attempted ? JNI_TRUE : JNI_FALSE, + quic_connection_migration_successful ? JNI_TRUE : JNI_FALSE); } } // namespace cronet
diff --git a/components/cronet/android/cronet_url_request_adapter.h b/components/cronet/android/cronet_url_request_adapter.h index f0157a68..627c838 100644 --- a/components/cronet/android/cronet_url_request_adapter.h +++ b/components/cronet/android/cronet_url_request_adapter.h
@@ -146,7 +146,9 @@ const base::TimeTicks& request_end, bool socket_reused, int64_t sent_bytes_count, - int64_t received_bytes_count) override; + int64_t received_bytes_count, + bool quic_connection_migration_attempted, + bool quic_connection_migration_successful) override; void OnStatus( const base::android::ScopedJavaGlobalRef<jobject>& status_listener_ref,
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java index 7c0573a..d45f4a7 100644 --- a/components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java +++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java
@@ -14,6 +14,8 @@ * Takes care of instantiating the correct CronetLogger. */ public final class CronetLoggerFactory { + private static final int SAMPLE_RATE_PER_SECOND = 1; + private CronetLoggerFactory() {} private static final CronetLogger sDefaultLogger = new NoOpLogger(); @@ -35,7 +37,8 @@ if (cronetLoggerImplClass == null) return sDefaultLogger; try { - return cronetLoggerImplClass.getConstructor().newInstance(); + return cronetLoggerImplClass.getConstructor(int.class).newInstance( + SAMPLE_RATE_PER_SECOND); } catch (Exception e) { // Pass - since we dont want any failure, catch any exception that might arise. }
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java index cb22cdd3..2f6a575 100644 --- a/components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java +++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java
@@ -8,19 +8,23 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import androidx.annotation.VisibleForTesting; + import org.chromium.net.impl.CronetLogger.CronetSource; /** * Utility class for working with the AndroidManifest flags. */ -final class CronetManifest { +@VisibleForTesting +public final class CronetManifest { private CronetManifest() {} // Individual apps can use this meta-data tag in their manifest to opt in for metrics // reporting. // Todo (colibie): Add this to the android documentation static final String METRICS_OPT_IN_META_DATA_STR = "org.chromium.net.CronetMetricsOptIn"; - static boolean isAppOptedInForTelemetry(Context ctx, CronetSource source) { + @VisibleForTesting + public static boolean isAppOptedInForTelemetry(Context ctx, CronetSource source) { try { // Check if app is opted in ApplicationInfo info = ctx.getPackageManager().getApplicationInfo(
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java index 06b8c3c..f0dcd04 100644 --- a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java +++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
@@ -4,6 +4,8 @@ package org.chromium.net.impl; +import static java.lang.Math.max; + import android.os.Build; import androidx.annotation.RequiresApi; @@ -109,6 +111,8 @@ private int mFinishedReason; private CronetException mException; private CronetMetrics mMetrics; + private boolean mQuicConnectionMigrationAttempted; + private boolean mQuicConnectionMigrationSuccessful; /* * Listener callback is repeatedly invoked when each read is completed, so it @@ -784,7 +788,8 @@ long connectStartMs, long connectEndMs, long sslStartMs, long sslEndMs, long sendingStartMs, long sendingEndMs, long pushStartMs, long pushEndMs, long responseStartMs, long requestEndMs, boolean socketReused, long sentByteCount, - long receivedByteCount) { + long receivedByteCount, boolean quicConnectionMigrationAttempted, + boolean quicConnectionMigrationSuccessful) { synchronized (mUrlRequestAdapterLock) { if (mMetrics != null) { throw new IllegalStateException("Metrics collection should only happen once."); @@ -793,6 +798,8 @@ connectEndMs, sslStartMs, sslEndMs, sendingStartMs, sendingEndMs, pushStartMs, pushEndMs, responseStartMs, requestEndMs, socketReused, sentByteCount, receivedByteCount); + mQuicConnectionMigrationAttempted = quicConnectionMigrationAttempted; + mQuicConnectionMigrationSuccessful = quicConnectionMigrationSuccessful; } // Metrics are reported to RequestFinishedListener when the final UrlRequest.Callback has // been invoked. @@ -869,14 +876,6 @@ } } - private static long parseContentLengthString(String contentLength) { - try { - return Long.parseLong(contentLength); - } catch (NumberFormatException e) { - return 0; - } - } - /** * Builds the {@link CronetTrafficInfo} associated to this request internal state. * This helper methods makes strong assumptions about the state of the request. For this reason @@ -894,34 +893,49 @@ final Map<String, List<String>> responseHeaders; final String negotiatedProtocol; final int httpStatusCode; + final boolean wasCached; if (mResponseInfo != null) { responseHeaders = mResponseInfo.getAllHeaders(); negotiatedProtocol = mResponseInfo.getNegotiatedProtocol(); httpStatusCode = mResponseInfo.getHttpStatusCode(); + wasCached = mResponseInfo.wasCached(); } else { responseHeaders = Collections.emptyMap(); negotiatedProtocol = ""; httpStatusCode = 0; + wasCached = false; } // TODO(stefanoduo): A better approach might be keeping track of the total length of an // upload and use that value as the request body size instead. final long requestTotalSizeInBytes = mMetrics.getSentByteCount(); - final long requestHeaderSizeInBytes = estimateHeadersSizeInBytes(mRequestHeaders); - final long requestBodySizeInBytes = requestTotalSizeInBytes - requestHeaderSizeInBytes; + final long requestHeaderSizeInBytes; + final long requestBodySizeInBytes; + // Cached responses might still need to be revalidated over the network before being served + // (from UrlResponseInfo#wasCached documentation). + if (wasCached && requestTotalSizeInBytes == 0) { + // Served from cache without the need to revalidate. + requestHeaderSizeInBytes = 0; + requestBodySizeInBytes = 0; + } else { + // Served from cache with the need to revalidate or served from the network directly. + requestHeaderSizeInBytes = estimateHeadersSizeInBytes(mRequestHeaders); + requestBodySizeInBytes = max(0, requestTotalSizeInBytes - requestHeaderSizeInBytes); + } final long responseTotalSizeInBytes = mMetrics.getReceivedByteCount(); final long responseBodySizeInBytes; final long responseHeaderSizeInBytes; - // Content-Length is not mandatory, if missing approximate it by using the response headers - // size instead. - if (responseHeaders.containsKey("Content-Length")) { - responseBodySizeInBytes = - parseContentLengthString(responseHeaders.get("Content-Length").get(0)); - responseHeaderSizeInBytes = responseTotalSizeInBytes - responseBodySizeInBytes; + // Cached responses might still need to be revalidated over the network before being served + // (from UrlResponseInfo#wasCached documentation). + if (wasCached && responseTotalSizeInBytes == 0) { + // Served from cache without the need to revalidate. + responseBodySizeInBytes = 0; + responseHeaderSizeInBytes = 0; } else { + // Served from cache with the need to revalidate or served from the network directly. responseHeaderSizeInBytes = estimateHeadersSizeInBytes(responseHeaders); - responseBodySizeInBytes = responseTotalSizeInBytes - responseHeaderSizeInBytes; + responseBodySizeInBytes = max(0, responseTotalSizeInBytes - responseHeaderSizeInBytes); } final Duration headersLatency; @@ -942,11 +956,8 @@ return new CronetTrafficInfo(requestHeaderSizeInBytes, requestBodySizeInBytes, responseHeaderSizeInBytes, responseBodySizeInBytes, httpStatusCode, headersLatency, - totalLatency, negotiatedProtocol, - // TODO(stefanoduo): Possibly retrieve this by extending NetErrorDetails. - false, // wasConnectionMigrationAttempted - false // didConnectionMigrationSucceed - ); + totalLatency, negotiatedProtocol, mQuicConnectionMigrationAttempted, + mQuicConnectionMigrationSuccessful); } // Maybe report metrics. This method should only be called on Callback's executor thread and
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java b/components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java index 788673af..825aa57a 100644 --- a/components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java +++ b/components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java
@@ -906,29 +906,46 @@ final Map<String, List<String>> responseHeaders; final String negotiatedProtocol; final int httpStatusCode; + final boolean wasCached; if (mUrlResponseInfo != null) { responseHeaders = mUrlResponseInfo.getAllHeaders(); negotiatedProtocol = mUrlResponseInfo.getNegotiatedProtocol(); httpStatusCode = mUrlResponseInfo.getHttpStatusCode(); + wasCached = mUrlResponseInfo.wasCached(); } else { responseHeaders = Collections.emptyMap(); negotiatedProtocol = ""; httpStatusCode = 0; + wasCached = false; } - final long requestHeaderSizeInBytes = estimateHeadersSizeInBytes(mRequestHeaders); - // TODO(stefanoduo): Add logic to keep track of body size. - final long requestBodySizeInBytes = -1; + final long requestHeaderSizeInBytes; + final long requestBodySizeInBytes; + if (wasCached) { + requestHeaderSizeInBytes = 0; + requestBodySizeInBytes = 0; + } else { + requestHeaderSizeInBytes = estimateHeadersSizeInBytes(mRequestHeaders); + // TODO(stefanoduo): Add logic to keep track of request body size. + requestBodySizeInBytes = -1; + } final long responseBodySizeInBytes; - final long responseHeaderSizeInBytes = estimateHeadersSizeInBytesList(responseHeaders); - // Content-Length is not mandatory, if missing report a non-valid response body size for - // the time being. - if (responseHeaders.containsKey("Content-Length")) { - responseBodySizeInBytes = - parseContentLengthString(responseHeaders.get("Content-Length").get(0)); + final long responseHeaderSizeInBytes; + if (wasCached) { + responseHeaderSizeInBytes = 0; + responseBodySizeInBytes = 0; } else { - responseBodySizeInBytes = -1; + responseHeaderSizeInBytes = estimateHeadersSizeInBytesList(responseHeaders); + // Content-Length is not mandatory, if missing report a non-valid response body size + // for the time being. + if (responseHeaders.containsKey("Content-Length")) { + responseBodySizeInBytes = + parseContentLengthString(responseHeaders.get("Content-Length").get(0)); + } else { + // TODO(stefanoduo): Add logic to keep track of response body size. + responseBodySizeInBytes = -1; + } } final Duration headersLatency = Duration.ofSeconds(0);
diff --git a/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java b/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java index 1f88e78..a96f2c7 100644 --- a/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java +++ b/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleTest.java
@@ -30,6 +30,9 @@ import org.junit.Test; import org.junit.runner.RunWith; +import org.chromium.net.impl.CronetLogger.CronetSource; +import org.chromium.net.impl.CronetManifest; + /** * Base test class for all CronetSample based tests. */ @@ -115,6 +118,21 @@ onView(withId(R.id.urlView)).check(matches(isDisplayed())); } + @Test + @SmallTest + public void testCronetLoggingManifestMetadataNotSet() { + Assert.assertFalse(CronetManifest.isAppOptedInForTelemetry( + InstrumentationRegistry.getTargetContext(), null)); + Assert.assertFalse( + CronetManifest.isAppOptedInForTelemetry(InstrumentationRegistry.getTargetContext(), + CronetSource.CRONET_SOURCE_STATICALLY_LINKED)); + Assert.assertFalse( + CronetManifest.isAppOptedInForTelemetry(InstrumentationRegistry.getTargetContext(), + CronetSource.CRONET_SOURCE_PLAY_SERVICES)); + Assert.assertFalse(CronetManifest.isAppOptedInForTelemetry( + InstrumentationRegistry.getTargetContext(), CronetSource.CRONET_SOURCE_FALLBACK)); + } + /** * Starts the CronetSample activity and loads the given URL. */
diff --git a/components/cronet/cronet_url_request.cc b/components/cronet/cronet_url_request.cc index 762c22e5..bead9412 100644 --- a/components/cronet/cronet_url_request.cc +++ b/components/cronet/cronet_url_request.cc
@@ -401,6 +401,8 @@ metrics_reported_ = true; net::LoadTimingInfo metrics; url_request_->GetLoadTimingInfo(&metrics); + net::NetErrorDetails net_error_details; + url_request_->PopulateNetErrorDetails(&net_error_details); callback_->OnMetricsCollected( metrics.request_start_time, metrics.request_start, metrics.connect_timing.dns_start, metrics.connect_timing.dns_end, @@ -410,7 +412,9 @@ metrics.push_end, metrics.receive_headers_end, base::TimeTicks::Now(), metrics.socket_reused, url_request_->GetTotalSentBytes(), received_byte_count_from_redirects_ + - url_request_->GetTotalReceivedBytes()); + url_request_->GetTotalReceivedBytes(), + net_error_details.quic_connection_migration_attempted, + net_error_details.quic_connection_migration_successful); } void CronetURLRequest::NetworkTasks::MaybeReportMetricsAndRunCallback(
diff --git a/components/cronet/cronet_url_request.h b/components/cronet/cronet_url_request.h index 74e2b91f..94353b57 100644 --- a/components/cronet/cronet_url_request.h +++ b/components/cronet/cronet_url_request.h
@@ -111,23 +111,26 @@ virtual void OnDestroyed() = 0; // Invoked right before request is destroyed to report collected metrics. - virtual void OnMetricsCollected(const base::Time& request_start_time, - const base::TimeTicks& request_start, - const base::TimeTicks& dns_start, - const base::TimeTicks& dns_end, - const base::TimeTicks& connect_start, - const base::TimeTicks& connect_end, - const base::TimeTicks& ssl_start, - const base::TimeTicks& ssl_end, - const base::TimeTicks& send_start, - const base::TimeTicks& send_end, - const base::TimeTicks& push_start, - const base::TimeTicks& push_end, - const base::TimeTicks& receive_headers_end, - const base::TimeTicks& request_end, - bool socket_reused, - int64_t sent_bytes_count, - int64_t received_bytes_count) = 0; + virtual void OnMetricsCollected( + const base::Time& request_start_time, + const base::TimeTicks& request_start, + const base::TimeTicks& dns_start, + const base::TimeTicks& dns_end, + const base::TimeTicks& connect_start, + const base::TimeTicks& connect_end, + const base::TimeTicks& ssl_start, + const base::TimeTicks& ssl_end, + const base::TimeTicks& send_start, + const base::TimeTicks& send_end, + const base::TimeTicks& push_start, + const base::TimeTicks& push_end, + const base::TimeTicks& receive_headers_end, + const base::TimeTicks& request_end, + bool socket_reused, + int64_t sent_bytes_count, + int64_t received_bytes_count, + bool quic_connection_migration_attempted, + bool quic_connection_migration_successful) = 0; }; // Invoked in response to CronetURLRequest::GetStatus() to allow multiple // overlapping calls. The load states correspond to the lengthy periods of
diff --git a/components/cronet/native/url_request.cc b/components/cronet/native/url_request.cc index 02b1d5b..0f8d48f 100644 --- a/components/cronet/native/url_request.cc +++ b/components/cronet/native/url_request.cc
@@ -298,7 +298,9 @@ const base::TimeTicks& request_end, bool socket_reused, int64_t sent_bytes_count, - int64_t received_bytes_count) + int64_t received_bytes_count, + bool quic_connection_migration_attempted, + bool quic_connection_migration_successful) LOCKS_EXCLUDED(url_request_->lock_) override; // The UrlRequest which owns context that owns the callback. @@ -818,7 +820,10 @@ const base::TimeTicks& request_end, bool socket_reused, int64_t sent_bytes_count, - int64_t received_bytes_count) { + int64_t received_bytes_count, + bool, // quic_connection_migration_attempted + bool // quic_connection_migration_successful +) { DCHECK_CALLED_ON_VALID_THREAD(network_thread_checker_); base::AutoLock lock(url_request_->lock_); DCHECK_EQ(url_request_->request_finished_info_, nullptr)
diff --git a/components/device_signals/core/common/mac/BUILD.gn b/components/device_signals/core/common/mac/BUILD.gn index 3ed2ed5..51093e3 100644 --- a/components/device_signals/core/common/mac/BUILD.gn +++ b/components/device_signals/core/common/mac/BUILD.gn
@@ -5,7 +5,7 @@ static_library("mac") { public = [ "mac_platform_delegate.h" ] - sources = [ "mac_platform_delegate.cc" ] + sources = [ "mac_platform_delegate.mm" ] public_deps = [ "//components/device_signals/core/common",
diff --git a/components/exo/client_controlled_shell_surface_unittest.cc b/components/exo/client_controlled_shell_surface_unittest.cc index 0166279..e35c43e3 100644 --- a/components/exo/client_controlled_shell_surface_unittest.cc +++ b/components/exo/client_controlled_shell_surface_unittest.cc
@@ -1937,7 +1937,7 @@ EnableTabletMode(true); - ash::WMEvent event(ash::WM_EVENT_SNAP_PRIMARY); + ash::WindowSnapWMEvent event(ash::WM_EVENT_SNAP_PRIMARY); window_state->OnWMEvent(&event); EXPECT_EQ(window_state->GetStateType(), WindowStateType::kPrimarySnapped); @@ -2468,7 +2468,7 @@ surface->Commit(); EXPECT_EQ(gfx::Rect(50, 68, 200, 332), widget->GetWindowBoundsInScreen()); - ash::WMEvent event(ash::WM_EVENT_SNAP_PRIMARY); + ash::WindowSnapWMEvent event(ash::WM_EVENT_SNAP_PRIMARY); ash::WindowState::Get(window)->OnWMEvent(&event); EXPECT_EQ(gfx::Rect(0, 32, 400, 568), delegate->requested_bounds().back());
diff --git a/components/exo/shell_surface_unittest.cc b/components/exo/shell_surface_unittest.cc index 72b080cb..a917c1f 100644 --- a/components/exo/shell_surface_unittest.cc +++ b/components/exo/shell_surface_unittest.cc
@@ -1198,7 +1198,7 @@ EXPECT_EQ(buffer_size, shell_surface->GetWidget()->GetWindowBoundsInScreen().size()); - ash::WMEvent event(ash::WM_EVENT_CYCLE_SNAP_PRIMARY); + ash::WindowSnapWMEvent event(ash::WM_EVENT_CYCLE_SNAP_PRIMARY); aura::Window* window = shell_surface->GetWidget()->GetNativeWindow(); // Enter snapped mode. @@ -2452,7 +2452,8 @@ // Make sure we are in a non-snapped state before testing state change. ASSERT_FALSE(state->IsSnapped()); - auto snap_event = std::make_unique<ash::WMEvent>(ash::WM_EVENT_SNAP_PRIMARY); + auto snap_event = + std::make_unique<ash::WindowSnapWMEvent>(ash::WM_EVENT_SNAP_PRIMARY); // Trigger a snap event, this should cause a configure event. state->OnWMEvent(snap_event.get());
diff --git a/components/exo/wayland/zcr_remote_shell_impl_unittest.cc b/components/exo/wayland/zcr_remote_shell_impl_unittest.cc index 16cdd7e..6b0b4539 100644 --- a/components/exo/wayland/zcr_remote_shell_impl_unittest.cc +++ b/components/exo/wayland/zcr_remote_shell_impl_unittest.cc
@@ -233,7 +233,7 @@ auto* const window = widget->GetNativeWindow(); // Snap window. - ash::WMEvent event(ash::WM_EVENT_SNAP_PRIMARY); + ash::WindowSnapWMEvent event(ash::WM_EVENT_SNAP_PRIMARY); ash::WindowState::Get(window)->OnWMEvent(&event); shell_surface->SetSnappedToPrimary(); shell_surface->SetGeometry(gfx::Rect(0, 0, 400, 520));
diff --git a/components/omnibox/browser/shortcuts_backend.cc b/components/omnibox/browser/shortcuts_backend.cc index fbf79a5..4593627 100644 --- a/components/omnibox/browser/shortcuts_backend.cc +++ b/components/omnibox/browser/shortcuts_backend.cc
@@ -57,8 +57,9 @@ return type; default: - return AutocompleteMatch::IsSearchType(type) ? - AutocompleteMatchType::SEARCH_HISTORY : type; + return AutocompleteMatch::IsSearchType(type) + ? AutocompleteMatchType::SEARCH_HISTORY + : type; } } @@ -207,6 +208,15 @@ match.Validate(); #endif // DCHECK_IS_ON() + // TODO(manukh): If we decide to launch history cluster suggestions, adding + // them to the shortcuts provider would be useful to help users get to + // repeat journeys but would require some logic to limit the joint history + // cluster provider and shortcuts provider history cluster suggestions to + // just 1. Until then, don't add history cluster suggestions to the shortcuts + // DB to avoid showing more than 1 history cluster suggestion. + if (match.type == AutocompleteMatchType::HISTORY_CLUSTER) + return; + // Trim `text` since `ExpandToFullWord()` trims the shortcut text; otherwise, // inputs with trailing whitespace wouldn't match a shortcut even if the user // previously used the input with a trailing whitespace.
diff --git a/components/omnibox/browser/zero_suggest_provider.cc b/components/omnibox/browser/zero_suggest_provider.cc index 0926b23b..cd46b47 100644 --- a/components/omnibox/browser/zero_suggest_provider.cc +++ b/components/omnibox/browser/zero_suggest_provider.cc
@@ -266,7 +266,19 @@ } const AutocompleteInput ZeroSuggestProvider::GetInput(bool is_keyword) const { - return input_; + // In zero-suggest, input is expected to empty, as it is checked against the + // suggest response which always has an empty query. If those don't match, + // the response is dropped. Ensure the input text is empty. However copy + // over the URL. on-focus zero-suggest on Web/SRP on Mobile relies on the + // URL to be set. + AutocompleteInput input(std::u16string(), + input_.current_page_classification(), + client()->GetSchemeClassifier()); + input.set_current_url(input_.current_url()); + input.set_current_title(input_.current_title()); + input.set_prevent_inline_autocomplete(true); + input.set_allow_exact_keyword_match(false); + return input; } bool ZeroSuggestProvider::ShouldAppendExtraParams(
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/univariate_stats.cc b/components/page_load_metrics/browser/observers/ad_metrics/univariate_stats.cc index 49fdf6c..e4aedb5 100644 --- a/components/page_load_metrics/browser/observers/ad_metrics/univariate_stats.cc +++ b/components/page_load_metrics/browser/observers/ad_metrics/univariate_stats.cc
@@ -4,6 +4,8 @@ #include "components/page_load_metrics/browser/observers/ad_metrics/univariate_stats.h" +#include <cmath> + #include "base/check_op.h" namespace page_load_metrics {
diff --git a/components/policy/core/common/policy_loader_lacros.cc b/components/policy/core/common/policy_loader_lacros.cc index 3dcfa81..5e8387d 100644 --- a/components/policy/core/common/policy_loader_lacros.cc +++ b/components/policy/core/common/policy_loader_lacros.cc
@@ -14,6 +14,7 @@ #include "base/check.h" #include "base/logging.h" #include "base/memory/weak_ptr.h" +#include "base/syslog_logging.h" #include "chromeos/lacros/lacros_service.h" #include "chromeos/startup/browser_init_params.h" #include "components/policy/core/common/cloud/affiliation.h" @@ -204,6 +205,8 @@ // The data is also good; expose the policies. component_policy_->Get(policy_pair.first).Swap(&component_policy_map); } + // TODO(igorcov): crbug.com/1301854 Remove after bug fix. + SYSLOG(INFO) << "New component policy installed"; } enterprise_management::PolicyData* PolicyLoaderLacros::GetPolicyData() {
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 5ca6162..9fad262 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -1704,6 +1704,9 @@ <translation id="274769314493317695">Wenn <ph name="PRINTERS_WHITELIST" /> für <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" /> ausgewählt ist, wird durch Festlegen von <ph name="NATIVE_PRINTERS_BULK_WHITELIST_POLICY_NAME" /> angegeben, welche Drucker die Nutzer verwenden können. Den Nutzern stehen nur die Drucker zur Verfügung, deren IDs mit den Werten in dieser Richtlinie übereinstimmen. Die IDs müssen dem Feld <ph name="ID_FIELD" /> oder dem Feld <ph name="GUID_FIELD" /> in der Datei entsprechen, die in <ph name="NATIVE_PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> angegeben ist. Diese Richtlinie wurde eingestellt. Bitte verwende stattdessen die Richtlinie <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />.</translation> +<translation id="2751959596774212778">WebSQL ist ab M107 in nicht sicheren Kontexten standardmäßig deaktiviert und wird in M110 vollständig entfernt. + Wenn diese Richtlinie auf „false“ gesetzt oder nicht konfiguriert ist, bleibt WebSQL in nicht sicheren Kontexten bis zum Ende von M106 aktiviert und wird dann ab M107 deaktiviert. + Wenn diese Richtlinie auf „true“ gesetzt ist, wird WebSQL in nicht sicheren Kontexten aktiviert.</translation> <translation id="2752046642026416564">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, kann <ph name="PRODUCT_NAME" /> auf Nutzerebene installierte native Nachrichtenhosts verwenden. Ist die Richtlinie deaktiviert, kann <ph name="PRODUCT_NAME" /> diese Hosts nur verwenden, wenn sie auf Systemebene installiert wurden.</translation> @@ -5497,6 +5500,7 @@ Wenn "U2F" ausgewählt ist, verhält sich die integrierte Hardware gemäß der FIDO U2F-Spezifikation. Wenn "U2F_EXTENDED" ausgewählt ist, sind durch die integrierte Hardware die U2F-Funktionen plus einige Erweiterungen zur individuellen Bestätigung verfügbar.</translation> +<translation id="6998179760789945134">WebSQL in nicht sicheren Kontexten deaktivieren, sofern nicht per Chrome-Flag aktiviert.</translation> <translation id="6999948519306285655">Diese Richtlinie wurde eingestellt. Bitte verwende stattdessen die Richtlinie "<ph name="PROXY_SETTINGS_POLICY_NAME" />". Durch Festlegen der Richtlinie kannst du die URL zu einer PAC-Proxydatei angeben. Diese Richtlinie ist nur dann wirksam, wenn die Richtlinie "<ph name="PROXY_SETTINGS_POLICY_NAME" />" nicht konfiguriert ist und du "<ph name="PROXY_MODE_ENUM_PAC_SCRIPT" />" mit "<ph name="PROXY_MODE_POLICY_NAME" />" ausgewählt hast. @@ -7259,6 +7263,7 @@ <translation id="8919100556245407184">Zeitraum in Tagen nach dem Ende des AUE-Zeitraums (Auto Update Expiration), nach dem der Nutzer abgemeldet wird, wenn die Version von <ph name="PRODUCT_OS_NAME" /> niedriger ist als die angegebene <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />.</translation> <translation id="8919369436496201075">Gerät erlauben, LTS-Updates zu erhalten</translation> <translation id="8921669704201370845">Cloud-Berichterstellung in <ph name="PRODUCT_NAME" /> für verwaltetes Profil aktivieren</translation> +<translation id="8922494933893518624">Erzwingen, dass WebSQL in nicht sicheren Kontexten aktiviert wird.</translation> <translation id="8930064580550462145">Während der Anmeldung über den Sperrbildschirm kann <ph name="PRODUCT_OS_NAME" /> die Authentifizierung über einen Server (online) oder über ein Passwort im Cache (offline) ausführen. Wenn diese Richtlinie auf -2 gesetzt wird, übernimmt sie den Wert des Zeitlimits für die Offlineanmeldung auf dem Anmeldebildschirm von der Richtlinie <ph name="POLICY" />.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index c85a2d2..8c970e7 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1725,6 +1725,9 @@ <translation id="274769314493317695">Si eliges <ph name="PRINTERS_WHITELIST" /> para <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, la configuración de <ph name="NATIVE_PRINTERS_BULK_WHITELIST_POLICY_NAME" /> especificará las impresoras que podrán utilizar los usuarios. El usuario solo podrá acceder a las impresoras cuyos ID coincidan con los valores en esta política. Los ID deben coincidir con los valores de los campos <ph name="ID_FIELD" /> o <ph name="GUID_FIELD" /> en el archivo que se especifica en <ph name="NATIVE_PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. Esta política dejó de estar disponible; usa <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" /> en su lugar.</translation> +<translation id="2751959596774212778">WebSQL en contextos no seguros está desactivada de forma predeterminada a partir de la versión M107 y se quitará por completo en la versión M110. + Si estableces esta política como falsa o no la estableces, WebSQL en contextos no seguros permanecerá activada hasta el final de la versión M106 y, luego, se inhabilitará en la versión M107. + Si la estableces como verdadera, se habilitará WebSQL en contextos no seguros.</translation> <translation id="2752046642026416564">Si habilitas la política o no la estableces, <ph name="PRODUCT_NAME" /> podrá usar los hosts de mensajería nativa instalados a nivel del usuario. Si inhabilitas la política, <ph name="PRODUCT_NAME" /> solo podrá usar estos hosts cuando estén instalados a nivel del sistema.</translation> @@ -5575,6 +5578,7 @@ Si se selecciona "U2F", el segundo factor integrado se comportará de acuerdo con la especificación de FIDO U2F. Si se selecciona "U2F_EXTENDED", el segundo factor integrado proporcionará funciones de U2F además de algunas extensiones para la atestación individual.</translation> +<translation id="6998179760789945134">Inhabilitar WebSQL en contextos no seguros, a menos que la función experimental de Chrome lo habilite</translation> <translation id="6999948519306285655">Esta política no está disponible; usa <ph name="PROXY_SETTINGS_POLICY_NAME" /> en su lugar. Si configuras la política, podrás especificar una dirección URL para el archivo de proxy en formato .pac. Esta política solo tendrá efecto si no se especifica la política <ph name="PROXY_SETTINGS_POLICY_NAME" /> y si seleccionas <ph name="PROXY_MODE_ENUM_PAC_SCRIPT" /> con <ph name="PROXY_MODE_POLICY_NAME" />. @@ -7347,6 +7351,7 @@ <translation id="8919100556245407184">El tiempo restante (en días) después del aviso de vencimiento de la actualización automática para que se haga salir al usuario de la cuenta si la versión de <ph name="PRODUCT_OS_NAME" /> es anterior a la versión <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> especificada.</translation> <translation id="8919369436496201075">Permite que el dispositivo reciba actualizaciones de LTS</translation> <translation id="8921669704201370845">Habilitar los informes en la nube de <ph name="PRODUCT_NAME" /> para los perfiles administrados</translation> +<translation id="8922494933893518624">Forzar la habilitación de WebSQL en contextos no seguros</translation> <translation id="8930064580550462145">Durante el acceso mediante la pantalla de bloqueo, <ph name="PRODUCT_OS_NAME" /> podrá realizar la autenticación a través de un servidor (en línea) o de una contraseña almacenada en caché (sin conexión). Si estableces esta política en -2, coincidirá con el valor del límite de tiempo de acceso sin conexión de la pantalla de acceso especificado en la política <ph name="POLICY" />.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 74c44401..2d05e946 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1723,6 +1723,9 @@ <translation id="274769314493317695">Si <ph name="PRINTERS_WHITELIST" /> est sélectionné pour la règle <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, la définition de <ph name="NATIVE_PRINTERS_BULK_WHITELIST_POLICY_NAME" /> indique les imprimantes accessibles aux utilisateurs. Seules les imprimantes dont les ID correspondent aux valeurs définies dans cette règle sont proposées aux utilisateurs. Ces ID doivent correspondre à ceux indiqués dans les champs <ph name="ID_FIELD" /> ou <ph name="GUID_FIELD" /> du fichier spécifié dans la règle <ph name="NATIVE_PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. Cette règle étant obsolète, veuillez utiliser la règle <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" /> à la place.</translation> +<translation id="2751959596774212778">Dans les contextes non sécurisés, WebSQL est désactivé par défaut à partir de M107 et sera entièrement supprimé dans M110. + Si cette règle est définie sur "False" ou n'est pas configurée, WebSQL restera activé dans des contextes non sécurisés jusqu'à la fin de M106, puis sera désactivé à partir de M107. + Si cette règle est définie sur "True", WebSQL est activé dans des contextes non sécurisés.</translation> <translation id="2752046642026416564">Si cette règle est activée ou qu'elle n'est pas configurée, <ph name="PRODUCT_NAME" /> peut utiliser les hôtes de messagerie native installés au niveau de l'utilisateur. Si elle est désactivée, <ph name="PRODUCT_NAME" /> ne peut utiliser ces hôtes que s'ils sont installés au niveau du système.</translation> @@ -5529,6 +5532,7 @@ Si vous sélectionnez "U2F", le deuxième facteur intégré se comporte conformément à la norme FIDO U2F. Si vous sélectionnez "U2F_EXTENDED", le deuxième facteur intégré fournit les fonctionnalités U2F ainsi que certaines extensions pour chaque attestation.</translation> +<translation id="6998179760789945134">Désactiver WebSQL dans les contextes non sécurisés, sauf activation par l'indicateur Chrome.</translation> <translation id="6999948519306285655">Cette règle étant obsolète, veuillez utiliser la règle <ph name="PROXY_SETTINGS_POLICY_NAME" /> à la place. Elle permet de définir l'URL d'un fichier .pac proxy. Elle ne s'applique que si la règle <ph name="PROXY_SETTINGS_POLICY_NAME" /> n'est pas spécifiée et si vous avez sélectionné l'option <ph name="PROXY_MODE_ENUM_PAC_SCRIPT" /> dans la règle <ph name="PROXY_MODE_POLICY_NAME" />. @@ -7281,6 +7285,7 @@ <translation id="8919100556245407184">Durée en jours, après l'expiration de la mise à jour automatique, au terme de laquelle l'utilisateur est déconnecté si la version de <ph name="PRODUCT_OS_NAME" /> est antérieure à la version <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> spécifiée.</translation> <translation id="8919369436496201075">Autoriser l'appareil à recevoir des mises à jour LTS</translation> <translation id="8921669704201370845">Activer la création de rapports cloud <ph name="PRODUCT_NAME" /> pour un profil géré</translation> +<translation id="8922494933893518624">Forcer l'activation de WebSQL dans les contextes non sécurisés.</translation> <translation id="8930064580550462145">Lors de la connexion via l'écran de verrouillage, l'authentification dans <ph name="PRODUCT_OS_NAME" /> peut s'effectuer sur un serveur (en ligne) ou à l'aide d'un mot de passe en cache (hors connexion). Si cette règle est définie sur -2, elle correspondra à la valeur limite du délai de connexion hors connexion de l'écran de connexion, qui provient de <ph name="POLICY" />.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 4d7129d2..b0772971 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -108,6 +108,11 @@ Jika kebijakan ini disetel, pengguna tidak dapat mengubahnya.</translation> <translation id="1123650965531933634">Tolak izin Penempatan Jendela di semua situs secara default</translation> +<translation id="112496019059412872">Mengontrol apakah fitur 'Ingat sandi' diaktifkan di dialog autentikasi Kerberos. Sandi disimpan dan dienkripsi di disk, serta hanya dapat diakses oleh daemon sistem Kerberos dan selama sesi pengguna. + + Jika kebijakan ini disetel ke aktif atau tidak disetel, pengguna dapat menentukan apakah sandi Kerberos akan diingat, sehingga pengguna tidak perlu memasukkannya lagi. Tiket Kerberos diambil secara otomatis, kecuali jika diperlukan autentikasi tambahan (autentikasi 2 langkah). + + Jika kebijakan ini disetel ke nonaktif, sandi tidak akan diingat dan semua sandi yang disimpan sebelumnya akan dihapus. Pengguna harus memasukkan sandinya setiap kali mereka perlu melakukan autentikasi dengan sistem Kerberos. Hal ini biasanya terjadi antara setiap 8 jam hingga beberapa bulan, tergantung pada setelan server.</translation> <translation id="1133622335785078255">Izinkan pengguna membuat dan menggunakan profil sekunder, serta menggunakan mode tamu di browser <ph name="LACROS_NAME" /></translation> <translation id="1133814529606590009">Jika kebijakan disetel ke Aktif berarti pengumpulan data anonim yang menyertakan URL, yang mengirimkan informasi URL halaman yang dikunjungi oleh pengguna kepada Google untuk menyempurnakan penelusuran dan penjelajahan, akan selalu aktif. @@ -4969,6 +4974,12 @@ Jika kebijakan disetel ke Nonaktif, pengoptimalan WPAD akan dinonaktifkan, yang menyebabkan <ph name="PRODUCT_NAME" /> menunggu lebih lama untuk server WPAD berbasis DNS. Tanpa mempertimbangkan apakah kebijakan ini disetel atau tidak disetel, pengguna tidak dapat mengubah setelan pengoptimalan WPAD.</translation> +<translation id="6365249741643189510">Kebijakan ini memberi Projector izin untuk membuat dan mentranskripsikan rekaman layar dan mengupload ke Drive bagi pengguna versi bisnis. + Kebijakan ini tidak memengaruhi pengguna Family Link. + Kebijakan ini tidak memengaruhi kebijakan <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> bagi pengguna Family Link. + + Jika kebijakan ini disetel ke aktif atau tidak disetel, Projector akan diaktifkan. + Jika kebijakan ini disetel ke nonaktif, Projector akan dinonaktifkan.</translation> <translation id="6366574325767783825">Jika kebijakan disetel ke True (Benar) atau tidak disetel, <ph name="PRODUCT_NAME" /> akan menerima konten web yang ditayangkan sebagai Signed HTTP Exchange. Jika kebijakan disetel ke Salah (False), Signed HTTP Exchange tidak akan dimuat.</translation> @@ -5095,6 +5106,7 @@ <translation id="6518102411616460786">Tunggu saluran target juga mengalami downgrade saluran rilis</translation> <translation id="6520802717075138474">Impor mesin telusur dari browser default saat pertama kali dijalankan</translation> <translation id="6521971538031711337">Cegah pengguna terkelola mengonfigurasi nama host perangkat</translation> +<translation id="652593254122955308">Waktu tunggu hingga profil tidak ada aktivitas ditutup</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: @@ -7276,6 +7288,13 @@ Jika kebijakan ini tidak disetel, konfigurasi default untuk sandbox jaringan akan digunakan. Konfigurasi default ini dapat bervariasi bergantung pada rilis <ph name="PRODUCT_NAME" />, uji coba kolom yang sedang berjalan, dan platform. Kebijakan ini dimaksudkan untuk memberikan fleksibilitas kepada perusahaan guna menonaktifkan sandbox jaringan jika perusahaan menggunakan software pihak ketiga yang mengganggu sandbox layanan jaringan.</translation> <translation id="8842208363354615697">Mengizinkan pengaktifan Mode Khusus HTTPS</translation> +<translation id="8850156309475162935">Memicu tindakan saat komputer sedang tidak ada aktivitas. + + Jika kebijakan ini disetel ke angka positif: angka ini merupakan jumlah menit. Setelah beberapa menit tanpa input pengguna, <ph name="PRODUCT_NAME" /> akan menutup semua jendela browser, dan menampilkan Pemilih Profil. + + Jika kebijakan ini disetel ke angka kurang dari 5, atau tidak disetel: tidak ada yang terjadi saat komputer tidak ada aktivitas. + + "Input pengguna" ditentukan oleh Operating System API, dan menyertakan hal-hal seperti menggerakkan mouse atau mengetik di keyboard.</translation> <translation id="885147810817138322">Tampilkan rekomendasi media kepada pengguna</translation> <translation id="8852579753940989645">Mengaktifkan Integritas Kode Perender</translation> <translation id="8854571659927427063">Jika kebijakan disetel ke Aktif, bookmark akan diimpor dari browser default sebelumnya saat pertama kali dijalankan. Jika kebijakan disetel ke Nonaktif atau tidak disetel, tidak ada bookmark yang akan diimpor saat pertama kali dijalankan. @@ -7390,6 +7409,13 @@ <translation id="8983537551095611459">Mengonfigurasi daftar ID ekstensi yang dikecualikan dari prosedur pembersihan sesi tamu terkelola yang dibatasi.</translation> <translation id="8983539044126123594">Aktifkan login dengan Akun Google tambahan</translation> <translation id="8992176907758534924">Jangan izinkan situs apa pun menampilkan gambar</translation> +<translation id="8994954504552592260">Mengaktifkan migrasi perangkat yang dikelola <ph name="MS_AD_NAME" /> ke pengelolaan cloud. Kebijakan ini memungkinkan migrasi nirsentuh beberapa perangkat di perusahaan untuk dimulai dari jarak jauh. Selain itu, proses migrasi akan dibuat setransparan mungkin bagi pengguna akhir. + + Jika kebijakan ini disetel ke aktif dan ID pendaftaran telah diupload ke DMServer, powerwash di perangkat akan dimulai dari jarak jauh. + + Jika kebijakan ini disetel ke nonaktif atau tidak disetel, powerwash di perangkat tidak akan dimulai dari jarak jauh, terlepas dari status upload ID pendaftaran. + + Pemeriksaan ini akan dimulai setiap kali layar login dimuat, lalu dicoba lagi setiap jam (selama perangkat masih menampilkan layar login). Tindakan ini mencegah migrasi dimulai di tengah-tengah sesi pengguna, yang akan menyebabkan potensi masalah bagi pengguna akhir.</translation> <translation id="9007632512838819703">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. Menonaktifkan secara paksa fitur pemeriksa ejaan bahasa. Bahasa yang tidak dikenal dalam daftar tersebut akan diabaikan.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index ee00fee..595860d 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -1725,6 +1725,9 @@ <translation id="274769314493317695">Se per il criterio <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" /> viene selezionata l'opzione <ph name="PRINTERS_WHITELIST" />, la configurazione del criterio <ph name="NATIVE_PRINTERS_BULK_WHITELIST_POLICY_NAME" /> consente di specificare le stampanti che possono essere utilizzate dagli utenti. Soltanto le stampanti con ID corrispondenti ai valori specificati in questo criterio saranno a disposizione degli utenti. Gli ID devono corrispondere ai campi <ph name="ID_FIELD" /> o <ph name="GUID_FIELD" /> del file specificato nel criterio <ph name="NATIVE_PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. Questo criterio è deprecato. Usa il criterio <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />.</translation> +<translation id="2751959596774212778">WebSQL in contesti non sicuri è disattivato per impostazione predefinita a partire da M107 e verrà completamente rimosso in M110. + Se il criterio viene impostato su false o se non viene configurato, in contesti non sicuri WebSQL rimarrà attivo fino alla fine di M106, quindi disattivato da M107. + Se questo criterio viene impostato su true, in contesti non sicuri WebSQL verrà attivato.</translation> <translation id="2752046642026416564">Se il criterio viene impostato su Attivato o se non viene configurato, <ph name="PRODUCT_NAME" /> può utilizzare gli host di messaggistica nativi installati a livello di utente. Se viene impostato su Disattivato, <ph name="PRODUCT_NAME" /> può utilizzare questi host solo se sono installati a livello di sistema.</translation> @@ -5541,6 +5544,7 @@ Se selezioni l'opzione "U2F", il funzionamento dell'autenticazione a due fattori integrata dipenderà dalla specifica FIDO U2F. Se selezioni l'opzione "U2F_EXTENDED", l'autenticazione a due fattori integrata fornirà le funzioni U2F più alcune estensioni per la singola attestazione.</translation> +<translation id="6998179760789945134">Disattiva WebSQL in contesti non sicuri, a meno che non venga attivato dal flag di Chrome.</translation> <translation id="6999948519306285655">Questo criterio è deprecato. Usa il criterio <ph name="PROXY_SETTINGS_POLICY_NAME" />. La configurazione del criterio consente di specificare un URL a un file proxy .pac. Questo criterio viene applicato solo se il criterio <ph name="PROXY_SETTINGS_POLICY_NAME" /> non è specificato e hai selezionato <ph name="PROXY_MODE_ENUM_PAC_SCRIPT" /> con <ph name="PROXY_MODE_POLICY_NAME" />. @@ -7285,6 +7289,7 @@ <translation id="8919100556245407184">Il periodo di tempo, in giorni, dopo il post di scadenza dell'aggiornamento automatico trascorso il quale l'utente viene disconnesso dall'account se la versione di <ph name="PRODUCT_OS_NAME" /> è precedente a quella specificata nel criterio <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />.</translation> <translation id="8919369436496201075">Consenti al dispositivo di ricevere aggiornamenti LTS</translation> <translation id="8921669704201370845">Attiva reporting su cloud di <ph name="PRODUCT_NAME" /> per profilo gestito</translation> +<translation id="8922494933893518624">Forza l'attivazione di WebSQL in contesti non sicuri.</translation> <translation id="8930064580550462145">Durante l'accesso tramite la schermata di blocco, <ph name="PRODUCT_OS_NAME" /> può eseguire l'autenticazione con un server (online) o utilizzando una password memorizzata nella cache (offline). Se per questo criterio viene impostato il valore -2, verrà usato lo stesso valore del limite relativo al tempo di accesso offline nella schermata di accesso del criterio <ph name="POLICY" />.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 369fdeb..b742a33e 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -104,6 +104,11 @@ このポリシーを設定した場合、ユーザーは設定を変更できません。</translation> <translation id="1123650965531933634">すべてのサイトに対してウィンドウの配置に関する権限をデフォルトで自動的に拒否する</translation> +<translation id="112496019059412872">Kerberos 認証ダイアログで「パスワードを保存する」機能が有効かどうかを制御します。パスワードはディスク上で暗号化して保存され、ユーザー セッション中に Kerberos システム デーモンからのみアクセスできます。 + + このポリシーが有効に設定されているか未設定の場合、ユーザーは再入力の手間を省くために Kerberos パスワードを保存するかどうかを指定できます。Kerberos チケットは、追加の認証(2 段階認証プロセス)が必要な場合以外は自動的に取得されます。 + + このポリシーが無効に設定されている場合、パスワードは保存されず、以前に保存されたパスワードもすべて削除されます。ユーザーは、Kerberos システムで認証が必要となるたびにパスワードを入力しなければなりません。この場合、パスワードの確認は、サーバーの設定に応じて通常 8 時間~数か月ごとに行われます。</translation> <translation id="1133622335785078255">ユーザーに <ph name="LACROS_NAME" /> ブラウザでの予備のプロフィールの作成と使用、およびゲストモードの使用を許可する</translation> <translation id="1133814529606590009">このポリシーを有効に設定した場合、URL キーによる匿名化データの収集が常に有効になり、検索とブラウジングを改善するため、ユーザーがアクセスしたページの URL が Google に送信されます。 @@ -4671,6 +4676,8 @@ このポリシーを無効に設定した場合、WPAD の最適化は無効になり、DNS ベースの WPAD サーバーに対する <ph name="PRODUCT_NAME" /> の待機間隔が長くなります。 このポリシーを設定したかどうかに関係なく、ユーザーは WPAD の最適化設定を変更できません。</translation> +<translation id="6365249741643189510">このポリシーは、企業ユーザーの場合、画面録画の文字起こしの作成と Google ドライブへのアップロードの権限を Projector に付与します。このポリシーは、ファミリー リンクのユーザーには影響しません。このポリシーは、ファミリー リンクのユーザー向けの <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> ポリシーには影響しません。ポリシーを未設定のままにするか有効にすると、Projector が有効になります。 + ポリシーを無効にした場合、Projector は無効になります。</translation> <translation id="6366574325767783825">このポリシーを True に設定するか未設定のままにした場合、<ph name="PRODUCT_NAME" /> では Signed HTTP Exchange として配信されるウェブ コンテンツが許可されます。 このポリシーを False に設定した場合、Signed HTTP Exchange は読み込まれません。</translation> @@ -4783,6 +4790,7 @@ <translation id="6518102411616460786">ターゲット チャンネルがチャンネル ダウングレードの対象になるまで待機する</translation> <translation id="6520802717075138474">初回実行時にデフォルトのブラウザから検索エンジンをインポートする</translation> <translation id="6521971538031711337">管理対象ユーザーにデバイスのホスト名の設定を許可しない</translation> +<translation id="652593254122955308">アイドル状態のプロフィールが閉じられるまでのタイムアウト</translation> <translation id="6532026122543921610"><ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> ポリシーによってタイムゾーンの自動検出がオフになっている場合を除き、このポリシーを設定するとタイムゾーンの自動検出方法を指定できます。ユーザーはこの設定を変更することはできません。 次のいずれかを設定します。 @@ -6862,6 +6870,13 @@ このポリシーを設定しない場合は、ネットワークのサンドボックス化に関するデフォルトの設定が使用されます。デフォルトの設定は、<ph name="PRODUCT_NAME" /> のリリース(現在フィールド テストを実施中)およびプラットフォームごとに異なる場合があります。 このポリシーは、企業でネットワーク サービスのサンドボックス化の妨げとなるサードパーティ ソフトウェアを使用している場合に、ネットワークのサンドボックス化を無効にできるようにするためのものです。</translation> <translation id="8842208363354615697">HTTPS 専用モードの有効化を許可する</translation> +<translation id="8850156309475162935">パソコンがアイドル状態になってから動作をトリガーするまでの時間を設定します。 + + このポリシーを正の数値に設定した場合、タイムアウトの時間(分単位)を指定したことになります。ユーザー入力なしで、指定した時間(分単位)が経過すると、<ph name="PRODUCT_NAME" /> のすべてのブラウザ ウィンドウが閉じられ、プロフィール選択画面が表示されます。 + + このポリシーを 5 未満に設定するか、未設定のままにした場合、パソコンがアイドル状態のときに何の動作も行いません。 + + 「ユーザー入力」はオペレーティング システムの API によって定義され、マウスの移動やキーボード入力などが該当します。</translation> <translation id="885147810817138322">おすすめメディアをユーザーに表示する</translation> <translation id="8852579753940989645">レンダラコードの整合性チェックを有効にする</translation> <translation id="8854571659927427063">このポリシーを有効に設定した場合、初回実行時に以前の既定のブラウザからブックマークが読み込まれます。このポリシーを無効に設定するか未設定のままにした場合、初回実行時にブックマークは読み込まれません。 @@ -6976,6 +6991,12 @@ <translation id="8983537551095611459">制限付きの管理対象ゲスト セッションのクリーンアップ手順から除外する拡張機能 ID のリストを設定する</translation> <translation id="8983539044126123594">他の Google アカウントでのログインを有効にする</translation> <translation id="8992176907758534924">すべてのサイトに対して画像表示を許可しない</translation> +<translation id="8994954504552592260"><ph name="MS_AD_NAME" /> 管理対象デバイスのクラウド管理への移行を有効にします。このポリシーを設定すると、会社の複数デバイスのタッチレス移行をリモートで開始できます。また、移行に関する情報は可能な限りエンドユーザーに提供されます。 + + このポリシーを有効に設定し、登録 ID がすでに DMServer にアップロードされている場合は、リモート デバイスの Powerwash がトリガーされます。 + このポリシーを無効に設定するか未設定のままにした場合、登録 ID のアップロード ステータスにかかわらず、リモート デバイスの Powerwash はトリガーされません。. + + このチェックは、ログイン画面が読み込まれるたびに行われ、デバイスにログイン画面が表示されたままとなっている場合はその後 1 時間ごとに行われます。エンドユーザーに問題が生じる可能性があるため、このようにユーザー セッション中に移行が開始されないようになっています。</translation> <translation id="9007632512838819703">このポリシーはサポートが終了しています。代わりに <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> を使用してください。 言語のスペルチェックを自動的に無効にします。指定した言語のうち認識されないものは無視されます。
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index 4563bab0..dde461a 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -108,6 +108,11 @@ Als je dit beleid instelt, kunnen gebruikers het niet wijzigen.</translation> <translation id="1123650965531933634">Het recht voor vensterplaatsing wordt automatisch geweigerd voor alle sites.</translation> +<translation id="112496019059412872">Bepaalt of de functie Wachtwoord onthouden aanstaat in het dialoogvenster voor Kerberos-verificatie. Wachtwoorden worden versleuteld opgeslagen op een schijf, alleen toegankelijk voor de systeemdaemon van Kerberos en tijdens een gebruikerssessie. + + Als dit beleid wordt toegepast of niet is ingesteld, kunnen gebruikers besluiten of Kerberos-wachtwoorden worden onthouden, zodat deze niet opnieuw hoeven worden opgegeven. Kerberos-tickets worden automatisch opgehaald tenzij aanvullende verificatie vereist is (verificatie in 2 stappen). + + Als dit beleid niet wordt toegepast, worden wachtwoorden nooit onthouden en worden alle eerder opgeslagen wachtwoorden verwijderd. Gebruikers moeten elke keer dat ze zich moeten verifiëren bij het Kerberos-systeem, hun wachtwoord opgeven. Afhankelijk van de serverinstelling gebeurt dit normaal elke 8 uur tot een aantal maanden.</translation> <translation id="1133622335785078255">Gebruikers toestaan om secundaire profielen te maken en gebruiken, en om de gastmodus te gebruiken in de <ph name="LACROS_NAME" />-browser</translation> <translation id="1133814529606590009">Als je het beleid toepast, is de geanonimiseerde gegevensverzameling met URL-sleutel altijd actief. Hiermee worden de URL's van pagina's die de gebruiker bezoekt naar Google gestuurd om zoekopdrachten en browsen te verbeteren. @@ -4858,6 +4863,12 @@ Als je het beleid niet toepast, staat WPAD-optimalisatie uit, waardoor <ph name="PRODUCT_NAME" /> langer moet wachten op DNS-gebaseerde WPAD-servers. Ongeacht of dit beleid is ingesteld, kan de gebruiker de instelling voor WPAD-optimalisatie niet wijzigen.</translation> +<translation id="6365249741643189510">Dit beleid geeft Projector toestemming om schermopnamen te maken, er een transcript van te maken en ze te uploaden naar Drive voor zakelijke gebruikers. + Dit beleid is niet van toepassing voor gebruikers van Family Link. + Dit beleid heeft geen invloed op het <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" />-beleid voor gebruikers van Family Link. + + Als je het beleid toepast of niet instelt, staat Projector aan. + Als je het beleid niet toepast, staat Projector uit.</translation> <translation id="6366574325767783825">Als je het beleid instelt op True of niet instelt, accepteert <ph name="PRODUCT_NAME" /> webcontent die wordt getoond als Signed HTTP Exchange. Als je het beleid instelt op False, worden Signed HTTP Exchanges niet geladen.</translation> @@ -4983,6 +4994,7 @@ <translation id="6518102411616460786">Wachten tot het doelkanaal de kanaaldowngrade heeft verwerkt</translation> <translation id="6520802717075138474">Zoekmachines importeren uit standaardbrowser bij eerste uitvoering</translation> <translation id="6521971538031711337">Voorkomen dat een beheerde gebruiker de hostnaam van het apparaat instelt</translation> +<translation id="652593254122955308">Time-out tot inactief profiel wordt gesloten</translation> <translation id="6532026122543921610">Tenzij het beleid <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> de automatische tijdzonedetectie uitzet, wordt de methode voor automatische tijdzonedetectie uiteengezet als het beleid wordt ingesteld. Gebruikers kunnen deze methode niet wijzigen. Je kunt het beleid instellen op: @@ -7161,6 +7173,13 @@ Als je dit beleid niet instelt, wordt de standaardconfiguratie voor de netwerksandbox gebruikt. Dit verschilt afhankelijk van de <ph name="PRODUCT_NAME" />-release, actieve praktijktests en het platform. Dit beleid is bedoeld om bedrijven de flexibiliteit te bieden om de netwerksandbox uit te zetten als ze software van derden gebruiken die niet geschikt is voor het sandboxen van de netwerkservice.</translation> <translation id="8842208363354615697">Toestaan dat de modus 'Alleen HTTPS' wordt aangezet</translation> +<translation id="8850156309475162935">Hiermee wordt een actie gestart als de computer inactief is. + + Als je dit beleid hebt ingesteld op een positief getal, is dit een aantal minuten. Na dat aantal minuten zonder gebruikersinvoer sluit <ph name="PRODUCT_NAME" /> alle browservensters en wordt de profielkiezer getoond. + + Als dit beleid is ingesteld op een waarde van 5 of lager of niet is ingesteld, gebeurt er niets als de computer inactief is. + + 'Gebruikersinvoer' wordt gedefinieerd door API's voor het besturingssysteem en omvat bijvoorbeeld de muis bewegen of typen op het toetsenbord.</translation> <translation id="885147810817138322">Media-aanbevelingen tonen aan gebruikers</translation> <translation id="8852579753940989645">Code-integriteit van weergaveprogramma aanzetten</translation> <translation id="8854571659927427063">Als je het beleid toepast, worden de bookmarks van de vorige standaardbrowser geïmporteerd bij de eerste uitvoering. Als je het beleid niet toepast of niet instelt, worden de bookmarks niet geïmporteerd bij de eerste uitvoering. @@ -7272,6 +7291,13 @@ <translation id="8983537551095611459">De lijst met extensie-ID's instellen die zijn vrijgesteld van de opschoonprocedure voor beperkte beheerde gastsessies</translation> <translation id="8983539044126123594">Inloggen met extra Google-accounts aanzetten</translation> <translation id="8992176907758534924">Niet toestaan dat sites afbeeldingen tonen</translation> +<translation id="8994954504552592260">Hiermee zet je de migratie van door <ph name="MS_AD_NAME" /> beheerde apparaten naar cloudbeheer aan. Met dit beleid kun je op afstand een contactloze migratie van meerdere apparaten in een bedrijf starten. Bovendien is de migratie zo transparant mogelijk voor de eindgebruikers. + + Als je dit beleid toepast en de inschrijvings-ID al is geüpload naar de DMServer, wordt de powerwash-functie van een apparaat op afstand geactiveerd. + + Als je dit beleid niet toepast of niet instelt, wordt de powerwash-functie van een apparaat niet op afstand geactiveerd, onafhankelijk van de uploadstatus van de inschrijvings-ID. + + Deze check wordt geactiveerd als het inlogscherm wordt geladen en wordt daarna elk uur opnieuw geprobeerd (als het inlogscherm actief blijft op het apparaat). Hierdoor wordt voorkomen dat de migratie middenin een gebruikerssessie start, wat problemen kan veroorzaken voor eindgebruikers.</translation> <translation id="9007632512838819703">Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. De spellingcontrole voor talen wordt verplicht uitgezet. Niet-herkende talen in de lijst worden genegeerd.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 335eafa..3a7c4fd 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -108,6 +108,11 @@ Se você definir a política, os usuários não poderão mudá-la.</translation> <translation id="1123650965531933634">Nega a permissão para posicionamento de janelas em todos os sites por padrão</translation> +<translation id="112496019059412872">Controla se o recurso "Lembrar senha" está ativado na caixa de diálogo de autenticação do Kerberos. As senhas são armazenadas de maneira criptografada no disco. Elas só podem ser acessadas pelo daemon do sistema Kerberos e durante uma sessão do usuário. + + Se esta política for ativada ou não estiver definida, o usuário vai poder decidir se as senhas do Kerberos serão memorizadas para que ele não precise digitá-las novamente. Os tíquetes do Kerberos serão buscados automaticamente, a não ser que uma autenticação extra seja necessária (autenticação de dois fatores). + + Se esta política for desativada, as senhas nunca vão ser lembradas e todas as senhas armazenadas anteriormente serão removidas. O usuário vai precisar inserir a senha sempre que tiver que fazer autenticação no sistema Kerberos. Dependendo das configurações do servidor, isso vai acontecer no mínimo a cada oito horas, mas é possível definir até intervalos de meses.</translation> <translation id="1133622335785078255">Permitir que usuários criem e usem perfis secundários e usem o modo visitante no navegador <ph name="LACROS_NAME" /></translation> <translation id="1133814529606590009">Se a política for definida como "Ativada", a coleta de dados anônimos inseridos no URL (que envia os URLs das páginas acessadas pelo usuário ao Google para melhorar a pesquisa e navegação) ficará sempre ativa. @@ -4945,6 +4950,12 @@ Se a política for definida como "Desativada", a otimização da WPAD será desativada e o <ph name="PRODUCT_NAME" /> precisará esperar mais por servidores de WPAD baseados em DNS. Em qualquer um dos casos, não será possível mudar a configuração de otimização da WPAD.</translation> +<translation id="6365249741643189510">Esta política concede ao Projector permissão para criar, transcrever e fazer upload de gravações de tela para o Drive para usuários corporativos. + Esta política não afeta usuários do Family Link. + Esta política não afeta a política <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> para usuários do Family Link. + + Se ela não for definida, o Projector vai ser ativado. + Se ela for desativada, o Projector vai ser desativado.</translation> <translation id="6366574325767783825">Se a política for definida como verdadeira ou não for definida, o <ph name="PRODUCT_NAME" /> aceitará conteúdos da Web exibidos como Signed HTTP Exchanges. Se ela for definida como falsa, conteúdos Signed HTTP Exchanges não serão carregados.</translation> @@ -5071,6 +5082,7 @@ <translation id="6518102411616460786">Esperar que o canal conclua o downgrade de canal</translation> <translation id="6520802717075138474">Importar mecanismos de pesquisa do navegador padrão na primeira execução</translation> <translation id="6521971538031711337">Impedir que o usuário gerenciado configure o nome do host do dispositivo</translation> +<translation id="652593254122955308">Tempo limite até o perfil inativo ser fechado</translation> <translation id="6532026122543921610">A menos que a política <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> desative a detecção automática de fuso horário, a definição da política especificará o método de detecção automática, que não poderá ser modificado pelos usuários. Se a política for definida como: @@ -7253,6 +7265,13 @@ Se a política não for definida, será usada a configuração padrão para o sandbox de rede. Ela pode variar dependendo da versão do <ph name="PRODUCT_NAME" />, da execução de testes de campo e da plataforma. Esta política tem como objetivo oferecer às empresas flexibilidade para desativar o sandbox de rede, caso elas usem um software de terceiros que interfira nesse tipo de sandbox.</translation> <translation id="8842208363354615697">Permitir que o HTTPS-Only Mode seja ativado</translation> +<translation id="8850156309475162935">Aciona uma ação quando o computador está inativo. + + Se esta política for definida como um número positivo, esse número vai indicar a quantidade de minutos. Depois da quantidade definida de minutos sem entrada do usuário, <ph name="PRODUCT_NAME" /> todas as janelas do navegador são fechadas e o seletor de perfil aparece. + + Se esta política for menor que 5 ou se não for definida, nada vai acontecer quando o computador estiver inativo. + + A "entrada do usuário" é definida pelas APIs do sistema operacional e inclui itens como mover o mouse ou digitar no teclado.</translation> <translation id="885147810817138322">Exibir recomendações de mídia aos usuários</translation> <translation id="8852579753940989645">Ativar integridade do código renderizador</translation> <translation id="8854571659927427063">Se a política for definida como ativada, os favoritos serão importados do navegador padrão anterior durante a primeira execução. Se a política for definida como desativada ou não for definida, nenhum favorito será importado durante a primeira execução. @@ -7364,6 +7383,13 @@ <translation id="8983537551095611459">Configurar a lista de IDs de extensão isenta do processo de limpeza da sessão de visitante gerenciada restrita</translation> <translation id="8983539044126123594">Ativar o login com mais Contas do Google</translation> <translation id="8992176907758534924">Não permitir que nenhum site exiba imagens</translation> +<translation id="8994954504552592260">Ativar a migração de dispositivos gerenciados por <ph name="MS_AD_NAME" /> no gerenciamento de nuvem. Esta política permite o início remoto de uma migração sem toque de vários dispositivos em uma empresa. O processo de migração vai ser o mais transparente possível para os usuários finais. + + Se a política for ativada e o ID de registro já tiver sido enviado ao DMServer, o sistema vai acionar um Powerwash do dispositivo remoto. + + Se a política for desativada ou não for definida, o Powerwash do dispositivo remoto não vai ser acionado, independente do status de upload do ID de registro. + + Essa verificação ocorre sempre que a tela de login é carregada e é repetida de hora em hora quando o dispositivo permanece na tela de login. Isso evita que a migração seja iniciada no meio de uma sessão do usuário, o que pode causar problemas para usuários finais.</translation> <translation id="9007632512838819703">Esta política está obsoleta. Use <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. Força a desativação da correção ortográfica de idiomas. Idiomas não reconhecidos incluídos na lista serão ignorados.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 9ea20949..ef561eff 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -108,6 +108,11 @@ Если вы настроили это правило, пользователи не смогут изменить его.</translation> <translation id="1123650965531933634">Запретить размещение окон на всех сайтах по умолчанию</translation> +<translation id="112496019059412872">Определяет, включена ли функция "Запомнить пароль" в диалоговом окне аутентификации с помощью Kerberos. Пароли хранятся в зашифрованном виде на диске, и доступ к ним есть только у системного демона Kerberos во время сеанса пользователя. + + Если правило включено или не настроено, пользователи могут сами решать, нужно ли сохранять пароли Kerberos, чтобы их не приходилось вводить повторно. Билеты Kerberos выдаются автоматически. Исключение составляют случаи, когда требуется дополнительная (двухэтапная) аутентификация. + + Если правило отключено, пароли никогда не запоминаются, а уже сохраненные – удаляются. Пользователи должны вводить пароли каждый раз, когда им нужно пройти аутентификацию в системе Kerberos. Периодичность зависит от настроек сервера и составляет обычно от восьми часов до нескольких месяцев.</translation> <translation id="1133622335785078255">Разрешить пользователям создавать дополнительные профили и использовать гостевой режим в браузере <ph name="LACROS_NAME" /></translation> <translation id="1133814529606590009">Если правило включено, всегда выполняется анонимный сбор данных о URL. Эти сведения отправляются в Google для улучшения поиска и просмотра веб-страниц. @@ -4940,6 +4945,12 @@ Если правило отключено, оптимизация WPAD не будет работать. В результате в <ph name="PRODUCT_NAME" /> будет увеличено время ожидания для WPAD-серверов на базе DNS. Пользователи не могут изменить этот параметр независимо от того, настроено правило или нет.</translation> +<translation id="6365249741643189510">Это правило разрешает проектору записывать видео с экрана, расшифровывать и загружать его на Диск в корпоративных аккаунтах. + Правило не влияет на пользователей Family Link + и на правило <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> для них. + + Если правило включено или не настроено, проектор будет работать. + Если правило отключено, проектор не будет работать.</translation> <translation id="6366574325767783825">Если правило не настроено или задано значение True, <ph name="PRODUCT_NAME" /> загружает веб-контент, для показа которого используется технология Signed HTTP Exchange. Если задано значение False, такой контент не загружается.</translation> @@ -5066,6 +5077,7 @@ <translation id="6518102411616460786">Ждать выхода той же стабильной версии</translation> <translation id="6520802717075138474">Импорт сведений о поисковых системах из браузера, используемого по умолчанию, при первом запуске.</translation> <translation id="6521971538031711337">Запретить управляемым пользователям настраивать имя хоста устройства</translation> +<translation id="652593254122955308">Время ожидания при отсутствии активности, после которого закрывается профиль</translation> <translation id="6532026122543921610">Если автоматическое определение часового пояса не отключено правилом <ph name="SYSTEM_TIMEZONE_POLICY_NAME" />, данное правило позволяет настроить способ такого определения (пользователи не смогут изменить выбранный способ). Если установлено значение: @@ -7252,6 +7264,13 @@ Если правило не настроено, для тестовой среды сети будет использоваться конфигурация по умолчанию. Ее параметры будут зависеть от версии <ph name="PRODUCT_NAME" />, используемых экспериментальных функций и платформы. Это правило дает компаниям возможность отключать тестовую среду сети, если ее не позволяет использовать стороннее программное обеспечение.</translation> <translation id="8842208363354615697">Разрешить включать режим "Только HTTPS"</translation> +<translation id="8850156309475162935">Выполнение действия при отсутствии активности на компьютере. + + Если для этого правила указано положительное число, оно означает количество минут, в течение которых ожидаются действия пользователя. В случае отсутствия активности <ph name="PRODUCT_NAME" /> закроет все окна браузера и предложит заново выбрать профиль. + + Если правило не настроено или его значение меньше 5, при отсутствии активности ничего не произойдет. + + Ожидаемые действия зависят от API операционной системы. Например, это может быть перемещение курсора мыши или ввод с клавиатуры.</translation> <translation id="885147810817138322">Показывать персональные рекомендации для пользователя</translation> <translation id="8852579753940989645">Включить Renderer Code Integrity</translation> <translation id="8854571659927427063">Если правило включено, при первом запуске будут импортированы закладки браузера, который ранее был основным. Если правило выключено или не настроено, закладки не импортируются при первом запуске. @@ -7366,6 +7385,13 @@ <translation id="8983537551095611459">Настроить список идентификаторов расширений, для которых не будет выполняться процедура очистки управляемого гостевого сеанса с ограниченным доступом</translation> <translation id="8983539044126123594">Разрешить вход в дополнительные аккаунты Google</translation> <translation id="8992176907758534924">Запретить показ изображений на всех сайтах</translation> +<translation id="8994954504552592260">Разрешение перехода устройств, контролируемых <ph name="MS_AD_NAME" />, под облачное управление. Это правило позволяет удаленно запускать автоматический переход контроля над устройствами внутри компании. Процесс перехода будет максимально прозрачным и понятным для конечных пользователей. + + Если правило включено и идентификатор регистрации уже загружен в DMServer, на устройстве будет удаленно запущена функция Powerwash. + + Если правило не настроено или отключено, Powerwash на удаленном устройстве запускаться не будет независимо от того, загружен идентификатор регистрации или нет. + + Проверка значения правила обязательно выполняется при загрузке экрана входа и повторяется каждый час (если этот экран открыт на устройстве). Она нужна для того, чтобы переход выполнялся только в то время, когда пользователь не работает на устройстве.</translation> <translation id="9007632512838819703">Это правило больше не поддерживается. Используйте вместо него правило <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />. Вы можете указать языки, для которых нужно принудительно отключить проверку правописания. Неизвестные языки будут игнорироваться.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index a7f4679b..ee4aa98d 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -108,6 +108,11 @@ หากคุณตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนไม่ได้</translation> <translation id="1123650965531933634">ปฏิเสธสิทธิ์สำหรับตำแหน่งหน้าต่างในทุกเว็บไซต์โดยค่าเริ่มต้น</translation> +<translation id="112496019059412872">ควบคุมว่าจะเปิดใช้ฟีเจอร์ "จำรหัสผ่าน" ในกล่องโต้ตอบการตรวจสอบสิทธิ์ Kerberos หรือไม่ จะมีการเข้ารหัสและจัดเก็บรหัสผ่านในดิสก์ ซึ่งจะเข้าถึงได้โดย Daemon ของระบบ Kerberos และระหว่างเซสชันของผู้ใช้เท่านั้น + + หากเปิดใช้นโยบายนี้หรือไม่ได้ตั้งค่า ผู้ใช้จะเลือกได้ว่าจะให้ระบบจำรหัสผ่าน Kerberos หรือไม่ เพื่อที่จะไม่ต้องป้อนรหัสผ่านอีกครั้ง ระบบจะดึงข้อมูลตั๋ว Kerberos โดยอัตโนมัติ เว้นแต่จะต้องตรวจสอบสิทธิ์เพิ่มเติม (การตรวจสอบสิทธิ์แบบ 2 ปัจจัย) + + หากปิดใช้นโยบายนี้ ระบบจะไม่จำรหัสผ่านและจะนำรหัสผ่านที่จัดเก็บไว้ก่อนหน้านี้ออกทั้งหมด ผู้ใช้จะต้องป้อนรหัสผ่านทุกครั้งที่จำเป็นต้องตรวจสอบสิทธิ์กับระบบ Kerberos การตรวจสอบสิทธิ์มักจะเกิดขึ้นตั้งแต่ทุกๆ 8 ชั่วโมงไปจนถึงหลายเดือน ขึ้นอยู่กับการตั้งค่าของเซิร์ฟเวอร์</translation> <translation id="1133622335785078255">อนุญาตให้ผู้ใช้สร้างและใช้โปรไฟล์รอง รวมถึงใช้โหมดผู้มาเยือนในเบราว์เซอร์ <ph name="LACROS_NAME" /></translation> <translation id="1133814529606590009">การตั้งค่านโยบายเป็น "เปิดใช้" จะทำให้มีการรวบรวมข้อมูลที่ไม่ระบุตัวบุคคลซึ่งผูกกับ URL อยู่เสมอ ข้อมูลนี้จะส่ง URL ของหน้าเว็บที่ผู้ใช้เข้าชมไปยัง Google เพื่อช่วยให้การค้นหาและการท่องเว็บดีขึ้น @@ -4857,6 +4862,12 @@ การตั้งค่านโยบายเป็น "ปิดใช้" จะปิดการเพิ่มประสิทธิภาพ WPAD ซึ่งทำให้ <ph name="PRODUCT_NAME" /> ต้องรอเซิร์ฟเวอร์ WPAD แบบใช้ DNS เป็นเวลานานขึ้น ไม่ว่าจะมีการตั้งค่านโยบายนี้หรือไม่ ผู้ใช้จะเปลี่ยนการตั้งค่าการเพิ่มประสิทธิภาพ WPAD ไม่ได้</translation> +<translation id="6365249741643189510">นโยบายนี้ให้สิทธิ์โปรเจ็กเตอร์ในการสร้างและถอดเสียงการบันทึกหน้าจอ รวมถึงอัปโหลดไปที่ไดรฟ์สำหรับผู้ใช้ระดับองค์กร + นโยบายนี้ไม่มีผลต่อผู้ใช้ Family Link + นโยบายนี้ไม่มีผลต่อนโยบาย <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> สำหรับผู้ใช้ Family Link + + หากไม่ได้ตั้งค่านโยบายหรือเปิดใช้ไว้ ระบบจะเปิดใช้โปรเจ็กเตอร์ + หากปิดใช้นโยบาย ระบบจะปิดใช้โปรเจ็กเตอร์</translation> <translation id="6366574325767783825">การตั้งค่านโยบายเป็น "จริง" หรือไม่ได้ตั้งค่าหมายความว่า <ph name="PRODUCT_NAME" /> จะยอมรับเนื้อหาเว็บที่แสดงเป็น Signed HTTP Exchange การตั้งค่านโยบายเป็น "เท็จ" จะป้องกันไม่ให้ Signed HTTP Exchange โหลด</translation> @@ -4982,6 +4993,7 @@ <translation id="6518102411616460786">รอให้เวอร์ชันที่เลือกไว้อัปเดตให้เท่ากับเวอร์ชันปัจจุบันในการดาวน์เกรดเวอร์ชัน</translation> <translation id="6520802717075138474">นำเข้าเครื่องมือค้นหาจากเบราว์เซอร์เริ่มต้นในการเรียกใช้งานครั้งแรก</translation> <translation id="6521971538031711337">ป้องกันไม่ให้ผู้ใช้ที่มีการจัดการกำหนดค่าชื่อโฮสต์ของอุปกรณ์</translation> +<translation id="652593254122955308">หมดเวลาจนกว่าจะปิดโปรไฟล์ที่ไม่มีการใช้งาน</translation> <translation id="6532026122543921610">หากนโยบาย <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> ไม่ปิดการตรวจหาเขตเวลาอัตโนมัติ การตั้งค่านโยบายก็จะกำหนดวิธีตรวจหาเขตเวลาอัตโนมัติ ซึ่งผู้ใช้เปลี่ยนแปลงไม่ได้ การตั้งค่านโยบายเป็น @@ -7158,6 +7170,13 @@ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ค่ากำหนดเริ่มต้นของแซนด์บ็อกซ์เครือข่าย ซึ่งอาจแตกต่างกันไปตามรุ่นของ <ph name="PRODUCT_NAME" /> การทดสอบในวงจำกัดที่ทำอยู่ในปัจจุบัน และแพลตฟอร์ม นโยบายนี้มีไว้เพื่อให้องค์กรมีความยืดหยุ่นในการปิดใช้แซนด์บ็อกซ์เครือข่ายหากองค์กรใช้ซอฟต์แวร์ของบุคคลที่สามซึ่งรบกวนแซนด์บ็อกซ์ของบริการเครือข่าย</translation> <translation id="8842208363354615697">อนุญาตให้เปิดใช้โหมด "HTTPS เท่านั้น"</translation> +<translation id="8850156309475162935">เรียกให้ทำงานเมื่อไม่มีการใช้งานคอมพิวเตอร์ + + หากตั้งค่านโยบายนี้เป็นตัวเลขจำนวนบวกก็จะเป็นการแสดงจำนวนนาที หลังผ่านไปหลายนาทีโดยที่ไม่มีการป้อนข้อมูลจากผู้ใช้ <ph name="PRODUCT_NAME" /> จะปิดหน้าต่างเบราว์เซอร์ทั้งหมดและแสดงเครื่องมือเลือกโปรไฟล์ + + หากกำหนดนโยบายนี้ไว้น้อยกว่า 5 หรือไม่ได้ตั้งค่าก็จะไม่เกิดอะไรขึ้นเมื่อไม่มีการใช้งานคอมพิวเตอร์ + + "การป้อนข้อมูลจากผู้ใช้" จะกำหนดโดย Operating System API ซึ่งรวมถึงการดำเนินการต่างๆ อย่างการเลื่อนเมาส์หรือการพิมพ์บนแป้นพิมพ์</translation> <translation id="885147810817138322">แสดงคำแนะนำสื่อให้แก่ผู้ใช้</translation> <translation id="8852579753940989645">เปิดใช้ฟีเจอร์ความสมบูรณ์ของโค้ดในการแสดงผล</translation> <translation id="8854571659927427063">การตั้งค่านโยบายเป็น "เปิดใช้" จะนำเข้าบุ๊กมาร์กจากเบราว์เซอร์เริ่มต้นก่อนหน้าเมื่อเรียกใช้ครั้งแรก การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่า หมายความว่าจะไม่มีการนำเข้าบุ๊กมาร์กเมื่อเรียกใช้ครั้งแรก @@ -7269,6 +7288,13 @@ <translation id="8983537551095611459">กำหนดค่ารายการรหัสส่วนขยายที่ได้รับการยกเว้นจากขั้นตอนการล้างข้อมูลเซสชันผู้เยี่ยมชมที่มีการจัดการแบบจำกัด</translation> <translation id="8983539044126123594">เปิดการลงชื่อเข้าใช้ด้วยบัญชี Google บัญชีอื่นๆ</translation> <translation id="8992176907758534924">ไม่อนุญาตให้ไซต์ใดแสดงภาพ</translation> +<translation id="8994954504552592260">เปิดใช้การย้ายข้อมูลของอุปกรณ์ที่มีการจัดการของ <ph name="MS_AD_NAME" /> ไปยังการจัดการระบบคลาวด์ นโยบายนี้ทำให้เกิดการเริ่มจากระยะไกลสำหรับการย้ายข้อมูลแบบไร้สัมผัสของอุปกรณ์หลายเครื่องในบริษัท นอกจากนี้ การย้ายข้อมูลยังมีความโปร่งใสมากที่สุดเท่าที่จะเป็นไปได้สำหรับผู้ใช้ปลายทาง + + หากเปิดใช้นโยบายนี้และมีการอัปโหลดรหัสการลงทะเบียนไปยัง DMServer แล้ว ระบบจะเรียกให้ฟีเจอร์ Powerwash ของอุปกรณ์ระยะไกลทำงาน + + หากปิดใช้นโยบายนี้หรือไม่ได้ตั้งค่า ระบบจะไม่เรียกให้ฟีเจอร์ Powerwash ของอุปกรณ์ระยะไกลทำงานแยกออกจากสถานะการอัปโหลดรหัสการลงทะเบียน + + ระบบจะเรียกให้ตัวเลือกนี้ทำงานเมื่อมีการโหลดหน้าจอการเข้าสู่ระบบ และจะลองใหม่ทุกชั่วโมง (หากอุปกรณ์อยู่ในหน้าจอการเข้าสู่ระบบต่อไป) การดำเนินการนี้จะป้องกันไม่ให้การย้ายเข้ามูลเริ่มต้นขึ้นระหว่างเซสชันของผู้ใช้ ซึ่งอาจทำให้เกิดปัญหากับผู้ใช้ปลายทาง</translation> <translation id="9007632512838819703">นโยบายนี้เลิกใช้งานไปแล้ว โปรดใช้ <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> แทน บังคับให้ปิดใช้การตรวจตัวสะกดของภาษาต่างๆ ระบบจะไม่สนใจภาษาที่ไม่รู้จักในรายการนั้น
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 82cca1c..48e9c58 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -1704,6 +1704,9 @@ <translation id="274769314493317695"><ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" /> için <ph name="PRINTERS_WHITELIST" /> seçiliyken <ph name="NATIVE_PRINTERS_BULK_WHITELIST_POLICY_NAME" /> politikası ayarlanırsa kullanıcıların hangi yazıcıları kullanabileceği belirlenir. Kullanıcı yalnızca kimlikleri bu politikadaki değerlerle eşleşen yazıcıları kullanabilir. Kimliklerin, <ph name="NATIVE_PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> politikasında belirtilen dosyadaki <ph name="ID_FIELD" /> veya <ph name="GUID_FIELD" /> alanlarına karşılık gelmesi gerekir. Bu politika kullanımdan kaldırıldı, lütfen bunun yerine <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" /> politikasını kullanın.</translation> +<translation id="2751959596774212778">Güvenli olmayan bağlamlarda WebSQL kullanımı M107 itibarıyla varsayılan olarak kapalı olup M110'da tamamen kaldırılacaktır. + Bu politika Yanlış değerine ayarlanır ya da ayarlanmadan bırakılırsa güvenli olmayan bağlamlarda WebSQL kullanımı M106'nın sonuna kadar açık kalıp M107'den itibaren kapatılır. + Bu politika Doğru değerine ayarlanırsa güvenli olmayan bağlamlarda WebSQL kullanımı etkinleştirilir.</translation> <translation id="2752046642026416564">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, yüklü yerel mesajlaşma ana makinelerini kullanıcı düzeyinde kullanabilir. Politika, Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" />, bu ana makineleri yalnızca sistem düzeyinde yüklendiyse kullanabilir.</translation> @@ -5529,6 +5532,7 @@ "U2F" seçilirse entegre edilen ikinci etmen FIDO U2F özelliğine göre davranır. "U2F_EXTENDED" seçilirse entegre edilen ikinci etmen, U2F işlevlerinin yanı sıra bağımsız doğrulama için bazı uzantılar sunar.</translation> +<translation id="6998179760789945134">Chrome flag'i üzerinden etkinleştirilmediği sürece, güvenli olmayan bağlamlarda WebSQL kullanımını devre dışı bırak.</translation> <translation id="6999948519306285655">Bu politika kullanımdan kaldırıldı, lütfen bunun yerine <ph name="PROXY_SETTINGS_POLICY_NAME" /> politikasını kullanın. Politikanın ayarlanması, proxy .pac dosyası için URL belirtmenizi sağlar. Bu politika, yalnızca <ph name="PROXY_SETTINGS_POLICY_NAME" /> politikası belirtilmediğinde ve <ph name="PROXY_MODE_POLICY_NAME" /> politikasıyla <ph name="PROXY_MODE_ENUM_PAC_SCRIPT" /> seçtiğinizde geçerli olur. @@ -7275,6 +7279,7 @@ <translation id="8919100556245407184"><ph name="PRODUCT_OS_NAME" /> sürümü, belirtilen <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> sürümünden düşükse kullanıcı oturumunun otomatik güncelleme süre sonu yayınından kaç gün sonra kapatılacağı</translation> <translation id="8919369436496201075">Cihazın LTS güncellemelerini almasına izin ver</translation> <translation id="8921669704201370845">Yönetilen profil için <ph name="PRODUCT_NAME" /> bulut raporlamasını etkinleştir</translation> +<translation id="8922494933893518624">Güvenli olmayan bağlamlarda WebSQL kullanımının etkinleştirilmesini zorunlu tut.</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.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 50e4c444..ef49195 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -108,6 +108,11 @@ 如果你設定這項政策,使用者將無法變更設定。</translation> <translation id="1123650965531933634">預設拒絕對所有網站授予視窗放置權限</translation> +<translation id="112496019059412872">控管是否在 Kerberos 驗證對話方塊中啟用「記住密碼」功能。密碼會加密儲存在磁碟上,且只能在使用者工作階段中透過 Kerberos 系統常駐程式存取。 + + 如果啟用或不設定這項政策,使用者可以決定系統是否要記住 Kerberos 密碼,這樣日後就不必再輸入。除非使用者需要進行其他驗證 (雙重驗證),否則系統會自動擷取 Kerberos 票證。 + + 如果停用這項政策,系統不會記住任何密碼,並且會將先前儲存的所有密碼移除。每次使用者需要透過 Kerberos 系統進行驗證時,都必須輸入密碼。根據伺服器的設定而定,通常每 8 小時到數個月需要輸入一次密碼。</translation> <translation id="1133622335785078255">允許使用者在 <ph name="LACROS_NAME" /> 瀏覽器中建立及使用次要設定檔,以及使用訪客模式</translation> <translation id="1133814529606590009">如果將這項政策設為啟用,系統會將輸入網址匿名資料收集功能設為一律開啟;該功能會將使用者造訪的網頁網址傳送給 Google,協助改善搜尋與瀏覽服務。 @@ -4841,6 +4846,13 @@ 如果將這項政策設為停用,系統會關閉 WPAD 最佳化功能,導致 <ph name="PRODUCT_NAME" /> 等待 DNS WPAD 伺服器的時間增加。 無論這項政策是否有設定,使用者都無法變更 WPAD 最佳化設定。</translation> +<translation id="6365249741643189510">這項政策會授予 Projector 權限,讓企業版使用者能建立及轉錄螢幕畫面錄製內容,並上傳至雲端硬碟。 + + 這項政策不適用於 Family Link 使用者。 + 這項政策不會影響 Family Link 使用者的 <ph name="PROJECTOR_DOGFOOD_FOR_FAMILY_LINK_ENABLED_POLICY_NAME" /> 政策。 + + 如果啟用這項政策或不設定,系統會啟用 Projector。 + 如果停用這項政策,Projector 也會隨之停用。</translation> <translation id="6366574325767783825">如果將這項政策設為 True 或不設定,<ph name="PRODUCT_NAME" /> 將接受透過 Signed HTTP Exchange 提供的網路內容。 如果將這項政策設為 False,系統將無法載入 Signed HTTP Exchange。</translation> @@ -4965,6 +4977,7 @@ <translation id="6518102411616460786">等待目標版本跟上版本降級</translation> <translation id="6520802717075138474">第一次執行時從預設瀏覽器匯入搜尋引擎</translation> <translation id="6521971538031711337">禁止受管理的使用者設定裝置主機名稱</translation> +<translation id="652593254122955308">逾時直到閒置的設定檔關閉為止</translation> <translation id="6532026122543921610">除非 <ph name="SYSTEM_TIMEZONE_POLICY_NAME" /> 政策停用了自動偵測時區的功能,否則你可以透過這項政策概括設定自動偵測時區的方法,且使用者無法變更這項設定。 這項政策可設定的值: @@ -7119,6 +7132,13 @@ 如果不設定這項政策,系統會使用網路沙箱的預設設定。這可能會因 <ph name="PRODUCT_NAME" /> 版本、目前執行的實測和平台而異。 設置這項政策是為了讓企業能彈性停用網路沙箱,避免第三方軟體干擾網路服務沙箱運作。</translation> <translation id="8842208363354615697">允許啟用僅限 HTTPS 模式</translation> +<translation id="8850156309475162935">在電腦閒置時觸發動作。 + + 如果這項政策設為正數:這個數值代表的是分鐘數。如果使用者在上述時間內沒有輸入內容,<ph name="PRODUCT_NAME" /> 將關閉所有瀏覽器視窗,然後顯示設定檔選擇畫面。 + + 如果這個政策的值小於 5 或不設定:電腦進入閒置狀態後不會觸發任何動作。 + + 「使用者輸入內容」是由 Operating System API 定義,其中包含移動滑鼠或鍵盤輸入等內容。</translation> <translation id="885147810817138322">向使用者顯示媒體推薦內容</translation> <translation id="8852579753940989645">啟用轉譯器程式碼完整性功能</translation> <translation id="8854571659927427063">如果將這項政策設為啟用,瀏覽器會在首次執行時,從先前的預設瀏覽器中匯入書籤。如果將這項政策設為停用或不設定,瀏覽器首次執行時不會匯入任何書籤。 @@ -7231,6 +7251,13 @@ <translation id="8983537551095611459">設定擴充功能 ID 清單,從有限制的受管理訪客工作階段清除程序中排除這些擴充功能</translation> <translation id="8983539044126123594">允許使用其他 Google 帳戶登入</translation> <translation id="8992176907758534924">不允許任何網站顯示圖片</translation> +<translation id="8994954504552592260">允許將 <ph name="MS_AD_NAME" /> 管理的裝置遷移至雲端管理服務。這項政策允許遠端遷移公司中的多部裝置,不用實際接觸即可開始遷移。此外,遷移作業會盡可能提供充足資訊,方便使用者掌握進度。 + + 如果啟用這項政策,且註冊 ID 已上傳至 DMServer,系統會觸發遠端裝置的 Powerwash 功能。 + + 如果停用這項政策設或不設定,無論註冊 ID 的上傳狀態為何,系統都不會觸發遠端裝置的 Powerwash 功能。 + + 每次載入登入畫面時,系統都會觸發這項檢查作業。如果裝置持續停留在登入畫面上,系統會每小時觸發一次。這樣可以避免遷移作業在使用者工作階段期間啟動,進而造成使用者遇到潛在問題。</translation> <translation id="9007632512838819703">這項政策已遭淘汰,請改用 <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" />。 這項政策會強制停用語言拼字檢查功能。系統會忽略該清單中無法辨識的語言。
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc index 2d3bfa0..7fd644e 100644 --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc
@@ -135,6 +135,10 @@ "NtpPhotosModuleSplitSvgOptInArtWork", base::FEATURE_DISABLED_BY_DEFAULT); +// If enabled, Following Feed module will be shown. +const base::Feature kNtpFeedModule{"NtpFeedModule", + base::FEATURE_DISABLED_BY_DEFAULT}; + // If enabled, recipe tasks module will be shown. const base::Feature kNtpRecipeTasksModule{"NtpRecipeTasksModule", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/components/search/ntp_features.h b/components/search/ntp_features.h index 1f06743..04063b1 100644 --- a/components/search/ntp_features.h +++ b/components/search/ntp_features.h
@@ -48,6 +48,7 @@ extern const base::Feature kNtpPhotosModuleCustomizedOptInTitle; extern const base::Feature kNtpPhotosModuleCustomizedOptInArtWork; extern const base::Feature kNtpPhotosModuleSplitSvgOptInArtWork; +extern const base::Feature kNtpFeedModule; extern const base::Feature kNtpOneGoogleBar; extern const base::Feature kNtpRecipeTasksModule; extern const base::Feature kNtpSafeBrowsingModule;
diff --git a/components/segmentation_platform/internal/execution/processing/sql_feature_processor_unittest.cc b/components/segmentation_platform/internal/execution/processing/sql_feature_processor_unittest.cc index 6f07e35..8cfd59aa 100644 --- a/components/segmentation_platform/internal/execution/processing/sql_feature_processor_unittest.cc +++ b/components/segmentation_platform/internal/execution/processing/sql_feature_processor_unittest.cc
@@ -136,7 +136,7 @@ TEST_F(SqlFeatureProcessorTest, SingleSqlFeatureWithBindValues) { // Set up a single empty sql feature. SqlFeatureProcessor::QueryList data; - constexpr char kSqlQuery[] = "some sql query"; + constexpr char kSqlQuery[] = "some sql query with three bind value ? ? ?"; std::vector<float> custom_default_values = {1, 2, 3}; data[0] = CreateSqlFeature( kSqlQuery, @@ -164,23 +164,25 @@ // Set up a single empty sql feature. SqlFeatureProcessor::QueryList data; constexpr char kSqlQuery[] = "some sql query"; + constexpr char kSqlQueryWithBindValue[] = + "some sql query with one bind value ?"; std::vector<float> custom_default_values = {1, 2, 3}; data[0] = CreateSqlFeature( - kSqlQuery, + kSqlQueryWithBindValue, {CreateCustomInput(1, proto::CustomInput::FILL_PREDICTION_TIME, {})}); data[1] = CreateSqlFeature(kSqlQuery, {}); data[2] = CreateSqlFeature( - kSqlQuery, + kSqlQueryWithBindValue, {CreateCustomInput(1, proto::CustomInput::FILL_PREDICTION_TIME, {})}); // Construct the expected processed bind values based on the given data. base::flat_map<SqlFeatureProcessor::FeatureIndex, CustomSqlQuery> processed_queries; processed_queries[0] = - CustomSqlQuery(kSqlQuery, {ProcessedValue(clock_.Now())}); + CustomSqlQuery(kSqlQueryWithBindValue, {ProcessedValue(clock_.Now())}); processed_queries[1] = CustomSqlQuery(kSqlQuery, {}); processed_queries[2] = - CustomSqlQuery(kSqlQuery, {ProcessedValue(clock_.Now())}); + CustomSqlQuery(kSqlQueryWithBindValue, {ProcessedValue(clock_.Now())}); // Construct a result to be returned when the correct processed queries are // sent.
diff --git a/components/segmentation_platform/internal/metadata/metadata_utils.cc b/components/segmentation_platform/internal/metadata/metadata_utils.cc index 1863b27..31c2058 100644 --- a/components/segmentation_platform/internal/metadata/metadata_utils.cc +++ b/components/segmentation_platform/internal/metadata/metadata_utils.cc
@@ -136,6 +136,7 @@ if (feature.sql().empty()) return ValidationResult::kFeatureSqlQueryEmpty; + int total_tensor_length = 0; for (int i = 0; i < feature.bind_values_size(); ++i) { const auto& bind_value = feature.bind_values(i); if (!bind_value.has_value() || @@ -144,6 +145,12 @@ ValidationResult::kValidationSuccess) { return ValidationResult::kFeatureBindValuesInvalid; } + total_tensor_length += bind_value.value().tensor_length(); + } + + if (total_tensor_length != + std::count(feature.sql().begin(), feature.sql().end(), '?')) { + return ValidationResult::kFeatureBindValuesInvalid; } return ValidationResult::kValidationSuccess;
diff --git a/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc b/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc index 336e790..a384b9ff 100644 --- a/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc +++ b/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc
@@ -224,6 +224,34 @@ metadata_utils::ValidateMetadataSqlFeature(sql_feature)); } +TEST_F(MetadataUtilsTest, MetadataSqlFeatureTensorLengthValidation) { + // The number of "?" in the query string should be equal to the total of + // bind_value's tensor_length. + proto::SqlFeature sql_feature; + sql_feature.set_sql("one bind_value ? ? ?"); + + EXPECT_EQ(metadata_utils::ValidationResult::kFeatureBindValuesInvalid, + metadata_utils::ValidateMetadataSqlFeature(sql_feature)); + + // Add a bind_value with tensor length of 1. + auto* bind_value = sql_feature.add_bind_values(); + bind_value->set_param_type(proto::SqlFeature::BindValue::BOOL); + auto* custom_input = bind_value->mutable_value(); + custom_input->set_tensor_length(1); + custom_input->add_default_value(0); + + // Add a bind_value with tensor length of 2. + auto* bind_value2 = sql_feature.add_bind_values(); + bind_value2->set_param_type(proto::SqlFeature::BindValue::BOOL); + auto* custom_input2 = bind_value2->mutable_value(); + custom_input2->set_tensor_length(2); + custom_input2->add_default_value(0); + custom_input2->add_default_value(0); + + EXPECT_EQ(metadata_utils::ValidationResult::kValidationSuccess, + metadata_utils::ValidateMetadataSqlFeature(sql_feature)); +} + TEST_F(MetadataUtilsTest, MetadataCustomInputValidation) { // Empty custom input has tensor length of 0 and result in a valid input // tensor of length 0.
diff --git a/components/segmentation_platform/internal/proto/model_metadata.proto b/components/segmentation_platform/internal/proto/model_metadata.proto index 966fedb..bdf7f42 100644 --- a/components/segmentation_platform/internal/proto/model_metadata.proto +++ b/components/segmentation_platform/internal/proto/model_metadata.proto
@@ -80,9 +80,12 @@ } message CustomInput { - // If the param is directly used as the input tensor field to the model, then - // this specifies the number of columns to fill in the tensor. In this case - // the value should be float. + // This parameter is required. + // 1. If the param is directly used as the input tensor field to the model, + // then this specifies the number of columns to fill in the tensor. In this + // case the value should be float. + // 2. If the param is used as a bind value for sql features, then this + // specifies the number of sql bindings to fill in the sql query. optional int32 tensor_length = 1; // Used to distinguish between different types of custom inputs.
diff --git a/components/strings/components_chromium_strings_te.xtb b/components/strings/components_chromium_strings_te.xtb index b05ca65..ad7d8fe 100644 --- a/components/strings/components_chromium_strings_te.xtb +++ b/components/strings/components_chromium_strings_te.xtb
@@ -14,7 +14,7 @@ <ph name="PROXIES_TITLE" /> > LAN సెట్టింగ్లకు వెళ్లండి - మరియు "మీ LAN కోసం ప్రాక్సీ సర్వర్ను ఉపయోగించండి" తనిఖీ పెట్టె ఎంపికను తీసివేయండి.</translation> + మరియు "మీ LAN కోసం ప్రాక్సీ సర్వర్ను ఉపయోగించండి" చెక్ బాక్స్ ఎంపికను తీసివేయండి.</translation> <translation id="4622039161600275920">Chromium ద్వారా ఈ పేజీ బ్లాక్ చేయబడింది</translation> <translation id="48558539577516920">మీ ఫైర్వాల్ లేదా యాంటీవైరస్ సెట్టింగ్ల్లో నెట్వర్క్ను యాక్సెస్ చేయడానికి Chromiumను అనుమతించండి.</translation>
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index 0ac72b7..3e42122 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Leeslys</translation> <translation id="1264309058268477500">Afwisselend</translation> <translation id="1264974993859112054">Sport</translation> +<translation id="1266469291454105242">Toestelontsluiting</translation> <translation id="1269516672602708785">Skep vinnig 'n nuwe werf in Google Sites</translation> <translation id="1270502636509132238">Oplaaimetode</translation> <translation id="1281476433249504884">Stapelaar 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Afsprake en persoonlike advertensies</translation> <translation id="1753706481035618306">Bladsynommer</translation> <translation id="1755621011177747277">Aanneming</translation> +<translation id="1756026472674246267">Maak skakel in nuwe oortjie oop</translation> <translation id="175656076281618225">Towery</translation> <translation id="1757773103848038814">Enkelspasielettertipe</translation> <translation id="1763864636252898013">Hierdie bediener kon nie bewys dat dit <ph name="DOMAIN" /> is nie; sy sekuriteitsertifikaat word nie deur jou toestel se bedryfstelsel vertrou nie. Dit kan veroorsaak word deur 'n wanopstelling of 'n aanvaller wat jou verbinding onderskep.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Kanselleer betaling</translation> <translation id="2148613324460538318">Voeg kaart by</translation> <translation id="2149968176347646218">Verbinding is nie veilig nie</translation> +<translation id="2153609454945889823">Wil jy Google Play Dienste vir AR installeer?</translation> <translation id="2154054054215849342">Sinkronisering is nie vir jou domein beskikbaar nie</translation> <translation id="2154484045852737596">Wysig kaart</translation> <translation id="2161656808144014275">Teks</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Kopieer weergawestring</translation> <translation id="323107829343500871">Voer die CVC vir <ph name="CREDIT_CARD" /> in</translation> <translation id="3234666976984236645">Bespeur altyd belangrike inhoud op hierdie werf</translation> +<translation id="3238395604961564389">Maak skakel in Incognito-venster oop</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />; druk Tab en dan Enter om die voorkoms van jou blaaier te pasmaak</translation> <translation id="3240791268468473923">Blad vir geen passende eiebewys vir veilige betalingeiebewys is oopgemaak</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />”-skakels word geblokkeer</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Taakbladsye</translation> <translation id="3532844647053365774"><ph name="HOST" /> wil jou mikrofoon gebruik</translation> <translation id="3533328374079021623">Posbus 5</translation> +<translation id="3542768452570884558">Maak skakel in nuwe venster oop</translation> <translation id="3550112004925580947">Gasvryheidsbedryf</translation> <translation id="3552297013052089404">Sans Serif-lettertipe</translation> <translation id="3558573058928565255">Dag</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Kolleges en universiteite</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Sleutel "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Gebruik toestelontsluiting om kaarte vinniger te bevestig</translation> <translation id="4067098466788473230">Studietoelae en -beurse</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">Voeg geldige adres by</translation> <translation id="4072193657607981494">Laai tans beleide</translation> <translation id="4072486802667267160">Kon nie jou betaling verwerk nie. Probeer weer.</translation> +<translation id="4073376909608563327">Kon nie toestelontsluiting gebruik nie</translation> <translation id="4073797364926776829">Bekyk kaart</translation> <translation id="4075732493274867456">Die kliënt en bediener steun nie 'n gemeenskaplike SSL-protokolweergawe of kodesuite nie.</translation> <translation id="4079302484614802869">Instaanbedieneropstelling is gestel om 'n .pac-skrip-URL te gebruik, nie vaste instaanbedieners nie.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Bekyk jou Chrome-geskiedenis</translation> <translation id="484462545196658690">Outo</translation> <translation id="484671803914931257">Kry afslag op <ph name="MERCHANT_NAME" /> en meer</translation> +<translation id="484988093836683706">Gebruik toestelontsluiting</translation> <translation id="4850886885716139402">Bekyk</translation> <translation id="4852429274334674023">Bedryfstelsels</translation> <translation id="485316830061041779">Duits</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Aan</translation> <translation id="5921639886840618607">Stoor kaart in Google-rekening?</translation> <translation id="5922853866070715753">Amper klaar</translation> +<translation id="5923492272538889093">Wil jy toestelontsluiting in plaas van CVC gebruik?</translation> <translation id="5928444777041341328">Huis en tuin</translation> <translation id="5932224571077948991">Werf wys indringerige of misleidende advertensies</translation> <translation id="5937560539988385583">Bladsy is vertaal</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Verander Google-wagwoord</translation> <translation id="6433490469411711332">Wysig kontakinligting</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> het geweier om te koppel.</translation> +<translation id="6433797564277305076">Bevestig jou kaarte vinniger deur van nou af toestelontsluiting te gebruik</translation> <translation id="6440503408713884761">Geïgnoreer</translation> <translation id="6443406338865242315">Watter uitbreidings en inproppe jy geïnstalleer het</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Hierdie kaart kan nie op die oomblik gestoor word nie}other{Hierdie kaarte kan nie op die oomblik gestoor word nie}}</translation> <translation id="7053983685419859001">Blokkeer</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> het geverifieer dat <ph name="ISSUER" /> hierdie webwerf se sertifikaat uitgereik het.</translation> +<translation id="7058774143982824355">CSV-wagwoordontlederdiens</translation> <translation id="7061777300866737982">Huisveiligheid en -sekuriteit</translation> <translation id="7062635574500127092">Blougroen</translation> <translation id="706295145388601875">Voeg adresse in Chrome-instellings by en bestuur hulle</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Klassieke rock en goue oues</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">Jy het op die oomblik kaarte wat net op hierdie toestel gebruik kan word Klik Gaan Voort om kaarte na te gaan.</translation> +<translation id="7698864304447945242">Wil jy Google Play Dienste vir AR opdateer?</translation> <translation id="7699293099605015246">Artikels is nie op die oomblik beskikbaar nie</translation> <translation id="7701040980221191251">Geen</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Gaan voort na <ph name="SITE" /> (onveilig)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Wysig kaart</translation> <translation id="7734285854693414638">Skep vinnig 'n nuwe vorm in Google Vorms</translation> <translation id="773466115871691567">Vertaal altyd bladsye in <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopieer skakeladres</translation> <translation id="7740996059027112821">Standaard</translation> <translation id="77424286611022110">Hierdie werf wys indringerige of misleidende advertensies. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Gevaarlike inhoud is geblokkeer.</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index ef5a404..d4a58a4 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Спіс чытання</translation> <translation id="1264309058268477500">Розныя</translation> <translation id="1264974993859112054">Спорт</translation> +<translation id="1266469291454105242">Разблакіроўка прылады</translation> <translation id="1269516672602708785">Хутка стварыць новы сайт з дапамогай Google Сайтаў</translation> <translation id="1270502636509132238">Спосаб прыняцця</translation> <translation id="1281476433249504884">Укладчык 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Сустрэчы і знаёмствы</translation> <translation id="1753706481035618306">Нумар старонкі</translation> <translation id="1755621011177747277">Усынаўленне/удачарэнне</translation> +<translation id="1756026472674246267">Адкрыць спасылку ў новай укладцы</translation> <translation id="175656076281618225">Ілюзіянізм</translation> <translation id="1757773103848038814">Монашырынны шрыфт</translation> <translation id="1763864636252898013">Серверу не ўдалося даказаць, што гэта <ph name="DOMAIN" />: аперацыйная сістэма прылады не давярае сертыфікату бяспекі гэтага дамена. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Скасаваць плацеж</translation> <translation id="2148613324460538318">Дадаць картку</translation> <translation id="2149968176347646218">Падключэнне не з'яўляецца бяспечным</translation> +<translation id="2153609454945889823">Усталяваць сэрвісы Google Play для AR?</translation> <translation id="2154054054215849342">Для вашага дамена сінхранізацыя недаступная</translation> <translation id="2154484045852737596">Рэдагаваць картку</translation> <translation id="2161656808144014275">Тэкст</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Скапіраваць радок з версіяй</translation> <translation id="323107829343500871">Увядзіце CVC-код карткі <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Заўсёды выяўляць важнае змесціва на гэтым сайце</translation> +<translation id="3238395604961564389">Адкрыць спасылку ў акне ў рэжыме інкогніта</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб наладзіць выгляд браўзера, націсніце Tab, затым Enter</translation> <translation id="3240791268468473923">Быў адкрыты аркуш, які паказваецца пры адсутнасці супадзення ўліковых даных для бяспечных плацяжоў</translation> <translation id="324180406144491771">Спасылкі "<ph name="HOST_NAME" />" заблакіраваны</translation> @@ -944,6 +948,7 @@ <translation id="3531780078352352885">Аркушы задання</translation> <translation id="3532844647053365774"><ph name="HOST" /> запытвае дазвол на выкарыстанне мікрафона</translation> <translation id="3533328374079021623">Паштовая скрынка 5</translation> +<translation id="3542768452570884558">Адкрыць спасылку ў новым акне</translation> <translation id="3550112004925580947">Індустрыя гасціннасці</translation> <translation id="3552297013052089404">Шрыфт без засечак</translation> <translation id="3558573058928565255">Светлы час дня</translation> @@ -1114,11 +1119,13 @@ <translation id="4040350669425716613">Вышэйшыя навучальныя ўстановы</translation> <translation id="4056223980640387499">Сепія</translation> <translation id="4058922952496707368">Ключ "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Выкарыстоўваць разблакіроўку прылады для хутчэйшага пацвярджэння картак</translation> <translation id="4067098466788473230">Гранты і стыпендыі на навучанне</translation> <translation id="4067263367174615723">C1 (канверт)</translation> <translation id="4067947977115446013">Дадайце сапраўдны адрас</translation> <translation id="4072193657607981494">Ідзе загрузка палітык</translation> <translation id="4072486802667267160">Адбылася памылка апрацоўкi вашага заказу. Паўтарыце спробу.</translation> +<translation id="4073376909608563327">Не ўдалося выкарыстаць функцыю разблакіроўкі прылады</translation> <translation id="4073797364926776829">Праглядзець картку</translation> <translation id="4075732493274867456">Кліент і сервер не падтрымліваюць агульную версію пратакола SLL або набор шыфраў.</translation> <translation id="4079302484614802869">Канфігурацыяй проксі зададзена выкарыстоўваць URL-адрас сцэнарыя .pac, а не фіксаваныя проксі-серверы.</translation> @@ -1411,6 +1418,7 @@ <translation id="4840250757394056958">Праглядзець гісторыю Chrome</translation> <translation id="484462545196658690">Аўтаматычна</translation> <translation id="484671803914931257">Атрымайце скідку ад прадаўца "<ph name="MERCHANT_NAME" />" і не толькі</translation> +<translation id="484988093836683706">Выкарыстоўваць функцыю разблакіроўкі прылады</translation> <translation id="4850886885716139402">Праглядзець</translation> <translation id="4852429274334674023">Аперацыйныя сістэмы</translation> <translation id="485316830061041779">Нямецкая</translation> @@ -1798,6 +1806,7 @@ <translation id="5921185718311485855">уключана</translation> <translation id="5921639886840618607">Захаваць картку ва Уліковы запіс Google?</translation> <translation id="5922853866070715753">Амаль гатова</translation> +<translation id="5923492272538889093">Выкарыстоўваць разблакіроўку прылады замест CVC?</translation> <translation id="5928444777041341328">Дом і сад</translation> <translation id="5932224571077948991">Сайт паказвае назойлівую рэкламу або рэкламу, якая ўводзіць у зман</translation> <translation id="5937560539988385583">Старонка перакладзена</translation> @@ -1971,6 +1980,7 @@ <translation id="643051589346665201">Змяніць пароль Google</translation> <translation id="6433490469411711332">Змена кантактных звестак</translation> <translation id="6433595998831338502">Хост <ph name="HOST_NAME" /> адмовіўся ад падключэння.</translation> +<translation id="6433797564277305076">Пацвярджайце карткі хутчэй, выкарыстоўваючы функцыю разблакіроўкі прылады</translation> <translation id="6440503408713884761">Ігнаруецца</translation> <translation id="6443406338865242315">Якія пашырэнні і ўбудовы вы ўсталявалі.</translation> <translation id="6446163441502663861">Kahu (канверт)</translation> @@ -2177,6 +2187,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Гэта картка не можа быць зараз захавана}one{Гэтыя карткі не могуць быць зараз захаваны}few{Гэтыя карткі не могуць быць зараз захаваны}many{Гэтыя карткі не могуць быць зараз захаваны}other{Гэтыя карткі не могуць быць зараз захаваны}}</translation> <translation id="7053983685419859001">Заблакіраваць</translation> <translation id="7058163556978339998">Браўзер <ph name="BROWSER" /> спраўдзіў, што выдаўцом сертыфіката гэтага сайта з'яўляецца <ph name="ISSUER" />.</translation> +<translation id="7058774143982824355">Сэрвіс аналізу пароляў у файлах CSV</translation> <translation id="7061777300866737982">Бяспека і абароненасць дома</translation> <translation id="7062635574500127092">Сіне-зялёны</translation> <translation id="706295145388601875">Дадавайце адрасы і кіруйце імі праз налады Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Класічны рок і старыя хіты</translation> <translation id="7697066736081121494">Prc8 (канверт)</translation> <translation id="769721561045429135">Зараз у вас ёсць карткі, якія могуць выкарыстоўвацца толькі на гэтай прыладзе. Націсніце "Працягнуць", каб праглядзець карткі.</translation> +<translation id="7698864304447945242">Абнавіць сэрвісы Google Play для AR?</translation> <translation id="7699293099605015246">Артыкулы зараз недаступныя</translation> <translation id="7701040980221191251">Няма</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Перайсці на сайт <ph name="SITE" /> (небяспечна)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Рэдагаваць картку</translation> <translation id="7734285854693414638">Хутка стварыць новую форму ў Формах Google</translation> <translation id="773466115871691567">Заўсёды перакладаць старонкі на наступнай мове: <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Скапіраваць адрас спасылкі</translation> <translation id="7740996059027112821">Стандартны</translation> <translation id="77424286611022110">Гэты сайт паказвае назойлівую рэкламу або рэкламу, якая ўводзіць у зман. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Небяспечнае змесціва заблакіравана.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 81b6b3b..80622459 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Списък за четене</translation> <translation id="1264309058268477500">Алтернативна</translation> <translation id="1264974993859112054">Спорт</translation> +<translation id="1266469291454105242">Отключване на устройството</translation> <translation id="1269516672602708785">Бързо създаване на сайт в Google Сайтове</translation> <translation id="1270502636509132238">Начин на вземане</translation> <translation id="1281476433249504884">Стакер 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Запознанства и лични обяви</translation> <translation id="1753706481035618306">Номер на страницата</translation> <translation id="1755621011177747277">Осиновяване</translation> +<translation id="1756026472674246267">Отваряне на връзката в нов раздел</translation> <translation id="175656076281618225">Илюзионно изкуство</translation> <translation id="1757773103848038814">Непропорционален шрифт</translation> <translation id="1763864636252898013">Сървърът не можа да докаже, че е <ph name="DOMAIN" />; операционната система на устройството ви няма доверие на сертификата му за сигурност. Това може да се дължи на неправилно конфигуриране или на прихващане на връзката ви от атакуващ.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Анулиране на плащането</translation> <translation id="2148613324460538318">Добавяне на карта</translation> <translation id="2149968176347646218">Връзката не е защитена</translation> +<translation id="2153609454945889823">Да се инсталират ли услугите за Google Play за AR?</translation> <translation id="2154054054215849342">Синхронизирането не е налице за въведения от вас домейн</translation> <translation id="2154484045852737596">Редактиране на картата</translation> <translation id="2161656808144014275">Текст</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Копиране на низа за версията</translation> <translation id="323107829343500871">Въведете кода за проверка за <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Важното съдържание на този сайт да се открива винаги</translation> +<translation id="3238395604961564389">Отваряне на връзката в прозорец в режим „инкогнито“</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да персонализирате облика на браузъра си</translation> <translation id="3240791268468473923">Листът за несъответстващи идентификационни данни за сигурни плащания е отворен</translation> <translation id="324180406144491771">Връзките от тип <ph name="HOST_NAME" /> са блокирани</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Листове за заданието</translation> <translation id="3532844647053365774"><ph name="HOST" /> иска да използва микрофона ви</translation> <translation id="3533328374079021623">Пощенска кутия 5</translation> +<translation id="3542768452570884558">Отваряне на връзката в нов прозорец</translation> <translation id="3550112004925580947">Туристически отрасъл</translation> <translation id="3552297013052089404">Безсерифен шрифт</translation> <translation id="3558573058928565255">През деня</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Колежи и университети</translation> <translation id="4056223980640387499">Сепия</translation> <translation id="4058922952496707368">Ключ „<ph name="SUBKEY" />“: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Използвайте функцията за отключване на устройството, за да потвърждавате карти по-бързо</translation> <translation id="4067098466788473230">Стипендии и безвъзмездна помощ за обучение</translation> <translation id="4067263367174615723">C1 (плик)</translation> <translation id="4067947977115446013">Добавяне на валиден адрес</translation> <translation id="4072193657607981494">Правилата се зареждат</translation> <translation id="4072486802667267160">При обработването на поръчката ви възникна грешка. Моля, опитайте отново.</translation> +<translation id="4073376909608563327">Отключването на устройството не може да се използва</translation> <translation id="4073797364926776829">Преглед на картата</translation> <translation id="4075732493274867456">Клиентът и сървърът не поддържат обща версия или пакет за шифроване за протокола SSL.</translation> <translation id="4079302484614802869">За конфигурацията на прокси сървъра е зададено да използва URL адрес на скрипт във формат .pac, а не фиксирани прокси сървъри.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Преглед на историята ви в Chrome</translation> <translation id="484462545196658690">Автоматично</translation> <translation id="484671803914931257">Получаване на отстъпки за <ph name="MERCHANT_NAME" /> и др.</translation> +<translation id="484988093836683706">Използване на отключването на устройството</translation> <translation id="4850886885716139402">Изглед</translation> <translation id="4852429274334674023">Операционни системи</translation> <translation id="485316830061041779">немски</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Включено</translation> <translation id="5921639886840618607">Картата да се запази ли в профила в Google?</translation> <translation id="5922853866070715753">Почти готово</translation> +<translation id="5923492272538889093">Искате ли да използвате отключването на устройството вместо код за проверка?</translation> <translation id="5928444777041341328">Дом и градина</translation> <translation id="5932224571077948991">На сайта се показват натрапчиви или подвеждащи реклами</translation> <translation id="5937560539988385583">Страницата е преведена</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Промяна на паролата за Google</translation> <translation id="6433490469411711332">Редактиране на информацията за връзка</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> отказа да установи връзка.</translation> +<translation id="6433797564277305076">Потвърждавайте картите си по-бързо, като от сега нататък използвате функцията за отключване на устройството</translation> <translation id="6440503408713884761">Пренебрегнато</translation> <translation id="6443406338865242315">Кои разширения и приставки сте инсталирали</translation> <translation id="6446163441502663861">Kahu (плик)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Тази карта не може да бъде запазена в момента}other{Тези карти не могат да бъдат запазени в момента}}</translation> <translation id="7053983685419859001">Блокиране</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> потвърди, че сертификатът на този уебсайт е издаден от <ph name="ISSUER" />.</translation> +<translation id="7058774143982824355">Услуга за синтактичен анализ на пароли в CSV файл</translation> <translation id="7061777300866737982">Сигурност и охрана на дома</translation> <translation id="7062635574500127092">синьо-зелено</translation> <translation id="706295145388601875">Добавяне на адреси и управлението им от настройките на Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Класически рок и песни от миналото</translation> <translation id="7697066736081121494">Prc8 (плик)</translation> <translation id="769721561045429135">В момента имате карти, които могат да се използват само на това устройство. Кликнете върху „Напред“, за да ги прегледате.</translation> +<translation id="7698864304447945242">Да се актуализират ли услугите за Google Play за AR?</translation> <translation id="7699293099605015246">В момента няма статии</translation> <translation id="7701040980221191251">Няма</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Продължаване към <ph name="SITE" /> (опасно)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Редактиране на картата</translation> <translation id="7734285854693414638">Бързо създаване на формуляр в Google Формуляри</translation> <translation id="773466115871691567">Страниците на <ph name="SOURCE_LANGUAGE" /> да се превеждат винаги</translation> +<translation id="7736959720849233795">Копиране на адреса на връзката</translation> <translation id="7740996059027112821">Стандартна</translation> <translation id="77424286611022110">На този сайт се показват натрапчиви или подвеждащи реклами. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Блокирахме опасно съдържание.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 358e6c3..db282073 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Leseliste</translation> <translation id="1264309058268477500">Wechselnd</translation> <translation id="1264974993859112054">Sport</translation> +<translation id="1266469291454105242">Geräteentsperrung</translation> <translation id="1269516672602708785">Schnell eine neue Website in Google Sites erstellen</translation> <translation id="1270502636509132238">Abholoption</translation> <translation id="1281476433249504884">Stapelfach 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Dating und Partnervermittlung</translation> <translation id="1753706481035618306">Seitennummer</translation> <translation id="1755621011177747277">Adoption</translation> +<translation id="1756026472674246267">Link in neuem Tab öffnen</translation> <translation id="175656076281618225">Magie</translation> <translation id="1757773103848038814">Dicktengleiche Schrift</translation> <translation id="1763864636252898013">Dieser Server konnte nicht beweisen, dass er <ph name="DOMAIN" /> ist. Sein Sicherheitszertifikat wird vom Betriebssystem deines Geräts als nicht vertrauenswürdig eingestuft. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der deine Verbindung abfängt.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Zahlung abbrechen</translation> <translation id="2148613324460538318">Karte hinzufügen</translation> <translation id="2149968176347646218">Verbindung ist nicht sicher</translation> +<translation id="2153609454945889823">Google Play-Dienste für AR installieren?</translation> <translation id="2154054054215849342">Die Synchronisierung ist für deine Domain nicht verfügbar</translation> <translation id="2154484045852737596">Karte bearbeiten</translation> <translation id="2161656808144014275">Text</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Versionsstring kopieren</translation> <translation id="323107829343500871">CVC für <ph name="CREDIT_CARD" /> eingeben</translation> <translation id="3234666976984236645">Wichtige Inhalte auf dieser Website immer erkennen</translation> +<translation id="3238395604961564389">Link in Inkognitofenster öffnen</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" /> – drücke die Tabulatortaste und dann die Eingabetaste, um das Erscheinungsbild deines Browsers anzupassen</translation> <translation id="3240791268468473923">Sichere Anmeldedaten für Zahlungen – Tabellenblatt für nicht übereinstimmende sichere Anmeldedaten ist geöffnet</translation> <translation id="324180406144491771">Links von „<ph name="HOST_NAME" />“ werden blockiert</translation> @@ -944,6 +948,7 @@ <translation id="3531780078352352885">Auftragsblätter</translation> <translation id="3532844647053365774"><ph name="HOST" /> möchte dein Mikrofon verwenden</translation> <translation id="3533328374079021623">Ablage 5</translation> +<translation id="3542768452570884558">Link in neuem Fenster öffnen</translation> <translation id="3550112004925580947">Gastgewerbe</translation> <translation id="3552297013052089404">Schriftart Sans-Serif</translation> <translation id="3558573058928565255">Tageszeit</translation> @@ -1113,11 +1118,13 @@ <translation id="4040350669425716613">Hochschulen und Universitäten</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Schlüssel "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Geräteentsperrung verwenden, um Karten schneller zu bestätigen</translation> <translation id="4067098466788473230">Stipendien</translation> <translation id="4067263367174615723">C1 (Umschlag)</translation> <translation id="4067947977115446013">Gültige Adresse hinzufügen</translation> <translation id="4072193657607981494">Richtlinien werden geladen</translation> <translation id="4072486802667267160">Bei der Verarbeitung deiner Bestellung ist ein Fehler aufgetreten. Bitte versuche es noch einmal.</translation> +<translation id="4073376909608563327">Geräteentsperrung kann nicht verwendet werden</translation> <translation id="4073797364926776829">Karte ansehen</translation> <translation id="4075732493274867456">Client und Server unterstützen keine gemeinsame SSL-Protokollversion oder Verschlüsselungssammlung.</translation> <translation id="4079302484614802869">Die Proxy-Konfiguration ist auf die Verwendung einer PAC-Skript-URL und nicht die von festen Proxyservern eingestellt.</translation> @@ -1410,6 +1417,7 @@ <translation id="4840250757394056958">Chrome-Verlauf ansehen</translation> <translation id="484462545196658690">Auto</translation> <translation id="484671803914931257">Erhalte Rabatte bei <ph name="MERCHANT_NAME" /> und weiteren Händlern</translation> +<translation id="484988093836683706">Geräteentsperrung verwenden</translation> <translation id="4850886885716139402">Anzeigen</translation> <translation id="4852429274334674023">Betriebssysteme</translation> <translation id="485316830061041779">Deutsch</translation> @@ -1797,6 +1805,7 @@ <translation id="5921185718311485855">An</translation> <translation id="5921639886840618607">Karte im Google-Konto speichern?</translation> <translation id="5922853866070715753">Fast fertig</translation> +<translation id="5923492272538889093">Geräteentsperrung anstelle des CVCs verwenden?</translation> <translation id="5928444777041341328">Haus und Garten</translation> <translation id="5932224571077948991">Website zeigt aufdringliche oder irreführende Werbung an</translation> <translation id="5937560539988385583">Seite übersetzt</translation> @@ -1970,6 +1979,7 @@ <translation id="643051589346665201">Google-Passwort ändern</translation> <translation id="6433490469411711332">Kontaktdaten bearbeiten</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> hat die Verbindung abgelehnt.</translation> +<translation id="6433797564277305076">Mithilfe der Geräteentsperrung kannst du deine Karten ab sofort schneller bestätigen</translation> <translation id="6440503408713884761">Ignoriert</translation> <translation id="6443406338865242315">Welche Erweiterungen und Plug-ins du installiert hast</translation> <translation id="6446163441502663861">Kahu (Umschlag)</translation> @@ -2176,6 +2186,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Diese Karte kann momentan nicht gespeichert werden}other{Diese Karten können momentan nicht gespeichert werden}}</translation> <translation id="7053983685419859001">Blockieren</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> hat verifiziert, dass <ph name="ISSUER" /> das Zertifikat dieser Website ausgestellt hat.</translation> +<translation id="7058774143982824355">CSV-Passwort-Parser-Service</translation> <translation id="7061777300866737982">Sicherheit und Schutz im Privatbereich</translation> <translation id="7062635574500127092">Blaugrün</translation> <translation id="706295145388601875">Adressen in den Chrome-Einstellungen hinzufügen und verwalten</translation> @@ -2440,6 +2451,7 @@ <translation id="7696089921647603491">Classicrock und Oldies</translation> <translation id="7697066736081121494">Prc8 (Umschlag)</translation> <translation id="769721561045429135">Derzeit können bestimmte Karten nur auf diesem Gerät verwendet werden. Klicke auf "Weiter", um dir die Karten anzusehen.</translation> +<translation id="7698864304447945242">Google Play-Dienste für AR aktualisieren?</translation> <translation id="7699293099605015246">Momentan sind keine Artikel verfügbar</translation> <translation id="7701040980221191251">Keine</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Weiter zu <ph name="SITE" /> (unsicher)<ph name="END_LINK" /></translation> @@ -2452,6 +2464,7 @@ <translation id="7723047071702270851">Karte bearbeiten</translation> <translation id="7734285854693414638">Schnell ein neues Formular in Google Formulare erstellen</translation> <translation id="773466115871691567">Seiten auf <ph name="SOURCE_LANGUAGE" /> immer übersetzen</translation> +<translation id="7736959720849233795">Linkadresse kopieren</translation> <translation id="7740996059027112821">Standard</translation> <translation id="77424286611022110">Diese Website zeigt aufdringliche oder irreführende Werbung an. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Gefährliche Inhalte blockiert.</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index f400837..1633728 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Lista de lectura</translation> <translation id="1264309058268477500">Alternativa</translation> <translation id="1264974993859112054">Deportes</translation> +<translation id="1266469291454105242">Desbloqueo del dispositivo</translation> <translation id="1269516672602708785">Crea un sitio nuevo en Google Sites rápidamente</translation> <translation id="1270502636509132238">Método de retiro</translation> <translation id="1281476433249504884">Apilador 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Citas y anuncios personales</translation> <translation id="1753706481035618306">Número de página</translation> <translation id="1755621011177747277">Adopción</translation> +<translation id="1756026472674246267">Abrir vínculo en una pestaña nueva</translation> <translation id="175656076281618225">Magia</translation> <translation id="1757773103848038814">Fuente monoespaciada</translation> <translation id="1763864636252898013">Este servidor no pudo probar que su dominio es <ph name="DOMAIN" />; el sistema operativo del dispositivo no confía en el certificado de seguridad. Es posible que esto se deba a una configuración incorrecta o a que un atacante interceptó la conexión.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Cancelar pago</translation> <translation id="2148613324460538318">Agregar tarjeta</translation> <translation id="2149968176347646218">La conexión no es segura</translation> +<translation id="2153609454945889823">¿Quieres instalar los Servicios de Google Play para RA?</translation> <translation id="2154054054215849342">El servicio de sincronización no está disponible para tu dominio</translation> <translation id="2154484045852737596">Editar tarjeta</translation> <translation id="2161656808144014275">Texto</translation> @@ -833,6 +836,7 @@ <translation id="3229277193950731405">Copiar string de la versión</translation> <translation id="323107829343500871">Ingresar el CVC de la tarjeta <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Siempre detectar contenido importante en este sitio</translation> +<translation id="3238395604961564389">Abrir el vínculo en una ventana de incógnito</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para personalizar el estilo del navegador</translation> <translation id="3240791268468473923">Se abrió la hoja inferior para indicar que las credenciales de pago seguro no coinciden</translation> <translation id="324180406144491771">Los vínculos “<ph name="HOST_NAME" />” están bloqueados</translation> @@ -946,6 +950,7 @@ <translation id="3531780078352352885">Hojas del trabajo</translation> <translation id="3532844647053365774"><ph name="HOST" /> desea usar tu micrófono</translation> <translation id="3533328374079021623">Buzón 5</translation> +<translation id="3542768452570884558">Abrir el vínculo en una ventana nueva</translation> <translation id="3550112004925580947">Industria hotelera</translation> <translation id="3552297013052089404">Fuente Sans Serif</translation> <translation id="3558573058928565255">Hora del día</translation> @@ -1116,11 +1121,13 @@ <translation id="4040350669425716613">Colegios universitarios y universidades</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Clave "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Usa el desbloqueo del dispositivo para confirmar las tarjetas más rápido.</translation> <translation id="4067098466788473230">Subsidios y becas para estudiantes</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">Agregar una dirección válida</translation> <translation id="4072193657607981494">Cargando políticas</translation> <translation id="4072486802667267160">Se produjo un error al procesar tu pedido. Vuelve a intentarlo.</translation> +<translation id="4073376909608563327">No se pudo usar el desbloqueo del dispositivo</translation> <translation id="4073797364926776829">Ver tarjeta</translation> <translation id="4075732493274867456">El cliente y el servidor no admiten un conjunto de cifrado o una versión de protocolo SSL en común.</translation> <translation id="4079302484614802869">El proxy está configurado para usar una URL de script .pac, no servidores proxy fijos.</translation> @@ -1413,6 +1420,7 @@ <translation id="4840250757394056958">Ver tu historial de Chrome</translation> <translation id="484462545196658690">Automático</translation> <translation id="484671803914931257">Obtén descuentos en <ph name="MERCHANT_NAME" /> y más</translation> +<translation id="484988093836683706">Usar el desbloqueo del dispositivo</translation> <translation id="4850886885716139402">Ver</translation> <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="485316830061041779">Alemán</translation> @@ -1800,6 +1808,7 @@ <translation id="5921185718311485855">Sí</translation> <translation id="5921639886840618607">¿Quieres guardar la tarjeta en la Cuenta de Google?</translation> <translation id="5922853866070715753">Ya casi</translation> +<translation id="5923492272538889093">¿Quieres usar el desbloqueo del dispositivo en lugar del CVC?</translation> <translation id="5928444777041341328">Hogar y jardín</translation> <translation id="5932224571077948991">El sitio muestra anuncios intrusivos o engañosos</translation> <translation id="5937560539988385583">Se tradujo la página</translation> @@ -1973,6 +1982,7 @@ <translation id="643051589346665201">Cambiar la contraseña de Google</translation> <translation id="6433490469411711332">Editar la información de contacto</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> rechazó la conexión.</translation> +<translation id="6433797564277305076">A partir de ahora, usa el desbloqueo del dispositivo para confirmar tus tarjetas más rápido.</translation> <translation id="6440503408713884761">Ignorada</translation> <translation id="6443406338865242315">Las extensiones y complementos que instalaste</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2179,6 +2189,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{No se puede guardar esta tarjeta en este momento}other{No se pueden guardar estas tarjetas en este momento}}</translation> <translation id="7053983685419859001">Bloquear</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> verificó que <ph name="ISSUER" /> emitió el certificado de este sitio web.</translation> +<translation id="7058774143982824355">Servicio del analizador de contraseñas CSV</translation> <translation id="7061777300866737982">Seguridad en el hogar</translation> <translation id="7062635574500127092">Verde azulado</translation> <translation id="706295145388601875">Agrega y administra direcciones en la configuración de Chrome</translation> @@ -2436,13 +2447,14 @@ <translation id="7681273392938116652">Deportes de fantasía</translation> <translation id="7682287625158474539">Envío</translation> <translation id="7682451652090915298">Rugby</translation> -<translation id="7687186412095877299">Completa los formularios de pago con la información que tengas guardada</translation> +<translation id="7687186412095877299">Completa los formularios de pago con tus formas de pago guardadas.</translation> <translation id="7687305263118037187">Se agotó el tiempo de espera para reintentar</translation> <translation id="7687451951329798396">¿Qué dicen otras fuentes?</translation> <translation id="7693583928066320343">Orden de páginas recibido</translation> <translation id="7696089921647603491">Rock clásico</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">En este momento, tienes tarjetas que pueden usarse solo en este dispositivo. Haz clic en Continuar para revisar las tarjetas.</translation> +<translation id="7698864304447945242">¿Quieres actualizar los Servicios de Google Play para RA?</translation> <translation id="7699293099605015246">Los artículos no están disponibles en este momento</translation> <translation id="7701040980221191251">Ninguna</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Continuar a <ph name="SITE" /> (no seguro)<ph name="END_LINK" /></translation> @@ -2455,6 +2467,7 @@ <translation id="7723047071702270851">Editar tarjeta</translation> <translation id="7734285854693414638">Crea un formulario nuevo en Formularios de Google rápidamente</translation> <translation id="773466115871691567">Traducir siempre las páginas en <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Copiar la dirección del vínculo</translation> <translation id="7740996059027112821">Estándar</translation> <translation id="77424286611022110">Este sitio muestra anuncios intrusivos o engañosos. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Se bloqueó contenido peligroso.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 9fc3bab..bfde3874 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">فهرست خواندن</translation> <translation id="1264309058268477500">جایگزین</translation> <translation id="1264974993859112054">ورزش</translation> +<translation id="1266469291454105242">باز کردن قفل دستگاه</translation> <translation id="1269516672602708785">ایجاد سریع سایت جدید در Google Sites</translation> <translation id="1270502636509132238">روش تحویل گرفتن</translation> <translation id="1281476433249504884">پشتهساز ۱</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">دوستیابی و شخصیت</translation> <translation id="1753706481035618306">شماره صفحه</translation> <translation id="1755621011177747277">به فرزندی پذیرفتن</translation> +<translation id="1756026472674246267">باز کردن پیوند در برگه جدید</translation> <translation id="175656076281618225">تردستی</translation> <translation id="1757773103848038814">قلم تکفاصله</translation> <translation id="1763864636252898013">این سرور نتوانست اثبات کند که این <ph name="DOMAIN" /> است؛ گواهی امنیتی آن مورداعتماد سیستمعامل دستگاه شما نیست. ممکن است علت این موضوع پیکربندی اشتباه باشد یا مهاجی اتصال شما را قطع کرده است.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">لغو پرداخت</translation> <translation id="2148613324460538318">افزودن کارت</translation> <translation id="2149968176347646218">اتصال امن نیست</translation> +<translation id="2153609454945889823">«خدمات Google Play ویژه واقعیت افزوده» نصب شود؟</translation> <translation id="2154054054215849342">همگامسازی برای دامنه شما در دسترس نیست</translation> <translation id="2154484045852737596">ویرایش کارت</translation> <translation id="2161656808144014275">نوشتار</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">کپی کردن رشته نسخه</translation> <translation id="323107829343500871">CVC کارت <ph name="CREDIT_CARD" /> را وارد کنید</translation> <translation id="3234666976984236645">همیشه محتوای مهم در این سایت شناسایی شود</translation> +<translation id="3238395604961564389">باز کردن پیوند در پنجره ناشناس</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای سفارشی کردن ظاهر مرورگر، کلید «جهش» و سپس «ورود» را فشار دهید</translation> <translation id="3240791268468473923">برگ «اطلاعات کاربری مطابقت ندارد» در روند وارد کردن اطلاعات کاربری پرداخت امن باز شد</translation> <translation id="324180406144491771">پیوندهای «<ph name="HOST_NAME" />» مسدود شده است</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">برگهای کار</translation> <translation id="3532844647053365774"><ph name="HOST" /> میخواهد از میکروفن شما استفاده کند</translation> <translation id="3533328374079021623">صندوق پست ۵</translation> +<translation id="3542768452570884558">باز کردن پیوند در پنجره جدید</translation> <translation id="3550112004925580947">صنعت مهماننوازی</translation> <translation id="3552297013052089404">قلم سنسریف</translation> <translation id="3558573058928565255">ساعت از روز</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">دانشکده و دانشگاه</translation> <translation id="4056223980640387499">سپیا</translation> <translation id="4058922952496707368">کلید "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">استفاده از باز کردن قفل دستگاه برای تأیید سریعتر کارتها</translation> <translation id="4067098466788473230">کمکهزینه و بورس تحصیلی</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">افزودن نشانی معتبر</translation> <translation id="4072193657607981494">درحال بار کردن خطمشیها</translation> <translation id="4072486802667267160">هنگام پردازش سفارش شما خطایی روی داد. لطفاً دوباره امتحان کنید.</translation> +<translation id="4073376909608563327">نمیتوان از باز کردن قفل دستگاه استفاده کرد</translation> <translation id="4073797364926776829">مشاهده کارت</translation> <translation id="4075732493274867456">کلاینت و سرور از مجموعه رمزگذاری یا نسخه پروتکل SSL مشترکی استفاده نمیکنند.</translation> <translation id="4079302484614802869">تنظیمات پروکسی، برای استفاده از آدرس اسکریپت pac. تنظیم شده است و از سرورهای ثابت نمیتواند استفاده کند.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">مشاهده سابقه Chrome</translation> <translation id="484462545196658690">خودکار</translation> <translation id="484671803914931257">دریافت تخفیف از <ph name="MERCHANT_NAME" /> و موارد دیگر</translation> +<translation id="484988093836683706">استفاده از باز کردن قفل دستگاه</translation> <translation id="4850886885716139402">نما</translation> <translation id="4852429274334674023">سیستمعامل</translation> <translation id="485316830061041779">آلمانی</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">روشن</translation> <translation id="5921639886840618607">کارت در حساب Google ذخیره شود؟</translation> <translation id="5922853866070715753">تقريباً تمام است</translation> +<translation id="5923492272538889093">بهجای CVC از باز کردن قفل دستگاه استفاده شود؟</translation> <translation id="5928444777041341328">خانه و باغ</translation> <translation id="5932224571077948991">سایتْ آگهیهای مزاحم یا گمراهکننده نشان میدهد</translation> <translation id="5937560539988385583">صفحه ترجمه شد</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">تغییر گذرواژه Google</translation> <translation id="6433490469411711332">ویرایش اطلاعات تماس</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> از اتصال خودداری کرد.</translation> +<translation id="6433797564277305076">ازاینپس، بااستفاده از باز کردن قفل دستگاه، کارتهایتان را سریعتر بهتأیید برسانید</translation> <translation id="6440503408713884761">نادیده گرفته شد</translation> <translation id="6443406338865242315">افزونهها و افزایههایی که نصب کردهاید</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{درحالحاضر این کارت ذخیره نمیشود}one{درحالحاضر این کارتها ذخیره نمیشوند}other{درحالحاضر این کارتها ذخیره نمیشوند}}</translation> <translation id="7053983685419859001">مسدود کردن</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> تأیید کرده است که صادرکننده گواهینامه این وبسایت <ph name="ISSUER" /> است.</translation> +<translation id="7058774143982824355">سرویس تجزیهکننده گذرواژه CSV</translation> <translation id="7061777300866737982">ایمنی و امنیت خانه</translation> <translation id="7062635574500127092">سبز دودی</translation> <translation id="706295145388601875">افزودن و مدیریت نشانیها در تنظیمات Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">راک کلاسیک و قدیمی</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">درحالحاضر، کارتهایی دارید که فقط در این دستگاه قابل استفادهاند. برای ادامه مرور کارتها، کلیک کنید.</translation> +<translation id="7698864304447945242">«خدمات Google Play ویژه واقعیت افزوده» بهروزرسانی شود؟</translation> <translation id="7699293099605015246">مقالهها درحالحاضر دردسترس نیستند</translation> <translation id="7701040980221191251">هیچکدام</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />ادامه به <ph name="SITE" /> (غیرایمن)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">ویرایش کارت</translation> <translation id="7734285854693414638">ایجاد سریع فرم جدید در «فرمنگار Google»</translation> <translation id="773466115871691567">صفحههای <ph name="SOURCE_LANGUAGE" /> همیشه ترجمه شوند</translation> +<translation id="7736959720849233795">کپی کردن نشانی پیوند</translation> <translation id="7740996059027112821">استاندارد</translation> <translation id="77424286611022110">این سایتْ آگهیهای مزاحم یا گمراهکننده نشان میدهد. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">محتوای خطرناک مسدود شد.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index 0f25709..054d82d 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Liste de lecture</translation> <translation id="1264309058268477500">Autre</translation> <translation id="1264974993859112054">Sports</translation> +<translation id="1266469291454105242">Déverrouillage de l'appareil</translation> <translation id="1269516672602708785">Créez rapidement un site dans Google Sites</translation> <translation id="1270502636509132238">Mode d'enlèvement</translation> <translation id="1281476433249504884">Empileur 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Rencontres</translation> <translation id="1753706481035618306">Numéro de page</translation> <translation id="1755621011177747277">Adoption</translation> +<translation id="1756026472674246267">Ouvrir le lien dans un nouvel onglet</translation> <translation id="175656076281618225">Magie</translation> <translation id="1757773103848038814">Police à chasse fixe</translation> <translation id="1763864636252898013">Impossible de vérifier sur le serveur qu'il s'agit bien du domaine <ph name="DOMAIN" />, car son certificat de sécurité n'est pas considéré comme fiable par le système d'exploitation de votre appareil. Cela peut être dû à une mauvaise configuration ou bien à l'interception de votre connexion par un pirate informatique.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Annuler le paiement</translation> <translation id="2148613324460538318">Ajouter une carte</translation> <translation id="2149968176347646218">La connexion n'est pas sécurisée</translation> +<translation id="2153609454945889823">Installer les Services Google Play pour la RA ?</translation> <translation id="2154054054215849342">La synchronisation n'est pas disponible pour votre domaine</translation> <translation id="2154484045852737596">Modifier la carte</translation> <translation id="2161656808144014275">Texte</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Copier la chaîne de la version</translation> <translation id="323107829343500871">Saisir le code CVC de la carte <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Toujours détecter du contenu important sur ce site</translation> +<translation id="3238395604961564389">Ouvrir le lien dans la fenêtre de navigation privée</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, puis Tabulation, puis Entrée pour personnaliser l'apparence de votre navigateur</translation> <translation id="3240791268468473923">La bottom sheet indiquant qu'aucun identifiant ne correspond pour le paiement sécurisé est ouverte</translation> <translation id="324180406144491771">Les liens de "<ph name="HOST_NAME" />" sont bloqués</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Feuilles de travail</translation> <translation id="3532844647053365774"><ph name="HOST" /> souhaite utiliser votre micro</translation> <translation id="3533328374079021623">Boîte aux lettres 5</translation> +<translation id="3542768452570884558">Ouvrir le lien dans une nouvelle fenêtre</translation> <translation id="3550112004925580947">Industrie de l'accueil</translation> <translation id="3552297013052089404">Police Sans Serif</translation> <translation id="3558573058928565255">Dans la journée</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Écoles et universités</translation> <translation id="4056223980640387499">Sépia</translation> <translation id="4058922952496707368">Clé "<ph name="SUBKEY" />" : <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Utiliser le déverrouillage de l'appareil pour confirmer les cartes plus rapidement</translation> <translation id="4067098466788473230">Bourses d'études</translation> <translation id="4067263367174615723">C1 (enveloppe)</translation> <translation id="4067947977115446013">Ajouter une adresse valide</translation> <translation id="4072193657607981494">Chargement des règles…</translation> <translation id="4072486802667267160">Une erreur s'est produite lors du traitement de votre commande. Veuillez réessayer.</translation> +<translation id="4073376909608563327">Impossible d'utiliser le déverrouillage</translation> <translation id="4073797364926776829">Afficher la carte</translation> <translation id="4075732493274867456">Le client et le serveur ne sont pas compatibles avec une version de protocole ou une méthode de chiffrement SSL commune.</translation> <translation id="4079302484614802869">La configuration du proxy est définie pour utiliser une URL de script .pac, et non pas des serveurs proxy déterminés.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Afficher votre historique Chrome</translation> <translation id="484462545196658690">Auto</translation> <translation id="484671803914931257">Obtenez des remises sur <ph name="MERCHANT_NAME" /> et plus</translation> +<translation id="484988093836683706">Utiliser le déverrouillage de l'appareil</translation> <translation id="4850886885716139402">Afficher</translation> <translation id="4852429274334674023">Systèmes d'exploitation</translation> <translation id="485316830061041779">Allemand</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Activé</translation> <translation id="5921639886840618607">Enregistrer la carte dans votre compte Google ?</translation> <translation id="5922853866070715753">Vous avez presque terminé !</translation> +<translation id="5923492272538889093">Utiliser le déverrouillage de l'appareil au lieu du code CVC ?</translation> <translation id="5928444777041341328">Maison et jardinage</translation> <translation id="5932224571077948991">Le site affiche des annonces intrusives ou trompeuses</translation> <translation id="5937560539988385583">Page traduite</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Changer de mot de passe Google</translation> <translation id="6433490469411711332">Modifier les coordonnées</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> n'autorise pas la connexion.</translation> +<translation id="6433797564277305076">Confirmez vos cartes plus rapidement en utilisant le déverrouillage de l'appareil</translation> <translation id="6440503408713884761">Ignoré</translation> <translation id="6443406338865242315">Les extensions et les plug-ins que vous avez installés</translation> <translation id="6446163441502663861">Kahu (enveloppe)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Impossible d'enregistrer cette carte pour le moment}one{Impossible d'enregistrer cette carte pour le moment}other{Impossible d'enregistrer ces cartes pour le moment}}</translation> <translation id="7053983685419859001">Bloquer</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> a confirmé que le certificat de ce site Web a bien été émis par <ph name="ISSUER" />.</translation> +<translation id="7058774143982824355">Service d'analyse des fichiers CSV de mots de passe</translation> <translation id="7061777300866737982">Sûreté et sécurité domestique</translation> <translation id="7062635574500127092">Turquoise</translation> <translation id="706295145388601875">Gérez les adresses et ajoutez-en dans les paramètres Chrome</translation> @@ -2443,6 +2454,7 @@ <translation id="7696089921647603491">Vieux classiques du rock</translation> <translation id="7697066736081121494">Prc8 (enveloppe)</translation> <translation id="769721561045429135">Vous disposez actuellement de plusieurs cartes qui ne peuvent être utilisées que sur cet appareil. Cliquez sur "Continuer" pour examiner les cartes.</translation> +<translation id="7698864304447945242">Mettre à jour les services Google Play pour la RA ?</translation> <translation id="7699293099605015246">Articles non disponibles pour le moment</translation> <translation id="7701040980221191251">Rien</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Continuer vers le site <ph name="SITE" /> (dangereux)<ph name="END_LINK" /></translation> @@ -2455,6 +2467,7 @@ <translation id="7723047071702270851">Modifier la carte</translation> <translation id="7734285854693414638">Créez rapidement un formulaire dans Google Forms</translation> <translation id="773466115871691567">Toujours traduire les pages en <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Copier l'adresse du lien</translation> <translation id="7740996059027112821">Standard</translation> <translation id="77424286611022110">Ce site affiche des annonces intrusives ou trompeuses. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Contenu dangereux bloqué.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index d302a69..bf221c2 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Lista de lectura</translation> <translation id="1264309058268477500">Alternar</translation> <translation id="1264974993859112054">Deportes</translation> +<translation id="1266469291454105242">Desbloqueo do dispositivo</translation> <translation id="1269516672602708785">Crear rapidamente un sitio novo en Google Sites</translation> <translation id="1270502636509132238">Método de recollida</translation> <translation id="1281476433249504884">Amontoador 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Citas e anuncios persoais</translation> <translation id="1753706481035618306">Número de páxina</translation> <translation id="1755621011177747277">Adopción</translation> +<translation id="1756026472674246267">Abrir ligazón nunha pestana nova</translation> <translation id="175656076281618225">Maxia</translation> <translation id="1757773103848038814">Tipo de letra monoespazado</translation> <translation id="1763864636252898013">Este servidor non puido demostrar que é <ph name="DOMAIN" /> porque o sistema operativo do teu dispositivo non confía no seu certificado de seguranza. É posible que isto se deba a un erro de configuración ou a que un atacante interceptase a túa conexión.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Cancelar pago</translation> <translation id="2148613324460538318">Engadir tarxeta</translation> <translation id="2149968176347646218">A conexión non é segura</translation> +<translation id="2153609454945889823">Queres instalar Servizos de Google Play para realidade aumentada?</translation> <translation id="2154054054215849342">A sincronización non está dispoñible para o teu dominio</translation> <translation id="2154484045852737596">Editar tarxeta</translation> <translation id="2161656808144014275">Texto</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Copiar cadea da versión</translation> <translation id="323107829343500871">Introduce o código CVC da tarxeta <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Detectar sempre contido importante neste sitio</translation> +<translation id="3238395604961564389">Abrir ligazón nunha ventá do modo de incógnito</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Para personalizar o aspecto do navegador, preme Tabulador e, a continuación, Introducir</translation> <translation id="3240791268468473923">A folla da credencial de pagos seguros correspondente ás credenciais non coincidentes está aberta</translation> <translation id="324180406144491771">As ligazóns de “<ph name="HOST_NAME" />” están bloqueadas</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Follas do traballo</translation> <translation id="3532844647053365774">O host <ph name="HOST" /> quere usar o teu micrófono</translation> <translation id="3533328374079021623">Caixa de correo 5</translation> +<translation id="3542768452570884558">Abrir ligazón nunha ventá nova</translation> <translation id="3550112004925580947">Hostalaría</translation> <translation id="3552297013052089404">Tipo de letra sen serifas</translation> <translation id="3558573058928565255">Hora do día</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Facultades e universidades</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Clave "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Utiliza o desbloqueo do dispositivo para confirmar as tarxetas máis rápido</translation> <translation id="4067098466788473230">Bolsas de estudo e prácticas</translation> <translation id="4067263367174615723">C1 (sobre)</translation> <translation id="4067947977115446013">Engade un enderezo válido</translation> <translation id="4072193657607981494">Cargando políticas</translation> <translation id="4072486802667267160">Produciuse un erro ao procesar a túa solicitude. Téntao de novo.</translation> +<translation id="4073376909608563327">Non se puido usar o desbloqueo do dispositivo</translation> <translation id="4073797364926776829">Ver tarxeta</translation> <translation id="4075732493274867456">O cliente e o servidor non admiten unha versión do protocolo SSL ou o paquete de cifraxe comúns.</translation> <translation id="4079302484614802869">A configuración do proxy está establecida para utilizar un URL de script .pac, non servidores proxy fixos.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Ver historial de Chrome</translation> <translation id="484462545196658690">Automático</translation> <translation id="484671803914931257">Obtén un desconto en <ph name="MERCHANT_NAME" /> e noutros comerciantes</translation> +<translation id="484988093836683706">Usar desbloqueo do dispositivo</translation> <translation id="4850886885716139402">Vista</translation> <translation id="4852429274334674023">Sistemas operativos</translation> <translation id="485316830061041779">Alemán</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Activado</translation> <translation id="5921639886840618607">Queres gardar a tarxeta na Conta de Google?</translation> <translation id="5922853866070715753">Case está listo</translation> +<translation id="5923492272538889093">Queres usar o desbloqueo do dispositivo en lugar do CVC?</translation> <translation id="5928444777041341328">Casa e xardín</translation> <translation id="5932224571077948991">O sitio mostra anuncios enganosos ou intrusivos</translation> <translation id="5937560539988385583">Traduciuse a páxina</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Cambiar contrasinal de Google</translation> <translation id="6433490469411711332">Editar información de contacto</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> rexeitou a conexión.</translation> +<translation id="6433797564277305076">A partir de agora, confirma as tarxetas máis rápido co desbloqueo do dispositivo</translation> <translation id="6440503408713884761">Política ignorada</translation> <translation id="6443406338865242315">As extensións e os complementos que teñas instalados</translation> <translation id="6446163441502663861">Kahu (sobre)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Esta tarxeta non se pode gardar neste momento}other{Estas tarxetas non se poden gardar neste momento}}</translation> <translation id="7053983685419859001">Bloquear</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> verificou que <ph name="ISSUER" /> emitiu o certificado deste sitio web.</translation> +<translation id="7058774143982824355">Servizo de análise de ficheiros CSV de contrasinais</translation> <translation id="7061777300866737982">Seguranza doméstica</translation> <translation id="7062635574500127092">Verde azulado</translation> <translation id="706295145388601875">Engade e xestiona enderezos na configuración de Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Clásicos do rock e do pop</translation> <translation id="7697066736081121494">Prc8 (sobre)</translation> <translation id="769721561045429135">Neste momento, tes tarxetas que só se poden utilizar neste dispositivo. Fai clic en Continuar para revisar as tarxetas.</translation> +<translation id="7698864304447945242">Queres actualizar Servizos de Google Play para realidade aumentada?</translation> <translation id="7699293099605015246">Os artigos non están dispoñibles neste momento</translation> <translation id="7701040980221191251">Ningunha</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Ir a <ph name="SITE" /> (non seguro)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Edita a tarxeta</translation> <translation id="7734285854693414638">Crear rapidamente un novo formulario en Formularios de Google</translation> <translation id="773466115871691567">Traducir sempre páxinas en <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Copiar enderezo da ligazón</translation> <translation id="7740996059027112821">Estándar</translation> <translation id="77424286611022110">Este sitio mostra anuncios intrusivos ou enganosos. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Bloqueouse contido perigoso.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index cf4b1996..642854f 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">रीडिंग लिस्ट</translation> <translation id="1264309058268477500">वैकल्पिक ट्रे</translation> <translation id="1264974993859112054">खेल-कूद</translation> +<translation id="1266469291454105242">डिवाइस को अनलॉक करने की सुविधा</translation> <translation id="1269516672602708785">Google Sites में जल्दी से नई साइट बनाएं</translation> <translation id="1270502636509132238">पिकअप का तरीका</translation> <translation id="1281476433249504884">स्टैकर 1</translation> @@ -331,6 +332,7 @@ <translation id="1753068535428855445">डेटिंग और निजी मामलों से जुड़ी सेवाएं</translation> <translation id="1753706481035618306">पृष्ठ संख्या</translation> <translation id="1755621011177747277">गोद लेना</translation> +<translation id="1756026472674246267">लिंक को नए टैब में खोलें</translation> <translation id="175656076281618225">मैजिक</translation> <translation id="1757773103848038814">मोनोस्पेस फ़ॉन्ट</translation> <translation id="1763864636252898013">यह सर्वर यह नहीं प्रमाणित कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाणपत्र आपके डिवाइस के ऑपरेटिंग सिस्टम द्वारा विश्वसनीय नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation> @@ -456,6 +458,7 @@ <translation id="214556005048008348">भुगतान न करें</translation> <translation id="2148613324460538318">कार्ड जोड़ें</translation> <translation id="2149968176347646218">कनेक्शन सुरक्षित नहीं है</translation> +<translation id="2153609454945889823">Google Play Services for AR को इंस्टॉल करें?</translation> <translation id="2154054054215849342">आपके डोमेन के लिए सिंक करने की सुविधा उपलब्ध नहीं है</translation> <translation id="2154484045852737596">कार्ड में बदलाव करें</translation> <translation id="2161656808144014275">लेख संदेश</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">वर्शन स्ट्रिंग को कॉपी करें</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> का CVC डालें.</translation> <translation id="3234666976984236645">इस साइट पर हमेशा महत्वपूर्ण सामग्री का पता लगाएं</translation> +<translation id="3238395604961564389">लिंक को गुप्त विंडो में खोलें</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, अपने ब्राउज़र का लुक पसंद के मुताबिक बनाने के लिए, पहले Tab और फिर Enter दबाएं</translation> <translation id="3240791268468473923">मेल नहीं खाने वाले पेमेंट क्रेडेंशियल की शीट खुली है</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />” के लिंक ब्लॉक किए गए हैं</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">जॉब की शीट</translation> <translation id="3532844647053365774"><ph name="HOST" /> वेबसाइट आपके माइक्रोफ़ोन का इस्तेमाल करना चाहती है</translation> <translation id="3533328374079021623">मेलबॉक्स 5</translation> +<translation id="3542768452570884558">लिंक को नई विंडो में खोलें</translation> <translation id="3550112004925580947">हॉस्पिटैलिटी इंडस्ट्री</translation> <translation id="3552297013052089404">Sans-serif फ़ॉन्ट</translation> <translation id="3558573058928565255">दिन के समय</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">कॉलेज और यूनिवर्सिटी</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">कुंजी "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">कार्ड की पुष्टि जल्दी करने के लिए, डिवाइस को अनलॉक करने की सुविधा का इस्तेमाल करें</translation> <translation id="4067098466788473230">शिक्षा के लिए मिलने वाले अनुदान और स्कॉलरशिप</translation> <translation id="4067263367174615723">सी1 (एन्वेलप)</translation> <translation id="4067947977115446013">मान्य पता जोड़ें</translation> <translation id="4072193657607981494">नीतियांं लोड हो रही हैं</translation> <translation id="4072486802667267160">आपका आदेश संसाधित करते समय गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation> +<translation id="4073376909608563327">डिवाइस को अनलॉक करने की सुविधा का इस्तेमाल नहीं किया जा सका</translation> <translation id="4073797364926776829">कार्ड देखें</translation> <translation id="4075732493274867456">क्लाइंट और सर्वर, सामान्य SSL प्रोटोकॉल वर्शन या सिफ़र सुइट का समर्थन नहीं करते हैं.</translation> <translation id="4079302484614802869">प्रॉक्सी कॉन्फ़िगरेशन को .pac स्क्रिप्ट यूआरएल का उपयोग करने के लिए सेट किया जाता है, फ़िक्स्ड प्रॉक्सी सर्वर के लिए नहीं.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">अपना 'Chrome इतिहास' देखें</translation> <translation id="484462545196658690">ऑटो</translation> <translation id="484671803914931257"><ph name="MERCHANT_NAME" /> और कई अन्य पर छूट पाएं</translation> +<translation id="484988093836683706">डिवाइस को अनलॉक करने की सुविधा का इस्तेमाल करें</translation> <translation id="4850886885716139402">देखें</translation> <translation id="4852429274334674023">ऑपरेटिंग सिस्टम</translation> <translation id="485316830061041779">जर्मन</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">चालू है</translation> <translation id="5921639886840618607">कार्ड को Google खाते में सेव करें?</translation> <translation id="5922853866070715753">करीब-करीब हो गया है</translation> +<translation id="5923492272538889093">सीवीसी के बजाय डिवाइस को अनलॉक करने की सुविधा का इस्तेमाल करें?</translation> <translation id="5928444777041341328">घर और बगीचा</translation> <translation id="5932224571077948991">साइट में तंग करने वाले या गुमराह करने वाले विज्ञापन दिखाई देते हैं</translation> <translation id="5937560539988385583">पेज का अनुवाद हो गया</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Google पासवर्ड बदलें</translation> <translation id="6433490469411711332">संपर्क जानकारी में बदलाव करें</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> ने कनेक्ट करने से मना कर दिया है.</translation> +<translation id="6433797564277305076">अब से, कार्ड को अनलॉक करने की सुविधा का इस्तेमाल करके, अपने कार्ड की पुष्टि जल्दी करें</translation> <translation id="6440503408713884761">अनदेखा किया गया</translation> <translation id="6443406338865242315">आपने कौनसे एक्सटेंशन और प्लग इन इंस्टॉल किए हैं</translation> <translation id="6446163441502663861">काहू (एन्वेलप)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{यह कार्ड इस समय सेव नहीं किया जा सकता}one{ये कार्ड इस समय सेव नहीं किए जा सकते}other{ये कार्ड इस समय सेव नहीं किए जा सकते}}</translation> <translation id="7053983685419859001">ब्लॉक करें</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> ने पुष्टि की है कि <ph name="ISSUER" /> ने इस वेबसाइट को प्रमाणपत्र दिया है.</translation> +<translation id="7058774143982824355">CSV पासवर्ड वाली फ़ाइल के लिए पार्सर सेवा</translation> <translation id="7061777300866737982">घर की सुरक्षा</translation> <translation id="7062635574500127092">हरा-नीला</translation> <translation id="706295145388601875">Chrome की सेटिंग में वेब पते जोड़ें और मैनेज करें</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">पुराना रॉक म्यूज़िक और गाने</translation> <translation id="7697066736081121494">पीआरसी8 (एन्वेलप)</translation> <translation id="769721561045429135">फ़िलहाल आपके पास सिर्फ़ इसी डिवाइस पर इस्तेमाल किए जा सकने वाले कार्ड हैं. कार्ड देखने के लिए जारी रखें पर क्लिक करें.</translation> +<translation id="7698864304447945242">Google Play Services for AR को अपडेट करें?</translation> <translation id="7699293099605015246">फ़िलहाल लेख उपलब्ध नहीं हैं</translation> <translation id="7701040980221191251">कुछ भी नहीं</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" /><ph name="SITE" /> में आगे बढ़ें (असुरक्षित)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">कार्ड में बदलाव करें</translation> <translation id="7734285854693414638">Google Forms में जल्दी से नया फ़ॉर्म बनाएं</translation> <translation id="773466115871691567"><ph name="SOURCE_LANGUAGE" /> भाषा के पेज का हमेशा अनुवाद करें</translation> +<translation id="7736959720849233795">लिंक का पता कॉपी करें</translation> <translation id="7740996059027112821">मानक</translation> <translation id="77424286611022110">इस साइट पर, तंग करने वाले या गुमराह करने वाले विज्ञापन दिखते हैं. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">खतरनाक सामग्री ब्लॉक की गई.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 3623ec8..115b3f4 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Leslisti</translation> <translation id="1264309058268477500">Annað</translation> <translation id="1264974993859112054">Íþróttir</translation> +<translation id="1266469291454105242">Taka tæki úr lás</translation> <translation id="1269516672602708785">Búa til nýtt Site í Google Sites á skjótan hátt</translation> <translation id="1270502636509132238">Afhendingarmáti</translation> <translation id="1281476433249504884">Staflari 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Stefnumót og einkamál</translation> <translation id="1753706481035618306">Síðunúmer</translation> <translation id="1755621011177747277">Ættleiðing</translation> +<translation id="1756026472674246267">Opna tengil í nýjum flipa</translation> <translation id="175656076281618225">Töfrabrögð</translation> <translation id="1757773103848038814">Jafnstafaletur</translation> <translation id="1763864636252898013">Þessi þjónn gat ekki sannað að hann væri <ph name="DOMAIN" />; stýrikerfi tækisins treystir ekki öryggisvottorðinu hans. Þetta kann að orsakast af vanstillingu eða tölvuþrjóti sem komist hefur inn í tenginguna.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Hætta við greiðslu</translation> <translation id="2148613324460538318">Bæta við korti</translation> <translation id="2149968176347646218">Tengingin er ekki örugg</translation> +<translation id="2153609454945889823">Setja upp Google Play þjónustur fyrir AR?</translation> <translation id="2154054054215849342">Samstilling er ekki í boði fyrir lénið þitt</translation> <translation id="2154484045852737596">Breyta korti</translation> <translation id="2161656808144014275">Texti</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Afrita útgáfustreng</translation> <translation id="323107829343500871">Sláðu inn CVC-númerið fyrir <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Greina alltaf mikilvægt efni á þessu vefsvæði</translation> +<translation id="3238395604961564389">Opna tengil í huliðsglugga</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á dálkalykilinn (Tab) og svo Enter til að sérstilla útlit vafrans</translation> <translation id="3240791268468473923">Skilríki öruggrar greiðslu — tilkynningasíða um engin samsvarandi skilríki var opnuð</translation> <translation id="324180406144491771">Lokað er á „<ph name="HOST_NAME" />“ tengla</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Vinnslublöð</translation> <translation id="3532844647053365774"><ph name="HOST" /> vill fá að nota hljóðnemann</translation> <translation id="3533328374079021623">Pósthólf 5</translation> +<translation id="3542768452570884558">Opna tengil í nýjum glugga</translation> <translation id="3550112004925580947">Þjónustuiðnaður</translation> <translation id="3552297013052089404">Sans serif-letur</translation> <translation id="3558573058928565255">Dagur og tími</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Sérskólar og háskólar</translation> <translation id="4056223980640387499">Brúnn blær</translation> <translation id="4058922952496707368">Lykill „<ph name="SUBKEY" />“: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Notaðu „Taka tæki úr lás“ til að staðfesta kort hraðar</translation> <translation id="4067098466788473230">Námsstyrkir</translation> <translation id="4067263367174615723">C1 (umslag)</translation> <translation id="4067947977115446013">Bæta gildu heimilisfangi við</translation> <translation id="4072193657607981494">Hleður reglum</translation> <translation id="4072486802667267160">Villa kom upp þegar verið var að vinna úr pöntuninni þinni. Reyndu aftur.</translation> +<translation id="4073376909608563327">Ekki tókst að nota „Taka tæki úr lás“</translation> <translation id="4073797364926776829">Skoða kort</translation> <translation id="4075732493274867456">Biðlarinn og þjónninn styðja ekki sameiginlega útgáfu SSL-samskiptareglna eða dulkóðunarsafns.</translation> <translation id="4079302484614802869">Proxy-stillingar nota vefslóð á .pac-skriftu en ekki fasta proxy-þjóna.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Skoða Chrome ferilinn þinn</translation> <translation id="484462545196658690">Sjálfvirkt</translation> <translation id="484671803914931257">Fáðu afslátt hjá <ph name="MERCHANT_NAME" /> og fleirum</translation> +<translation id="484988093836683706">Nota „Taka tæki úr lás“</translation> <translation id="4850886885716139402">Yfirlit</translation> <translation id="4852429274334674023">Stýrikerfi</translation> <translation id="485316830061041779">Þýskt</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Kveikt</translation> <translation id="5921639886840618607">Viltu vista kortið á Google reikningnum?</translation> <translation id="5922853866070715753">Næstum búið</translation> +<translation id="5923492272538889093">Nota „Taka tæki úr lás“ í stað CVC-númers?</translation> <translation id="5928444777041341328">Heimili og garðyrkja</translation> <translation id="5932224571077948991">Vefsvæðið sýnir ágengar eða villandi auglýsingar.</translation> <translation id="5937560539988385583">Síða þýdd</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Breyta Google aðgangsorði</translation> <translation id="6433490469411711332">Breyta samskiptaupplýsingum</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> neitaði að koma á tengingu.</translation> +<translation id="6433797564277305076">Staðfestu kortin þín hraðar með því að nota „Taka tæki úr lás“ héðan í frá</translation> <translation id="6440503408713884761">Hunsað</translation> <translation id="6443406338865242315">Hvaða viðbætur þú hefur sett upp</translation> <translation id="6446163441502663861">Kahu (umslag)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Ekki er hægt að vista þetta kort núna}one{Ekki er hægt að vista þessi kort núna}other{Ekki er hægt að vista þessi kort núna}}</translation> <translation id="7053983685419859001">Setja á bannlista</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> staðfesti að <ph name="ISSUER" /> gaf út vottorð þessa vefsvæðis.</translation> +<translation id="7058774143982824355">Þáttunarþjónusta CSV-aðgangsorða</translation> <translation id="7061777300866737982">Heimilisöryggi</translation> <translation id="7062635574500127092">Grænblár</translation> <translation id="706295145388601875">Bættu við og hafðu umsjón með vefslóðum í stillingum Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Sígilt rokk og gullaldartónlist</translation> <translation id="7697066736081121494">Prc8 (umslag)</translation> <translation id="769721561045429135">Eins og er ertu með kort sem aðeins er hægt að nota í þessu tæki Smelltu á „Halda áfram“ til að yfirfara kort.</translation> +<translation id="7698864304447945242">Uppfæra Google Play þjónustur fyrir AR?</translation> <translation id="7699293099605015246">Greinar eru ekki í boði núna</translation> <translation id="7701040980221191251">Ekkert</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Halda áfram á <ph name="SITE" /> (ekki öruggt)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Breyta korti</translation> <translation id="7734285854693414638">Búa til nýtt eyðublað í Google eyðublöðum á skjótan hátt</translation> <translation id="773466115871691567">Þýða alltaf síður á þessu tungumáli: <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Afrita slóð tengils</translation> <translation id="7740996059027112821">Venjulegt</translation> <translation id="77424286611022110">Þetta vefsvæði sýnir ágengar eða villandi auglýsingar. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Lokað á hættulegt efni.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index 85c7c459..819689e 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Elenco di lettura</translation> <translation id="1264309058268477500">Alterno</translation> <translation id="1264974993859112054">Sport</translation> +<translation id="1266469291454105242">Sblocco dispositivo</translation> <translation id="1269516672602708785">Crea rapidamente un nuovo sito in Google Sites</translation> <translation id="1270502636509132238">Metodo di ritiro</translation> <translation id="1281476433249504884">Fascicolatore 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Appuntamenti e annunci personali</translation> <translation id="1753706481035618306">Numero di pagina</translation> <translation id="1755621011177747277">Adozione</translation> +<translation id="1756026472674246267">Apri link in un'altra scheda</translation> <translation id="175656076281618225">Magia</translation> <translation id="1757773103848038814">Carattere monospazio</translation> <translation id="1763864636252898013">Questo server non è riuscito a dimostrare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza non è considerato attendibile dal sistema operativo del dispositivo. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che intercetta la connessione.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Annulla pagamento</translation> <translation id="2148613324460538318">Aggiungi carta</translation> <translation id="2149968176347646218">La connessione non è sicura</translation> +<translation id="2153609454945889823">Installare Google Play Services per AR?</translation> <translation id="2154054054215849342">Il servizio di sincronizzazione non è disponibile per il tuo dominio</translation> <translation id="2154484045852737596">Modifica la carta</translation> <translation id="2161656808144014275">Testo</translation> @@ -829,6 +832,7 @@ <translation id="3229277193950731405">Copia stringa di versione</translation> <translation id="323107829343500871">Inserisci il codice CVC della carta <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Rileva sempre contenuti importanti di questo sito</translation> +<translation id="3238395604961564389">Apri link in finestra di navigazione in incognito</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, premi Tab poi Invio per personalizzare l'aspetto del browser</translation> <translation id="3240791268468473923">Le credenziali per il pagamento sicuro non corrispondono: riquadro inferiore aperto</translation> <translation id="324180406144491771">I link "<ph name="HOST_NAME" />" sono bloccati</translation> @@ -942,6 +946,7 @@ <translation id="3531780078352352885">Fogli di lavoro</translation> <translation id="3532844647053365774"><ph name="HOST" /> vuole usare il microfono</translation> <translation id="3533328374079021623">Mailbox 5</translation> +<translation id="3542768452570884558">Apri link in un'altra finestra</translation> <translation id="3550112004925580947">Settore turistico-alberghiero e dell'hospitality</translation> <translation id="3552297013052089404">Carattere Sans Serif</translation> <translation id="3558573058928565255">Giorno e ora</translation> @@ -1112,11 +1117,13 @@ <translation id="4040350669425716613">Istituti superiori e Università</translation> <translation id="4056223980640387499">Seppia</translation> <translation id="4058922952496707368">Chiave "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Utilizza lo sblocco con il dispositivo per confermare le carte più rapidamente</translation> <translation id="4067098466788473230">Borse di studio</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">Aggiungi un indirizzo valido</translation> <translation id="4072193657607981494">Caricamento criteri in corso…</translation> <translation id="4072486802667267160">Si è verificato un errore durante l'elaborazione dell'ordine. Riprova.</translation> +<translation id="4073376909608563327">Impossibile usare lo sblocco con il dispositivo</translation> <translation id="4073797364926776829">Visualizza carta</translation> <translation id="4075732493274867456">Il client e il server non supportano una suite di crittografia o una versione del protocollo SSL comuni.</translation> <translation id="4079302484614802869">L'impostazione della configurazione proxy prevede l'utilizzo di un URL script .pac, non di server proxy fissi.</translation> @@ -1409,6 +1416,7 @@ <translation id="4840250757394056958">Visualizza la tua cronologia di Chrome</translation> <translation id="484462545196658690">Automatico</translation> <translation id="484671803914931257">Ricevi uno sconto su <ph name="MERCHANT_NAME" /> e altri negozi</translation> +<translation id="484988093836683706">Usa sblocco dispositivo</translation> <translation id="4850886885716139402">Visualizza</translation> <translation id="4852429274334674023">Sistemi operativi</translation> <translation id="485316830061041779">Tedesco</translation> @@ -1796,6 +1804,7 @@ <translation id="5921185718311485855">On</translation> <translation id="5921639886840618607">Vuoi salvare la carta nell'Account Google?</translation> <translation id="5922853866070715753">Hai quasi finito.</translation> +<translation id="5923492272538889093">Vuoi usare lo sblocco con il dispositivo anziché CVC?</translation> <translation id="5928444777041341328">Casa e giardino</translation> <translation id="5932224571077948991">Il sito mostra annunci invasivi o fuorvianti</translation> <translation id="5937560539988385583">Pagina tradotta</translation> @@ -1968,6 +1977,7 @@ <translation id="643051589346665201">Cambia la password Google</translation> <translation id="6433490469411711332">Modifica informazioni di contatto</translation> <translation id="6433595998831338502">Connessione negata da <ph name="HOST_NAME" />.</translation> +<translation id="6433797564277305076">Conferma le tue carte più velocemente utilizzando la funzionalità di sblocco del dispositivo d'ora in poi</translation> <translation id="6440503408713884761">Ignorata</translation> <translation id="6443406338865242315">Le estensioni e i plug-in che hai installato</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2174,6 +2184,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Al momento questa carta non può essere salvata}other{Al momento queste carte non possono essere salvate}}</translation> <translation id="7053983685419859001">Blocca</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> ha verificato che <ph name="ISSUER" />ha rilasciato il certificato di questo sito web.</translation> +<translation id="7058774143982824355">Servizio analizzatore sintattico delle password CSV</translation> <translation id="7061777300866737982">Sicurezza e protezione della casa</translation> <translation id="7062635574500127092">Verde petrolio</translation> <translation id="706295145388601875">Aggiungi e gestisci indirizzi nelle impostazioni di Chrome</translation> @@ -2438,6 +2449,7 @@ <translation id="7696089921647603491">Rock classico e oldies</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">Al momento hai carte che possono essere utilizzate solo su questo dispositivo. Fai clic su Continua per controllare le carte.</translation> +<translation id="7698864304447945242">Vuoi aggiornare Google Play Services per AR?</translation> <translation id="7699293099605015246">Gli articoli non sono al momento disponibili</translation> <translation id="7701040980221191251">Nulla</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Procedi su <ph name="SITE" /> (non sicuro)<ph name="END_LINK" /></translation> @@ -2450,6 +2462,7 @@ <translation id="7723047071702270851">Modifica la carta</translation> <translation id="7734285854693414638">Crea rapidamente un nuovo modulo in Moduli Google</translation> <translation id="773466115871691567">Traduci sempre le pagine in <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Copia indirizzo link</translation> <translation id="7740996059027112821">Standard</translation> <translation id="77424286611022110">Questo sito mostra annunci invasivi o fuorvianti. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Contenuti pericolosi bloccati.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index a74ab00..295358e 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">רשימת קריאה</translation> <translation id="1264309058268477500">חלופי</translation> <translation id="1264974993859112054">ספורט</translation> +<translation id="1266469291454105242">ביטול נעילת המכשיר</translation> <translation id="1269516672602708785">יצירה מהירה של אתר חדש ב-Google Sites</translation> <translation id="1270502636509132238">שיטת איסוף</translation> <translation id="1281476433249504884">מערים 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">שידוכים והכרויות</translation> <translation id="1753706481035618306">מספר דף</translation> <translation id="1755621011177747277">אימוץ</translation> +<translation id="1756026472674246267">פתיחת הקישור בכרטיסייה חדשה</translation> <translation id="175656076281618225">קסם</translation> <translation id="1757773103848038814">גופן Monospace</translation> <translation id="1763864636252898013">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. אישור האבטחה שלו לא נחשב כמהימן על ידי מערכת ההפעלה של המכשיר. ייתכן שהסיבה לכך היא תצורה שגויה או תוקף המיירט את החיבור שלך.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">ביטול תשלום</translation> <translation id="2148613324460538318">הוספת כרטיס</translation> <translation id="2149968176347646218">החיבור אינו מאובטח</translation> +<translation id="2153609454945889823">להתקין את Google Play Services למציאות רבודה?</translation> <translation id="2154054054215849342">סנכרון אינו זמין בדומיין שלך</translation> <translation id="2154484045852737596">עריכת כרטיס</translation> <translation id="2161656808144014275">טקסט</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">העתקת מחרוזת הגרסה</translation> <translation id="323107829343500871">יש להזין את קוד האימות של הכרטיס <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">זהה תמיד תוכן חשוב באתר זה</translation> +<translation id="3238395604961564389">פתיחת הקישור בחלון פרטי</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, מקישים על Tab ואז על Enter כדי להתאים אישית את מראה הדפדפן</translation> <translation id="3240791268468473923">הגיליון 'אין התאמה בין פרטי הכניסה לפרטי הכניסה לתשלום מאובטח' פתוח</translation> <translation id="324180406144491771">קישורים של “<ph name="HOST_NAME" />” חסומים</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">גיליונות עבודה</translation> <translation id="3532844647053365774"><ph name="HOST" /> רוצה להשתמש במיקרופון שלך</translation> <translation id="3533328374079021623">תיבת דואר 5</translation> +<translation id="3542768452570884558">פתיחת הקישור בחלון חדש</translation> <translation id="3550112004925580947">תעשיית מלונאות ואירוח</translation> <translation id="3552297013052089404">גופן Sans-Serif</translation> <translation id="3558573058928565255">שעות היום</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">מכללות ואוניברסיטאות</translation> <translation id="4056223980640387499">חום-ספיה</translation> <translation id="4058922952496707368">מפתח "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">שימוש בביטול נעילת המכשיר כדי לאשר כרטיסים מהר יותר</translation> <translation id="4067098466788473230">מענקים ומלגות לימוד</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">הוספה של כתובת חוקית</translation> <translation id="4072193657607981494">המדיניות נטענת</translation> <translation id="4072486802667267160">התרחשה שגיאה במהלך עיבוד התשלום שלך. יש לנסות שוב.</translation> +<translation id="4073376909608563327">לא ניתן היה להשתמש בביטול הנעילה של המכשיר</translation> <translation id="4073797364926776829">הצגת הכרטיס</translation> <translation id="4075732493274867456">הלקוח והשרת אינם תומכים בגרסה נפוצה של פרוטוקול SSL או בחבילת הצפנה.</translation> <translation id="4079302484614802869">תצורת ה-Proxy מוגדרת להשתמש בכתובת אתר של סקריפט מסוג .Pac ולא בשרתי Proxy קבועים.</translation> @@ -1416,6 +1423,7 @@ <translation id="4840250757394056958">הצגת ההיסטוריה ב-Chrome</translation> <translation id="484462545196658690">אוטומטי</translation> <translation id="484671803914931257">קבלת הנחות על מוצרים של <ph name="MERCHANT_NAME" /> ועוד</translation> +<translation id="484988093836683706">שימוש בביטול נעילת המכשיר</translation> <translation id="4850886885716139402">הצגה</translation> <translation id="4852429274334674023">מערכות הפעלה</translation> <translation id="485316830061041779">גרמנית</translation> @@ -1804,6 +1812,7 @@ <translation id="5921185718311485855">מופעל</translation> <translation id="5921639886840618607">לשמור את הכרטיס בחשבון Google?</translation> <translation id="5922853866070715753">עוד רגע מסיימים</translation> +<translation id="5923492272538889093">להשתמש בביטול נעילת המכשיר במקום בקוד האימות (CVC)?</translation> <translation id="5928444777041341328">לבית ולגינה</translation> <translation id="5932224571077948991">באתר מוצגות מודעות מפריעות או מטעות</translation> <translation id="5937560539988385583">הדף תורגם</translation> @@ -1977,6 +1986,7 @@ <translation id="643051589346665201">שינוי הסיסמה ל-Google</translation> <translation id="6433490469411711332">עריכת הפרטים ליצירת קשר</translation> <translation id="6433595998831338502">לא ניתן היה להתחבר אל <ph name="HOST_NAME" />.</translation> +<translation id="6433797564277305076">כדי לאשר את הכרטיסים שלך מהר יותר, אפשר להשתמש בביטול נעילת המכשיר מעכשיו והלאה</translation> <translation id="6440503408713884761">המערכת מתעלמת מהפריט</translation> <translation id="6443406338865242315">אילו תוספות ויישומי פלאגין התקנת.</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2183,6 +2193,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{אי אפשר לשמור עכשיו את הכרטיס הזה}two{אי אפשר לשמור עכשיו את הכרטיסים האלה}many{אי אפשר לשמור עכשיו את הכרטיסים האלה}other{אי אפשר לשמור עכשיו את הכרטיסים האלה}}</translation> <translation id="7053983685419859001">חסימה</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> אימת ש-<ph name="ISSUER" /> הנפיק את האישור של האתר הזה.</translation> +<translation id="7058774143982824355">שירות לניתוח סיסמאות CSV</translation> <translation id="7061777300866737982">בטיחות ואבטחה בבית</translation> <translation id="7062635574500127092">כחול-ירקרק</translation> <translation id="706295145388601875">ניתן להוסיף ולנהל כתובות בהגדרות Chrome</translation> @@ -2447,6 +2458,7 @@ <translation id="7696089921647603491">רוק קלאסי ואולדיז</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">יש לך כרגע כרטיסים שאפשר להשתמש בהם רק במכשיר הזה. כדי לעיין בכרטיסים יש ללחוץ על 'המשך'.</translation> +<translation id="7698864304447945242">לעדכן את Google Play Services למציאות רבודה?</translation> <translation id="7699293099605015246">לא ניתן להציג כרגע מאמרים</translation> <translation id="7701040980221191251">אין</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />המשך אל <ph name="SITE" /> (לא בטוח)<ph name="END_LINK" /></translation> @@ -2459,6 +2471,7 @@ <translation id="7723047071702270851">עריכת כרטיס</translation> <translation id="7734285854693414638">יצירה מהירה של טופס חדש ב-Google Forms</translation> <translation id="773466115871691567">ברצוני לקבל תרגום תמיד דפים ב<ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">העתקת הכתובת של הקישור</translation> <translation id="7740996059027112821">רגילה</translation> <translation id="77424286611022110">באתר הזה מוצגות מודעות מפריעות או מטעות. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">תוכן מסוכן נחסם.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index b6ab328..f8ff815 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -117,6 +117,7 @@ <translation id="1263231323834454256">បញ្ជីអាន</translation> <translation id="1264309058268477500">ជំនួស</translation> <translation id="1264974993859112054">កីឡា</translation> +<translation id="1266469291454105242">ការដោះសោឧបករណ៍</translation> <translation id="1269516672602708785">បង្កើតគេហទំព័រថ្មីនៅក្នុង Google Sites បានរហ័ស</translation> <translation id="1270502636509132238">មធ្យោបាយទៅយក</translation> <translation id="1281476433249504884">ទម្រគំនរទី 1</translation> @@ -331,6 +332,7 @@ <translation id="1753068535428855445">ការណាត់ជួប និងការផ្សាយពាណិជ្ជកម្មផ្ទាល់ខ្លួន</translation> <translation id="1753706481035618306">លេខទំព័រ</translation> <translation id="1755621011177747277">ការស្នើសុំក្មេងមកចិញ្ចឹម</translation> +<translation id="1756026472674246267">បើកតំណនៅក្នុងផ្ទាំងថ្មី</translation> <translation id="175656076281618225">វេទមន្ត</translation> <translation id="1757773103848038814">ពុម្ពអក្សរ Monospace</translation> <translation id="1763864636252898013">ម៉ាស៊ីនមេនេះមិនអាចបង្ហាញថាវាជា <ph name="DOMAIN" /> ទេ វិញ្ញាបនប័ត្រសុវត្ថិភាពរបស់វា @@ -457,6 +459,7 @@ <translation id="214556005048008348">បោះបង់ការបង់ប្រាក់</translation> <translation id="2148613324460538318">បញ្ចូលបណ្ណ</translation> <translation id="2149968176347646218">ការតភ្ជាប់នេះគ្មានសុវត្ថិភាពទេ</translation> +<translation id="2153609454945889823">ដំឡើងសេវាកម្ម Google Play សម្រាប់ AR ឬ?</translation> <translation id="2154054054215849342">ដែនរបស់អ្នកមិនអាចប្រើសមកាលកម្មបានទេ</translation> <translation id="2154484045852737596">កែសម្រួលកាត</translation> <translation id="2161656808144014275">អត្ថបទ</translation> @@ -835,6 +838,7 @@ <translation id="3229277193950731405">ចម្លងជួរអក្សរកំណែ</translation> <translation id="323107829343500871">បញ្ចូល CVC សម្រាប់ <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">តែងតែចាប់យកមាតិកាសំខាន់ជានិច្ចនៅលើគេហទំព័រនេះ</translation> +<translation id="3238395604961564389">បើកតំណនៅក្នុងផ្ទាំងឯកជន</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, ចុច tab រួចចុច Enter ដើម្បីប្ដូររូបរាងនៃកម្មវិធីរុករកតាមអ៊ីនធឺណិតរបស់អ្នកតាមបំណង</translation> <translation id="3240791268468473923">សន្លឹកព័ត៌មានផ្ទៀងផ្ទាត់ការបង់ប្រាក់មានសុវត្ថិភាព ដែលគ្មានព័ត៌មានផ្ទៀងផ្ទាត់ត្រូវគ្នាត្រូវបានបើក</translation> <translation id="324180406144491771">តំណ “<ph name="HOST_NAME" />” ត្រូវបានទប់ស្កាត់</translation> @@ -948,6 +952,7 @@ <translation id="3531780078352352885">សន្លឹកកិច្ចការ</translation> <translation id="3532844647053365774"><ph name="HOST" /> ចង់ប្រើមីក្រូហ្វូនរបស់អ្នក</translation> <translation id="3533328374079021623">ប្រអប់សំបុត្រទី 5</translation> +<translation id="3542768452570884558">បើកតំណនៅក្នុងផ្ទាំងថ្មី</translation> <translation id="3550112004925580947">ឧស្សាហកម្មផ្នែកបដិសណ្ឋារកិច្ច</translation> <translation id="3552297013052089404">ពុម្ពអក្សរ Sans-serif</translation> <translation id="3558573058928565255">ពេលថ្ងៃ</translation> @@ -1118,11 +1123,13 @@ <translation id="4040350669425716613">មហាវិទ្យាល័យ និងសកលវិទ្យាល័យ</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">សោ "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">ប្រើការដោះសោឧបករណ៍ដើម្បីបញ្ជាក់កាតលឿនជាងមុន</translation> <translation id="4067098466788473230">ជំនួយផ្នែកហិរញ្ញវត្ថុដល់ការសិក្សា និងអាហារូបករណ៍</translation> <translation id="4067263367174615723">C1 (ស្រោមសំបុត្រ)</translation> <translation id="4067947977115446013">បញ្ចូលអាសយដ្ឋានដែលត្រឹមត្រូវ</translation> <translation id="4072193657607981494">កំពុងផ្ទុកគោលការណ៍</translation> <translation id="4072486802667267160">មានបញ្ហាក្នុងការដំណើរការការបញ្ជាទិញរបស់អ្នក។ សូមព្យាយាមម្ដងទៀត។</translation> +<translation id="4073376909608563327">មិនអាចប្រើការដោះសោឧបករណ៍បានទេ</translation> <translation id="4073797364926776829">មើលកាត</translation> <translation id="4075732493274867456">ម៉ាស៊ីនកូន និងម៉ាស៊ីនមេមិនគាំទ្រកំណែប្រូតូកូល SSL ទូទៅ ឬសៃភ័រស៊ូត (cipher suite) ទេ។</translation> <translation id="4079302484614802869">ការតំឡើងប្រូកស៊ីត្រូវបានកំណត់ឲ្យប្រើ URL ស្គ្រីបផេក មិនមែនម៉ាស៊ីនមេប្រូកស៊ីដែលថេរទេ។</translation> @@ -1416,6 +1423,7 @@ <translation id="4840250757394056958">មើលប្រវត្តិ Chrome របស់អ្នក</translation> <translation id="484462545196658690">ស្វ័យប្រវត្តិ</translation> <translation id="484671803914931257">ទទួលបានការបញ្ចុះតម្លៃសម្រាប់ <ph name="MERCHANT_NAME" /> និងច្រើនទៀត</translation> +<translation id="484988093836683706">ប្រើការដោះសោឧបករណ៍</translation> <translation id="4850886885716139402">មើល</translation> <translation id="4852429274334674023">ប្រព័ន្ធប្រតិបត្តិការ</translation> <translation id="485316830061041779">ភាសាអាល្លឺម៉ង់</translation> @@ -1803,6 +1811,7 @@ <translation id="5921185718311485855">បើក</translation> <translation id="5921639886840618607">រក្សាទុកកាតទៅក្នុងគណនី Google ?</translation> <translation id="5922853866070715753">ជិតរួចរាល់ហើយ</translation> +<translation id="5923492272538889093">ប្រើការដោះសោឧបករណ៍ជំនួសឱ្យ CVC ឬ?</translation> <translation id="5928444777041341328">ផ្ទះ និងសួនច្បារ</translation> <translation id="5932224571077948991">គេហទំព័របង្ហាញការផ្សាយពាណិជ្ជកម្មដែលនាំឱ្យយល់ច្រឡំ ឬរំខាន</translation> <translation id="5937560539988385583">បានបកប្រែទំព័រ</translation> @@ -1976,6 +1985,7 @@ <translation id="643051589346665201">ប្ដូរពាក្យសម្ងាត់ Google</translation> <translation id="6433490469411711332">កែសម្រួលព័ត៌មានទំនាក់ទំនង</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> បានបដិសេធក្នុងការតភ្ជាប់</translation> +<translation id="6433797564277305076">បញ្ជាក់កាតរបស់អ្នកកាន់តែលឿនដោយប្រើការដោះសោឧបករណ៍ចាប់ពីពេលនេះតទៅ</translation> <translation id="6440503408713884761">មិនត្រូវបានអើពើ</translation> <translation id="6443406338865242315">ថាតើកម្មវិធីបន្ថែម និងកម្មវិធីជំនួយណាខ្លះដែលអ្នកបានដំឡើង</translation> <translation id="6446163441502663861">Kahu (ស្រោមសំបុត្រ)</translation> @@ -2182,6 +2192,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{មិនអាចរក្សាទុកបណ្ណនេះបានទេនៅពេលនេះ}other{មិនអាចរក្សាទុកបណ្ណទាំងនេះបានទេនៅពេលនេះ}}</translation> <translation id="7053983685419859001">ទប់ស្កាត់</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> បានបញ្ជាក់ថា <ph name="ISSUER" /> បានចេញវិញ្ញាបនបត្ររបស់គេហទំព័រនេះ។</translation> +<translation id="7058774143982824355">សេវាកម្មអំពីកម្មវិធីញែកពាក្យសម្ងាត់ CSV</translation> <translation id="7061777300866737982">សន្តិសុខ និងសុវត្ថិភាពនៅផ្ទះ</translation> <translation id="7062635574500127092">បៃតងចាស់</translation> <translation id="706295145388601875">បញ្ចូល និងគ្រប់គ្រងអាសយដ្ឋាននៅក្នុងការកំណត់ Chrome</translation> @@ -2447,6 +2458,7 @@ <translation id="7696089921647603491">រ៉ុកស៊េរីចាស់ និងអូលឌី</translation> <translation id="7697066736081121494">Prc8 (ស្រោមសំបុត្រ)</translation> <translation id="769721561045429135">ឥឡូវនេះ អ្នកមានបណ្ណដែលអាចប្រើបានតែនៅលើឧបករណ៍នេះប៉ុណ្ណោះ។ សូមចុច "បន្ត" ដើម្បីពិនិត្យមើលបណ្ណ។</translation> +<translation id="7698864304447945242">ដំឡើងកំណែសេវាកម្ម Google Play សម្រាប់ AR ឬ?</translation> <translation id="7699293099605015246">មិនមានអត្ថបទនៅពេលនេះទេ</translation> <translation id="7701040980221191251">គ្មាន</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />បន្តទៅ <ph name="SITE" /> (មិនមានសុវត្ថិភាព)<ph name="END_LINK" /></translation> @@ -2459,6 +2471,7 @@ <translation id="7723047071702270851">កែសម្រួលបណ្ណ</translation> <translation id="7734285854693414638">បង្កើតទម្រង់បែបបទថ្មីនៅក្នុង Google ទម្រង់បែបបទបានរហ័ស</translation> <translation id="773466115871691567">បកប្រែទំព័រជាភាសា <ph name="SOURCE_LANGUAGE" /> ជានិច្ច</translation> +<translation id="7736959720849233795">ចម្លងអាសយដ្ឋានតំណ</translation> <translation id="7740996059027112821">បទដ្ឋាន</translation> <translation id="77424286611022110">គេហទំព័រនេះបង្ហាញការផ្សាយពាណិជ្ជកម្មដែលនាំឱ្យយល់ច្រឡំ ឬរំខាន។ <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">បានទប់ស្កាត់ខ្លឹមសារដែលមានគ្រោះថ្នាក់។</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index ea9630e..507c5557 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Skaitymo sąrašas</translation> <translation id="1264309058268477500">Alternatyvus</translation> <translation id="1264974993859112054">Sportas</translation> +<translation id="1266469291454105242">Įrenginio atrakinimo funkcija</translation> <translation id="1269516672602708785">Greitai sukurkite naują svetainę „Google“ svetainėse</translation> <translation id="1270502636509132238">Paėmimo metodas</translation> <translation id="1281476433249504884">1 dėtuvė</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Pažinčių ir asmeniniai skelbimai</translation> <translation id="1753706481035618306">Puslapio numeris</translation> <translation id="1755621011177747277">Įvaikinimas</translation> +<translation id="1756026472674246267">Atidaryti nuorodą naujame skirtuke</translation> <translation id="175656076281618225">Iliuzionizmas</translation> <translation id="1757773103848038814">Lygiaplotis šriftas</translation> <translation id="1763864636252898013">Šiam serveriui nepavyko patvirtinti, kad tai yra <ph name="DOMAIN" />; jo saugos sertifikatas nėra patikimas įrenginio operacinei sistemai. Taip gali nutikti dėl netinkamos konfigūracijos ar dėl ryšį pertraukusio užgrobėjo.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Atšaukti mokėjimą</translation> <translation id="2148613324460538318">Pridėti kortelę</translation> <translation id="2149968176347646218">Ryšys nėra saugus</translation> +<translation id="2153609454945889823">Diegti „Google Play“ paslaugas, skirtas AR?</translation> <translation id="2154054054215849342">Sinchronizavimo paslauga nepasiekiama jūsų domenui</translation> <translation id="2154484045852737596">Kortelės informacijos redagavimas</translation> <translation id="2161656808144014275">Tekstas</translation> @@ -833,6 +836,7 @@ <translation id="3229277193950731405">Kopijuoti versijos eilutę</translation> <translation id="323107829343500871">Įveskite „<ph name="CREDIT_CARD" />“ kortelės saugos kodą (CVC)</translation> <translation id="3234666976984236645">Visada aptikti svarbų turinį šioje svetainėje</translation> +<translation id="3238395604961564389">Atidaryti nuorodą inkognito lange</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />; paspauskite tabuliavimo klavišą, tada – „Enter“, jei norite tinkinti naršyklės išvaizdą</translation> <translation id="3240791268468473923">Saugaus mokėjimo prisijungimo duomenų lapas, informuojantis, kad atitinkančių prisijungimo duomenų nerasta, atidarytas</translation> <translation id="324180406144491771">„<ph name="HOST_NAME" />“ nuorodos užblokuotos</translation> @@ -946,6 +950,7 @@ <translation id="3531780078352352885">Užduoties lapai</translation> <translation id="3532844647053365774"><ph name="HOST" /> nori naudoti mikrofoną</translation> <translation id="3533328374079021623">5 pašto dėžutė</translation> +<translation id="3542768452570884558">Atidaryti nuorodą naujame lange</translation> <translation id="3550112004925580947">Svetingumo pramonė</translation> <translation id="3552297013052089404">Šriftas be užraitų</translation> <translation id="3558573058928565255">Dienos metas</translation> @@ -1116,11 +1121,13 @@ <translation id="4040350669425716613">Koledžai ir universitetai</translation> <translation id="4056223980640387499">Sepija</translation> <translation id="4058922952496707368">Raktas „<ph name="SUBKEY" />“: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Sparčiau patvirtinkite korteles naudodami įrenginio atrakinimo funkciją</translation> <translation id="4067098466788473230">Studijoms skirtos pašalpos ir stipendijos</translation> <translation id="4067263367174615723">C1 (vokas)</translation> <translation id="4067947977115446013">Tinkamo adreso pridėjimas</translation> <translation id="4072193657607981494">Įkeliama politika</translation> <translation id="4072486802667267160">Apdorojant jūsų užsakymą įvyko klaida. Bandykite dar kartą.</translation> +<translation id="4073376909608563327">Nepavyko naudoti įrenginio atrakinimo funkcijos</translation> <translation id="4073797364926776829">Peržiūrėti kortelę</translation> <translation id="4075732493274867456">Kliento programa ir serveris nepalaiko įprasto SSL protokolo versijos ar šifruotojo programų komplekto.</translation> <translation id="4079302484614802869">Įgaliotojo serverio konfigūracijoje nustatyta naudoti .pac scenarijaus URL, o ne fiksuotus įgaliotuosius serverius.</translation> @@ -1413,6 +1420,7 @@ <translation id="4840250757394056958">Peržiūrėti „Chrome“ istoriją</translation> <translation id="484462545196658690">Automatiškai</translation> <translation id="484671803914931257">Gaukite nuolaidą iš „<ph name="MERCHANT_NAME" />“ ir kt.</translation> +<translation id="484988093836683706">Naudoti įrenginio atrakinimo funkciją</translation> <translation id="4850886885716139402">Žiūrėti</translation> <translation id="4852429274334674023">Operacinės sistemos</translation> <translation id="485316830061041779">Vokiečių</translation> @@ -1800,6 +1808,7 @@ <translation id="5921185718311485855">Įjungta</translation> <translation id="5921639886840618607">Išsaugoti kortelę „Google“ paskyroje?</translation> <translation id="5922853866070715753">Beveik atlikta</translation> +<translation id="5923492272538889093">Naudoti įrenginio atrakinimo funkciją vietoje kortelės saugos kodo (CVC)?</translation> <translation id="5928444777041341328">Namai ir sodas</translation> <translation id="5932224571077948991">Svetainėje rodomi nepageidaujami arba klaidinantys skelbimai</translation> <translation id="5937560539988385583">Puslapis išverstas</translation> @@ -1973,6 +1982,7 @@ <translation id="643051589346665201">Keisti „Google“ slaptažodį</translation> <translation id="6433490469411711332">Kontaktinės informacijos redagavimas</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> atsisakė prisijungti.</translation> +<translation id="6433797564277305076">Nuo šiol patvirtinkite korteles sparčiau naudodami įrenginio atrakinimo funkciją</translation> <translation id="6440503408713884761">Nepaisoma</translation> <translation id="6443406338865242315">Kuriuos plėtinius ir papildinius įdiegėte</translation> <translation id="6446163441502663861">„Kahu“ (vokas)</translation> @@ -2179,6 +2189,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Šiuo metu šios kortelės išsaugoti negalima}one{Šiuo metu šių kortelių išsaugoti negalima}few{Šiuo metu šių kortelių išsaugoti negalima}many{Šiuo metu šių kortelių išsaugoti negalima}other{Šiuo metu šių kortelių išsaugoti negalima}}</translation> <translation id="7053983685419859001">Blokuoti</translation> <translation id="7058163556978339998">„<ph name="BROWSER" />“ patvirtino, kad „<ph name="ISSUER" />“ išdavė šios svetainės sertifikatą.</translation> +<translation id="7058774143982824355">CSV slaptažodžio analizavimo įrankio paslauga</translation> <translation id="7061777300866737982">Namų saugumas ir apsauga</translation> <translation id="7062635574500127092">Žalsvai mėlyna</translation> <translation id="706295145388601875">Pridėkite ir tvarkykite adresus „Chrome“ nustatymuose</translation> @@ -2443,6 +2454,7 @@ <translation id="7696089921647603491">Klasikinis rokas ir „Oldies“</translation> <translation id="7697066736081121494">„Prc8“ (vokas)</translation> <translation id="769721561045429135">Šiuo metu turite kortelių, kurias galima naudoti tik šiuo įrenginiu. Jei norite peržiūrėti korteles, spustelėkite „Tęsti“.</translation> +<translation id="7698864304447945242">Atnaujinti „Google Play“ paslaugas, skirtas AR?</translation> <translation id="7699293099605015246">Straipsniai šiuo metu negalimi</translation> <translation id="7701040980221191251">Nėra</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Eiti į svetainę <ph name="SITE" /> (nesaugu)<ph name="END_LINK" /></translation> @@ -2455,6 +2467,7 @@ <translation id="7723047071702270851">Kortelės redagavimas</translation> <translation id="7734285854693414638">Greitai sukurkite naują formą „Google“ formose</translation> <translation id="773466115871691567">Visada versti puslapius, parašytus <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopijuoti nuorodos adresą</translation> <translation id="7740996059027112821">Standartinis</translation> <translation id="77424286611022110">Šioje svetainėje rodomi nepageidaujami arba klaidinantys skelbimai. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Pavojingas turinys užblokuotas.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index 057bb85..c35cbe12 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Lasīšanas saraksts</translation> <translation id="1264309058268477500">Alternatīva</translation> <translation id="1264974993859112054">Sports</translation> +<translation id="1266469291454105242">Ierīces atbloķēšana</translation> <translation id="1269516672602708785">Ātri izveidot jaunu vietni pakalpojumā Google vietnes</translation> <translation id="1270502636509132238">Saņemšanas veids</translation> <translation id="1281476433249504884">1. izvades vieta</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Randiņi un iepazīšanās sludinājumi</translation> <translation id="1753706481035618306">Lapas numurs</translation> <translation id="1755621011177747277">Adopcija</translation> +<translation id="1756026472674246267">Atvērt saiti jaunā cilnē</translation> <translation id="175656076281618225">Maģija</translation> <translation id="1757773103848038814">Vienplatuma fonts</translation> <translation id="1763864636252898013">Šis serveris nevarēja pierādīt, ka šī ir vietne <ph name="DOMAIN" />; tās drošības sertifikāts netiek uzskatīts par uzticamu jūsu ierīces operētājsistēmā. Iespējams, tas ir nepareizas konfigurācijas dēļ vai arī kāds ir ļaunprātīgi izmantojis jūsu savienojumu.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Atcelt maksājumu</translation> <translation id="2148613324460538318">Pievienot karti</translation> <translation id="2149968176347646218">Savienojums nav drošs</translation> +<translation id="2153609454945889823">Vai instalēt Google Play PR pakalpojumus?</translation> <translation id="2154054054215849342">Sinhronizācija jūsu domēnam nav pieejama.</translation> <translation id="2154484045852737596">Kartes informācijas rediģēšana</translation> <translation id="2161656808144014275">Teksts</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Kopēt versijas virkni</translation> <translation id="323107829343500871">Ievadiet kredītkartes <ph name="CREDIT_CARD" /> CVC</translation> <translation id="3234666976984236645">Vienmēr noteikt nozīmīgu saturu šajā vietnē</translation> +<translation id="3238395604961564389">Atvērt saiti inkognito režīma logā</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai pielāgotu pārlūka izskatu, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation> <translation id="3240791268468473923">Ir atvērta lapa ar akreditācijas datiem, kas neatbilst drošu maksājumu akreditācijas datiem</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />” saites ir bloķētas</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Uzdevuma lapas</translation> <translation id="3532844647053365774">Vietnē <ph name="HOST" /> tiek pieprasīta atļauja lietot jūsu mikrofonu.</translation> <translation id="3533328374079021623">5. pastkaste</translation> +<translation id="3542768452570884558">Atvērt saiti jaunā logā</translation> <translation id="3550112004925580947">Viesmīlības nozare</translation> <translation id="3552297013052089404">Sans Serif fonts</translation> <translation id="3558573058928565255">diena</translation> @@ -1114,11 +1119,13 @@ <translation id="4040350669425716613">Koledžas un universitātes</translation> <translation id="4056223980640387499">Sēpija</translation> <translation id="4058922952496707368">Atslēga <ph name="SUBKEY" />: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Izmantojiet ierīces atbloķēšanu, lai ātrāk apstiprinātu kartes</translation> <translation id="4067098466788473230">Stipendijas mācībām</translation> <translation id="4067263367174615723">C1 (aploksne)</translation> <translation id="4067947977115446013">Derīgas adreses pievienošana</translation> <translation id="4072193657607981494">Notiek politiku ielāde</translation> <translation id="4072486802667267160">Apstrādājot pasūtījumu, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation> +<translation id="4073376909608563327">Nevarēja izmantot ierīces atbloķēšanu</translation> <translation id="4073797364926776829">Skatīt karti</translation> <translation id="4075732493274867456">Klients un serveris neatbalsta bieži lietoto SSL protokola versiju vai šifra komplektu.</translation> <translation id="4079302484614802869">Starpniekserveris ir iestatīts, lai tas lietotu .pac skripta URL, nevis fiksētus starpniekserverus.</translation> @@ -1411,6 +1418,7 @@ <translation id="4840250757394056958">Skatīt Chrome vēsturi</translation> <translation id="484462545196658690">Autom.</translation> <translation id="484671803914931257">Saņemiet atlaides, iepērkoties pie <ph name="MERCHANT_NAME" /> un citiem tirgotājiem</translation> +<translation id="484988093836683706">Izmantot ierīces atbloķēšanu</translation> <translation id="4850886885716139402">Skatīt</translation> <translation id="4852429274334674023">Operētājsistēmas</translation> <translation id="485316830061041779">Vācu valoda</translation> @@ -1798,6 +1806,7 @@ <translation id="5921185718311485855">Iesl.</translation> <translation id="5921639886840618607">Vai saglabāt kartes datus Google kontā?</translation> <translation id="5922853866070715753">Gandrīz pabeigts</translation> +<translation id="5923492272538889093">Vai vēlaties izmantot ierīces atbloķēšanu, nevis CVC?</translation> <translation id="5928444777041341328">Māja un dārzs</translation> <translation id="5932224571077948991">Vietnē tiek rādītas traucējošas vai maldinošas reklāmas</translation> <translation id="5937560539988385583">Lapa pārtulkota</translation> @@ -1971,6 +1980,7 @@ <translation id="643051589346665201">Mainīt Google paroli</translation> <translation id="6433490469411711332">Kontaktinformācijas rediģēšana</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> noraidīja savienojuma izveidi.</translation> +<translation id="6433797564277305076">Turpmāk apstipriniet kartes ātrāk, izmantojot ierīces atbloķēšanu</translation> <translation id="6440503408713884761">Ignorēts</translation> <translation id="6443406338865242315">Kurus paplašinājumus un spraudņus esat instalējis</translation> <translation id="6446163441502663861">Kahu (aploksne)</translation> @@ -2177,6 +2187,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Šo karti pašlaik nevar saglabāt}zero{Pašlaik nevar saglabāt šīs kartes}one{Pašlaik nevar saglabāt šīs kartes}other{Pašlaik nevar saglabāt šīs kartes}}</translation> <translation id="7053983685419859001">Bloķēt</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> apstiprināja, ka <ph name="ISSUER" /> izsniedza šīs vietnes sertifikātu.</translation> +<translation id="7058774143982824355">CSV failā saglabātu paroļu parsētāja pakalpojums</translation> <translation id="7061777300866737982">Mājokļa drošība un aizsardzība</translation> <translation id="7062635574500127092">Zilganzaļa</translation> <translation id="706295145388601875">Chrome iestatījumos pievienojiet un pārvaldiet adreses.</translation> @@ -2441,6 +2452,7 @@ <translation id="7696089921647603491">Klasiskais roks un “vecie gabali”</translation> <translation id="7697066736081121494">Prc8 (aploksne)</translation> <translation id="769721561045429135">Pašlaik dažas kartes varat izmantot tikai šajā ierīcē. Lai pārskatītu kartes, noklikšķiniet uz Turpināt.</translation> +<translation id="7698864304447945242">Vai atjaunināt Google Play PR pakalpojumus?</translation> <translation id="7699293099605015246">Raksti pašlaik nav pieejami</translation> <translation id="7701040980221191251">Nav</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Apmeklēt vietni <ph name="SITE" /> (nav droša)<ph name="END_LINK" /></translation> @@ -2453,6 +2465,7 @@ <translation id="7723047071702270851">Kartes informācijas rediģēšana</translation> <translation id="7734285854693414638">Ātri izveidot jaunu veidlapu pakalpojumā Google veidlapas</translation> <translation id="773466115871691567">Vienmēr tulkot lapas šādā valodā: <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopēt saites adresi</translation> <translation id="7740996059027112821">Standarta</translation> <translation id="77424286611022110">Šajā vietnē tiek rādītas traucējošas vai maldinošas reklāmas. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Bloķēts bīstams saturs</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 58c0e595..969074ba 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">वाचन सूची</translation> <translation id="1264309058268477500">पर्यायी</translation> <translation id="1264974993859112054">क्रीडा</translation> +<translation id="1266469291454105242">डिव्हाइस अनलॉक</translation> <translation id="1269516672602708785">Google Sites मध्ये नवीन साइट झटपट तयार करा</translation> <translation id="1270502636509132238">घेण्याची पद्धत</translation> <translation id="1281476433249504884">स्टॅकर १</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">डेटिंग आणि वैयक्तिक गोष्टी</translation> <translation id="1753706481035618306">पृष्ठ क्रमांक</translation> <translation id="1755621011177747277">दत्तक प्रक्रिया</translation> +<translation id="1756026472674246267">नवीन टॅब मध्ये लिंक उघडा</translation> <translation id="175656076281618225">जादू</translation> <translation id="1757773103848038814">Monospace फॉंट</translation> <translation id="1763864636252898013">हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षितता सर्टिफिकेट तुम्हाला डिव्हाइसच्या ऑपरेटिंग सिस्टमद्वारे विश्वसनीय नाही. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा हल्लेखोराने तुमचे कनेक्शन इंटरसेप्ट केल्यामुळे झाले असू शकते.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">पेमेंट रद्द करा</translation> <translation id="2148613324460538318">कार्ड जोडा</translation> <translation id="2149968176347646218">कनेक्शन सुरक्षित नाही</translation> +<translation id="2153609454945889823">Google Play Services for AR इंस्टॉल करायचे आहे का?</translation> <translation id="2154054054215849342">आपल्या डोमेनसाठी सिंक उपलब्ध नाही</translation> <translation id="2154484045852737596">कार्ड संपादित करा</translation> <translation id="2161656808144014275">मजकूर</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">आवृत्तीची स्ट्रिंग कॉपी करा</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> साठी CVC प्रविष्ट करा</translation> <translation id="3234666976984236645">नेहमी या साइटवर महत्त्वाचा आशय शोधा</translation> +<translation id="3238395604961564389">गुप्त विंडो मध्ये लिंक उघडा</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, तुमच्या ब्राउझरचे रूप कस्टमाइझ करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation> <translation id="3240791268468473923">सुरक्षित पेमेंट क्रेडेंशियल याची जुळणारे कोणतेही क्रेडेंशियल नाही ही शीट उघडली आहे</translation> <translation id="324180406144491771">“<ph name="HOST_NAME" />” लिंक ब्लॉक केल्या आहेत</translation> @@ -944,6 +948,7 @@ <translation id="3531780078352352885">जॉब पत्रके</translation> <translation id="3532844647053365774"><ph name="HOST" /> ला तुमचा मायक्रोफोन वापरायचा आहे</translation> <translation id="3533328374079021623">मेलबॉक्स ५</translation> +<translation id="3542768452570884558">नवीन विंडो मध्ये लिंक उघडा</translation> <translation id="3550112004925580947">आदरातिथ्याशी संबंधित उद्योग</translation> <translation id="3552297013052089404">Sans-Serif फॉंट</translation> <translation id="3558573058928565255">दिवसापर्यंत</translation> @@ -1114,11 +1119,13 @@ <translation id="4040350669425716613">महाविद्यालये आणि विद्यापीठे</translation> <translation id="4056223980640387499">सेपिया</translation> <translation id="4058922952496707368">की "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">कार्डची झटपट खात्री करण्यासाठी डिव्हाइस अनलॉक वापरा</translation> <translation id="4067098466788473230">शैक्षणिक अनुदाने आणि शिष्यवृत्ती</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">वैध पत्ता जोडा</translation> <translation id="4072193657607981494">धोरणे लोड करत आहे</translation> <translation id="4072486802667267160">तुमच्या मागणीवर प्रक्रिया करताना एरर आली, कृपया पुन्हा प्रयत्न करा.</translation> +<translation id="4073376909608563327">डिव्हाइस अनलॉक वापरता आले नाही</translation> <translation id="4073797364926776829">कार्ड पहा</translation> <translation id="4075732493274867456">क्लायंट आणि सर्व्हर एक सामान्य SSL प्रोटोकॉल आवृत्ती किंवा सायफर संचाला सपोर्ट करीत नाही.</translation> <translation id="4079302484614802869">प्रॉक्सी कॉंफिगरेशन .pac स्क्रिप्ट URL वापरण्यास सेट करण्यात आले आहे, निश्चित प्रॉक्सी सर्व्हर नव्हे.</translation> @@ -1411,6 +1418,7 @@ <translation id="4840250757394056958">तुमचा Chrome इतिहास पहा</translation> <translation id="484462545196658690">ऑटो</translation> <translation id="484671803914931257"><ph name="MERCHANT_NAME" /> आणि आणखी बऱ्याच गोष्टींवर सवलत मिळवा</translation> +<translation id="484988093836683706">डिव्हाइस अनलॉक वापरा</translation> <translation id="4850886885716139402">पहा</translation> <translation id="4852429274334674023">ऑपरेटिंग सिस्टीम</translation> <translation id="485316830061041779">जर्मन</translation> @@ -1798,6 +1806,7 @@ <translation id="5921185718311485855">सुरू करा</translation> <translation id="5921639886840618607">Google खात्यात कार्ड सेव्ह करायचे?</translation> <translation id="5922853866070715753">जवळजवळ पूर्ण झाले</translation> +<translation id="5923492272538889093">CVC ऐवजी डिव्हाइस अनलॉक वापरायचे आहे का?</translation> <translation id="5928444777041341328">घर आणि बाग</translation> <translation id="5932224571077948991">साइट अनाहूत किंवा दिशाभूल करणाऱ्या जाहिराती दाखवते</translation> <translation id="5937560539988385583">पेजचे भाषांतर केले</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Google पासवर्ड बदला</translation> <translation id="6433490469411711332">संपर्क माहिती संपादित करा</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> नी कनेक्ट करण्यास नकार दिला.</translation> +<translation id="6433797564277305076">आतापासून डिव्हाइस अनलॉक वापरून तुमच्या कार्डची झटपट खात्री करा</translation> <translation id="6440503408713884761">दुर्लक्ष केले</translation> <translation id="6443406338865242315">तुम्ही कोणती एक्स्टेंशन आणि प्लग-इन इंस्टॉल केली आहेत</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{हे कार्ड आत्ता सेव्ह केले जाऊ शकत नाही}other{ही कार्डे आत्ता सेव्ह केली जाऊ शकत नाहीत}}</translation> <translation id="7053983685419859001">ब्लॉक करा</translation> <translation id="7058163556978339998"><ph name="ISSUER" /> ने या वेबसाइटचे सर्टिफिकेट जारी केले आहे हे <ph name="BROWSER" /> ने पडताळले.</translation> +<translation id="7058774143982824355">CSV पासवर्ड पार्सर सेवा</translation> <translation id="7061777300866737982">घराशी संबंधित सुरक्षितता आणि सुरक्षा</translation> <translation id="7062635574500127092">हिरवट निळा</translation> <translation id="706295145388601875">Chrome सेटिंग्जमध्ये ॲड्रेस जोडा आणि व्यवस्थापित करा</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">क्लासिक रॉक आणि जुनी गाणी</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">सध्या, तुमच्याकडे अशी कार्डे आहेत जी फक्त या डिव्हाइसवर वापरली जाऊ शकतात. कार्डांचे पुनरावलोकन करण्यासाठी सुरू ठेवा क्लिक करा.</translation> +<translation id="7698864304447945242">Google Play Services for AR अपडेट करायचे आहे का?</translation> <translation id="7699293099605015246">लेख आत्ता उपलब्ध नाहीत</translation> <translation id="7701040980221191251">काहीही नाही</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" /> <ph name="SITE" /> (असुरक्षित) वर सुरू ठेवा<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">कार्ड संपादित करा</translation> <translation id="7734285854693414638">Google Forms मध्ये नवीन फॉर्म झटपट तयार करा</translation> <translation id="773466115871691567">नेहमी पेज <ph name="SOURCE_LANGUAGE" />मध्ये भाषांतरित करा</translation> +<translation id="7736959720849233795">लिंकचा अॅड्रेस कॉपी करा</translation> <translation id="7740996059027112821">साधारण</translation> <translation id="77424286611022110">ही साइट नको असलेल्या किंवा दिशाभूल करणाऱ्या जाहिराती दाखवते. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">धोकादायक आशय ब्लॉक केला.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index 93b7743..0a009c21 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Lista e leximit</translation> <translation id="1264309058268477500">Alternative</translation> <translation id="1264974993859112054">Sport</translation> +<translation id="1266469291454105242">Shkyçja e pajisjes</translation> <translation id="1269516672602708785">Krijo shpejt një sajt të ri te Google Sites</translation> <translation id="1270502636509132238">Mënyra e marrjes</translation> <translation id="1281476433249504884">Stivuesi 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Takime dashurie dhe personale</translation> <translation id="1753706481035618306">Numri i faqes</translation> <translation id="1755621011177747277">Adoptimi</translation> +<translation id="1756026472674246267">Hape lidhjen në një skedë të re</translation> <translation id="175656076281618225">Magjia</translation> <translation id="1757773103848038814">Fonti me hapësirë fikse</translation> <translation id="1763864636252898013">Ky server nuk mundi të dëshmonte se ky është <ph name="DOMAIN" />; certifikata e tij e sigurisë nuk është e besueshme nga Chromium. Kjo mund të shkaktohet nga keqkonfigurimi ose ndonjë sulmues që po kap lidhjen tënde.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Anulo pagesën</translation> <translation id="2148613324460538318">Shto kartë</translation> <translation id="2149968176347646218">Lidhja nuk është e sigurt</translation> +<translation id="2153609454945889823">Të instalohen "Shërbimet e Google Play për AR"?</translation> <translation id="2154054054215849342">Sinkronizimi nuk ofrohet për domenin tënd</translation> <translation id="2154484045852737596">Redakto kartën</translation> <translation id="2161656808144014275">Teksti</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Kopjo vargun e versionit</translation> <translation id="323107829343500871">Shkruaj kodin CVC për <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Zbulo gjithmonë përmbajtje të rëndësishme në këtë sajt</translation> +<translation id="3238395604961564389">Hape lidhjen në një dritare të fshehtë</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Shtyp "Tab" dhe më pas "Enter" për të personalizuar pamjen e shfletuesit tënd</translation> <translation id="3240791268468473923">Kredenciali i pagesës së sigurt pa fletë përkatëse kredenciali është i hapur</translation> <translation id="324180406144491771">Lidhjet e "<ph name="HOST_NAME" />" janë bllokuar</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Fletët e punës</translation> <translation id="3532844647053365774"><ph name="HOST" /> kërkon të përdorë mikrofonin</translation> <translation id="3533328374079021623">Kutia postare 5</translation> +<translation id="3542768452570884558">Hape lidhjen në një dritare të re</translation> <translation id="3550112004925580947">Industria e mikpritjes</translation> <translation id="3552297013052089404">Fonti sans-serif</translation> <translation id="3558573058928565255">Dita dhe ora</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Kolegjet dhe universitetet</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Çelësi "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Përdor shkyçjen e pajisjes për të konfirmuar kartat më shpejt</translation> <translation id="4067098466788473230">Grantet dhe bursat e studimit</translation> <translation id="4067263367174615723">C1 (Zarf)</translation> <translation id="4067947977115446013">Shto adresë të vlefshme</translation> <translation id="4072193657607981494">Po ngarkohen politikat</translation> <translation id="4072486802667267160">Ndodhi një gabim gjatë përpunimit të porosisë. Provo përsëri.</translation> +<translation id="4073376909608563327">Shkyçja e pajisjes nuk mund të përdorej</translation> <translation id="4073797364926776829">Shiko kartën</translation> <translation id="4075732493274867456">Klienti dhe serveri nuk mbështesin një version të zakonshëm të protokollit SSL ose një paketë të shifrimit.</translation> <translation id="4079302484614802869">Konfigurimi i përfaqësuesit është caktuar të përdorë një shkrim URL-je .pac, jo serverë të fiksuar përfaqësues.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Shiko historikun tënd të Chrome</translation> <translation id="484462545196658690">Automatike</translation> <translation id="484671803914931257">Merr zbritje në <ph name="MERCHANT_NAME" /> dhe të tjera</translation> +<translation id="484988093836683706">Përdor shkyçjen e pajisjes</translation> <translation id="4850886885716139402">Pamja</translation> <translation id="4852429274334674023">Sistemet operative</translation> <translation id="485316830061041779">Gjermanisht</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Aktive</translation> <translation id="5921639886840618607">Të ruhet karta te "Llogaria e Google"?</translation> <translation id="5922853866070715753">Pothuajse mbaroi</translation> +<translation id="5923492272538889093">Të përdoret shkyçja e pajisjes në vend të kodit CVC?</translation> <translation id="5928444777041341328">Shtëpia dhe kopshti</translation> <translation id="5932224571077948991">Sajti shfaq reklama ndërhyrëse ose mashtruese</translation> <translation id="5937560539988385583">Faqja u përkthye</translation> @@ -1971,6 +1980,7 @@ <translation id="643051589346665201">Ndrysho fjalëkalimin e Google</translation> <translation id="6433490469411711332">Redakto informacionin e kontaktit</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> e refuzoi lidhjen.</translation> +<translation id="6433797564277305076">Konfirmo kartat e tua më shpejt duke përdorur shkyçjen e pajisjes nga tani e tutje</translation> <translation id="6440503408713884761">Shpërfillur</translation> <translation id="6443406338865242315">Cilat shtesa dhe përbërës shtesë ke instaluar</translation> <translation id="6446163441502663861">Kahu (Zarf)</translation> @@ -2177,6 +2187,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Kjo kartë nuk mund të ruhet për momentin}other{Këto karta nuk mund të ruhen për momentin}}</translation> <translation id="7053983685419859001">Bllokoje</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> verifikoi se <ph name="ISSUER" /> ka lëshuar certifikatën e kësaj faqeje interneti.</translation> +<translation id="7058774143982824355">Shërbimi i analizuesit të fjalëkalimeve në CSV</translation> <translation id="7061777300866737982">Mbrojtja dhe siguria e shtëpisë</translation> <translation id="7062635574500127092">Gurkali</translation> <translation id="706295145388601875">Shto dhe menaxho adresat te cilësimet e Chrome</translation> @@ -2441,6 +2452,7 @@ <translation id="7696089921647603491">Rok klasik dhe muzikë e vjetër</translation> <translation id="7697066736081121494">Prc8 (Zarf)</translation> <translation id="769721561045429135">Në këtë moment, ke karta që mund të përdoren vetëm në këtë pajisje. Kliko te "Vazhdo" për të rishikuar kartat.</translation> +<translation id="7698864304447945242">Të përditësohen "Shërbimet e Google Play për AR"?</translation> <translation id="7699293099605015246">Artikujt nuk janë të disponueshëm në këtë moment</translation> <translation id="7701040980221191251">Asnjë</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Vazhdo te <ph name="SITE" /> (e pasigurt)<ph name="END_LINK" /></translation> @@ -2453,6 +2465,7 @@ <translation id="7723047071702270851">Redakto kartën</translation> <translation id="7734285854693414638">Krijo shpejt një formular të ri te "Formulari i Google"</translation> <translation id="773466115871691567">Përkthe gjithmonë faqet që janë në <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopjo adresën e lidhjes</translation> <translation id="7740996059027112821">Standard</translation> <translation id="77424286611022110">Ky sajt shfaq reklama ndërhyrëse ose mashtruese.<ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">U bllokua një përmbajtje e rrezikshme</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 87e8717..6869ba0 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Läslista</translation> <translation id="1264309058268477500">Alternativ</translation> <translation id="1264974993859112054">Sport</translation> +<translation id="1266469291454105242">Enhetsupplåsning</translation> <translation id="1269516672602708785">Skapa en ny webbplats i Google Sites snabbt</translation> <translation id="1270502636509132238">Alternativ för utlämning</translation> <translation id="1281476433249504884">Utmatningsfack 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Dating och personligt</translation> <translation id="1753706481035618306">Sidnummer</translation> <translation id="1755621011177747277">Adoption</translation> +<translation id="1756026472674246267">Öppna länk i ny flik</translation> <translation id="175656076281618225">Magi</translation> <translation id="1757773103848038814">Jämnbrett teckensnitt</translation> <translation id="1763864636252898013">Servern kunde inte bevisa att den är <ph name="DOMAIN" /> eftersom enhetens operativsystem inte litar på dess säkerhetscertifikat. Detta kan orsakas av en felaktig konfigurering eller att någon spärrar anslutningen.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Avbryt betalningen</translation> <translation id="2148613324460538318">Lägg till kort</translation> <translation id="2149968176347646218">Anslutningen är inte säker</translation> +<translation id="2153609454945889823">Vill du installera Google Play-tjänster för AR?</translation> <translation id="2154054054215849342">Synkronisering är inte tillgänglig för din domän</translation> <translation id="2154484045852737596">Redigera kortet</translation> <translation id="2161656808144014275">Text</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Kopiera versionssträngen</translation> <translation id="323107829343500871">Ange CVC-koden för <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Upptäck alltid viktigt innehåll på den här webbplatsen</translation> +<translation id="3238395604961564389">Öppna länk i inkognitofönster</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du vill anpassa webbläsarens utseende</translation> <translation id="3240791268468473923">Arbetsblad för användaruppgifter för säker betalning utan överensstämmande användaruppgifter är öppet</translation> <translation id="324180406144491771"><ph name="HOST_NAME" />-länkarna har blockerats</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Arbetsordrar</translation> <translation id="3532844647053365774"><ph name="HOST" /> vill använda din mikrofon</translation> <translation id="3533328374079021623">Postfack 5</translation> +<translation id="3542768452570884558">Öppna länk i nytt fönster</translation> <translation id="3550112004925580947">Hotellbranschen</translation> <translation id="3552297013052089404">Sans serif-teckensnitt</translation> <translation id="3558573058928565255">dagtid</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Högskolor och universitet</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Nyckel <ph name="SUBKEY" />: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Bekräfta kortet snabbare med enhetsupplåsning</translation> <translation id="4067098466788473230">Studiebidrag och stipendier</translation> <translation id="4067263367174615723">C1 (kuvert)</translation> <translation id="4067947977115446013">Lägg till giltig adress</translation> <translation id="4072193657607981494">Policyer läses in</translation> <translation id="4072486802667267160">Det gick inte att behandla beställningen. Försök igen.</translation> +<translation id="4073376909608563327">Det gick inte att använda enhetsupplåsning</translation> <translation id="4073797364926776829">Visa kort</translation> <translation id="4075732493274867456">Klienten och servern har inte stöd för en gemensam SSL-protokollversion eller chiffersvit.</translation> <translation id="4079302484614802869">Proxykonfigurationen är inställd på att använda en webbadress med PAC-skript, inte fasta proxyservrar.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Visa Chrome-historiken</translation> <translation id="484462545196658690">Auto</translation> <translation id="484671803914931257">Få rabatt på <ph name="MERCHANT_NAME" /> med mera</translation> +<translation id="484988093836683706">Använd enhetsupplåsning</translation> <translation id="4850886885716139402">Visa</translation> <translation id="4852429274334674023">Operativsystem</translation> <translation id="485316830061041779">tyska</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">På</translation> <translation id="5921639886840618607">Vill du spara kortet i Google-kontot?</translation> <translation id="5922853866070715753">Nästan klart</translation> +<translation id="5923492272538889093">Vill du använda enhetsupplåsning i stället för CVC?</translation> <translation id="5928444777041341328">Hem och trädgård</translation> <translation id="5932224571077948991">Påträngande eller vilseledande annonser visas på webbplatsen</translation> <translation id="5937560539988385583">Sidan har översatts</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Byt lösenord till Google</translation> <translation id="6433490469411711332">Redigera kontaktuppgifter</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> avvisade anslutningen.</translation> +<translation id="6433797564277305076">Verifiera kreditkort snabbare genom att använda enhetsupplåsning från och med nu</translation> <translation id="6440503408713884761">Ignoreras</translation> <translation id="6443406338865242315">Vilka tillägg och pluginprogram som du har installerat</translation> <translation id="6446163441502663861">Kahu (kuvert)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Det går inte att lägga till det här kortet just nu}other{Det går inte att lägga till de här korten just nu}}</translation> <translation id="7053983685419859001">Blockera</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> har verifierat att <ph name="ISSUER" /> har utfärdat webbplatsens certifikat.</translation> +<translation id="7058774143982824355">Analystjänst för CSV-lösenord</translation> <translation id="7061777300866737982">Säkerhet för hemmet</translation> <translation id="7062635574500127092">Blågrön</translation> <translation id="706295145388601875">Lägg till och hantera adresser i inställningarna för Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Klassisk rock och gamla godingar</translation> <translation id="7697066736081121494">Prc8 (kuvert)</translation> <translation id="769721561045429135">Du har för närvarande kort som bara kan användas på den här enheten. Klicka på Fortsätt om du vill granska korten.</translation> +<translation id="7698864304447945242">Vill du uppdatera Google Play-tjänster för AR?</translation> <translation id="7699293099605015246">Inga artiklar är tillgängliga just nu</translation> <translation id="7701040980221191251">Inga</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Fortsätt till <ph name="SITE" /> (osäkert)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Redigera kortet</translation> <translation id="7734285854693414638">Skapa ett nytt formulär i Google Formulär snabbt</translation> <translation id="773466115871691567">Översätt alltid sidor på <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopiera länkadress</translation> <translation id="7740996059027112821">Standard</translation> <translation id="77424286611022110">Påträngande eller vilseledande annonser visas på den här webbplatsen. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Farligt innehåll har blockerats.</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index 443e4a5..5ec2a7f 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Orodha ya kusoma</translation> <translation id="1264309058268477500">Mbadala</translation> <translation id="1264974993859112054">Michezo</translation> +<translation id="1266469291454105242">Kufungua kifaa</translation> <translation id="1269516672602708785">Unda tovuti mpya katika huduma ya Tovuti za Google kwa haraka</translation> <translation id="1270502636509132238">Mbinu ya Kuchukua</translation> <translation id="1281476433249504884">Tupio la kutoa la printa la kwanza</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Kuchumbiana na mambo binafsi</translation> <translation id="1753706481035618306">Nambari ya ukurasa</translation> <translation id="1755621011177747277">Kuasili</translation> +<translation id="1756026472674246267">Fungua Kiungo Katika Kichupo Kipya</translation> <translation id="175656076281618225">Kiinimacho</translation> <translation id="1757773103848038814">Fonti ya "Monospace"</translation> <translation id="1763864636252898013">Seva hii haikuweza kuthibitisha kuwa ni <ph name="DOMAIN" />; cheti chake cha usalama hakiaminiwi na mfumo wa uendeshaji wa kifaa chako. Hii inaweza kusababishwa na usanidi usiofaa au mvamizi kuingilia muunganisho wako.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Ghairi malipo</translation> <translation id="2148613324460538318">Ongeza Kadi</translation> <translation id="2149968176347646218">Muunganisho si salama</translation> +<translation id="2153609454945889823">Ungependa kusakinisha Huduma za Google Play za AR?</translation> <translation id="2154054054215849342">Huduma ya usawazishaji haipatikani kwa ajili ya kikoa chako</translation> <translation id="2154484045852737596">Badilisha kadi</translation> <translation id="2161656808144014275">Maandishi</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Nakili mfuatano wa toleo</translation> <translation id="323107829343500871">Weka CVC ya <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Gundua maudhui muhimu kwenye tovuti hii wakati wowote</translation> +<translation id="3238395604961564389">Fungua Kiungo katika Dirisha Fiche</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Bonyeza 'tab' kisha 'Enter' ili uweke mapendeleo ya mwonekano wa kivinjari chako</translation> <translation id="3240791268468473923">Laha ya 'hakuna kitambulisho kinacholingana' imefunguliwa</translation> <translation id="324180406144491771">Viungo vya “<ph name="HOST_NAME" />” vimezuiwa</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Majedwali ya kazi</translation> <translation id="3532844647053365774"><ph name="HOST" /> inataka kutumia maikrofoni yako</translation> <translation id="3533328374079021623">Kikasha cha barua cha tano</translation> +<translation id="3542768452570884558">Fungua Kiungo katika Dirisha Jipya</translation> <translation id="3550112004925580947">Sekta ya ukarimu</translation> <translation id="3552297013052089404">Fonti ya "Sans-serif"</translation> <translation id="3558573058928565255">Mchana</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Vyuo na vyuo vikuu</translation> <translation id="4056223980640387499">Sepia</translation> <translation id="4058922952496707368">Kitufe "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Tumia njia ya kufungua kifaa ili uthibitishe kadi kwa haraka</translation> <translation id="4067098466788473230">Ufadhili na ruzuku za masomo</translation> <translation id="4067263367174615723">C1 (Bahasha)</translation> <translation id="4067947977115446013">Ongeza Anwani Sahihi ya Mahali Bidhaa Itapelekwa</translation> <translation id="4072193657607981494">Inapakia sera</translation> <translation id="4072486802667267160">Hitilafu imetokea wakati wa kushughulikia agizo lako. Tafadhali jaribu tena.</translation> +<translation id="4073376909608563327">Imeshindwa kutumia njia ya kufungua wa kifaa</translation> <translation id="4073797364926776829">Angalia kadi</translation> <translation id="4075732493274867456">Mteja na seva hazitumii toleo la kawaida la itifaki ya SSL au mipangilio ya kriptografia.</translation> <translation id="4079302484614802869">Usanidi wa proksi umewekwa kutumia URL hati ya .pac, siyo seva proksi za kudumu.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Angalia historia yako kwenye Chrome</translation> <translation id="484462545196658690">Otomatiki</translation> <translation id="484671803914931257">Pata punguzo kwenye <ph name="MERCHANT_NAME" /> na zaidi</translation> +<translation id="484988093836683706">Tumia njia ya kufungua kifaa</translation> <translation id="4850886885716139402">Mwonekano</translation> <translation id="4852429274334674023">Mifumo ya uendeshaji</translation> <translation id="485316830061041779">Kijerumani</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Imewashwa</translation> <translation id="5921639886840618607">Ungependa kuhifadhi kadi kwenye Akaunti ya Google?</translation> <translation id="5922853866070715753">Unakaribia kumaliza</translation> +<translation id="5923492272538889093">Ungependa kutumia njia ya kufungua kifaa badala ya CVC?</translation> <translation id="5928444777041341328">Nyumba na bustani</translation> <translation id="5932224571077948991">Tovuti inaonyesha matangazo yanayopotosha au yanayokatiza huduma</translation> <translation id="5937560539988385583">Ukurasa umetafsiriwa</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Badilisha nenosiri la Google</translation> <translation id="6433490469411711332">Badilisha maelezo ya mawasiliano</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> imekataa kuunganisha.</translation> +<translation id="6433797564277305076">Thibitisha kadi zako kwa haraka ukitumia njia ya kufungua wa kifaa kuanzia sasa</translation> <translation id="6440503408713884761">Imepuuzwa</translation> <translation id="6443406338865242315">Viendelezi au programu jalizi ulizosakinisha</translation> <translation id="6446163441502663861">Kahu (Bahasha)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Huwezi kuhifadhi kadi hii sasa hivi}other{Huwezi kuhifadhi kadi hizi sasa hivi}}</translation> <translation id="7053983685419859001">Zuia</translation> <translation id="7058163556978339998"><ph name="BROWSER" /> imethibitisha kuwa <ph name="ISSUER" /> ilitoa cheti cha tovuti hii.</translation> +<translation id="7058774143982824355">Huduma ya Kichanganuzi cha Nenosiri la CSV</translation> <translation id="7061777300866737982">Ulinzi na usalama wa nyumbani</translation> <translation id="7062635574500127092">Samawati ya kijani</translation> <translation id="706295145388601875">Weka na udhibiti anwani katika mipangilio ya Chrome</translation> @@ -2440,6 +2451,7 @@ <translation id="7696089921647603491">Muziki wa classic rock na oldies</translation> <translation id="7697066736081121494">Prc8 (Bahasha)</translation> <translation id="769721561045429135">Sasa hivi, kadi zako zinaweza kutumika kwenye kifaa hiki pekee. Bofya ili uendelee kukagua kadi.</translation> +<translation id="7698864304447945242">Ungependa kusasisha Huduma za Google Play za AR?</translation> <translation id="7699293099605015246">Makala hayapatikani kwa sasa</translation> <translation id="7701040980221191251">Hamna</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Nenda kwenye <ph name="SITE" /> (isiyo salama)<ph name="END_LINK" /></translation> @@ -2452,6 +2464,7 @@ <translation id="7723047071702270851">Badilisha Kadi</translation> <translation id="7734285854693414638">Unda fomu mpya katika huduma ya Fomu za Google kwa haraka</translation> <translation id="773466115871691567">Zitafsiri kurasa katika <ph name="SOURCE_LANGUAGE" /> wakati wote</translation> +<translation id="7736959720849233795">Nakili Anwani ya Kiungo</translation> <translation id="7740996059027112821">Wastani</translation> <translation id="77424286611022110">Tovuti hii inaonyesha matangazo yanayopotosha au yanayokatiza huduma. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Maudhui hatari yamezuiwa.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index c34b89a..5ebf4014 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -65,7 +65,7 @@ <translation id="1151972924205500581">పాస్వర్డ్ అవసరం</translation> <translation id="1156303062776767266">మీరు స్థానిక లేదా షేర్ చేసిన ఫైల్ను చూస్తున్నారు</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> ఊహించని విధంగా కనెక్షన్ను మూసివేసింది.</translation> -<translation id="115926840831309955">మీ CVCని తనిఖీ చేసి మళ్ళీ ప్రయత్నించండి లేదా గడువు ముగింపు తేదీని అప్డేట్ చేయండి</translation> +<translation id="115926840831309955">మీ CVCని చెక్ చేసి మళ్ళీ ప్రయత్నించండి లేదా గడువు ముగింపు తేదీని అప్డేట్ చేయండి</translation> <translation id="1161325031994447685">Wi-Fiకి మళ్లీ కనెక్ట్ చేయడం</translation> <translation id="1165039591588034296">ఎర్రర్</translation> <translation id="1165174597379888365">పేజీని సందర్శించినప్పుడు</translation> @@ -106,7 +106,7 @@ <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (సమకాలీకరించబడ్డాయి)</translation> <translation id="1256368399071562588"><p>మీరు ఏదైనా వెబ్సైట్ను తెరవడానికి ప్రయత్నించినప్పుడు, అది తెరవబడకుంటే, ముందుగా ఈ సమస్య నివారణ ప్రక్రియ దశలను ఉపయోగించి ఎర్రర్ను పరిష్కరించడానికి ప్రయత్నించండి:</p> <ol> - <li>వెబ్ అడ్రస్లో అక్షరక్రమ దోషాలు ఉన్నాయేమో తనిఖీ చేయండి.</li> + <li>వెబ్ అడ్రస్లో అక్షరక్రమ దోషాలు ఉన్నాయేమో చెక్ చేయండి.</li> <li>మీ ఇంటర్నెట్ కనెక్షన్ సరిగ్గానే పని చేస్తున్నట్లు నిర్ధారించుకోండి.</li> <li>వెబ్సైట్ యజమానిని సంప్రదించండి.</li> </ol></translation> @@ -128,7 +128,7 @@ <translation id="129553762522093515">ఇటీవల మూసివెయ్యబడినవి</translation> <translation id="1296930489679394997">విక్రయాలు</translation> <translation id="129863573139666797"><ph name="BEGIN_LINK" />మీ కుక్కీలను తీసివేయడానికి ప్రయత్నించండి<ph name="END_LINK" /></translation> -<translation id="1301324364792935241">మీ సెక్యూర్ DNS సెట్టింగ్లను తనిఖీ చేయండి</translation> +<translation id="1301324364792935241">మీ సెక్యూర్ DNS సెట్టింగ్లను చెక్ చేయండి</translation> <translation id="1307966114820526988">విస్మరించబడిన ఫీచర్లు</translation> <translation id="1308113895091915999">ఆఫర్ అందుబాటులో ఉంది</translation> <translation id="1314311879718644478">అగ్మెంటెడ్ రియాలిటీ కంటెంట్ను చూడండి</translation> @@ -356,7 +356,7 @@ <translation id="1821930232296380041">చెల్లని రిక్వెస్ట్ లేదా రిక్వెస్ట్ పారామీటర్లు</translation> <translation id="1822540298136254167">మీరు సందర్శించిన వెబ్సైట్లు, వాటిపై వెచ్చించిన సమయం</translation> <translation id="1824402189105105503">ఎయిత్ రోల్</translation> -<translation id="1826516787628120939">తనిఖీ చేస్తోంది</translation> +<translation id="1826516787628120939">చెక్ చేస్తోంది</translation> <translation id="1828959155404624835">అద్దెకు కార్లు</translation> <translation id="1834321415901700177">ఈ సైట్లో హానికరమైన ప్రోగ్రామ్లు ఉన్నాయి</translation> <translation id="1838374766361614909">శోధనను తీసివేయి</translation> @@ -415,7 +415,7 @@ <translation id="2025115093177348061">అగ్మెంటెడ్ రియాలిటీ</translation> <translation id="2025186561304664664">ప్రాక్సీ ఆటోమేటిక్గా కాన్ఫిగర్ చేయబడేలా సెట్ చేయబడింది.</translation> <translation id="2025891858974379949">అసురక్షితమైన కంటెంట్</translation> -<translation id="2032962459168915086"><ph name="BEGIN_LINK" />ప్రాక్సీ మరియు ఫైర్వాల్ను తనిఖీ చేయడం<ph name="END_LINK" /></translation> +<translation id="2032962459168915086"><ph name="BEGIN_LINK" />ప్రాక్సీ మరియు ఫైర్వాల్ను చెక్ చేయడం<ph name="END_LINK" /></translation> <translation id="2034971124472263449">ఏదేమైనా సేవ్ చేయి</translation> <translation id="2035400064145347639">ట్రావెల్ గైడ్లు & యాత్రా విశేషాలు</translation> <translation id="2036983605131262583">ఆల్టర్నేట్ రోల్</translation> @@ -583,7 +583,7 @@ <translation id="2509167091171468975">ఆహారం & కిరాణా వస్తువుల రిటైలర్లు</translation> <translation id="2512101340618156538">అనుమతించనివి (ఆటోమేటిక్ సెట్టింగ్)</translation> <translation id="2512413427717747692">Chromeను ఆటోమేటిక్ బ్రౌజర్గా సెట్ చేసే బటన్, 'Enter'ను నొక్కి iOS సెట్టింగ్లలో Chromeను ఆటోమేటిక్ బ్రౌజర్గా సెట్ చేయండి</translation> -<translation id="2515629240566999685">మీ ప్రాంతంలో సిగ్నల్ను తనిఖీ చేయడం</translation> +<translation id="2515629240566999685">మీ ప్రాంతంలో సిగ్నల్ను చెక్ చేయడం</translation> <translation id="2515761554693942801"><ph name="PROVIDER_ORIGIN" />ను ఉపయోగించే వెబ్సైట్లలో Touch IDతో వెరిఫై చేయాలని మీరు ఎంచుకున్నారు. ఈ ప్రొవైడర్ మీ పేమెంట్ ఆప్షన్కు సంబంధించిన సమాచారాన్ని స్టోర్ చేసుకొని ఉండవచ్చు, దీనిని మీరు <ph name="LINK_TEXT" />.</translation> <translation id="2521385132275182522">కుడివైపు దిగువ భాగంలో స్టేపుల్</translation> <translation id="2521736961081452453">ఫారమ్ను క్రియేట్ చేయండి</translation> @@ -607,7 +607,7 @@ <translation id="255002559098805027"><ph name="HOST_NAME" /> చెల్లని ప్రతిస్పందనను పంపింది.</translation> <translation id="2552246211866555379">హగాకీ</translation> <translation id="2552295903035773204">ఇప్పటి నుండి కార్డ్లను నిర్ధారించడానికి స్క్రీన్ లాక్ను ఉపయోగించండి</translation> -<translation id="2553853292994445426">మీ సెక్యూర్ DNS సెట్టింగ్లను తనిఖీ చేయండి. మీరు కాన్ఫిగర్ చేసిన సెక్యూర్ సర్వర్కు కనెక్ట్ కావడంలో వైఫల్యం ఎదురవుతూ ఉన్నట్టుంది.</translation> +<translation id="2553853292994445426">మీ సెక్యూర్ DNS సెట్టింగ్లను చెక్ చేయండి. మీరు కాన్ఫిగర్ చేసిన సెక్యూర్ సర్వర్కు కనెక్ట్ కావడంలో వైఫల్యం ఎదురవుతూ ఉన్నట్టుంది.</translation> <translation id="2556876185419854533">&సవరించడాన్ని రద్దు చేయి</translation> <translation id="2557417190997681027">బిజినెస్ ట్రావెల్</translation> <translation id="2562087035394240049">ఎలా-చేయాలి, DIY & నిపుణుల కంటెంట్</translation> @@ -761,7 +761,7 @@ <translation id="2991571918955627853">వెబ్సైట్ HSTS ఉపయోగిస్తున్నందున మీరు ప్రస్తుతం <ph name="SITE" />ను సందర్శించలేరు. నెట్వర్క్ ఎర్రర్లు మరియు దాడులు సాధారణంగా తాత్కాలికమే. కనుక ఈ పేజీ తర్వాత పని చేయవచ్చు.</translation> <translation id="2995517112308048736">ఫైల్ సైజ్:</translation> <translation id="299990983510665749">హ్యాచ్బ్యాక్లు</translation> -<translation id="3002501248619246229">ఇన్పుట్ ట్రే మీడియాను తనిఖీ చేయి</translation> +<translation id="3002501248619246229">ఇన్పుట్ ట్రే మీడియాను చెక్ చేయండి</translation> <translation id="3005723025932146533">సేవ్ చేయబడిన కాపీని చూపు</translation> <translation id="3008447029300691911"><ph name="CREDIT_CARD" /> కార్డ్ CVCని నమోదు చేయండి. మీరు నిర్ధారించిన తర్వాత, మీ కార్డ్ వివరాలు ఈ సైట్తో షేర్ చేయబడతాయి.</translation> <translation id="3010559122411665027">లిస్ట్ నమోదు "<ph name="ENTRY_INDEX" />": <ph name="ERROR" /></translation> @@ -788,7 +788,7 @@ <translation id="3096195745018397576">పిల్లల దుస్తులు</translation> <translation id="3098513225387949945">'*'కు సమానమైన ఆకృతి డిజేబుల్ లిస్ట్లో ఉంది, ఇది పాలసీని డిజేబుల్ చేయడానికి సమానం, అందుకే ఇది విస్మరించబడింది.</translation> <translation id="3105172416063519923">అసెట్ ID:</translation> -<translation id="3107591622054137333"><ph name="BEGIN_LINK" />సెక్యూర్ DNS కాన్ఫిగరేషన్ని తనిఖీ చేస్తోంది<ph name="END_LINK" /></translation> +<translation id="3107591622054137333"><ph name="BEGIN_LINK" />సెక్యూర్ DNS కాన్ఫిగరేషన్ని చెక్ చేస్తోంది<ph name="END_LINK" /></translation> <translation id="3108943290502734357">మిడిల్ ట్రే</translation> <translation id="3109728660330352905">మీకు ఈ పేజీని వీక్షించడానికి అధికారం లేదు.</translation> <translation id="3113284927548439113">మూడవ షిఫ్ట్</translation> @@ -807,7 +807,7 @@ <translation id="3158539265159265653">డిస్క్</translation> <translation id="3162559335345991374">మీరు ఉపయోగిస్తున్న Wi-Fiకి మీరు దాని లాగిన్ పేజీని సందర్శించడం అవసరం.</translation> <translation id="3169472444629675720">కనుగొను</translation> -<translation id="3176929007561373547">ప్రాక్సీ సర్వర్ పని చేస్తున్నట్లు నిర్ధారించుకోవడానికి మీ ప్రాక్సీ సెట్టింగ్లను తనిఖీ చేయండి లేదా +<translation id="3176929007561373547">ప్రాక్సీ సర్వర్ పని చేస్తున్నట్లు నిర్ధారించుకోవడానికి మీ ప్రాక్సీ సెట్టింగ్లను చెక్ చేయండి లేదా మీ నెట్వర్క్ నిర్వాహకుడిని సంప్రదించండి. మీరు ప్రాక్సీ సర్వర్నే ఉపయోగిస్తున్నట్లు మీకు నమ్మకంగా లేకుంటే: <ph name="PLATFORM_TEXT" /></translation> @@ -1021,7 +1021,7 @@ <translation id="3714633008798122362">వెబ్ క్యాలెండర్</translation> <translation id="3714780639079136834">మొబైల్ డేటా లేదా Wi-Fiని ఆన్ చేయడం</translation> <translation id="3715597595485130451">Wi-Fiకి కనెక్ట్ చేయండి</translation> -<translation id="3717027428350673159"><ph name="BEGIN_LINK" />ప్రాక్సీ, ఫైర్వాల్ మరియు DNS కాన్ఫిగరేషన్ను తనిఖీ చేయడం<ph name="END_LINK" /></translation> +<translation id="3717027428350673159"><ph name="BEGIN_LINK" />ప్రాక్సీ, ఫైర్వాల్ మరియు DNS కాన్ఫిగరేషన్ను చెక్ చేయడం<ph name="END_LINK" /></translation> <translation id="372429172604983730">ఈ ఎర్రర్కు దారితీసే అప్లికేషన్లలో యాంటీవైరస్, ఫైర్వాల్ మరియు వెబ్ ఫిల్టరింగ్ లేదా ప్రాక్సీ సాఫ్ట్వేర్ ఉండవచ్చు.</translation> <translation id="3727101516080730231"><ph name="CREATE_GOOGLE_SLIDE_FOCUSED_FRIENDLY_MATCH_TEXT" />, కొత్త Google ప్రెజెంటేషన్ను Slidesలో త్వరగా క్రియేట్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation> <translation id="373042150751172459">B4 (ఎన్వలప్)</translation> @@ -1154,7 +1154,7 @@ <translation id="4123572138124678573">దిగువ భాగంలో మూడు రంధ్రాలు</translation> <translation id="4127575959421463246">ChromeOS ఫ్లాగ్ల కోసం వెతుకుతున్నారా? సందర్శించండి</translation> <translation id="4129401438321186435">{COUNT,plural, =1{మరో 1}other{మరో #}}</translation> -<translation id="4130226655945681476">నెట్వర్క్ కేబుల్లు, మోడెమ్ మరియు రూటర్ను తనిఖీ చేయడం</translation> +<translation id="4130226655945681476">నెట్వర్క్ కేబుల్లు, మోడెమ్ మరియు రూటర్ను చెక్ చేయడం</translation> <translation id="4134123981501319574">డాక్ను క్రియేట్ చేయండి</translation> <translation id="413544239732274901">మరింత తెలుసుకోండి</translation> <translation id="4142935452406587478">ట్రే 10</translation> @@ -1175,7 +1175,7 @@ <translation id="4194250254487269611">మీ కార్డ్ను ప్రస్తుతం సేవ్ చేయలేము</translation> <translation id="4196861286325780578">&తరలించడాన్ని రిపీట్ చేయి</translation> <translation id="4202554117186904723">ఫిఫ్త్ రోల్</translation> -<translation id="4203896806696719780"><ph name="BEGIN_LINK" />ఫైర్వాల్ మరియు యాంటీవైరస్ కాన్ఫిగరేషన్లను తనిఖీ చేయడం<ph name="END_LINK" /></translation> +<translation id="4203896806696719780"><ph name="BEGIN_LINK" />ఫైర్వాల్ మరియు యాంటీవైరస్ కాన్ఫిగరేషన్లను చెక్ చేయడం<ph name="END_LINK" /></translation> <translation id="4209092469652827314">పెద్దది</translation> <translation id="4210602799576081649">వెరిఫికేషన్ కోడ్ గడువు ముగిసింది, కొత్త కోడ్ కోసం రిక్వెస్ట్ చేయండి</translation> <translation id="421066178035138955">వర్చువల్ రియాలిటీ పరికరాలను, డేటాను వినియోగించడం</translation> @@ -1237,7 +1237,7 @@ <translation id="4318566738941496689">మీ పరికరం పేరు, నెట్వర్క్ అడ్రస్</translation> <translation id="4325600325087822253">ట్రే 17</translation> <translation id="4325863107915753736">కథనాన్ని కనుగొనడం విఫలమైంది</translation> -<translation id="4326324639298822553">మీ గడువు ముగింపు తేదీని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation> +<translation id="4326324639298822553">మీ గడువు ముగింపు తేదీని చెక్ చేసి, మళ్లీ ప్రయత్నించండి</translation> <translation id="4329871760342656885">పాలసీని అన్వయించడంలో ఎర్రర్: <ph name="ERROR" /></translation> <translation id="4331519897422864041">స్టాకర్ 5</translation> <translation id="4331708818696583467">సురక్షితం కాదు</translation> @@ -1405,7 +1405,7 @@ <translation id="4792686369684665359">మీరు సమర్పించబోయే సమాచారం సురక్షితమైనది కాదు</translation> <translation id="4796594887379589189">జాబ్ ఖాతా ID</translation> <translation id="4798078619018708837">మీ కార్డ్ వివరాలను అప్డేట్ చేయడానికి <ph name="CREDIT_CARD" /> కార్డ్ గడువు ముగింపు తేదీ, CVCని నమోదు చేయండి. మీరు నిర్ధారించిన తర్వాత, మీ Google ఖాతా నుండి కార్డ్ వివరాలు ఈ సైట్తో షేర్ చేయబడతాయి.</translation> -<translation id="4800132727771399293">మీ గడువు ముగింపు తేదీ మరియు CVCని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation> +<translation id="4800132727771399293">మీ గడువు ముగింపు తేదీ మరియు CVCని చెక్ చేసి, మళ్లీ ప్రయత్నించండి</translation> <translation id="4803924862070940586"><ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation> <translation id="4809079943450490359">మీ పరికర అడ్మినిస్ట్రేటర్ నుండి సూచనలు:</translation> <translation id="4812751092864334025">టెక్నాలజీ కలిగిన ధరించే పరికరాలు</translation> @@ -1507,7 +1507,7 @@ <translation id="5068234115460527047">భద్రతా నిధులు</translation> <translation id="5068524481479508725">A10</translation> <translation id="5068778127327928576">{NUM_COOKIES,plural, =1{(1 వినియోగంలో ఉంది)}other{(# వినియోగంలో ఉన్నాయి)}}</translation> -<translation id="5070335125961472645"><ph name="BEGIN_LINK" />ప్రాక్సీ అడ్రస్ను తనిఖీ చేయడం<ph name="END_LINK" /></translation> +<translation id="5070335125961472645"><ph name="BEGIN_LINK" />ప్రాక్సీ అడ్రస్ను చెక్ చేయడం<ph name="END_LINK" /></translation> <translation id="5070838744279127212">టెన్త్ రోల్</translation> <translation id="507130231501693183">మెయిల్బాక్స్ 4</translation> <translation id="5078060223219502807">మీరు ఇప్పుడే ఉపయోగించిన పాస్వర్డ్, డేటా ఉల్లంఘనలో కనగొనబడింది. మీ ఖాతాలను సురక్షితం చేయడానికి, ఆ పాస్వర్డ్ను ఇప్పుడే మార్చి, ఆపై మీరు సేవ్ చేసిన పాస్వర్డ్లను చెక్ చేయమని పాస్వర్డ్ మేనేజర్ సిఫార్సు చేస్తోంది.</translation> @@ -1697,7 +1697,7 @@ <translation id="5570825185877910964">ఖాతాను సంరక్షించు</translation> <translation id="5571083550517324815">ఈ అడ్రస్ నుండి పికప్ చేసుకోవడం సాధ్యం కాదు. వేరే అడ్రస్ను ఎంచుకోండి.</translation> <translation id="557886905979275351">రేజర్లు & షేవర్లు</translation> -<translation id="5580958916614886209">మీ గడువు ముగింపు నెలను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation> +<translation id="5580958916614886209">మీ గడువు ముగింపు నెలను చెక్ చేసి, మళ్లీ ప్రయత్నించండి</translation> <translation id="5586446728396275693">సేవ్ చేయబడిన అడ్రస్లు లేవు</translation> <translation id="5587987780934666589">ప్లాట్ఫామ్ యూజర్</translation> <translation id="5593349413089863479">కనెక్షన్ పూర్తిగా సురక్షితమైనది కాదు</translation> @@ -1706,7 +1706,7 @@ <translation id="560412284261940334">నిర్వహణకు మద్దతు లేదు</translation> <translation id="5605670050355397069">లెడ్జర్</translation> <translation id="5607240918979444548">ఆర్కిటెక్చర్-C</translation> -<translation id="5610142619324316209">కనెక్షన్ను తనిఖీ చేయడం</translation> +<translation id="5610142619324316209">కనెక్షన్ను చెక్ చేయడం</translation> <translation id="5610807607761827392">మీరు కార్డ్లు మరియు అడ్రస్లను <ph name="BEGIN_LINK" />సెట్టింగ్ల<ph name="END_LINK" />లో నిర్వహించగలరు.</translation> <translation id="561165882404867731">Google Translateతో ఈ పేజీని అనువదించండి</translation> <translation id="5612720917913232150"><ph name="URL" /> మీ కంప్యూటర్ స్థానాన్ని ఉపయోగించాలనుకుంటోంది</translation> @@ -1764,7 +1764,7 @@ <translation id="5781136890105823427">ప్రయోగం ప్రారంభించబడింది</translation> <translation id="578305955206182703">కాషాయ రంగు</translation> <translation id="57838592816432529">మ్యూట్ చేయి</translation> -<translation id="5784606427469807560">మీ కార్డ్ను నిర్ధారించడంలో సమస్య ఏర్పడింది. మీ ఇంటర్నెట్ కనెక్షన్ని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="5784606427469807560">మీ కార్డ్ను నిర్ధారించడంలో సమస్య ఏర్పడింది. మీ ఇంటర్నెట్ కనెక్షన్ని చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="5785756445106461925">అలాగే, ఈ పేజీలో సురక్షితం కాని ఇతర వనరులు ఉన్నాయి. ఈ వనరులను బదిలీ చేస్తున్నప్పుడు ఇతరులు చూడగలరు మరియు దాడికి పాల్పడేవారు పేజీ రూపాన్ని మార్చేలా వీటిని సవరించగలరు.</translation> <translation id="5786044859038896871">మీరు మీ కార్డ్ సమాచారం పూరించాలనుకుంటున్నారా?</translation> <translation id="578633867165174378">డేటా ఉల్లంఘనలో మీరు ఇప్పుడే ఉపయోగించిన పాస్వర్డ్ను Chrome కనుగొనింది. ఇప్పుడే ఈ పాస్వర్డ్ను మార్చమని మేము సిఫార్సు చేస్తున్నాము.</translation> @@ -1839,7 +1839,7 @@ <translation id="6008122969617370890">N-నుండి-1 వరకు ఉన్న క్రమం</translation> <translation id="6008256403891681546">JCB</translation> <translation id="6014139350017893009">వాహనాల రిపేర్లు & మెయింటెనెన్స్</translation> -<translation id="6014801569448771146">మీ పాస్వర్డ్లను తనిఖీ చేయండి</translation> +<translation id="6014801569448771146">మీ పాస్వర్డ్లను చెక్ చేయండి</translation> <translation id="6014851866995737824">"ఎనేబుల్" లేదా "డిజేబుల్" లిస్ట్లో లేని కారణంగా ఇది విస్మరించబడింది.</translation> <translation id="6015796118275082299">సంవత్సరం</translation> <translation id="6017514345406065928">ఆకుపచ్చ</translation> @@ -1886,7 +1886,7 @@ <translation id="6124432979022149706">Chrome Enterprise కనెక్టర్లు</translation> <translation id="6127379762771434464">అంశాన్ని తీసివేసారు</translation> <translation id="6132161237766805930"><ph name="BEGIN_LINK" />Chromeలో అజ్ఞాత మోడ్ గురించి మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> -<translation id="6146055958333702838">ఏవైనా కేబుల్లను తనిఖీ చేయండి మరియు మీరు ఉపయోగించే ఏవైనా రూటర్లు, మోడెమ్లు +<translation id="6146055958333702838">ఏవైనా కేబుల్లను చెక్ చేయండి మరియు మీరు ఉపయోగించే ఏవైనా రూటర్లు, మోడెమ్లు లేదా ఇతర నెట్వర్క్ పరికరాలను రీబూట్ చేయండి.</translation> <translation id="614940544461990577">ఇలా చేసి ప్రయత్నించండి:</translation> <translation id="6150036310511284407">ఎడమవైపు మూడు రంధ్రాలు</translation> @@ -1903,7 +1903,7 @@ <translation id="61877208875190028">మహిళల దుస్తులు</translation> <translation id="6195371403461054755">భూగర్భశాస్త్రం</translation> <translation id="6196640612572343990">థర్డ్ పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation> -<translation id="6203231073485539293">మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి</translation> +<translation id="6203231073485539293">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేయండి</translation> <translation id="6218753634732582820">Chromium నుండి అడ్రస్ను తీసివేయాలా?</translation> <translation id="622039917539443112">పారలల్ ఫోల్డ్</translation> <translation id="6221345481584921695">Google సురక్షిత బ్రౌజింగ్ ఇటీవల <ph name="SITE" />లో <ph name="BEGIN_LINK" />మాల్వేర్ను గుర్తించింది<ph name="END_LINK" />. సాధారణంగా సురక్షితమైన వెబ్సైట్లకు కూడా కొన్నిసార్లు మాల్వేర్ సోకుతుంది. ఈ హానికరమైన కంటెంట్, మాల్వేర్ పంపిణీదారుగా ప్రసిద్ధిగాంచిన <ph name="SUBRESOURCE_HOST" /> నుండి సంక్రమిస్తుంది.</translation> @@ -1941,7 +1941,7 @@ <translation id="6316226860534107313">స్కూటర్లు & మోపెడ్లు</translation> <translation id="63172326633386613">యాక్సెసిబిలిటీ సెట్టింగ్లను మేనేజ్ చేయండి</translation> <translation id="6319249456820053699">కెమెరాలు & క్యామ్కార్డర్లు</translation> -<translation id="6321917430147971392">మీ DNS సెట్టింగ్లను తనిఖీ చేయండి</translation> +<translation id="6321917430147971392">మీ DNS సెట్టింగ్లను చెక్ చేయండి</translation> <translation id="6322182122604171028">Windows Helloను ఉపయోగించడం సాధ్యం కాలేదు</translation> <translation id="6326947323444967009">iOS సెట్టింగ్లలో Chromeను సిస్టమ్ ఆటోమేటిక్ బ్రౌజర్గా సెట్ చేయండి</translation> <translation id="6328639280570009161">నెట్వర్క్ సూచనను నిలిపివేసి ప్రయత్నించండి</translation> @@ -1956,7 +1956,7 @@ <translation id="6355392890578844978">ఈ బ్రౌజర్ కంపెనీ లేదా ఇతర సంస్థ ద్వారా మేనేజ్ చేయబడదు. ఈ పరికరంలోని యాక్టివిటీని Chromium వెలుపల మేనేజ్ చేస్తుండవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> <translation id="6358450015545214790">దీని అర్ధం ఏమిటి?</translation> <translation id="6361757823711327522">B7</translation> -<translation id="6364095313648930329"><ph name="BEGIN_LINK" />ప్రాక్సీ, ఫైర్వాల్ మరియు సెక్యూర్ DNS కాన్ఫిగరేషన్ను తనిఖీ చేయడం<ph name="END_LINK" /></translation> +<translation id="6364095313648930329"><ph name="BEGIN_LINK" />ప్రాక్సీ, ఫైర్వాల్ మరియు సెక్యూర్ DNS కాన్ఫిగరేషన్ను చెక్ చేయడం<ph name="END_LINK" /></translation> <translation id="6366710531182496394">ఎడమవైపు డ్యుయల్ స్టేపుల్</translation> <translation id="6377268785556383139">'<ph name="SEARCH_TEXT" />' అనే దానికి 1 ఫలితం మాత్రమే లభించింది</translation> <translation id="6380497234672085559">A0</translation> @@ -2512,7 +2512,7 @@ <translation id="7880146494886811634">అడ్రస్ను సేవ్ చేయండి</translation> <translation id="7882421473871500483">గోధుమ రంగు</translation> <translation id="7882995332186050355">సరుకు రవాణా చేసే ట్రక్కులు & ట్రయిలర్లు</translation> -<translation id="7887683347370398519">మీ CVCని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation> +<translation id="7887683347370398519">మీ CVCని చెక్ చేసి, మళ్లీ ప్రయత్నించండి</translation> <translation id="7887885240995164102">చిత్రంలో చిత్రం మోడ్లోకి ప్రవేశిస్తుంది</translation> <translation id="7888575728750733395">ప్రింట్ రెండరింగ్ ఇంటెంట్</translation> <translation id="7894280532028510793">స్పెల్లింగ్ సరైనది అయితే, <ph name="BEGIN_LINK" />నెట్వర్క్ సమస్య విశ్లేషణలను రన్ చేయడానికి ట్రై చేయండి<ph name="END_LINK" />.</translation> @@ -2529,7 +2529,7 @@ <translation id="7939744324936979484">జానపద & సాంప్రదాయ సంగీతం</translation> <translation id="7942349550061667556">ఎరుపు</translation> <translation id="7943893128817522649">అనేక ఫైళ్లను ఆటోమేటిక్గా డౌన్లోడ్ చేయడానికి సైట్ అనుమతి అడగవచ్చు</translation> -<translation id="7947285636476623132">మీ గడువు ముగింపు సంవత్సరాన్ని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation> +<translation id="7947285636476623132">మీ గడువు ముగింపు సంవత్సరాన్ని చెక్ చేసి, మళ్లీ ప్రయత్నించండి</translation> <translation id="7947813448670013867"><ph name="SEE_CHROME_TIPS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ఫీచర్ల గురించి తెలుసుకోవడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation> <translation id="7950027195171824198">Chrome సెట్టింగ్లలో మీ కుక్కీ ప్రాధాన్యతలను మేనేజ్ చేయండి</translation> <translation id="7951415247503192394">(32-బిట్)</translation> @@ -2868,7 +2868,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_tr.xtb b/components/strings/components_strings_tr.xtb index 9bcb1081..86a59585 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Okuma listesi</translation> <translation id="1264309058268477500">Alternatif</translation> <translation id="1264974993859112054">Spor</translation> +<translation id="1266469291454105242">Cihazda kilit açma</translation> <translation id="1269516672602708785">Google Sites'ta hızlıca yeni bir site oluşturun</translation> <translation id="1270502636509132238">Alma Yöntemi</translation> <translation id="1281476433249504884">Yığınlayıcı 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Buluşma ve kişisel ilanlar</translation> <translation id="1753706481035618306">Sayfa numarası</translation> <translation id="1755621011177747277">Evlat edinme</translation> +<translation id="1756026472674246267">Bağlantıyı Yeni Sekmede Aç</translation> <translation id="175656076281618225">Sihir</translation> <translation id="1757773103848038814">Sabit Aralıklı Yazı Tipi</translation> <translation id="1763864636252898013">Bu sunucu <ph name="DOMAIN" /> olduğunu kanıtlayamadı. cihazınızın işletim sistemi, sunucunun güvenlik sertifikasına güvenmiyor. Bu durum, bir yanlış yapılandırmadan veya bağlantıya müdahale eden bir saldırgandan kaynaklanıyor olabilir.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Ödemeyi iptal et</translation> <translation id="2148613324460538318">Kart Ekle</translation> <translation id="2149968176347646218">Bağlantı güvenli değil</translation> +<translation id="2153609454945889823">AR için Google Play Hizmetleri yüklensin mi?</translation> <translation id="2154054054215849342">Senkronizasyon alan adınızda kullanılamıyor</translation> <translation id="2154484045852737596">Kartı düzenle</translation> <translation id="2161656808144014275">Metin</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Sürüm dizesini kopyala</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> numaralı kartın CVC kodunu girin</translation> <translation id="3234666976984236645">Her zaman bu sitedeki önemli içeriği algıla</translation> +<translation id="3238395604961564389">Bağlantıyı Gizli Pencere'de Aç</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tarayıcınızın görünümünü özelleştirmek için sekmeye, ardından Enter'a basın</translation> <translation id="3240791268468473923">Eşleşmeyen güvenli ödeme kimlik bilgisi sayfası açıldı</translation> <translation id="324180406144491771">"<ph name="HOST_NAME" />" bağlantıları engellenmiş</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">İş sayfaları</translation> <translation id="3532844647053365774"><ph name="HOST" />, mikrofonunuzu kullanmak istiyor</translation> <translation id="3533328374079021623">Posta kutusu 5</translation> +<translation id="3542768452570884558">Bağlantıyı Yeni Pencerede Aç</translation> <translation id="3550112004925580947">Konaklama sektörü</translation> <translation id="3552297013052089404">Sans-Serif Yazı Tipi</translation> <translation id="3558573058928565255">Gündüz</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Liseler ve üniversiteler</translation> <translation id="4056223980640387499">Sepya Tonu</translation> <translation id="4058922952496707368">"<ph name="SUBKEY" />" anahtarı: <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Kartları daha hızlı onaylamak için cihazda kilit açma kullanın</translation> <translation id="4067098466788473230">Eğitim yardımları ve burslar</translation> <translation id="4067263367174615723">C1 (Zarf)</translation> <translation id="4067947977115446013">Geçerli Adres Ekleyin</translation> <translation id="4072193657607981494">Politikalar yükleniyor</translation> <translation id="4072486802667267160">Ödemeniz işlenirken bir hata oluştu. Lütfen tekrar deneyin.</translation> +<translation id="4073376909608563327">Cihazda kilit açma kullanılamadı</translation> <translation id="4073797364926776829">Kartı göster</translation> <translation id="4075732493274867456">İstemci ve sunucu, ortak bir SSL protokolü sürümünü veya şifre setini desteklemiyor.</translation> <translation id="4079302484614802869">Proxy yapılandırması sabit proxy sunucuları değil, bir .pac komut dosyası URL'sini kullanmak üzere ayarlandı.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Chrome geçmişimi göster</translation> <translation id="484462545196658690">Auto</translation> <translation id="484671803914931257"><ph name="MERCHANT_NAME" /> ve diğer satıcılardan indirimli alışveriş yapın</translation> +<translation id="484988093836683706">Cihazda kilit açmayı kullan</translation> <translation id="4850886885716139402">Görüntüle</translation> <translation id="4852429274334674023">İşletim sistemleri</translation> <translation id="485316830061041779">Almanca</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Açık</translation> <translation id="5921639886840618607">Kart Google Hesabı'na kaydedilsin mi?</translation> <translation id="5922853866070715753">Tamamlanmak üzere</translation> +<translation id="5923492272538889093">CVC yerine cihazda kilit açma kullanılsın mı?</translation> <translation id="5928444777041341328">Ev ve bahçe</translation> <translation id="5932224571077948991">Site, araya giren veya yanıltıcı reklamlar gösteriyor</translation> <translation id="5937560539988385583">Sayfa çevrildi</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Google şifresini değiştir</translation> <translation id="6433490469411711332">İletişim bilgilerini düzenle</translation> <translation id="6433595998831338502"><ph name="HOST_NAME" /> bağlanmayı reddetti.</translation> +<translation id="6433797564277305076">Bundan böyle cihazda kilit açma kullanarak kartlarınızı daha hızlı onaylayın</translation> <translation id="6440503408713884761">Yoksayıldı</translation> <translation id="6443406338865242315">Hangi uzantıları ve eklentileri yüklediğiniz</translation> <translation id="6446163441502663861">Kahu (Zarf)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Bu kart şu anda kaydedilemiyor}other{Bu kartlar şu anda kaydedilemiyor}}</translation> <translation id="7053983685419859001">Engelle</translation> <translation id="7058163556978339998"><ph name="BROWSER" />, bu web sitesinin sertifikasının <ph name="ISSUER" /> tarafından yayınlandığını doğruladı.</translation> +<translation id="7058774143982824355">CSV Şifre Ayrıştırma Hizmeti</translation> <translation id="7061777300866737982">Ev güvenliği</translation> <translation id="7062635574500127092">Turkuaz</translation> <translation id="706295145388601875">Chrome ayarlarında adres ekleyip yönetin</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Klasik rock ve eski şarkılar</translation> <translation id="7697066736081121494">Prc8 (Zarf)</translation> <translation id="769721561045429135">Şu anda, yalnızca bu cihazda kullanılabilen kartlarınız var. Kartları incelemek için Devam'ı tıklayın.</translation> +<translation id="7698864304447945242">AR için Google Play Hizmetleri güncellensin mi?</translation> <translation id="7699293099605015246">Makaleler şu anda kullanılamıyor</translation> <translation id="7701040980221191251">Yok</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" /><ph name="SITE" /> sitesine ilerle (güvenli değil)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Kartı Düzenleyin</translation> <translation id="7734285854693414638">Google Formlar'da hızlıca yeni bir form oluşturun</translation> <translation id="773466115871691567"><ph name="SOURCE_LANGUAGE" /> dilindeki sayfaları her zaman çevir</translation> +<translation id="7736959720849233795">Bağlantı Adresini Kopyala</translation> <translation id="7740996059027112821">Standart</translation> <translation id="77424286611022110">Bu site, araya giren veya yanıltıcı reklamlar gösteriyor. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Tehlikeli içerik engellendi.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 608d440..e2c1f93 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Список читання</translation> <translation id="1264309058268477500">Альтернативний</translation> <translation id="1264974993859112054">Спорт</translation> +<translation id="1266469291454105242">Розблокування пристрою</translation> <translation id="1269516672602708785">Швидко створюйте нові сайти в Google Сайтах</translation> <translation id="1270502636509132238">Спосіб отримання</translation> <translation id="1281476433249504884">Накопичувач 1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Побачення й особисті зустрічі</translation> <translation id="1753706481035618306">Номер сторінки</translation> <translation id="1755621011177747277">Усиновлення</translation> +<translation id="1756026472674246267">Відкрити посилання в новій вкладці</translation> <translation id="175656076281618225">Фокусники й ілюзіоністи</translation> <translation id="1757773103848038814">Моноширинний шрифт</translation> <translation id="1763864636252898013">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Операційна система вашого пристрою не вважає його сертифікат безпеки надійним. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Скасувати оплату</translation> <translation id="2148613324460538318">Додати картку</translation> <translation id="2149968176347646218">З'єднання ненадійне</translation> +<translation id="2153609454945889823">Установити Сервіси Google Play для AR?</translation> <translation id="2154054054215849342">Синхронізація недоступна для вашого домену</translation> <translation id="2154484045852737596">Редагувати картку</translation> <translation id="2161656808144014275">Текст</translation> @@ -832,6 +835,7 @@ <translation id="3229277193950731405">Копіювати сегмент з інформацією про версію</translation> <translation id="323107829343500871">Ввести код CVC картки <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Завжди виявляти важливий вміст на цьому сайті</translation> +<translation id="3238395604961564389">Відкрити посилання у Вікні в режимі анонімного перегляду</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб налаштувати вигляд веб-переглядача</translation> <translation id="3240791268468473923">Відкрито нижній екран невідповідності облікових даних для безпечних платежів</translation> <translation id="324180406144491771">Посилання <ph name="HOST_NAME" /> заблоковано</translation> @@ -945,6 +949,7 @@ <translation id="3531780078352352885">Аркуші вихідних даних</translation> <translation id="3532844647053365774">Сайт <ph name="HOST" /> хоче отримати доступ до вашого мікрофона</translation> <translation id="3533328374079021623">Поштова скринька 5</translation> +<translation id="3542768452570884558">Відкрити посилання в новому вікні</translation> <translation id="3550112004925580947">Сфера обслуговування</translation> <translation id="3552297013052089404">Шрифт Sans Serif</translation> <translation id="3558573058928565255">День</translation> @@ -1115,11 +1120,13 @@ <translation id="4040350669425716613">Коледжі й університети</translation> <translation id="4056223980640387499">Сепія</translation> <translation id="4058922952496707368">Ключ "<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Використовувати функцію розблокування пристрою, щоб швидше підтверджувати картки</translation> <translation id="4067098466788473230">Навчальні гранти та стипендії</translation> <translation id="4067263367174615723">C1 (конверт)</translation> <translation id="4067947977115446013">Додайте дійсну адресу</translation> <translation id="4072193657607981494">Завантаження правил</translation> <translation id="4072486802667267160">Не вдалось обробити ваше замовлення. Повторіть спробу.</translation> +<translation id="4073376909608563327">Не вдалося використати функцію розблокування пристрою</translation> <translation id="4073797364926776829">Переглянути картку</translation> <translation id="4075732493274867456">Клієнт і сервер підтримують різні версії протоколу SSL або набору шифрів.</translation> <translation id="4079302484614802869">Конфігурацію проксі-сервера налаштовано на використання URL-адреси сценарію .pac, а не фіксованих проксі-серверів.</translation> @@ -1412,6 +1419,7 @@ <translation id="4840250757394056958">Переглянути історію Chrome</translation> <translation id="484462545196658690">Автоматично</translation> <translation id="484671803914931257">Отримайте знижку в продавця "<ph name="MERCHANT_NAME" />" та інших магазинах</translation> +<translation id="484988093836683706">Використовувати функцію розблокування пристрою</translation> <translation id="4850886885716139402">Перегляд</translation> <translation id="4852429274334674023">Операційні системи</translation> <translation id="485316830061041779">Німецька</translation> @@ -1799,6 +1807,7 @@ <translation id="5921185718311485855">Увімкнено</translation> <translation id="5921639886840618607">Зберегти картку в обліковому записі Google?</translation> <translation id="5922853866070715753">Майже готово</translation> +<translation id="5923492272538889093">Використовувати функцію розблокування пристрою замість коду CVC?</translation> <translation id="5928444777041341328">Дім і сад</translation> <translation id="5932224571077948991">Сайт показує нав’язливі чи оманливі оголошення</translation> <translation id="5937560539988385583">Сторінку перекладено</translation> @@ -1972,6 +1981,7 @@ <translation id="643051589346665201">Змінити пароль Google</translation> <translation id="6433490469411711332">Змінити контактні дані</translation> <translation id="6433595998831338502">Хост <ph name="HOST_NAME" /> відхилив запит на з’єднання.</translation> +<translation id="6433797564277305076">Відтепер ви можете підтверджувати картки швидше за допомогою функції розблокування пристрою</translation> <translation id="6440503408713884761">Ігнорується</translation> <translation id="6443406338865242315">встановлені розширення та плагіни;</translation> <translation id="6446163441502663861">Kahu (конверт)</translation> @@ -2178,6 +2188,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Зараз не вдається зберегти цю картку}one{Зараз не вдається зберегти ці картки}few{Зараз не вдається зберегти ці картки}many{Зараз не вдається зберегти ці картки}other{Зараз не вдається зберегти ці картки}}</translation> <translation id="7053983685419859001">Блокувати</translation> <translation id="7058163556978339998">Веб-переглядач <ph name="BROWSER" /> підтвердив, що сертифікат цьому сайту надала компанія <ph name="ISSUER" />.</translation> +<translation id="7058774143982824355">Сервіс для синтаксичного аналізу файлу CSV з паролями</translation> <translation id="7061777300866737982">Домашня безпека й захист</translation> <translation id="7062635574500127092">Бірюзовий</translation> <translation id="706295145388601875">Додайте адреси та керуйте ними в налаштуваннях Chrome</translation> @@ -2442,6 +2453,7 @@ <translation id="7696089921647603491">Класичний рок і старі пісні</translation> <translation id="7697066736081121494">Prc8 (конверт)</translation> <translation id="769721561045429135">Зараз у вас є картки, які можна використовувати лише на цьому пристрої. Натисніть "Продовжити", щоб переглянути їх.</translation> +<translation id="7698864304447945242">Оновити Сервіси Google Play для AR?</translation> <translation id="7699293099605015246">Зараз статті недоступні</translation> <translation id="7701040980221191251">Немає</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Перейти на сайт <ph name="SITE" /> (небезпечно)<ph name="END_LINK" /></translation> @@ -2454,6 +2466,7 @@ <translation id="7723047071702270851">Відредагуйте картку</translation> <translation id="7734285854693414638">Швидко створюйте нові форми в Google Формах</translation> <translation id="773466115871691567">Завжди перекладати сторінки такою мовою: <ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Копіювати адресу посилання</translation> <translation id="7740996059027112821">Стандартно</translation> <translation id="77424286611022110">Цей сайт показує нав’язливі й оманливі оголошення. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Заблоковано небезпечний вміст.</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index ea59900..00a9c58 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -580,7 +580,7 @@ <translation id="2505268675989099013">保护帐号</translation> <translation id="2509167091171468975">食品杂货零售店</translation> <translation id="2512101340618156538">不得使用(默认)</translation> -<translation id="2512413427717747692">将 Chrome 设为 默认浏览器的按钮,按下 Enter 键即可在 iOS 设置中将 Chrome 设置为系统的默认浏览器</translation> +<translation id="2512413427717747692">“将 Chrome 设为默认浏览器”按钮,按下 Enter 键即可在 iOS 设置中将 Chrome 设置为系统的默认浏览器</translation> <translation id="2515629240566999685">检查您所在区域的网络信号</translation> <translation id="2515761554693942801">您已选择在使用 <ph name="PROVIDER_ORIGIN" /> 的网站上通过触控 ID 来验证身份。此提供商可能已存储您的付款方式信息,不过您可以<ph name="LINK_TEXT" />相应信息。</translation> <translation id="2521385132275182522">钉装(右下角)</translation> @@ -882,7 +882,7 @@ <translation id="3366477098757335611">查看您的卡</translation> <translation id="3369192424181595722">时钟错误</translation> <translation id="3369459162151165748">车辆零部件与配件</translation> -<translation id="3371064404604898522">将 Chrome 设置为默认浏览器</translation> +<translation id="3371064404604898522">将 Chrome 设为默认浏览器</translation> <translation id="337363190475750230">已取消配置</translation> <translation id="3375754925484257129">运行 Chrome 安全检查</translation> <translation id="3377144306166885718">服务器使用的 TLS 版本已过时。</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index d85d8d5..214bf98 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -116,6 +116,7 @@ <translation id="1263231323834454256">Uhlu lokufunda</translation> <translation id="1264309058268477500">Okunye</translation> <translation id="1264974993859112054">Ezemidlalo</translation> +<translation id="1266469291454105242">Ukuvula idivayisi</translation> <translation id="1269516672602708785">Dala isayithi elisha ngokushesha ku-Google Sites</translation> <translation id="1270502636509132238">Indlela yokulandwa</translation> <translation id="1281476433249504884">Isitaki esingu-1</translation> @@ -330,6 +331,7 @@ <translation id="1753068535428855445">Ukuthandana nobuntu</translation> <translation id="1753706481035618306">Inombolo yekhasi</translation> <translation id="1755621011177747277">Ukuthola</translation> +<translation id="1756026472674246267">Vula Ilinki Kuthebhu Entsha</translation> <translation id="175656076281618225">Umlingo</translation> <translation id="1757773103848038814">Ifonti ye-Monospace</translation> <translation id="1763864636252898013">Le seva ayikwazanga ukukhombisa ukuthi iyi-<ph name="DOMAIN" />; isitifiketi sayo sokuvikeleka asithenjiwe isistimu yokusebenza yedivayisi yakho. Lokhu kungenzeka kubangelwe ukulungisa okungalungile noma umhlaseli uzama ukufinyelela uxhumo lwakho.</translation> @@ -455,6 +457,7 @@ <translation id="214556005048008348">Khansela inkokhelo</translation> <translation id="2148613324460538318">Engeza ikhadi</translation> <translation id="2149968176347646218">Ukuxhumeka akuvikelekile</translation> +<translation id="2153609454945889823">Faka i-Google Play Services for AR?</translation> <translation id="2154054054215849342">Ukuvumelanisa akutholakali kusizinda sakho</translation> <translation id="2154484045852737596">Hlela ikhadi</translation> <translation id="2161656808144014275">Umbhalo</translation> @@ -830,6 +833,7 @@ <translation id="3229277193950731405">Kopisha iyunithi yezinhlamvu yohlobo</translation> <translation id="323107829343500871">Faka i-CVC ye-<ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Njalo thola okuqukethwe okubalulekile kuleli sayithi</translation> +<translation id="3238395604961564389">Vula Ilinki Kuwindi le-Incognito</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Cindezela u-tab bese u-Enter ukuze wenze ukubukeka kwe-browser yakho ngendlela oyifisayo</translation> <translation id="3240791268468473923">Imfanelo yokukhokha evikelekile yeshidi lemfanelo elingafani ivuliwe</translation> <translation id="324180406144491771">Amalinki “ka-<ph name="HOST_NAME" />” avinjiwe</translation> @@ -943,6 +947,7 @@ <translation id="3531780078352352885">Amashidi omsebenzi</translation> <translation id="3532844647053365774">I-<ph name="HOST" /> ifuna ukusebenzisa imakrofoni yakho</translation> <translation id="3533328374079021623">Ibhokisi lemeyili elingu-5</translation> +<translation id="3542768452570884558">Vula Ilinki Ngewindi Elisha</translation> <translation id="3550112004925580947">Umsebenzi wezicolo nokuphana ezihambini</translation> <translation id="3552297013052089404">I-Fonti ye-Sans-serif</translation> <translation id="3558573058928565255">Isikhathi sasemini</translation> @@ -1112,11 +1117,13 @@ <translation id="4040350669425716613">Amakolishi namanyuvesi</translation> <translation id="4056223980640387499">I-Sepia</translation> <translation id="4058922952496707368">Ukhiye we-"<ph name="SUBKEY" />": <ph name="ERROR" /></translation> +<translation id="4063924980214801036">Sebenzisa ukuvula idivayisi ukuze uqinisekise amakhadi ngokushesha</translation> <translation id="4067098466788473230">Izimali zokufunda nezokufundela umsebenzi</translation> <translation id="4067263367174615723">C1 (Envelope)</translation> <translation id="4067947977115446013">Engeza ikheli elivumelekile</translation> <translation id="4072193657607981494">Ilayisha izinqubomgomo</translation> <translation id="4072486802667267160">Kube nenkinga ekucubunguleni i-oda lakho. Sicela uzame futhi.</translation> +<translation id="4073376909608563327">Ayikwazanga ukusebenzisa ukuvula idivayisi</translation> <translation id="4073797364926776829">Buka ikhadi</translation> <translation id="4075732493274867456">Iklayenti neseva azisekeli inguqulo yephrothokholi ejwayelekile ye-SSL noma i-cipher suite.</translation> <translation id="4079302484614802869">Ukulungiselelwa kommeleli kusethelwe ukuze kusebenzise i-URL yesikripthi se-.pac, hhayi amaseva alibamba agxilisiwe.</translation> @@ -1409,6 +1416,7 @@ <translation id="4840250757394056958">Buka umlando wakho we-Chrome</translation> <translation id="484462545196658690">Okuzenzakalelayo</translation> <translation id="484671803914931257">Thola isaphulelo ku-<ph name="MERCHANT_NAME" /> nokwengeziwe</translation> +<translation id="484988093836683706">Sebenzisa okokuvula idivayisi</translation> <translation id="4850886885716139402">Buka</translation> <translation id="4852429274334674023">Amasistimu okusebenza</translation> <translation id="485316830061041779">German</translation> @@ -1796,6 +1804,7 @@ <translation id="5921185718311485855">Vuliwe</translation> <translation id="5921639886840618607">Londoloza ikhadi ku-akhawunti ye-Google?</translation> <translation id="5922853866070715753">Usuzoqeda</translation> +<translation id="5923492272538889093">Sebenzisa okokuvula idivayisi esikhundleni se-CVC?</translation> <translation id="5928444777041341328">Ikhaya nengadi</translation> <translation id="5932224571077948991">Isayithi libonisa izikhangiso ezingathandeki noma ezidukisayo</translation> <translation id="5937560539988385583">Ikhasi lihunyushiwe</translation> @@ -1969,6 +1978,7 @@ <translation id="643051589346665201">Shintsha iphasiwedi ye-Google</translation> <translation id="6433490469411711332">Hlela ulwazi loxhumana naye</translation> <translation id="6433595998831338502">I-<ph name="HOST_NAME" /> inqabe ukuxhumeka.</translation> +<translation id="6433797564277305076">Qinisekisa amakhadi akho ngokushesha ngokusebenzisa ukuvula idivayisi kusukela manje</translation> <translation id="6440503408713884761">Izitshiwe</translation> <translation id="6443406338865242315">Iziphi izandiso nama-plugins owafakile</translation> <translation id="6446163441502663861">Kahu (Envelope)</translation> @@ -2175,6 +2185,7 @@ <translation id="705310974202322020">{NUM_CARDS,plural, =1{Leli khadi alikwazi ukulondolozwa khona manje}one{Lawa makhadi awakwazi ukulondolozwa khona manje}other{Lawa makhadi awakwazi ukulondolozwa khona manje}}</translation> <translation id="7053983685419859001">Vimba</translation> <translation id="7058163556978339998">I-<ph name="BROWSER" /> iqinisekise ukuthi i-<ph name="ISSUER" /> ikhiphe isitifiketi sale webhusayithi.</translation> +<translation id="7058774143982824355">Isevisi Yephasiwedi Yomhlahleli we-CSV</translation> <translation id="7061777300866737982">Ukuphepha nokuvikeleka kwasekhaya</translation> <translation id="7062635574500127092">I-Teal</translation> <translation id="706295145388601875">Engeza futhi phatha amakheli kumasethingi we-Chrome</translation> @@ -2439,6 +2450,7 @@ <translation id="7696089921647603491">I-rock yakudala nezakudala</translation> <translation id="7697066736081121494">Prc8 (Envelope)</translation> <translation id="769721561045429135">Khona manje, unamakhadi angasetshenziswa kuphela kule divayisi. Chofoza okuthi Qhubeka ukuze ubuyekeze amakhadi.</translation> +<translation id="7698864304447945242">Ubuyekeza i-Google Play Services for AR?</translation> <translation id="7699293099605015246">Ama-athikili awatholakali okwamanje</translation> <translation id="7701040980221191251">Lutho</translation> <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Qhubekala ku-<ph name="SITE" /> (akuphephile)<ph name="END_LINK" /></translation> @@ -2451,6 +2463,7 @@ <translation id="7723047071702270851">Hlela ikhadi</translation> <translation id="7734285854693414638">Dala ifomu elisha ngokushesha ku-Google Forms</translation> <translation id="773466115871691567">Njalo humusha amakhasi ngesi-<ph name="SOURCE_LANGUAGE" /></translation> +<translation id="7736959720849233795">Kopisha Ikheli Lelinki</translation> <translation id="7740996059027112821">Okujwayelekile</translation> <translation id="77424286611022110">Leli sayithi libonisa izikhangiso ezingathandeki noma ezidukisayo. <ph name="LEARN_MORE_LINK_TEXT" /></translation> <translation id="774634243536837715">Okuqukethwe okuyingozi kuvinjelwe.</translation>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 4e97987..eb09730 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1385,6 +1385,33 @@ "portal/portal.h", "portal/portal_navigation_throttle.cc", "portal/portal_navigation_throttle.h", + "preloading/prefetch/prefetch_container.cc", + "preloading/prefetch/prefetch_container.h", + "preloading/prefetch/prefetch_cookie_listener.cc", + "preloading/prefetch/prefetch_cookie_listener.h", + "preloading/prefetch/prefetch_document_manager.cc", + "preloading/prefetch/prefetch_document_manager.h", + "preloading/prefetch/prefetch_features.cc", + "preloading/prefetch/prefetch_features.h", + "preloading/prefetch/prefetch_from_string_url_loader.cc", + "preloading/prefetch/prefetch_from_string_url_loader.h", + "preloading/prefetch/prefetch_network_context.cc", + "preloading/prefetch/prefetch_network_context.h", + "preloading/prefetch/prefetch_network_context_client.cc", + "preloading/prefetch/prefetch_network_context_client.h", + "preloading/prefetch/prefetch_params.cc", + "preloading/prefetch/prefetch_params.h", + "preloading/prefetch/prefetch_proxy_configurator.cc", + "preloading/prefetch/prefetch_proxy_configurator.h", + "preloading/prefetch/prefetch_service.cc", + "preloading/prefetch/prefetch_service.h", + "preloading/prefetch/prefetch_status.h", + "preloading/prefetch/prefetch_type.cc", + "preloading/prefetch/prefetch_type.h", + "preloading/prefetch/prefetch_url_loader_interceptor.cc", + "preloading/prefetch/prefetch_url_loader_interceptor.h", + "preloading/prefetch/prefetched_mainframe_response_container.cc", + "preloading/prefetch/prefetched_mainframe_response_container.h", "preloading/preloading_attempt_impl.cc", "preloading/preloading_attempt_impl.h", "preloading/preloading_data_impl.cc", @@ -1932,33 +1959,6 @@ "sms/user_consent_handler.h", "sms/webotp_service.cc", "sms/webotp_service.h", - "speculation_rules/prefetch/prefetch_container.cc", - "speculation_rules/prefetch/prefetch_container.h", - "speculation_rules/prefetch/prefetch_cookie_listener.cc", - "speculation_rules/prefetch/prefetch_cookie_listener.h", - "speculation_rules/prefetch/prefetch_document_manager.cc", - "speculation_rules/prefetch/prefetch_document_manager.h", - "speculation_rules/prefetch/prefetch_features.cc", - "speculation_rules/prefetch/prefetch_features.h", - "speculation_rules/prefetch/prefetch_from_string_url_loader.cc", - "speculation_rules/prefetch/prefetch_from_string_url_loader.h", - "speculation_rules/prefetch/prefetch_network_context.cc", - "speculation_rules/prefetch/prefetch_network_context.h", - "speculation_rules/prefetch/prefetch_network_context_client.cc", - "speculation_rules/prefetch/prefetch_network_context_client.h", - "speculation_rules/prefetch/prefetch_params.cc", - "speculation_rules/prefetch/prefetch_params.h", - "speculation_rules/prefetch/prefetch_proxy_configurator.cc", - "speculation_rules/prefetch/prefetch_proxy_configurator.h", - "speculation_rules/prefetch/prefetch_service.cc", - "speculation_rules/prefetch/prefetch_service.h", - "speculation_rules/prefetch/prefetch_status.h", - "speculation_rules/prefetch/prefetch_type.cc", - "speculation_rules/prefetch/prefetch_type.h", - "speculation_rules/prefetch/prefetch_url_loader_interceptor.cc", - "speculation_rules/prefetch/prefetch_url_loader_interceptor.h", - "speculation_rules/prefetch/prefetched_mainframe_response_container.cc", - "speculation_rules/prefetch/prefetched_mainframe_response_container.h", "speculation_rules/speculation_host_impl.cc", "speculation_rules/speculation_host_impl.h", "speech/speech_recognition_dispatcher_host.cc",
diff --git a/content/browser/android/background_sync_network_observer_android.cc b/content/browser/android/background_sync_network_observer_android.cc index 7276839..446aa2d 100644 --- a/content/browser/android/background_sync_network_observer_android.cc +++ b/content/browser/android/background_sync_network_observer_android.cc
@@ -31,10 +31,8 @@ // Attach a Java BackgroundSyncNetworkObserver object. Its lifetime will be // scoped to the lifetime of this object. JNIEnv* env = base::android::AttachCurrentThread(); - base::android::ScopedJavaGlobalRef<jobject> obj( - Java_BackgroundSyncNetworkObserver_createObserver( - env, reinterpret_cast<jlong>(this))); - j_observer_.Reset(obj); + j_observer_ = Java_BackgroundSyncNetworkObserver_createObserver( + env, reinterpret_cast<jlong>(this)); } BackgroundSyncNetworkObserverAndroid::Observer::~Observer() { @@ -42,7 +40,6 @@ Java_BackgroundSyncNetworkObserver_removeObserver( env, j_observer_, reinterpret_cast<jlong>(this)); DCHECK_CURRENTLY_ON(BrowserThread::UI); - j_observer_.Release(); } void BackgroundSyncNetworkObserverAndroid::Observer::
diff --git a/content/browser/attribution_reporting/attribution_internals_browsertest.cc b/content/browser/attribution_reporting/attribution_internals_browsertest.cc index 4569ece..b2c69fc3 100644 --- a/content/browser/attribution_reporting/attribution_internals_browsertest.cc +++ b/content/browser/attribution_reporting/attribution_internals_browsertest.cc
@@ -588,7 +588,7 @@ EXPECT_CALL(*manager(), ClearData) .WillOnce([](base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data, base::OnceClosure done) { std::move(done).Run(); }); @@ -638,7 +638,7 @@ EXPECT_CALL(*manager(), ClearData(base::Time::Min(), base::Time::Max(), _, true, _)) .WillOnce([](base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data, base::OnceClosure done) { std::move(done).Run(); });
diff --git a/content/browser/attribution_reporting/attribution_manager.h b/content/browser/attribution_reporting/attribution_manager.h index 1837750e..0ad3994 100644 --- a/content/browser/attribution_reporting/attribution_manager.h +++ b/content/browser/attribution_reporting/attribution_manager.h
@@ -9,15 +9,12 @@ #include "base/callback_forward.h" #include "content/browser/attribution_reporting/attribution_report.h" +#include "content/public/browser/storage_partition.h" namespace base { class Time; } // namespace base -namespace url { -class Origin; -} // namespace url - namespace content { class AttributionDataHostManager; @@ -68,16 +65,15 @@ const std::vector<AttributionReport::Id>& ids, base::OnceClosure done) = 0; - // Deletes all data in storage for URLs matching |filter|, between - // |delete_begin| and |delete_end| time. + // Deletes all data in storage for storage keys matching `filter`, between + // `delete_begin` and `delete_end` time. // - // If |filter| is null, then consider all origins in storage as matching. - virtual void ClearData( - base::Time delete_begin, - base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, - bool delete_rate_limit_data, - base::OnceClosure done) = 0; + // If `filter` is null, then consider all storage keys in storage as matching. + virtual void ClearData(base::Time delete_begin, + base::Time delete_end, + StoragePartition::StorageKeyMatcherFunction filter, + bool delete_rate_limit_data, + base::OnceClosure done) = 0; }; } // namespace content
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc index b03e7bc..ec054bf6 100644 --- a/content/browser/attribution_reporting/attribution_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_manager_impl.cc
@@ -54,6 +54,7 @@ #include "content/public/common/content_switches.h" #include "storage/browser/quota/special_storage_policy.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/gurl.h" namespace content { @@ -131,13 +132,13 @@ base::MayBlock(), base::TaskShutdownBehavior::BLOCK_SHUTDOWN)); -bool IsOriginSessionOnly( +bool IsStorageKeySessionOnly( scoped_refptr<storage::SpecialStoragePolicy> storage_policy, - const url::Origin& origin) { + const blink::StorageKey& storage_key) { // TODO(johnidel): This conversion is unfortunate but necessary. Storage - // partition clear data logic uses Origin keyed deletion, while the storage - // policy uses GURLs. Ideally these would be coalesced. - const GURL& url = origin.GetURL(); + // partition clear data logic uses storage key keyed deletion, while the + // storage policy uses GURLs. Ideally these would be coalesced. + const GURL& url = storage_key.origin().GetURL(); if (storage_policy->IsStorageProtected(url)) return false; @@ -372,12 +373,12 @@ // Delete stored data for all session only origins given by // |special_storage_policy|. - base::RepeatingCallback<bool(const url::Origin&)> - session_only_origin_predicate = base::BindRepeating( - &IsOriginSessionOnly, std::move(special_storage_policy_)); + StoragePartition::StorageKeyMatcherFunction + session_only_storage_key_predicate = base::BindRepeating( + &IsStorageKeySessionOnly, std::move(special_storage_policy_)); attribution_storage_.AsyncCall(&AttributionStorage::ClearData) .WithArgs(base::Time::Min(), base::Time::Max(), - std::move(session_only_origin_predicate), + std::move(session_only_storage_key_predicate), /*delete_rate_limit_data=*/true); } @@ -639,7 +640,7 @@ void AttributionManagerImpl::ClearData( base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data, base::OnceClosure done) { attribution_storage_.AsyncCall(&AttributionStorage::ClearData)
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.h b/content/browser/attribution_reporting/attribution_manager_impl.h index b068252..d2f94a9 100644 --- a/content/browser/attribution_reporting/attribution_manager_impl.h +++ b/content/browser/attribution_reporting/attribution_manager_impl.h
@@ -24,6 +24,7 @@ #include "content/browser/attribution_reporting/attribution_report_sender.h" #include "content/browser/attribution_reporting/attribution_storage.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/abseil-cpp/absl/types/variant.h" @@ -36,10 +37,6 @@ class SpecialStoragePolicy; } // namespace storage -namespace url { -class Origin; -} // namespace url - namespace content { class AggregatableReport; @@ -103,7 +100,7 @@ base::OnceClosure done) override; void ClearData(base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data, base::OnceClosure done) override;
diff --git a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc index 97003b9c..b9619a4 100644 --- a/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc +++ b/content/browser/attribution_reporting/attribution_manager_impl_unittest.cc
@@ -867,7 +867,7 @@ attribution_manager_->ClearData( start, start + base::Minutes(1), base::BindLambdaForTesting( - [match_url](const url::Origin& _) { return match_url; }), + [match_url](const blink::StorageKey& _) { return match_url; }), /*delete_rate_limit_data=*/true, run_loop.QuitClosure()); run_loop.Run(); @@ -1226,7 +1226,7 @@ base::RunLoop run_loop; attribution_manager_->ClearData( base::Time::Min(), base::Time::Max(), - base::BindRepeating([](const url::Origin& _) { return false; }), + base::BindRepeating([](const blink::StorageKey& _) { return false; }), /*delete_rate_limit_data=*/true, run_loop.QuitClosure()); run_loop.Run(); }
diff --git a/content/browser/attribution_reporting/attribution_storage.h b/content/browser/attribution_reporting/attribution_storage.h index ab9df8f..4601b92a 100644 --- a/content/browser/attribution_reporting/attribution_storage.h +++ b/content/browser/attribution_reporting/attribution_storage.h
@@ -12,12 +12,9 @@ #include "content/browser/attribution_reporting/attribution_report.h" #include "content/browser/attribution_reporting/storable_source.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace url { -class Origin; -} // namespace url - namespace content { class AttributionTrigger; @@ -119,19 +116,18 @@ // report time in storage, if any. virtual absl::optional<base::Time> AdjustOfflineReportTimes() = 0; - // Deletes all data in storage for URLs matching |filter|, between - // |delete_begin| and |delete_end| time. More specifically, this: + // Deletes all data in storage for storage keys matching `filter`, between + // `delete_begin` and `delete_end` time. More specifically, this: // 1. Deletes all sources within the time range. If any report is // attributed to this source it is also deleted. // 2. Deletes all reports within the time range. All sources // attributed to the report are also deleted. // - // Note: if |filter| is null, it means that all Origins should match. - virtual void ClearData( - base::Time delete_begin, - base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin& origin)> filter, - bool delete_rate_limit_data = true) = 0; + // Note: if `filter` is null, it means that all storage keys should match. + virtual void ClearData(base::Time delete_begin, + base::Time delete_end, + StoragePartition::StorageKeyMatcherFunction filter, + bool delete_rate_limit_data = true) = 0; }; } // namespace content
diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc index 39f4f79..ab93be9 100644 --- a/content/browser/attribution_reporting/attribution_storage_sql.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
@@ -52,6 +52,7 @@ #include "third_party/abseil-cpp/absl/numeric/int128.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/abseil-cpp/absl/types/variant.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/origin.h" namespace content { @@ -1584,7 +1585,7 @@ void AttributionStorageSql::ClearData( base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!LazyInit(DbCreationPolicy::kIgnoreIfAbsent)) @@ -1626,9 +1627,12 @@ int num_reports_deleted = 0; while (statement.Step()) { if (filter.is_null() || - filter.Run(DeserializeOrigin(statement.ColumnString(0))) || - filter.Run(DeserializeOrigin(statement.ColumnString(1))) || - filter.Run(DeserializeOrigin(statement.ColumnString(2)))) { + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(0)))) || + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(1)))) || + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(2))))) { source_ids_to_delete.emplace_back(statement.ColumnInt64(3)); if (statement.GetColumnType(4) != sql::ColumnType::kNull) { if (!DeleteReportInternal(AttributionReport::EventLevelData::Id( @@ -2362,7 +2366,7 @@ bool AttributionStorageSql::ClearAggregatableAttributionsForOriginsInRange( base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, std::vector<StoredSource::Id>& source_ids_to_delete) { DCHECK_LE(delete_begin, delete_end); @@ -2387,9 +2391,12 @@ while (statement.Step()) { if (filter.is_null() || - filter.Run(DeserializeOrigin(statement.ColumnString(0))) || - filter.Run(DeserializeOrigin(statement.ColumnString(1))) || - filter.Run(DeserializeOrigin(statement.ColumnString(2)))) { + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(0)))) || + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(1)))) || + filter.Run( + blink::StorageKey(DeserializeOrigin(statement.ColumnString(2))))) { source_ids_to_delete.emplace_back(statement.ColumnInt64(3)); if (statement.GetColumnType(4) != sql::ColumnType::kNull && !DeleteReportInternal(
diff --git a/content/browser/attribution_reporting/attribution_storage_sql.h b/content/browser/attribution_reporting/attribution_storage_sql.h index 3860110..88bded6 100644 --- a/content/browser/attribution_reporting/attribution_storage_sql.h +++ b/content/browser/attribution_reporting/attribution_storage_sql.h
@@ -21,6 +21,7 @@ #include "content/browser/attribution_reporting/rate_limit_table.h" #include "content/browser/attribution_reporting/stored_source.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" #include "sql/meta_table.h" namespace base { @@ -121,7 +122,7 @@ absl::optional<base::Time> AdjustOfflineReportTimes() override; void ClearData(base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data) override; void ClearAllDataAllTime(bool delete_rate_limit_data) @@ -284,9 +285,9 @@ // Aggregate Attribution: - // Deletes all aggregatable attribution data in storage for URLs matching - // `filter`, between `delete_begin` and `delete_end` time. More specifically, - // this: + // Deletes all aggregatable attribution data in storage for storage keys + // matching `filter`, between `delete_begin` and `delete_end` time. More + // specifically, this: // 1. Deletes all sources within the time range. If any aggregatable // attribution is attributed to this source it is also deleted. // 2. Deletes all aggregatable attributions within the time range. All sources @@ -297,7 +298,7 @@ [[nodiscard]] bool ClearAggregatableAttributionsForOriginsInRange( base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, std::vector<StoredSource::Id>& source_ids_to_delete) VALID_CONTEXT_REQUIRED(sequence_checker_);
diff --git a/content/browser/attribution_reporting/attribution_storage_sql_unittest.cc b/content/browser/attribution_reporting/attribution_storage_sql_unittest.cc index fadbdb0..c46e7d7 100644 --- a/content/browser/attribution_reporting/attribution_storage_sql_unittest.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql_unittest.cc
@@ -31,6 +31,7 @@ #include "sql/test/scoped_error_expecter.h" #include "sql/test/test_helpers.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" namespace content { @@ -328,8 +329,9 @@ // Use a time range that targets all triggers. storage()->ClearData( base::Time::Min(), base::Time::Max(), - base::BindRepeating(std::equal_to<url::Origin>(), - source.common_info().impression_origin())); + base::BindRepeating( + std::equal_to<blink::StorageKey>(), + blink::StorageKey(source.common_info().impression_origin()))); EXPECT_THAT(storage()->GetAttributionReports(base::Time::Max()), IsEmpty()); CloseDatabase(); @@ -379,8 +381,9 @@ // Use a time range that only intersects the last trigger. storage()->ClearData( base::Time::Now(), base::Time::Now(), - base::BindRepeating(std::equal_to<url::Origin>(), - source.common_info().impression_origin())); + base::BindRepeating( + std::equal_to<blink::StorageKey>(), + blink::StorageKey(source.common_info().impression_origin()))); EXPECT_THAT(storage()->GetAttributionReports(base::Time::Max()), IsEmpty()); CloseDatabase(); @@ -605,7 +608,8 @@ storage()->DeleteReport(AttributionReport::EventLevelData::Id(1))); storage()->ClearData( base::Time::Min(), base::Time::Max(), - base::BindRepeating(std::equal_to<url::Origin>(), impression_origin)); + base::BindRepeating(std::equal_to<blink::StorageKey>(), + blink::StorageKey(impression_origin))); CloseDatabase(); sql::Database raw_db; @@ -656,7 +660,8 @@ storage()->DeleteReport(AttributionReport::EventLevelData::Id(1))); storage()->ClearData( base::Time::Min(), base::Time::Max(), - base::BindRepeating(std::equal_to<url::Origin>(), conversion_origin)); + base::BindRepeating(std::equal_to<blink::StorageKey>(), + blink::StorageKey(conversion_origin))); CloseDatabase(); sql::Database raw_db;
diff --git a/content/browser/attribution_reporting/attribution_storage_unittest.cc b/content/browser/attribution_reporting/attribution_storage_unittest.cc index 92c6e88..b6f0177 100644 --- a/content/browser/attribution_reporting/attribution_storage_unittest.cc +++ b/content/browser/attribution_reporting/attribution_storage_unittest.cc
@@ -39,8 +39,10 @@ #include "content/browser/attribution_reporting/common_source_info.h" #include "content/browser/attribution_reporting/storable_source.h" #include "content/browser/attribution_reporting/stored_source.h" +#include "content/public/browser/storage_partition.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/numeric/int128.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/gurl.h" #include "url/origin.h" @@ -65,9 +67,10 @@ // Default delay for when a report should be sent for testing. constexpr base::TimeDelta kReportDelay = base::Milliseconds(5); -base::RepeatingCallback<bool(const url::Origin&)> GetMatcher( +StoragePartition::StorageKeyMatcherFunction GetMatcher( const url::Origin& to_delete) { - return base::BindRepeating(std::equal_to<url::Origin>(), to_delete); + return base::BindRepeating(std::equal_to<blink::StorageKey>(), + blink::StorageKey(to_delete)); } } // namespace @@ -710,7 +713,7 @@ .Build())); } - auto null_filter = base::RepeatingCallback<bool(const url::Origin&)>(); + auto null_filter = StoragePartition::StorageKeyMatcherFunction(); storage()->ClearData(base::Time::Now(), base::Time::Now(), null_filter); EXPECT_THAT(storage()->GetAttributionReports(base::Time::Max()), SizeIs(5)); } @@ -797,7 +800,7 @@ EXPECT_EQ(AttributionTrigger::EventLevelResult::kSuccess, MaybeCreateAndStoreEventLevelReport(DefaultTrigger())); - auto null_filter = base::RepeatingCallback<bool(const url::Origin&)>(); + auto null_filter = StoragePartition::StorageKeyMatcherFunction(); storage()->ClearData(base::Time::Min(), base::Time::Max(), null_filter); // Verify that everything is deleted. @@ -820,7 +823,7 @@ EXPECT_EQ(AttributionTrigger::EventLevelResult::kSuccess, MaybeCreateAndStoreEventLevelReport(DefaultTrigger())); - auto null_filter = base::RepeatingCallback<bool(const url::Origin&)>(); + auto null_filter = StoragePartition::StorageKeyMatcherFunction(); storage()->ClearData(base::Time(), base::Time::Max(), null_filter); // Verify that everything is deleted.
diff --git a/content/browser/attribution_reporting/attribution_test_utils.h b/content/browser/attribution_reporting/attribution_test_utils.h index 5796a2dc..b38051bf5 100644 --- a/content/browser/attribution_reporting/attribution_test_utils.h +++ b/content/browser/attribution_reporting/attribution_test_utils.h
@@ -321,7 +321,7 @@ ClearData, (base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter, + StoragePartition::StorageKeyMatcherFunction filter, bool delete_rate_limit_data, base::OnceClosure done), (override));
diff --git a/content/browser/attribution_reporting/rate_limit_table.cc b/content/browser/attribution_reporting/rate_limit_table.cc index c5b0f14f..24cf76b 100644 --- a/content/browser/attribution_reporting/rate_limit_table.cc +++ b/content/browser/attribution_reporting/rate_limit_table.cc
@@ -20,6 +20,7 @@ #include "sql/database.h" #include "sql/statement.h" #include "sql/transaction.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/origin.h" namespace content { @@ -289,7 +290,7 @@ sql::Database* db, base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter) { + StoragePartition::StorageKeyMatcherFunction filter) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (filter.is_null()) return ClearAllDataInRange(db, delete_begin, delete_end); @@ -316,9 +317,12 @@ while (select_statement.Step()) { int64_t rate_limit_id = select_statement.ColumnInt64(0); - if (filter.Run(DeserializeOrigin(select_statement.ColumnString(1))) || - filter.Run(DeserializeOrigin(select_statement.ColumnString(2))) || - filter.Run(DeserializeOrigin(select_statement.ColumnString(3)))) { + if (filter.Run(blink::StorageKey( + DeserializeOrigin(select_statement.ColumnString(1)))) || + filter.Run(blink::StorageKey( + DeserializeOrigin(select_statement.ColumnString(2)))) || + filter.Run(blink::StorageKey( + DeserializeOrigin(select_statement.ColumnString(3))))) { // See https://www.sqlite.org/isolation.html for why it's OK for this // DELETE to be interleaved in the surrounding SELECT. delete_statement.Reset(/*clear_bound_vars=*/false);
diff --git a/content/browser/attribution_reporting/rate_limit_table.h b/content/browser/attribution_reporting/rate_limit_table.h index 77f8b706..3eb905c0 100644 --- a/content/browser/attribution_reporting/rate_limit_table.h +++ b/content/browser/attribution_reporting/rate_limit_table.h
@@ -14,15 +14,12 @@ #include "base/time/time.h" #include "content/browser/attribution_reporting/stored_source.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" namespace sql { class Database; } // namespace sql -namespace url { -class Origin; -} // namespace url - namespace content { struct AttributionInfo; @@ -89,7 +86,7 @@ sql::Database* db, base::Time delete_begin, base::Time delete_end, - base::RepeatingCallback<bool(const url::Origin&)> filter); + StoragePartition::StorageKeyMatcherFunction filter); // Returns false on failure. [[nodiscard]] bool ClearDataForSourceIds( sql::Database* db,
diff --git a/content/browser/attribution_reporting/rate_limit_table_unittest.cc b/content/browser/attribution_reporting/rate_limit_table_unittest.cc index 50b88a1..fd720a5 100644 --- a/content/browser/attribution_reporting/rate_limit_table_unittest.cc +++ b/content/browser/attribution_reporting/rate_limit_table_unittest.cc
@@ -24,10 +24,12 @@ #include "content/browser/attribution_reporting/attribution_test_utils.h" #include "content/browser/attribution_reporting/rate_limit_result.h" #include "content/browser/attribution_reporting/stored_source.h" +#include "content/public/browser/storage_partition.h" #include "sql/database.h" #include "sql/statement.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/gurl.h" #include "url/origin.h" @@ -517,14 +519,14 @@ const char* desc; base::Time delete_min; base::Time delete_max; - base::RepeatingCallback<bool(const url::Origin&)> filter; + StoragePartition::StorageKeyMatcherFunction filter; std::vector<int64_t> expect_deleted; } kTestCases[] = { { "no deletions: filter never matches", base::Time::Min(), base::Time::Max(), - base::BindRepeating([](const url::Origin&) { return false; }), + base::BindRepeating([](const blink::StorageKey&) { return false; }), {}, }, { @@ -538,8 +540,9 @@ "1 deletion: time range and filter match for source origin", now + base::Milliseconds(1), base::Time::Max(), - base::BindRepeating([](const url::Origin& origin) { - return origin == url::Origin::Create(GURL("https://a.s1.test")); + base::BindRepeating([](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey::CreateFromStringForTesting( + "https://a.s1.test"); }), {3}, }, @@ -547,8 +550,9 @@ "2 deletions: filter matches for destination origin", base::Time::Min(), base::Time::Max(), - base::BindRepeating([](const url::Origin& origin) { - return origin == url::Origin::Create(GURL("https://b.d1.test")); + base::BindRepeating([](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey::CreateFromStringForTesting( + "https://b.d1.test"); }), {2, 4}, }, @@ -556,8 +560,9 @@ "1 deletion: filter matches for reporting origin", base::Time::Min(), base::Time::Max(), - base::BindRepeating([](const url::Origin& origin) { - return origin == url::Origin::Create(GURL("https://c.r.test")); + base::BindRepeating([](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey::CreateFromStringForTesting( + "https://c.r.test"); }), {3}, },
diff --git a/content/browser/browser_context_impl.cc b/content/browser/browser_context_impl.cc index 90e7e7a..7c2abe90 100644 --- a/content/browser/browser_context_impl.cc +++ b/content/browser/browser_context_impl.cc
@@ -14,7 +14,7 @@ #include "content/browser/browsing_data/browsing_data_remover_impl.h" #include "content/browser/download/download_manager_impl.h" #include "content/browser/permissions/permission_controller_impl.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include "content/browser/speech/tts_controller_impl.h" #include "content/browser/storage_partition_impl_map.h" #include "content/public/browser/browser_context.h"
diff --git a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc index 59d29a30..a4503477 100644 --- a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc +++ b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
@@ -12,6 +12,7 @@ #include "base/containers/contains.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "services/network/public/mojom/network_context.mojom.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" using net::registry_controlled_domains::GetDomainAndRegistry; using net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES; @@ -33,25 +34,26 @@ // 3. IsSubdomainOfARegistrableDomain(domain) - e.g. www.google.com // Types 1 and 2 are supported by RegistrableDomainFilterBuilder. Type 3 is not. -// True if the domain of |url| is in the deletelist, or isn't in the -// preservelist. The deletelist or preservelist is represented as |origins|, -// |registerable_domains|, and |mode|. -bool MatchesOrigin(const std::set<url::Origin>& origins, - const std::set<std::string>& registerable_domains, - BrowsingDataFilterBuilder::Mode mode, - const url::Origin& origin) { +// True if the domain of `url` is in the deletelist, or isn't in the +// preservelist. The deletelist or preservelist is represented as `origins`, +// `registerable_domains`, and `mode`. +bool MatchesStorageKey(const std::set<url::Origin>& origins, + const std::set<std::string>& registerable_domains, + BrowsingDataFilterBuilder::Mode mode, + const blink::StorageKey& storage_key) { bool is_delete_list = mode == BrowsingDataFilterBuilder::Mode::kDelete; - bool found_origin = base::Contains(origins, origin); + bool found_origin = base::Contains(origins, storage_key.origin()); if (found_origin) return is_delete_list; bool found_domain = false; if (!registerable_domains.empty()) { std::string registerable_domain = - GetDomainAndRegistry(origin, INCLUDE_PRIVATE_REGISTRIES); - found_domain = base::Contains( - registerable_domains, - registerable_domain == "" ? origin.host() : registerable_domain); + GetDomainAndRegistry(storage_key.origin(), INCLUDE_PRIVATE_REGISTRIES); + found_domain = + base::Contains(registerable_domains, registerable_domain == "" + ? storage_key.origin().host() + : registerable_domain); } return found_domain == is_delete_list; } @@ -62,8 +64,8 @@ bool is_cross_site_clear_site_data, const GURL& url) { DCHECK(!is_cross_site_clear_site_data); - return MatchesOrigin(origins, registerable_domains, mode, - url::Origin::Create(url)); + return MatchesStorageKey(origins, registerable_domains, mode, + blink::StorageKey(url::Origin::Create(url))); } // True if none of the supplied domains matches this plugin's |site| and we're a @@ -171,13 +173,13 @@ IsCrossSiteClearSiteData()); } -base::RepeatingCallback<bool(const url::Origin&)> -BrowsingDataFilterBuilderImpl::BuildOriginFilter() { +content::StoragePartition::StorageKeyMatcherFunction +BrowsingDataFilterBuilderImpl::BuildStorageKeyFilter() { if (!cookie_partition_key_collection_.ContainsAllKeys()) - return NotReachedFilter<url::Origin>(); + return NotReachedFilter<blink::StorageKey>(); if (MatchesAllOriginsAndDomains()) - return base::BindRepeating([](const url::Origin&) { return true; }); - return base::BindRepeating(&MatchesOrigin, origins_, domains_, mode_); + return base::BindRepeating([](const blink::StorageKey&) { return true; }); + return base::BindRepeating(&MatchesStorageKey, origins_, domains_, mode_); } network::mojom::ClearDataFilterPtr
diff --git a/content/browser/browsing_data/browsing_data_filter_builder_impl.h b/content/browser/browsing_data/browsing_data_filter_builder_impl.h index 1f6bf441..73b8eb60 100644 --- a/content/browser/browsing_data/browsing_data_filter_builder_impl.h +++ b/content/browser/browsing_data/browsing_data_filter_builder_impl.h
@@ -9,6 +9,7 @@ #include "content/common/content_export.h" #include "content/public/browser/browsing_data_filter_builder.h" +#include "content/public/browser/storage_partition.h" #include "url/origin.h" namespace content { @@ -33,7 +34,7 @@ bool IsCrossSiteClearSiteData() const override; bool MatchesAllOriginsAndDomains() override; base::RepeatingCallback<bool(const GURL&)> BuildUrlFilter() override; - base::RepeatingCallback<bool(const url::Origin&)> BuildOriginFilter() + content::StoragePartition::StorageKeyMatcherFunction BuildStorageKeyFilter() override; network::mojom::ClearDataFilterPtr BuildNetworkServiceFilter() override; network::mojom::CookieDeletionFilterPtr BuildCookieDeletionFilter() override;
diff --git a/content/browser/browsing_data/browsing_data_remover_impl.cc b/content/browser/browsing_data/browsing_data_remover_impl.cc index fc3cd53..4fb0f7b 100644 --- a/content/browser/browsing_data/browsing_data_remover_impl.cc +++ b/content/browser/browsing_data/browsing_data_remover_impl.cc
@@ -71,14 +71,14 @@ // it matches `predicate`. If `origin_type_mask` contains embedder-specific // datatypes, `embedder_matcher` must not be null; the decision for those // datatypes will be delegated to it. -bool DoesOriginMatchMaskAndPredicate( +bool DoesStorageKeyMatchMaskAndPredicate( uint64_t origin_type_mask, - base::OnceCallback<bool(const url::Origin&)> predicate, + content::StoragePartition::StorageKeyMatcherFunction predicate, const BrowsingDataRemoverDelegate::EmbedderOriginTypeMatcher& embedder_matcher, const blink::StorageKey& storage_key, storage::SpecialStoragePolicy* policy) { - if (predicate && !std::move(predicate).Run(storage_key.origin())) + if (predicate && !std::move(predicate).Run(storage_key)) return false; const std::vector<std::string>& schemes = url::GetWebStorageSchemes(); @@ -170,9 +170,9 @@ if (embedder_delegate_) embedder_matcher = embedder_delegate_->GetOriginTypeMatcher(); - return DoesOriginMatchMaskAndPredicate(origin_type_mask, base::NullCallback(), - std::move(embedder_matcher), - blink::StorageKey(origin), policy); + return DoesStorageKeyMatchMaskAndPredicate( + origin_type_mask, base::NullCallback(), std::move(embedder_matcher), + blink::StorageKey(origin), policy); } void BrowsingDataRemoverImpl::Remove(const base::Time& delete_begin, @@ -336,9 +336,9 @@ // INITIALIZATION base::RepeatingCallback<bool(const GURL&)> url_filter = filter_builder->BuildUrlFilter(); - base::RepeatingCallback<bool(const url::Origin&)> origin_filter = + content::StoragePartition::StorageKeyMatcherFunction storage_key_filter = static_cast<BrowsingDataFilterBuilderImpl*>(filter_builder) - ->BuildOriginFilter(); + ->BuildStorageKeyFilter(); // Some backends support a filter that |is_null()| to make complete deletion // more efficient. @@ -485,8 +485,9 @@ storage_partition->ClearData( storage_partition_remove_mask, quota_storage_remove_mask, - base::BindRepeating(&DoesOriginMatchMaskAndPredicate, origin_type_mask_, - origin_filter, std::move(embedder_matcher)), + base::BindRepeating(&DoesStorageKeyMatchMaskAndPredicate, + origin_type_mask_, storage_key_filter, + std::move(embedder_matcher)), std::move(deletion_filter), perform_storage_cleanup, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kStoragePartition));
diff --git a/content/browser/direct_sockets/direct_sockets_open_browsertest.cc b/content/browser/direct_sockets/direct_sockets_open_browsertest.cc index 568279b..753e013 100644 --- a/content/browser/direct_sockets/direct_sockets_open_browsertest.cc +++ b/content/browser/direct_sockets/direct_sockets_open_browsertest.cc
@@ -450,7 +450,7 @@ openTcp( 'fedc:ba98:7654:3210:fedc:ba98:7654:3210', 789, { - sendBufferSize: 0, + sendBufferSize: 1243, receiveBufferSize: 1234, noDelay: true, keepAlive: true, @@ -466,7 +466,7 @@ EXPECT_EQ(DirectSocketsServiceImpl::ProtocolType::kTcp, call.protocol_type); EXPECT_EQ("fedc:ba98:7654:3210:fedc:ba98:7654:3210", call.remote_address); EXPECT_EQ(789, call.remote_port); - EXPECT_EQ(0, call.send_buffer_size); + EXPECT_EQ(1243, call.send_buffer_size); EXPECT_EQ(1234, call.receive_buffer_size); EXPECT_EQ(true, call.no_delay); EXPECT_TRUE(call.keep_alive_options); @@ -483,7 +483,7 @@ openTcp( 'fedc:ba98:7654:3210:fedc:ba98:7654:3210', 789, { - sendBufferSize: 0, + sendBufferSize: 1243, receiveBufferSize: 1234, noDelay: true, keepAlive: false @@ -498,7 +498,7 @@ EXPECT_EQ(DirectSocketsServiceImpl::ProtocolType::kTcp, call.protocol_type); EXPECT_EQ("fedc:ba98:7654:3210:fedc:ba98:7654:3210", call.remote_address); EXPECT_EQ(789, call.remote_port); - EXPECT_EQ(0, call.send_buffer_size); + EXPECT_EQ(1243, call.send_buffer_size); EXPECT_EQ(1234, call.receive_buffer_size); EXPECT_EQ(true, call.no_delay); EXPECT_TRUE(call.keep_alive_options); @@ -581,7 +581,7 @@ openUdp( 'fedc:ba98:7654:3210:fedc:ba98:7654:3210', 789, { - sendBufferSize: 0, + sendBufferSize: 1243, receiveBufferSize: 1234 } ) @@ -594,7 +594,7 @@ EXPECT_EQ(DirectSocketsServiceImpl::ProtocolType::kUdp, call.protocol_type); EXPECT_EQ("fedc:ba98:7654:3210:fedc:ba98:7654:3210", call.remote_address); EXPECT_EQ(789, call.remote_port); - EXPECT_EQ(0, call.send_buffer_size); + EXPECT_EQ(1243, call.send_buffer_size); EXPECT_EQ(1234, call.receive_buffer_size); }
diff --git a/content/browser/direct_sockets/direct_sockets_service_impl.cc b/content/browser/direct_sockets/direct_sockets_service_impl.cc index 329ce70..21abff3 100644 --- a/content/browser/direct_sockets/direct_sockets_service_impl.cc +++ b/content/browser/direct_sockets/direct_sockets_service_impl.cc
@@ -99,13 +99,6 @@ return; } - if (const net::Error result = ValidateOptions(*options); result != net::OK) { - std::move(callback).Run(result, absl::nullopt, absl::nullopt, - mojo::ScopedDataPipeConsumerHandle(), - mojo::ScopedDataPipeProducerHandle()); - return; - } - if (!GetNetworkContext()) { mojo::ReportBadMessage("Invalid request to open socket"); return; @@ -129,13 +122,7 @@ return; } - if (const net::Error result = ValidateOptions(*options); result != net::OK) { - std::move(callback).Run(result, absl::nullopt, absl::nullopt); - return; - } - - network::mojom::NetworkContext* const network_context = GetNetworkContext(); - if (!network_context) { + if (!GetNetworkContext()) { mojo::ReportBadMessage("Invalid request to open socket"); return; } @@ -207,17 +194,6 @@ return frame_host_; } -net::Error DirectSocketsServiceImpl::ValidateOptions( - const blink::mojom::DirectSocketOptions& options) { - if (!frame_host_) - return net::ERR_CONTEXT_SHUT_DOWN; - - if (options.send_buffer_size < 0 || options.receive_buffer_size < 0) - return net::ERR_INVALID_ARGUMENT; - - return net::OK; -} - void DirectSocketsServiceImpl::AddDirectUDPSocketReceiver( std::unique_ptr<DirectUDPSocketImpl> socket, mojo::PendingReceiver<blink::mojom::DirectUDPSocket> receiver) {
diff --git a/content/browser/direct_sockets/direct_sockets_service_impl.h b/content/browser/direct_sockets/direct_sockets_service_impl.h index efd231f7..85f782e 100644 --- a/content/browser/direct_sockets/direct_sockets_service_impl.h +++ b/content/browser/direct_sockets/direct_sockets_service_impl.h
@@ -89,9 +89,6 @@ private: friend class DirectSocketsUnitTest; - // Returns net::OK if the options are valid and the connection is permitted. - net::Error ValidateOptions(const blink::mojom::DirectSocketOptions& options); - raw_ptr<RenderFrameHost> frame_host_; mojo::UniqueReceiverSet<blink::mojom::DirectUDPSocket> direct_udp_socket_receivers_;
diff --git a/content/browser/direct_sockets/direct_sockets_unittest.cc b/content/browser/direct_sockets/direct_sockets_unittest.cc index 9310159..1181192 100644 --- a/content/browser/direct_sockets/direct_sockets_unittest.cc +++ b/content/browser/direct_sockets/direct_sockets_unittest.cc
@@ -24,19 +24,9 @@ void SetUp() override { RenderViewHostTestHarness::SetUp(); - direct_sockets_service_ = - std::make_unique<DirectSocketsServiceImpl>(*main_rfh()); SimulateUserActivation(); } - DirectSocketsServiceImpl& direct_sockets_service() { - return *direct_sockets_service_; - } - - net::Error ValidateOptions(const blink::mojom::DirectSocketOptions& options) { - return direct_sockets_service().ValidateOptions(options); - } - absl::optional<net::IPEndPoint> GetLocalAddr( const blink::mojom::DirectSocketOptions& options) { return DirectSocketsServiceImpl::GetLocalAddrForTesting(options); @@ -51,23 +41,8 @@ } base::test::ScopedFeatureList feature_list_; - std::unique_ptr<DirectSocketsServiceImpl> direct_sockets_service_; }; -TEST_F(DirectSocketsUnitTest, RenderFrameDeleted) { - direct_sockets_service().RenderFrameDeleted(main_rfh()); - - blink::mojom::DirectSocketOptions options; - EXPECT_EQ(ValidateOptions(options), net::ERR_CONTEXT_SHUT_DOWN); -} - -TEST_F(DirectSocketsUnitTest, WebContentsDestroyed) { - direct_sockets_service().WebContentsDestroyed(); - - blink::mojom::DirectSocketOptions options; - EXPECT_EQ(ValidateOptions(options), net::ERR_CONTEXT_SHUT_DOWN); -} - TEST_F(DirectSocketsUnitTest, PopulateLocalAddr) { blink::mojom::DirectSocketOptions options;
diff --git a/content/browser/interest_group/interest_group_manager_impl.cc b/content/browser/interest_group/interest_group_manager_impl.cc index b048fdc..b6b1045d 100644 --- a/content/browser/interest_group/interest_group_manager_impl.cc +++ b/content/browser/interest_group/interest_group_manager_impl.cc
@@ -241,9 +241,9 @@ } void InterestGroupManagerImpl::DeleteInterestGroupData( - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher) { + StoragePartition::StorageKeyMatcherFunction storage_key_matcher) { impl_.AsyncCall(&InterestGroupStorage::DeleteInterestGroupData) - .WithArgs(std::move(origin_matcher)); + .WithArgs(std::move(storage_key_matcher)); } void InterestGroupManagerImpl::GetLastMaintenanceTimeForTesting(
diff --git a/content/browser/interest_group/interest_group_manager_impl.h b/content/browser/interest_group/interest_group_manager_impl.h index 1a1e0f2..9b34245d 100644 --- a/content/browser/interest_group/interest_group_manager_impl.h +++ b/content/browser/interest_group/interest_group_manager_impl.h
@@ -22,6 +22,7 @@ #include "content/browser/interest_group/storage_interest_group.h" #include "content/common/content_export.h" #include "content/public/browser/interest_group_manager.h" +#include "content/public/browser/storage_partition.h" #include "content/services/auction_worklet/public/mojom/bidder_worklet.mojom-forward.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -173,10 +174,10 @@ void GetInterestGroupsForOwner( const url::Origin& owner, base::OnceCallback<void(std::vector<StorageInterestGroup>)> callback); - // Clear out storage for the matching owning origin. If the callback is empty - // then apply to all origins. + // Clear out storage for the matching owning storage key. If the callback is + // empty then apply to all storage keys. void DeleteInterestGroupData( - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher); + StoragePartition::StorageKeyMatcherFunction storage_key_matcher); // Get the last maintenance time from the underlying InterestGroupStorage. void GetLastMaintenanceTimeForTesting( base::RepeatingCallback<void(base::Time)> callback) const;
diff --git a/content/browser/interest_group/interest_group_storage.cc b/content/browser/interest_group/interest_group_storage.cc index 98c4230d..3575b66 100644 --- a/content/browser/interest_group/interest_group_storage.cc +++ b/content/browser/interest_group/interest_group_storage.cc
@@ -34,6 +34,7 @@ #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/interest_group/interest_group.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "third_party/sqlite/sqlite3.h" #include "url/origin.h" @@ -1360,7 +1361,7 @@ bool DoDeleteInterestGroupData( sql::Database& db, - const base::RepeatingCallback<bool(const url::Origin&)>& origin_matcher) { + StoragePartition::StorageKeyMatcherFunction storage_key_matcher) { const base::Time distant_past = base::Time::Min(); const base::Time distant_future = base::Time::Max(); sql::Transaction transaction(&db); @@ -1375,7 +1376,8 @@ if (!maybe_all_origins) return false; for (const url::Origin& origin : maybe_all_origins.value()) { - if (origin_matcher.is_null() || origin_matcher.Run(origin)) { + if (storage_key_matcher.is_null() || + storage_key_matcher.Run(blink::StorageKey(origin))) { affected_origins.push_back(origin); } } @@ -1397,7 +1399,8 @@ if (!maybe_all_origins) return false; for (const url::Origin& origin : maybe_all_origins.value()) { - if (origin_matcher.is_null() || origin_matcher.Run(origin)) { + if (storage_key_matcher.is_null() || + storage_key_matcher.Run(blink::StorageKey(origin))) { affected_origins.push_back(origin); } } @@ -1942,12 +1945,12 @@ } void InterestGroupStorage::DeleteInterestGroupData( - const base::RepeatingCallback<bool(const url::Origin&)>& origin_matcher) { + StoragePartition::StorageKeyMatcherFunction storage_key_matcher) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!EnsureDBInitialized()) return; - if (!DoDeleteInterestGroupData(*db_, origin_matcher)) { + if (!DoDeleteInterestGroupData(*db_, storage_key_matcher)) { DLOG(ERROR) << "Could not delete interest group data: " << db_->GetErrorMessage(); }
diff --git a/content/browser/interest_group/interest_group_storage.h b/content/browser/interest_group/interest_group_storage.h index 44db2c7f..f259a982 100644 --- a/content/browser/interest_group/interest_group_storage.h +++ b/content/browser/interest_group/interest_group_storage.h
@@ -14,6 +14,7 @@ #include "base/timer/timer.h" #include "content/browser/interest_group/storage_interest_group.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" #include "content/services/auction_worklet/public/mojom/auction_worklet_service.mojom.h" #include "sql/database.h" #include "sql/statement.h" @@ -119,10 +120,10 @@ // will only appear once. std::vector<url::Origin> GetAllInterestGroupJoiningOrigins(); - // Clear out storage for the matching owning origin. If the callback is empty - // then apply to all origins. + // Clear out storage for the matching owning storage key. If the callback is + // empty then apply to all storage keys. void DeleteInterestGroupData( - const base::RepeatingCallback<bool(const url::Origin&)>& origin_matcher); + StoragePartition::StorageKeyMatcherFunction storage_key_matcher); // Update the interest group priority. void SetInterestGroupPriority(const url::Origin& owner, const std::string& name,
diff --git a/content/browser/interest_group/interest_group_storage_unittest.cc b/content/browser/interest_group/interest_group_storage_unittest.cc index d603e580..526b582 100644 --- a/content/browser/interest_group/interest_group_storage_unittest.cc +++ b/content/browser/interest_group/interest_group_storage_unittest.cc
@@ -32,6 +32,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/interest_group/interest_group.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/origin.h" namespace content { @@ -387,9 +388,9 @@ interest_groups[0].bidding_browser_signals->prev_wins[1]->ad_json); // Try delete - storage->DeleteInterestGroupData( - base::BindLambdaForTesting([&test_origin](const url::Origin& candidate) { - return candidate == test_origin; + storage->DeleteInterestGroupData(base::BindLambdaForTesting( + [&test_origin](const blink::StorageKey& candidate) { + return candidate == blink::StorageKey(test_origin); })); origins = storage->GetAllInterestGroupOwners(); @@ -818,9 +819,9 @@ EXPECT_THAT(joining_origins, UnorderedElementsAre(joining_originA, joining_originB)); - storage->DeleteInterestGroupData( - base::BindLambdaForTesting([&owner_originA](const url::Origin& origin) { - return origin == owner_originA; + storage->DeleteInterestGroupData(base::BindLambdaForTesting( + [&owner_originA](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey(owner_originA); })); origins = storage->GetAllInterestGroupOwners(); @@ -831,9 +832,9 @@ // Delete all interest groups that joined on joining_origin A. We expect that // we will be left with the one that joined on joining_origin B. - storage->DeleteInterestGroupData( - base::BindLambdaForTesting([&joining_originA](const url::Origin& origin) { - return origin == joining_originA; + storage->DeleteInterestGroupData(base::BindLambdaForTesting( + [&joining_originA](const blink::StorageKey& storage_key) { + return storage_key == blink::StorageKey(joining_originA); })); origins = storage->GetAllInterestGroupOwners();
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc index 7e8b016df..4f8967e5 100644 --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -32,13 +32,13 @@ #include "content/browser/loader/navigation_url_loader_delegate.h" #include "content/browser/loader/prefetch_url_loader_service.h" #include "content/browser/navigation_subresource_loader_params.h" +#include "content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h" #include "content/browser/renderer_host/frame_tree_node.h" #include "content/browser/renderer_host/navigation_request.h" #include "content/browser/renderer_host/navigation_request_info.h" #include "content/browser/service_worker/service_worker_container_host.h" #include "content/browser/service_worker/service_worker_main_resource_handle.h" #include "content/browser/service_worker/service_worker_main_resource_loader_interceptor.h" -#include "content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h" #include "content/browser/storage_partition_impl.h" #include "content/browser/url_loader_factory_getter.h" #include "content/browser/web_package/prefetched_signed_exchange_cache.h"
diff --git a/content/browser/navigation_browsertest.cc b/content/browser/navigation_browsertest.cc index 66c9f58..29a2f6f 100644 --- a/content/browser/navigation_browsertest.cc +++ b/content/browser/navigation_browsertest.cc
@@ -4423,9 +4423,7 @@ EXPECT_FALSE(no_commit_obs.navigation_committed()); } -// Do sandbox flags apply to error page in sandboxed iframes? -// Apparently yes. -// TODO(https://crbug.com/1158370): Reconsider this. +// Sandbox flags defined by the parent must not apply to Chrome's error page. IN_PROC_BROWSER_TEST_F(NavigationBrowserTest, ErrorPageFromInSandboxedIframe) { GURL url = embedded_test_server()->GetURL("a.com", "/empty.html"); EXPECT_TRUE(NavigateToURL(shell(), url)); @@ -4446,12 +4444,8 @@ RenderFrameHostImpl* child_rfh = current_frame_host()->child_at(0)->current_frame_host(); - // An error page committed. Apparently, the error page inherited sandbox flags - // from its parent. - // TODO(https://crbug.com/1158370): Reconsider this. EXPECT_TRUE(child_rfh->IsErrorDocument()); - EXPECT_EQ(network::mojom::WebSandboxFlags::kAll & - ~network::mojom::WebSandboxFlags::kOrientationLock, + EXPECT_EQ(network::mojom::WebSandboxFlags::kNone, child_rfh->active_sandbox_flags()); }
diff --git a/content/browser/speculation_rules/prefetch/prefetch_container.cc b/content/browser/preloading/prefetch/prefetch_container.cc similarity index 89% rename from content/browser/speculation_rules/prefetch/prefetch_container.cc rename to content/browser/preloading/prefetch/prefetch_container.cc index e387a008..a94e815 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_container.cc +++ b/content/browser/preloading/prefetch/prefetch_container.cc
@@ -2,20 +2,20 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" #include <memory> #include "base/callback.h" #include "base/metrics/histogram_macros.h" #include "base/time/time.h" -#include "content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h" -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" -#include "content/browser/speculation_rules/prefetch/prefetch_network_context.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" -#include "content/browser/speculation_rules/prefetch/prefetch_status.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetch_cookie_listener.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_network_context.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_status.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "content/public/browser/global_routing_id.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/cookie_manager.mojom.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_container.h b/content/browser/preloading/prefetch/prefetch_container.h similarity index 94% rename from content/browser/speculation_rules/prefetch/prefetch_container.h rename to content/browser/preloading/prefetch/prefetch_container.h index 5a0bbbe..9d9f05b 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_container.h +++ b/content/browser/preloading/prefetch/prefetch_container.h
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_CONTAINER_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_CONTAINER_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_CONTAINER_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_CONTAINER_H_ #include <utility> #include "base/callback.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" -#include "content/browser/speculation_rules/prefetch/prefetch_status.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_status.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include "content/common/content_export.h" #include "content/public/browser/global_routing_id.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -190,4 +190,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_CONTAINER_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_CONTAINER_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_container_unittest.cc b/content/browser/preloading/prefetch/prefetch_container_unittest.cc similarity index 95% rename from content/browser/speculation_rules/prefetch/prefetch_container_unittest.cc rename to content/browser/preloading/prefetch/prefetch_container_unittest.cc index 5e3517f..a10ad771 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_container_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_container_unittest.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" #include "base/test/metrics/histogram_tester.h" -#include "content/browser/speculation_rules/prefetch/prefetch_status.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetch_status.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/global_routing_id.h" #include "content/public/browser/storage_partition.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener.cc b/content/browser/preloading/prefetch/prefetch_cookie_listener.cc similarity index 94% rename from content/browser/speculation_rules/prefetch/prefetch_cookie_listener.cc rename to content/browser/preloading/prefetch/prefetch_cookie_listener.cc index 6bbf3ff3..086764c 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener.cc +++ b/content/browser/preloading/prefetch/prefetch_cookie_listener.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h" +#include "content/browser/preloading/prefetch/prefetch_cookie_listener.h" #include <memory>
diff --git a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h b/content/browser/preloading/prefetch/prefetch_cookie_listener.h similarity index 88% rename from content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h rename to content/browser/preloading/prefetch/prefetch_cookie_listener.h index f96d52a..38e0be0 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h +++ b/content/browser/preloading/prefetch/prefetch_cookie_listener.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_COOKIE_LISTENER_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_COOKIE_LISTENER_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_COOKIE_LISTENER_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_COOKIE_LISTENER_H_ #include <memory> @@ -54,4 +54,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_COOKIE_LISTENER_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_COOKIE_LISTENER_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener_unittest.cc b/content/browser/preloading/prefetch/prefetch_cookie_listener_unittest.cc similarity index 98% rename from content/browser/speculation_rules/prefetch/prefetch_cookie_listener_unittest.cc rename to content/browser/preloading/prefetch/prefetch_cookie_listener_unittest.cc index 2e93bbc..0075111b 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_cookie_listener_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_cookie_listener_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_cookie_listener.h" +#include "content/browser/preloading/prefetch/prefetch_cookie_listener.h" #include <memory>
diff --git a/content/browser/speculation_rules/prefetch/prefetch_document_manager.cc b/content/browser/preloading/prefetch/prefetch_document_manager.cc similarity index 95% rename from content/browser/speculation_rules/prefetch/prefetch_document_manager.cc rename to content/browser/preloading/prefetch/prefetch_document_manager.cc index cddc358..b0a24f0 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_document_manager.cc +++ b/content/browser/preloading/prefetch/prefetch_document_manager.cc
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" #include <algorithm> #include <vector> #include "content/browser/browser_context_impl.h" -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_document_manager.h b/content/browser/preloading/prefetch/prefetch_document_manager.h similarity index 89% rename from content/browser/speculation_rules/prefetch/prefetch_document_manager.h rename to content/browser/preloading/prefetch/prefetch_document_manager.h index 344fb16..709a888 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_document_manager.h +++ b/content/browser/preloading/prefetch/prefetch_document_manager.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_ #include <map> #include <memory> #include <vector> #include "base/memory/weak_ptr.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include "content/common/content_export.h" #include "content/public/browser/document_user_data.h" #include "content/public/browser/web_contents_observer.h" @@ -78,4 +78,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_DOCUMENT_MANAGER_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_document_manager_unittest.cc b/content/browser/preloading/prefetch/prefetch_document_manager_unittest.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_document_manager_unittest.cc rename to content/browser/preloading/prefetch/prefetch_document_manager_unittest.cc index 611ca7a..b7858eb 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_document_manager_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_document_manager_unittest.cc
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" #include <string> #include <vector> #include "base/test/scoped_feature_list.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include "content/public/test/test_browser_context.h" #include "content/test/test_web_contents.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_features.cc b/content/browser/preloading/prefetch/prefetch_features.cc similarity index 82% rename from content/browser/speculation_rules/prefetch/prefetch_features.cc rename to content/browser/preloading/prefetch/prefetch_features.cc index b379038..67da247 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_features.cc +++ b/content/browser/preloading/prefetch/prefetch_features.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" namespace content::features {
diff --git a/content/browser/speculation_rules/prefetch/prefetch_features.h b/content/browser/preloading/prefetch/prefetch_features.h similarity index 64% rename from content/browser/speculation_rules/prefetch/prefetch_features.h rename to content/browser/preloading/prefetch/prefetch_features.h index 16844d16..847947a 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_features.h +++ b/content/browser/preloading/prefetch/prefetch_features.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FEATURES_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FEATURES_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FEATURES_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FEATURES_H_ #include "base/feature_list.h" #include "content/common/content_export.h" @@ -11,10 +11,10 @@ namespace content::features { // If enabled, then prefetch requests from speculation rules should use the code -// in content/browser/speculation_rules/prefetch/ instead of +// in content/browser/preloading/prefetch/ instead of // chrome/browser/prefetch/prefetch_proxy/. extern CONTENT_EXPORT const base::Feature kPrefetchUseContentRefactor; } // namespace content::features -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FEATURES_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FEATURES_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.cc b/content/browser/preloading/prefetch/prefetch_from_string_url_loader.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.cc rename to content/browser/preloading/prefetch/prefetch_from_string_url_loader.cc index b7f02911..5eebd854 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.cc +++ b/content/browser/preloading/prefetch/prefetch_from_string_url_loader.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.h" +#include "content/browser/preloading/prefetch/prefetch_from_string_url_loader.h" #include <memory> @@ -10,7 +10,7 @@ #include "base/check_op.h" #include "base/memory/weak_ptr.h" #include "base/notreached.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.h b/content/browser/preloading/prefetch/prefetch_from_string_url_loader.h similarity index 93% rename from content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.h rename to content/browser/preloading/prefetch/prefetch_from_string_url_loader.h index 871cdd11..69a6ccf 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.h +++ b/content/browser/preloading/prefetch/prefetch_from_string_url_loader.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ #include <memory> @@ -104,4 +104,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ \ No newline at end of file +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_FROM_STRING_URL_LOADER_H_ \ No newline at end of file
diff --git a/content/browser/speculation_rules/prefetch/prefetch_network_context.cc b/content/browser/preloading/prefetch/prefetch_network_context.cc similarity index 94% rename from content/browser/speculation_rules/prefetch/prefetch_network_context.cc rename to content/browser/preloading/prefetch/prefetch_network_context.cc index 581b1dfb..b04268e 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_network_context.cc +++ b/content/browser/preloading/prefetch/prefetch_network_context.cc
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_network_context.h" +#include "content/browser/preloading/prefetch/prefetch_network_context.h" #include "base/command_line.h" #include "base/memory/scoped_refptr.h" -#include "content/browser/speculation_rules/prefetch/prefetch_network_context_client.h" -#include "content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_network_context_client.h" +#include "content/browser/preloading/prefetch/prefetch_proxy_configurator.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/network_service_instance.h" #include "content/public/browser/prefetch_service_delegate.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_network_context.h b/content/browser/preloading/prefetch/prefetch_network_context.h similarity index 90% rename from content/browser/speculation_rules/prefetch/prefetch_network_context.h rename to content/browser/preloading/prefetch/prefetch_network_context.h index 74425eb..b4d08ef 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_network_context.h +++ b/content/browser/preloading/prefetch/prefetch_network_context.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_ #include "base/memory/scoped_refptr.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/isolation_info.h" @@ -80,4 +80,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_network_context_client.cc b/content/browser/preloading/prefetch/prefetch_network_context_client.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_network_context_client.cc rename to content/browser/preloading/prefetch/prefetch_network_context_client.cc index 6b21bc8..6b256a4 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_network_context_client.cc +++ b/content/browser/preloading/prefetch/prefetch_network_context_client.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_network_context_client.h" +#include "content/browser/preloading/prefetch/prefetch_network_context_client.h" #include <memory>
diff --git a/content/browser/speculation_rules/prefetch/prefetch_network_context_client.h b/content/browser/preloading/prefetch/prefetch_network_context_client.h similarity index 88% rename from content/browser/speculation_rules/prefetch/prefetch_network_context_client.h rename to content/browser/preloading/prefetch/prefetch_network_context_client.h index 9a927b5..f1830ca6 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_network_context_client.h +++ b/content/browser/preloading/prefetch/prefetch_network_context_client.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ #include "build/build_config.h" #include "build/chromeos_buildflags.h" @@ -54,4 +54,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ \ No newline at end of file +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_NETWORK_CONTEXT_CLIENT_H_ \ No newline at end of file
diff --git a/content/browser/speculation_rules/prefetch/prefetch_params.cc b/content/browser/preloading/prefetch/prefetch_params.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_params.cc rename to content/browser/preloading/prefetch/prefetch_params.cc index 05c6934..95e8427 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_params.cc +++ b/content/browser/preloading/prefetch/prefetch_params.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" #include "base/command_line.h" #include "base/metrics/field_trial_params.h" #include "base/rand_util.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" #include "content/public/browser/prefetch_service_delegate.h" namespace content {
diff --git a/content/browser/speculation_rules/prefetch/prefetch_params.h b/content/browser/preloading/prefetch/prefetch_params.h similarity index 92% rename from content/browser/speculation_rules/prefetch/prefetch_params.h rename to content/browser/preloading/prefetch/prefetch_params.h index 713310d..bd2a169 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_params.h +++ b/content/browser/preloading/prefetch/prefetch_params.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PARAMS_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PARAMS_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PARAMS_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PARAMS_H_ #include "base/time/time.h" #include "content/common/content_export.h" @@ -73,4 +73,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PARAMS_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PARAMS_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_params_unittest.cc b/content/browser/preloading/prefetch/prefetch_params_unittest.cc similarity index 89% rename from content/browser/speculation_rules/prefetch/prefetch_params_unittest.cc rename to content/browser/preloading/prefetch/prefetch_params_unittest.cc index acfe700f..abe19d9c 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_params_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_params_unittest.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" #include "base/test/scoped_feature_list.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" #include "testing/gtest/include/gtest/gtest.h" namespace content {
diff --git a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.cc b/content/browser/preloading/prefetch/prefetch_proxy_configurator.cc similarity index 97% rename from content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.cc rename to content/browser/preloading/prefetch/prefetch_proxy_configurator.cc index 29ce863..ae861225 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.cc +++ b/content/browser/preloading/prefetch/prefetch_proxy_configurator.cc
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h" +#include "content/browser/preloading/prefetch/prefetch_proxy_configurator.h" #include "base/barrier_closure.h" #include "base/metrics/histogram_functions.h" #include "base/rand_util.h" #include "base/time/default_clock.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" #include "net/base/host_port_pair.h" #include "net/base/proxy_server.h" #include "net/base/proxy_string_util.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h b/content/browser/preloading/prefetch/prefetch_proxy_configurator.h similarity index 93% rename from content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h rename to content/browser/preloading/prefetch/prefetch_proxy_configurator.h index 2503ec60..8e266ab 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h +++ b/content/browser/preloading/prefetch/prefetch_proxy_configurator.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_ #include <string> @@ -103,4 +103,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_PROXY_CONFIGURATOR_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator_unittest.cc b/content/browser/preloading/prefetch/prefetch_proxy_configurator_unittest.cc similarity index 97% rename from content/browser/speculation_rules/prefetch/prefetch_proxy_configurator_unittest.cc rename to content/browser/preloading/prefetch/prefetch_proxy_configurator_unittest.cc index 789160a..1764995 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_proxy_configurator_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_proxy_configurator_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h" +#include "content/browser/preloading/prefetch/prefetch_proxy_configurator.h" #include <memory> @@ -10,8 +10,8 @@ #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" #include "content/public/test/browser_task_environment.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_service.cc b/content/browser/preloading/prefetch/prefetch_service.cc similarity index 98% rename from content/browser/speculation_rules/prefetch/prefetch_service.cc rename to content/browser/preloading/prefetch/prefetch_service.cc index 8bf3f6f..e0ac2a7 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_service.cc +++ b/content/browser/preloading/prefetch/prefetch_service.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include <memory> #include <utility> @@ -14,12 +14,12 @@ #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/timer/timer.h" -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_network_context.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" -#include "content/browser/speculation_rules/prefetch/prefetch_proxy_configurator.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_network_context.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_proxy_configurator.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/content_browser_client.h" #include "content/public/browser/prefetch_service_delegate.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_service.h b/content/browser/preloading/prefetch/prefetch_service.h similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_service.h rename to content/browser/preloading/prefetch/prefetch_service.h index 55b9ecc..38476630 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_service.h +++ b/content/browser/preloading/prefetch/prefetch_service.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_SERVICE_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_SERVICE_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_SERVICE_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_SERVICE_H_ #include <map> #include "base/callback_forward.h" #include "base/memory/weak_ptr.h" -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" -#include "content/browser/speculation_rules/prefetch/prefetch_status.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_status.h" #include "content/common/content_export.h" #include "content/public/browser/global_routing_id.h" #include "net/cookies/canonical_cookie.h" @@ -236,4 +236,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_SERVICE_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_SERVICE_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_service_unittest.cc b/content/browser/preloading/prefetch/prefetch_service_unittest.cc similarity index 99% rename from content/browser/speculation_rules/prefetch/prefetch_service_unittest.cc rename to content/browser/preloading/prefetch/prefetch_service_unittest.cc index 87692080..e93d28c5 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_service_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_service_unittest.cc
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include "base/run_loop.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" -#include "content/browser/speculation_rules/prefetch/prefetch_status.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_status.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/prefetch_service_delegate.h" #include "content/public/browser/storage_partition.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_status.h b/content/browser/preloading/prefetch/prefetch_status.h similarity index 95% rename from content/browser/speculation_rules/prefetch/prefetch_status.h rename to content/browser/preloading/prefetch/prefetch_status.h index fa0d7efe..a340b7e 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_status.h +++ b/content/browser/preloading/prefetch/prefetch_status.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_STATUS_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_STATUS_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_STATUS_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_STATUS_H_ namespace content { @@ -137,4 +137,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_STATUS_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_STATUS_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_type.cc b/content/browser/preloading/prefetch/prefetch_type.cc similarity index 94% rename from content/browser/speculation_rules/prefetch/prefetch_type.cc rename to content/browser/preloading/prefetch/prefetch_type.cc index 598435e..07f7839 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_type.cc +++ b/content/browser/preloading/prefetch/prefetch_type.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include <tuple>
diff --git a/content/browser/speculation_rules/prefetch/prefetch_type.h b/content/browser/preloading/prefetch/prefetch_type.h similarity index 87% rename from content/browser/speculation_rules/prefetch/prefetch_type.h rename to content/browser/preloading/prefetch/prefetch_type.h index ca1fdc6..59e44cb 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_type.h +++ b/content/browser/preloading/prefetch/prefetch_type.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_TYPE_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_TYPE_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_TYPE_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_TYPE_H_ #include "content/common/content_export.h" @@ -43,4 +43,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_TYPE_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_TYPE_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_type_unittest.cc b/content/browser/preloading/prefetch/prefetch_type_unittest.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_type_unittest.cc rename to content/browser/preloading/prefetch/prefetch_type_unittest.cc index fbc4bb1..680a738 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_type_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_type_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" #include "testing/gtest/include/gtest/gtest.h" namespace content {
diff --git a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.cc b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc similarity index 89% rename from content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.cc rename to content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc index 2ce0fa7..8f49604 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.cc +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h" +#include "content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h" #include <memory> @@ -12,13 +12,13 @@ #include "content/browser/browser_context_impl.h" #include "content/browser/loader/navigation_loader_interceptor.h" #include "content/browser/loader/single_request_url_loader_factory.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_from_string_url_loader.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "content/browser/renderer_host/frame_tree_node.h" -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_from_string_url_loader.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/web_contents.h" #include "services/network/public/cpp/resource_request.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h similarity index 91% rename from content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h rename to content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h index 554538bb..050aea40 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_ #include <memory> @@ -80,4 +80,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCH_URL_LOADER_INTERCEPTOR_H_
diff --git a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor_unittest.cc b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc similarity index 96% rename from content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor_unittest.cc rename to content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc index a21e71f..1a01fe5f 100644 --- a/content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetch_url_loader_interceptor.h" +#include "content/browser/preloading/prefetch/prefetch_url_loader_interceptor.h" #include <map> #include <memory> @@ -10,11 +10,11 @@ #include "base/callback.h" #include "base/memory/weak_ptr.h" #include "base/test/scoped_feature_list.h" -#include "content/browser/speculation_rules/prefetch/prefetch_container.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" -#include "content/browser/speculation_rules/prefetch/prefetch_params.h" -#include "content/browser/speculation_rules/prefetch/prefetch_type.h" -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetch_container.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" +#include "content/browser/preloading/prefetch/prefetch_params.h" +#include "content/browser/preloading/prefetch/prefetch_type.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/storage_partition.h" #include "content/public/test/test_renderer_host.h"
diff --git a/content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.cc b/content/browser/preloading/prefetch/prefetched_mainframe_response_container.cc similarity index 91% rename from content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.cc rename to content/browser/preloading/prefetch/prefetched_mainframe_response_container.cc index c68dfec..2dbd6d2 100644 --- a/content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.cc +++ b/content/browser/preloading/prefetch/prefetched_mainframe_response_container.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h" +#include "content/browser/preloading/prefetch/prefetched_mainframe_response_container.h" #include <memory> #include <string>
diff --git a/content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h b/content/browser/preloading/prefetch/prefetched_mainframe_response_container.h similarity index 83% rename from content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h rename to content/browser/preloading/prefetch/prefetched_mainframe_response_container.h index 2675ce5a..92613be 100644 --- a/content/browser/speculation_rules/prefetch/prefetched_mainframe_response_container.h +++ b/content/browser/preloading/prefetch/prefetched_mainframe_response_container.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_ -#define CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_ +#ifndef CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_ +#define CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_ #include <memory> #include <string> @@ -44,4 +44,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SPECULATION_RULES_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_ +#endif // CONTENT_BROWSER_PRELOADING_PREFETCH_PREFETCHED_MAINFRAME_RESPONSE_CONTAINER_H_
diff --git a/content/browser/renderer_host/navigation_policy_container_builder.cc b/content/browser/renderer_host/navigation_policy_container_builder.cc index 37c96fe..71ffa58 100644 --- a/content/browser/renderer_host/navigation_policy_container_builder.cc +++ b/content/browser/renderer_host/navigation_policy_container_builder.cc
@@ -140,9 +140,7 @@ return delivered_policies_; } -void NavigationPolicyContainerBuilder::ComputePoliciesForError( - bool is_inside_mhtml, - network::mojom::WebSandboxFlags frame_sandbox_flags) { +void NavigationPolicyContainerBuilder::ComputePoliciesForError() { // The decision to commit an error page can happen after receiving the // response for a regular document. It overrides any previous attempt to // |ComputePolicies()|. @@ -160,8 +158,6 @@ // crbug.com/1180140. policies.ip_address_space = delivered_policies_.ip_address_space; - ComputeSandboxFlags(is_inside_mhtml, frame_sandbox_flags, policies); - SetFinalPolicies(std::move(policies)); DCHECK(HasComputedPolicies());
diff --git a/content/browser/renderer_host/navigation_policy_container_builder.h b/content/browser/renderer_host/navigation_policy_container_builder.h index f7da9d5..c52a2911 100644 --- a/content/browser/renderer_host/navigation_policy_container_builder.h +++ b/content/browser/renderer_host/navigation_policy_container_builder.h
@@ -123,15 +123,9 @@ // Sets final policies to defaults suitable for error pages, and builds a // policy container host. // - // `is_inside_mhtml` specifies whether the navigation loads an MHTML document - // or a subframe of an MHTML document. This influences computed sandbox flags. - // `frame_sandbox_flags` represents the frame's sandbox flags. - // // This method must only be called once. However it can be called after // `ComputePolicies()`. - void ComputePoliciesForError( - bool is_inside_mhtml, - network::mojom::WebSandboxFlags frame_sandbox_flags); + void ComputePoliciesForError(); // Sets final policies to their correct values and builds a policy container // host.
diff --git a/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc b/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc index 1558fdd..59320e97 100644 --- a/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc +++ b/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc
@@ -297,8 +297,7 @@ NavigationPolicyContainerBuilder builder( nullptr, nullptr, GetLastCommittedFrameNavigationEntry()); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); // Error pages commit with default policies, ignoring the history policies. EXPECT_EQ(builder.FinalPolicies(), PolicyContainerPolicies()); @@ -326,8 +325,7 @@ /*anonymous=*/false); EXPECT_THAT(builder.HistoryPolicies(), Pointee(Eq(ByRef(history_policies)))); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); EXPECT_THAT(builder.HistoryPolicies(), Pointee(Eq(ByRef(history_policies)))); }
diff --git a/content/browser/renderer_host/navigation_policy_container_builder_unittest.cc b/content/browser/renderer_host/navigation_policy_container_builder_unittest.cc index b04d5c4..bffea30 100644 --- a/content/browser/renderer_host/navigation_policy_container_builder_unittest.cc +++ b/content/browser/renderer_host/navigation_policy_container_builder_unittest.cc
@@ -205,8 +205,7 @@ TEST_F(NavigationPolicyContainerBuilderTest, DefaultFinalPoliciesForErrorPage) { NavigationPolicyContainerBuilder builder(nullptr, nullptr, nullptr); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); // Error pages commit with default policies, mostly ignoring the delivered // policies and the document's URL. @@ -219,8 +218,7 @@ NavigationPolicyContainerBuilder builder(nullptr, nullptr, nullptr); builder.SetIPAddressSpace(network::mojom::IPAddressSpace::kPublic); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); PolicyContainerPolicies expected_policies; expected_policies.ip_address_space = network::mojom::IPAddressSpace::kPublic; @@ -242,8 +240,7 @@ /*is_anonymous=*/false); EXPECT_EQ(builder.FinalPolicies(), expected_policies); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); EXPECT_EQ(builder.FinalPolicies(), expected_policies); } @@ -259,8 +256,7 @@ /*is_anonymous=*/false); EXPECT_THAT(builder.FinalPolicies().content_security_policies, SizeIs(1)); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); EXPECT_THAT(builder.FinalPolicies().content_security_policies, SizeIs(0)); } @@ -541,8 +537,7 @@ builder.ComputePolicies(GURL("https://foo.test"), false, network::mojom::WebSandboxFlags::kNone, /*is_anonymous=*/false); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); } // After ComputePolicies() or ComputePoliciesForError(), the initiator policies @@ -564,8 +559,7 @@ EXPECT_THAT(builder.InitiatorPolicies(), Pointee(Eq(ByRef(initiator_policies)))); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); EXPECT_THAT(builder.InitiatorPolicies(), Pointee(Eq(ByRef(initiator_policies)))); } @@ -586,8 +580,7 @@ /*is_anonymous=*/false); EXPECT_THAT(builder.ParentPolicies(), Pointee(Eq(ByRef(parent_policies)))); - builder.ComputePoliciesForError(false, - network::mojom::WebSandboxFlags::kNone); + builder.ComputePoliciesForError(); EXPECT_THAT(builder.ParentPolicies(), Pointee(Eq(ByRef(parent_policies)))); }
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index 8afc757..eb2774d 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -2084,7 +2084,7 @@ frame_tree_node_->frame_tree_node_id(), commit_params_->is_browser_initiated, commit_params_->original_url, commit_params_->original_method, common_params_->has_user_gesture, - false, frame_tree_node_->IsMainFrame(), + false, frame_tree_node_->IsOutermostMainFrame(), ui::PageTransitionFromInt(common_params_->transition), &should_override_url_loading)) { // A Java exception was thrown by the embedding application; we @@ -2623,7 +2623,7 @@ commit_params_->is_browser_initiated, redirect_info.new_url, redirect_info.new_method, // Redirects are always not counted as from user gesture. - false, true, frame_tree_node_->IsMainFrame(), + false, true, frame_tree_node_->IsOutermostMainFrame(), ui::PageTransitionFromInt(common_params_->transition), &should_override_url_loading)) { // A Java exception was thrown by the embedding application; we @@ -7505,8 +7505,8 @@ } void NavigationRequest::ComputePoliciesToCommitForError() { - policy_container_builder_->ComputePoliciesForError( - IsMhtmlOrSubframe(), commit_params_->frame_policy.sandbox_flags); + CHECK(!IsMhtmlOrSubframe()); + policy_container_builder_->ComputePoliciesForError(); } void NavigationRequest::CheckStateTransition(NavigationState state) const {
diff --git a/content/browser/speculation_rules/speculation_host_impl.cc b/content/browser/speculation_rules/speculation_host_impl.cc index de007b5..32e7cfa78 100644 --- a/content/browser/speculation_rules/speculation_host_impl.cc +++ b/content/browser/speculation_rules/speculation_host_impl.cc
@@ -7,12 +7,12 @@ #include "base/containers/span.h" #include "base/ranges/algorithm.h" +#include "content/browser/preloading/prefetch/prefetch_document_manager.h" +#include "content/browser/preloading/prefetch/prefetch_features.h" #include "content/browser/preloading/prerender/prerender_attributes.h" #include "content/browser/preloading/prerender/prerender_host_registry.h" #include "content/browser/renderer_host/render_frame_host_delegate.h" #include "content/browser/renderer_host/render_frame_host_impl.h" -#include "content/browser/speculation_rules/prefetch/prefetch_document_manager.h" -#include "content/browser/speculation_rules/prefetch/prefetch_features.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_client.h"
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc index 4ac3a23..47c137b 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -732,7 +732,7 @@ // backends to use this if they can, and additionally we should consider // rethinking this approach if / when storage backends move out of process // (see crbug.com/1016065 for initial work here). -base::RepeatingCallback<bool(const url::Origin&)> CreateGenericOriginMatcher( +StoragePartition::StorageKeyMatcherFunction CreateGenericStorageKeyMatcher( const blink::StorageKey& storage_key, StoragePartition::StorageKeyPolicyMatcherFunction storage_key_matcher, scoped_refptr<storage::SpecialStoragePolicy> policy) { @@ -747,15 +747,14 @@ [](StoragePartition::StorageKeyPolicyMatcherFunction storage_key_matcher, scoped_refptr<storage::SpecialStoragePolicy> policy, - const url::Origin& origin) -> bool { - return storage_key_matcher.Run(blink::StorageKey(origin), - policy.get()); + const blink::StorageKey& storage_key) -> bool { + return storage_key_matcher.Run(storage_key, policy.get()); }, std::move(storage_key_matcher), std::move(policy)); } DCHECK(!storage_key_origin_empty); - return base::BindRepeating(std::equal_to<const url::Origin&>(), - storage_key.origin()); + return base::BindRepeating(std::equal_to<const blink::StorageKey&>(), + storage_key); } void ClearPluginPrivateDataOnFileTaskRunner( @@ -2186,9 +2185,10 @@ DCHECK(storage_key.origin().opaque() || storage_key_matcher.is_null()); for (auto& observer : data_removal_observers_) { - auto filter = CreateGenericOriginMatcher(storage_key, storage_key_matcher, - special_storage_policy_); - observer.OnOriginDataCleared(remove_mask, std::move(filter), begin, end); + auto filter = CreateGenericStorageKeyMatcher( + storage_key, storage_key_matcher, special_storage_policy_); + observer.OnStorageKeyDataCleared(remove_mask, std::move(filter), begin, + end); } DataDeletionHelper* helper = new DataDeletionHelper( @@ -2456,8 +2456,8 @@ if (remove_mask_ & REMOVE_DATA_MASK_INTEREST_GROUPS) { if (interest_group_manager) { interest_group_manager->DeleteInterestGroupData( - CreateGenericOriginMatcher(storage_key, storage_key_matcher, - storage_policy_ref)); + CreateGenericStorageKeyMatcher(storage_key, storage_key_matcher, + storage_policy_ref)); } } @@ -2517,8 +2517,8 @@ } } - auto filter = CreateGenericOriginMatcher(storage_key, storage_key_matcher, - storage_policy_ref); + auto filter = CreateGenericStorageKeyMatcher(storage_key, storage_key_matcher, + storage_policy_ref); // It is not expected to only delete internal attribution reporting data. DCHECK(!(remove_mask_ & REMOVE_DATA_MASK_ATTRIBUTION_REPORTING_INTERNAL) ||
diff --git a/content/browser/storage_partition_impl_unittest.cc b/content/browser/storage_partition_impl_unittest.cc index 6750905..a0865f3 100644 --- a/content/browser/storage_partition_impl_unittest.cc +++ b/content/browser/storage_partition_impl_unittest.cc
@@ -527,9 +527,9 @@ observation_.Observe(partition); } - MOCK_METHOD4(OnOriginDataCleared, + MOCK_METHOD4(OnStorageKeyDataCleared, void(uint32_t, - base::RepeatingCallback<bool(const url::Origin&)>, + content::StoragePartition::StorageKeyMatcherFunction, base::Time, base::Time)); @@ -1826,9 +1826,10 @@ const auto kTestOrigin = GURL("https://example.com"); const auto kBeginTime = base::Time() + base::Hours(1); const auto kEndTime = base::Time() + base::Hours(2); - const auto origin_callback_valid = - [&](base::RepeatingCallback<bool(const url::Origin&)> callback) { - return callback.Run(url::Origin::Create(kTestOrigin)); + const auto storage_key_callback_valid = + [&](content::StoragePartition::StorageKeyMatcherFunction callback) { + return callback.Run( + blink::StorageKey(url::Origin::Create(kTestOrigin))); }; StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>( @@ -1837,29 +1838,29 @@ // Confirm that each of the StoragePartition interfaces for clearing origin // based data notify observers appropriately. - EXPECT_CALL( - observer, - OnOriginDataCleared(kTestClearMask, testing::Truly(origin_callback_valid), - base::Time(), base::Time::Max())); + EXPECT_CALL(observer, + OnStorageKeyDataCleared( + kTestClearMask, testing::Truly(storage_key_callback_valid), + base::Time(), base::Time::Max())); base::RunLoop run_loop; partition->ClearDataForOrigin(kTestClearMask, kTestQuotaClearMask, kTestOrigin, run_loop.QuitClosure()); run_loop.Run(); testing::Mock::VerifyAndClearExpectations(&observer); - EXPECT_CALL( - observer, - OnOriginDataCleared(kTestClearMask, testing::Truly(origin_callback_valid), - kBeginTime, kEndTime)); + EXPECT_CALL(observer, + OnStorageKeyDataCleared( + kTestClearMask, testing::Truly(storage_key_callback_valid), + kBeginTime, kEndTime)); partition->ClearData(kTestClearMask, kTestQuotaClearMask, blink::StorageKey(url::Origin::Create(kTestOrigin)), kBeginTime, kEndTime, base::DoNothing()); testing::Mock::VerifyAndClearExpectations(&observer); - EXPECT_CALL( - observer, - OnOriginDataCleared(kTestClearMask, testing::Truly(origin_callback_valid), - kBeginTime, kEndTime)); + EXPECT_CALL(observer, + OnStorageKeyDataCleared( + kTestClearMask, testing::Truly(storage_key_callback_valid), + kBeginTime, kEndTime)); partition->ClearData( kTestClearMask, kTestQuotaClearMask, base::BindLambdaForTesting([&](const blink::StorageKey& storage_key,
diff --git a/content/browser/webrtc/resources/data_series.js b/content/browser/webrtc/resources/data_series.js index 9a2d559d..c39b1a9 100644 --- a/content/browser/webrtc/resources/data_series.js +++ b/content/browser/webrtc/resources/data_series.js
@@ -14,7 +14,7 @@ * points will be dropped when it reaches this size. */ export class TimelineDataSeries { - constructor(statsType) { + constructor() { // List of DataPoints in chronological order. this.dataPoints_ = []; @@ -26,7 +26,6 @@ this.cacheStartTime_ = null; this.cacheStepSize_ = 0; this.cacheValues_ = []; - this.statsType_ = statsType; } /** @@ -44,7 +43,6 @@ return { startTime: this.dataPoints_[0].time, endTime: this.dataPoints_[this.dataPoints_.length - 1].time, - statsType: this.statsType_, values: JSON.stringify(values), }; }
diff --git a/content/browser/webrtc/resources/stats_graph_helper.js b/content/browser/webrtc/resources/stats_graph_helper.js index b05f2889..0c1fc15 100644 --- a/content/browser/webrtc/resources/stats_graph_helper.js +++ b/content/browser/webrtc/resources/stats_graph_helper.js
@@ -201,8 +201,8 @@ // We do not draw non-numerical values, but still want to record it in the // data series. addDataSeriesPoints( - peerConnectionElement, reportType, rawDataSeriesId, rawLabel, - [stats.timestamp], [stats.values[i + 1]]); + peerConnectionElement, rawDataSeriesId, rawLabel, [stats.timestamp], + [stats.values[i + 1]]); continue; } let finalDataSeriesId = rawDataSeriesId; @@ -212,8 +212,8 @@ if (isLegacyReport && dataConversionConfig[rawLabel]) { // Updates the original dataSeries before the conversion. addDataSeriesPoints( - peerConnectionElement, reportType, rawDataSeriesId, rawLabel, - [stats.timestamp], [rawValue]); + peerConnectionElement, rawDataSeriesId, rawLabel, [stats.timestamp], + [rawValue]); // Convert to another value to draw on graph, using the original // dataSeries as input. @@ -226,8 +226,8 @@ // Updates the final dataSeries to draw. addDataSeriesPoints( - peerConnectionElement, reportType, finalDataSeriesId, finalLabel, - [stats.timestamp], [finalValue]); + peerConnectionElement, finalDataSeriesId, finalLabel, [stats.timestamp], + [finalValue]); if (!isLegacyReport && (isStandardReportBlocklisted(report) || @@ -297,12 +297,12 @@ // and adds the new data points to it. |times| is the list of timestamps for // each data point, and |values| is the list of the data point values. function addDataSeriesPoints( - peerConnectionElement, reportType, dataSeriesId, label, times, values) { + peerConnectionElement, dataSeriesId, label, times, values) { let dataSeries = peerConnectionDataStore[peerConnectionElement.id].getDataSeries( dataSeriesId); if (!dataSeries) { - dataSeries = new TimelineDataSeries(reportType); + dataSeries = new TimelineDataSeries(); peerConnectionDataStore[peerConnectionElement.id].setDataSeries( dataSeriesId, dataSeries); if (bweCompoundGraphConfig[label]) {
diff --git a/content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java b/content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java index 2e6dfd6..9be06fa 100644 --- a/content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java
@@ -44,6 +44,8 @@ GestureListenerManagerImpl::new; } + private static GestureListenerManagerImpl sInstanceForTesting; + private final WebContentsImpl mWebContents; private final ObserverList<GestureStateListener> mListeners; private final RewindableIterator<GestureStateListener> mIterator; @@ -72,11 +74,19 @@ * Creates one if not present. */ public static GestureListenerManagerImpl fromWebContents(WebContents webContents) { + if (sInstanceForTesting != null) return sInstanceForTesting; return ((WebContentsImpl) webContents) .getOrSetUserData( GestureListenerManagerImpl.class, UserDataFactoryLazyHolder.INSTANCE); } + // TODO(https://crbug.com/1340593): Mocking |#fromWebContents()| may be a better option, when + // available. + @VisibleForTesting + public static void setInstanceForTesting(GestureListenerManagerImpl instance) { + sInstanceForTesting = instance; + } + public GestureListenerManagerImpl(WebContents webContents) { mWebContents = (WebContentsImpl) webContents; mListeners = new ObserverList<GestureStateListener>();
diff --git a/content/public/browser/browsing_data_filter_builder.h b/content/public/browser/browsing_data_filter_builder.h index 056db25..71f7f20f 100644 --- a/content/public/browser/browsing_data_filter_builder.h +++ b/content/public/browser/browsing_data_filter_builder.h
@@ -10,6 +10,7 @@ #include "base/callback_forward.h" #include "content/common/content_export.h" +#include "content/public/browser/storage_partition.h" #include "net/cookies/cookie_partition_key_collection.h" #include "services/network/public/mojom/cookie_manager.mojom.h" #include "services/network/public/mojom/network_service.mojom.h" @@ -18,7 +19,7 @@ namespace url { class Origin; -} +} // namespace url namespace content { @@ -78,11 +79,11 @@ // in the list to preserve. virtual base::RepeatingCallback<bool(const GURL&)> BuildUrlFilter() = 0; - // Builds a filter that matches origins that are in the list to delete, or - // aren't in the list to preserve. This is preferred to BuildUrlFilter() as - // it does not inherently perform GURL->Origin conversions. - virtual base::RepeatingCallback<bool(const url::Origin&)> - BuildOriginFilter() = 0; + // Builds a filter that matches storage keys that are in the list to delete, + // or aren't in the list to preserve. This is preferred to BuildUrlFilter() as + // it preserves storage partitioning information. + virtual content::StoragePartition::StorageKeyMatcherFunction + BuildStorageKeyFilter() = 0; // Builds a filter that can be used with the network service. This uses a Mojo // struct rather than a predicate function (as used by the rest of the filters
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc index e58cb63a..15620fd 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc
@@ -966,7 +966,7 @@ const std::string& request_method, bool has_user_gesture, bool is_redirect, - bool is_main_frame, + bool is_outermost_main_frame, ui::PageTransition transition, bool* ignore_navigation) { return true;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index 63a5e1a0..a787de76 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h
@@ -1759,7 +1759,7 @@ const std::string& request_method, bool has_user_gesture, bool is_redirect, - bool is_main_frame, + bool is_outermost_main_frame, ui::PageTransition transition, bool* ignore_navigation);
diff --git a/content/public/browser/prefetch_service_delegate.cc b/content/public/browser/prefetch_service_delegate.cc index 11d9d49f..6a34a84 100644 --- a/content/public/browser/prefetch_service_delegate.cc +++ b/content/public/browser/prefetch_service_delegate.cc
@@ -5,7 +5,7 @@ #include "content/public/browser/prefetch_service_delegate.h" #include "content/browser/browser_context_impl.h" -#include "content/browser/speculation_rules/prefetch/prefetch_service.h" +#include "content/browser/preloading/prefetch/prefetch_service.h" #include "content/public/browser/browser_context.h" namespace content {
diff --git a/content/public/browser/storage_partition.h b/content/public/browser/storage_partition.h index 78418ede..f3b24a76 100644 --- a/content/public/browser/storage_partition.h +++ b/content/public/browser/storage_partition.h
@@ -229,15 +229,18 @@ base::RepeatingCallback<bool(const blink::StorageKey&, storage::SpecialStoragePolicy*)>; + using StorageKeyMatcherFunction = + base::RepeatingCallback<bool(const blink::StorageKey&)>; + // Observer interface that is notified of specific data clearing events which // which were facilitated by the StoragePartition. Notification occurs on the // UI thread, observer life time is not managed by the StoragePartition. class DataRemovalObserver : public base::CheckedObserver { public: - // Called on a deletion event for origin keyed storage APIs. - virtual void OnOriginDataCleared( + // Called on a deletion event for storage keyed storage APIs. + virtual void OnStorageKeyDataCleared( uint32_t remove_mask, - base::RepeatingCallback<bool(const url::Origin&)> origin_matcher, + StorageKeyMatcherFunction storage_key_matcher, const base::Time begin, const base::Time end) = 0; };
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index df8824ad..7c4597a 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -2273,6 +2273,14 @@ "../browser/payments/payment_manager_unittest.cc", "../browser/permissions/permission_controller_impl_unittest.cc", "../browser/picture_in_picture/picture_in_picture_service_impl_unittest.cc", + "../browser/preloading/prefetch/prefetch_container_unittest.cc", + "../browser/preloading/prefetch/prefetch_cookie_listener_unittest.cc", + "../browser/preloading/prefetch/prefetch_document_manager_unittest.cc", + "../browser/preloading/prefetch/prefetch_params_unittest.cc", + "../browser/preloading/prefetch/prefetch_proxy_configurator_unittest.cc", + "../browser/preloading/prefetch/prefetch_service_unittest.cc", + "../browser/preloading/prefetch/prefetch_type_unittest.cc", + "../browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc", "../browser/preloading/prerender/prerender_host_registry_unittest.cc", "../browser/preloading/prerender/prerender_host_unittest.cc", "../browser/presentation/presentation_service_impl_unittest.cc", @@ -2403,14 +2411,6 @@ "../browser/sms/sms_parser_unittest.cc", "../browser/sms/user_consent_handler_unittest.cc", "../browser/sms/webotp_service_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_container_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_cookie_listener_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_document_manager_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_params_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_proxy_configurator_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_service_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_type_unittest.cc", - "../browser/speculation_rules/prefetch/prefetch_url_loader_interceptor_unittest.cc", "../browser/speculation_rules/speculation_host_impl_unittest.cc", "../browser/speech/tts_controller_unittest.cc", "../browser/startup_task_runner_unittest.cc",
diff --git a/content/test/attribution_simulator_impl.cc b/content/test/attribution_simulator_impl.cc index 7b74beb6..66c0c1e 100644 --- a/content/test/attribution_simulator_impl.cc +++ b/content/test/attribution_simulator_impl.cc
@@ -51,6 +51,7 @@ #include "content/browser/attribution_reporting/send_result.h" #include "content/browser/attribution_reporting/stored_source.h" #include "content/browser/storage_partition_impl.h" +#include "content/public/browser/storage_partition.h" #include "content/public/test/attribution_config.h" #include "content/public/test/browser_task_environment.h" #include "content/public/test/test_browser_context.h" @@ -62,6 +63,7 @@ #include "storage/browser/quota/special_storage_policy.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/abseil-cpp/absl/types/variant.h" +#include "third_party/blink/public/common/storage_key/storage_key.h" #include "url/gurl.h" namespace content { @@ -331,11 +333,12 @@ DCHECK(!input_values_.empty()); input_values_.pop_front(); - base::RepeatingCallback<bool(const url::Origin&)> filter; + StoragePartition::StorageKeyMatcherFunction filter; if (clear.origins.has_value()) { - filter = base::BindLambdaForTesting( - [origins = std::move(*clear.origins)](const url::Origin& origin) { - return origins.contains(origin); + filter = + base::BindLambdaForTesting([origins = std::move(*clear.origins)]( + const blink::StorageKey& storage_key) { + return origins.contains(storage_key.origin()); }); }
diff --git a/content/test/gpu/gpu_tests/gpu_integration_test.py b/content/test/gpu/gpu_tests/gpu_integration_test.py index e6ac3af..7ebafb5 100644 --- a/content/test/gpu/gpu_tests/gpu_integration_test.py +++ b/content/test/gpu/gpu_tests/gpu_integration_test.py
@@ -742,7 +742,8 @@ gpu_tags.extend([gpu_vendor, gpu_device_tag]) # This acts as a way to add expectations for both HD 630 and UHD 630 # GPUs without resorting to the more generic "intel" tag. - if gpu_device_tag in ('intel-0x5912', 'intel-0x3e92'): + if gpu_device_tag in ('intel-0x5912', 'intel-0x3e92', + 'intel-0x9bc5'): gpu_tags.append('intel-hd-630-family') # all spaces and underscores in the tag will be replaced by dashes tags.extend([re.sub('[ _]', '-', tag) for tag in gpu_tags])
diff --git a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt index 90c18d5..2a8b1a5 100644 --- a/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/context_lost_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt index 4a31150..7c1de6a 100644 --- a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt index 357eb9c8..b799dccd 100644 --- a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt index ed08a0c..406475f 100644 --- a/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/info_collection_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt index f68544a..114c276 100644 --- a/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/maps_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt index 0e85a24..71766ec9 100644 --- a/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/mediapipe_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index ff776d3..70c6e7c 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt index 8630da7..f0fec0f 100644 --- a/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/power_measurement_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt index 4876c1e..9ed5bb3 100644 --- a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt index 3d70b84..af87887 100644 --- a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt index 1508698d..2de9cdf7 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt index 778773ae..b5a0f08a 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index e57d1fa..25dfe78 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -26,7 +26,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/content/test/gpu/validate_tag_consistency.py b/content/test/gpu/validate_tag_consistency.py index 02e00ea..cddd6ca 100755 --- a/content/test/gpu/validate_tag_consistency.py +++ b/content/test/gpu/validate_tag_consistency.py
@@ -39,7 +39,7 @@ # arm # google google-0xffff # intel intel-hd-630-family intel-0xa2e intel-0xd26 intel-0xa011 -# intel-0x3e92 intel-0x3e9b intel-0x5912 +# intel-0x3e92 intel-0x3e9b intel-0x5912 intel-0x9bc5 # nvidia nvidia-0xfe9 nvidia-0x1cb3 nvidia-0x2184 # qualcomm ] # Decoder
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc index eea03f9..279db8b 100644 --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc
@@ -599,21 +599,21 @@ base::Unretained(this))); } -void ExtensionDownloader::RetryManifestFetchRequest(int network_error_code, - int response_code) { +void ExtensionDownloader::RetryManifestFetchRequest( + RequestQueue<ManifestFetchData>::Request request, + int network_error_code, + int response_code) { constexpr base::TimeDelta backoff_delay; - const ExtensionIdSet& extension_ids = - manifests_queue_.active_request()->GetExtensionIds(); + const ExtensionIdSet& extension_ids = request.fetch->GetExtensionIds(); NotifyExtensionsDownloadStageChanged( extension_ids, ExtensionDownloaderDelegate::Stage::DOWNLOADING_MANIFEST_RETRY); const ExtensionDownloaderDelegate::FailureData failure_data = ExtensionDownloaderDelegate::FailureData::CreateFromNetworkResponse( - network_error_code, response_code, - manifests_queue_.active_request_failure_count()); + network_error_code, response_code, request.failure_count()); for (const ExtensionId& id : extension_ids) delegate_->OnExtensionDownloadRetry(id, failure_data); - manifests_queue_.RetryRequest(backoff_delay); + manifests_queue_.ScheduleRetriedRequest(std::move(request), backoff_delay); } void ExtensionDownloader::ReportManifestFetchFailure( @@ -679,14 +679,14 @@ } void ExtensionDownloader::RetryRequestOrHandleFailureOnManifestFetchFailure( + RequestQueue<ManifestFetchData>::Request request, const network::SimpleURLLoader& loader, const int response_code) { bool all_force_installed_extensions = - manifests_queue_.active_request()->is_all_external_policy_download(); + request.fetch->is_all_external_policy_download(); const int net_error = loader.NetError(); - const int request_failure_count = - manifests_queue_.active_request_failure_count(); + const int request_failure_count = request.failure_count(); // If the device is offline, do not retry for force installed extensions, // try installing it from cache. Try fetching from cache only on first attempt // in this case, because we will retry the request only if there was no entry @@ -694,25 +694,25 @@ // fetch extension from cache again. if (net_error == net::ERR_INTERNET_DISCONNECTED && all_force_installed_extensions && request_failure_count == 0) { - if (!TryFetchingExtensionsFromCache(manifests_queue_.active_request())) - RetryManifestFetchRequest(net_error, response_code); + if (!TryFetchingExtensionsFromCache(request.fetch.get())) + RetryManifestFetchRequest(std::move(request), net_error, response_code); return; } if (ShouldRetryRequest(&loader) && request_failure_count < kMaxRetries) { - RetryManifestFetchRequest(loader.NetError(), response_code); + RetryManifestFetchRequest(std::move(request), loader.NetError(), + response_code); return; } const GURL url = loader.GetFinalURL(); RETRY_HISTOGRAM("ManifestFetchFailure", request_failure_count, url); if (all_force_installed_extensions) { - if (TryFetchingExtensionsFromCache(manifests_queue_.active_request())) + if (TryFetchingExtensionsFromCache(request.fetch.get())) return; const ExtensionDownloaderDelegate::FailureData failure_data = ExtensionDownloaderDelegate::FailureData::CreateFromNetworkResponse( - net_error, response_code, - manifests_queue_.active_request_failure_count()); + net_error, response_code, request.failure_count()); ReportManifestFetchFailure( - manifests_queue_.active_request(), + request.fetch.get(), ExtensionDownloaderDelegate::Error::MANIFEST_FETCH_FAILED, failure_data); } else { @@ -720,7 +720,7 @@ ExtensionDownloaderDelegate::FailureData::CreateFromNetworkResponse( net_error, response_code, request_failure_count); ReportManifestFetchFailure( - manifests_queue_.active_request(), + request.fetch.get(), ExtensionDownloaderDelegate::Error::MANIFEST_FETCH_FAILED, failure_data); } @@ -728,6 +728,19 @@ void ExtensionDownloader::OnManifestLoadComplete( std::unique_ptr<std::string> response_body) { + // Remove the current loader and active request from the queue. This allows us + // to handle any next steps for the request (such as retrying it) + // asynchronously without blocking the next load in the queue. If the current + // request needs to be retried, it can be scheduled as another entry in the + // queue. + std::unique_ptr<network::SimpleURLLoader> loader = + std::move(manifest_loader_); + const GURL url = loader->GetFinalURL(); + DCHECK(loader); + + RequestQueue<ManifestFetchData>::Request request = + manifests_queue_.reset_active_request(); + // There is a chance that some other request has exactly some URL, so we won't // fetch it twice. std::vector<std::unique_ptr<ManifestFetchData>> duplicates = @@ -735,30 +748,21 @@ [](const GURL& full_url, const ManifestFetchData& fetch) { return fetch.full_url() == full_url; }, - manifests_queue_.active_request()->full_url())); + request.fetch->full_url())); for (std::unique_ptr<ManifestFetchData>& fetch : duplicates) { NotifyExtensionsDownloadStageChanged( fetch->GetExtensionIds(), ExtensionDownloaderDelegate::Stage::DOWNLOADING_MANIFEST); - manifests_queue_.active_request()->Merge(std::move(fetch)); + request.fetch->Merge(std::move(fetch)); } - // Move loader from class-wide field to the local variable in order to make - // ExtensionDownloader reentrable. - std::unique_ptr<network::SimpleURLLoader> loader = - std::move(manifest_loader_); - const GURL url = loader->GetFinalURL(); - DCHECK(manifests_queue_.active_request()); - DCHECK(loader); - int response_code = -1; if (loader->ResponseInfo() && loader->ResponseInfo()->headers) response_code = loader->ResponseInfo()->headers->response_code(); VLOG(2) << response_code << " " << url; - const int request_failure_count = - manifests_queue_.active_request_failure_count(); + const int request_failure_count = request.failure_count(); // We want to try parsing the manifest, and if it indicates updates are // available, we want to fire off requests to fetch those updates. @@ -766,21 +770,19 @@ RETRY_HISTOGRAM("ManifestFetchSuccess", request_failure_count, url); VLOG(2) << "beginning manifest parse for " << url; NotifyExtensionsDownloadStageChanged( - manifests_queue_.active_request()->GetExtensionIds(), + request.fetch->GetExtensionIds(), ExtensionDownloaderDelegate::Stage::PARSING_MANIFEST); - auto callback = base::BindOnce( - &ExtensionDownloader::HandleManifestResults, - weak_ptr_factory_.GetWeakPtr(), - std::move(manifests_queue_.reset_active_request().fetch)); + auto callback = base::BindOnce(&ExtensionDownloader::HandleManifestResults, + weak_ptr_factory_.GetWeakPtr(), + std::move(request.fetch)); ParseUpdateManifest(*response_body, std::move(callback)); } else { VLOG(1) << "Failed to fetch manifest '" << url.possibly_invalid_spec() << "' response code:" << response_code; - RetryRequestOrHandleFailureOnManifestFetchFailure(*loader, response_code); + RetryRequestOrHandleFailureOnManifestFetchFailure(std::move(request), + *loader, response_code); } file_url_loader_factory_.reset(); - if (manifests_queue_.active_request()) - manifests_queue_.reset_active_request(); // If we have any pending manifest requests, fire off the next one. manifests_queue_.StartNextRequest();
diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/browser/updater/extension_downloader.h index c42952b..fd4fd54 100644 --- a/extensions/browser/updater/extension_downloader.h +++ b/extensions/browser/updater/extension_downloader.h
@@ -257,7 +257,10 @@ void CreateManifestLoader(); // Retries the active request with some backoff delay. - void RetryManifestFetchRequest(int network_error_code, int response_code); + void RetryManifestFetchRequest( + RequestQueue<ManifestFetchData>::Request request, + int network_error_code, + int response_code); // Reports failures if we failed to fetch the manifest or the fetched manifest // was invalid. @@ -274,6 +277,7 @@ // AddFailureDataOnManifestFetchFailed when fetching of update manifest // failed. void RetryRequestOrHandleFailureOnManifestFetchFailure( + RequestQueue<ManifestFetchData>::Request request, const network::SimpleURLLoader& loader, const int response_code);
diff --git a/extensions/browser/updater/request_queue.h b/extensions/browser/updater/request_queue.h index 787b7de..b556c50 100644 --- a/extensions/browser/updater/request_queue.h +++ b/extensions/browser/updater/request_queue.h
@@ -43,6 +43,8 @@ Request(std::unique_ptr<net::BackoffEntry> backoff_entry, std::unique_ptr<T> fetch) : backoff_entry(std::move(backoff_entry)), fetch(std::move(fetch)) {} + + int failure_count() { return backoff_entry->failure_count(); } std::unique_ptr<net::BackoffEntry> backoff_entry; std::unique_ptr<T> fetch; }; @@ -66,6 +68,11 @@ // request is currently being processed. void ScheduleRequest(std::unique_ptr<T> request); + // Add the request which already was in the queue, but we've decided to retry + // it. The queue will take care of the retry backoff. + void ScheduleRetriedRequest(Request request, + const base::TimeDelta& min_backoff_delay); + bool empty() const; size_t size() const;
diff --git a/extensions/browser/updater/request_queue_impl.h b/extensions/browser/updater/request_queue_impl.h index cdf16a0e..8bda3ca9 100644 --- a/extensions/browser/updater/request_queue_impl.h +++ b/extensions/browser/updater/request_queue_impl.h
@@ -56,6 +56,20 @@ } template <typename T> +void RequestQueue<T>::ScheduleRetriedRequest( + Request request, + const base::TimeDelta& min_backoff_delay) { + DCHECK(request.backoff_entry); + DCHECK(request.fetch); + request.backoff_entry->InformOfRequest(false); + if (request.backoff_entry->GetTimeUntilRelease() < min_backoff_delay) { + request.backoff_entry->SetCustomReleaseTime(base::TimeTicks::Now() + + min_backoff_delay); + } + PushImpl(std::move(request)); +} + +template <typename T> void RequestQueue<T>::PushImpl(Request request) { pending_requests_.push_back(std::move(request)); std::push_heap( @@ -119,14 +133,7 @@ template <typename T> void RequestQueue<T>::RetryRequest(const base::TimeDelta& min_backoff_delay) { DCHECK(active_request_); - active_request_->backoff_entry->InformOfRequest(false); - if (active_request_->backoff_entry->GetTimeUntilRelease() < - min_backoff_delay) { - active_request_->backoff_entry->SetCustomReleaseTime( - base::TimeTicks::Now() + min_backoff_delay); - } - PushImpl(std::move(*active_request_)); - active_request_.reset(); + ScheduleRetriedRequest(reset_active_request(), min_backoff_delay); } template <typename T>
diff --git a/extensions/strings/extensions_strings_te.xtb b/extensions/strings/extensions_strings_te.xtb index d77f994..cfb3a6cc 100644 --- a/extensions/strings/extensions_strings_te.xtb +++ b/extensions/strings/extensions_strings_te.xtb
@@ -15,7 +15,7 @@ <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ఎక్స్టెన్షన్ ID "<ph name="EXTENSION_ID" />") నిర్వాహకుల ద్వారా బ్లాక్ చేయబడింది. <ph name="ADMIN_INFO" /></translation> <translation id="2988488679308982380">ప్యాకేజీని ఇన్స్టాల్ చేయడం సాధ్యపడలేదు: '<ph name="ERROR_CODE" />'</translation> <translation id="3115238746683532089"><ph name="VENDOR_ID" /> విక్రేత నుండి తెలియని ఉత్పత్తి <ph name="PRODUCT_ID" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation> -<translation id="3144135466825225871">crx ఫైల్ భర్తీ విఫలమైంది. ఫైల్ వినియోగంలో ఉందా అని తనిఖీ చేయండి.</translation> +<translation id="3144135466825225871">crx ఫైల్ భర్తీ విఫలమైంది. ఫైల్ వినియోగంలో ఉందా అని చెక్ చేయండి.</translation> <translation id="3163201441334626963"><ph name="VENDOR_ID" /> నుండి <ph name="PRODUCT_ID" /> తెలియని ఉత్పత్తి</translation> <translation id="3302709122321372472">కంటెంట్ స్క్రిప్ట్కు css '<ph name="RELATIVE_PATH" />'ను లోడ్ చేయడం సాధ్యపడలేదు.</translation> <translation id="3369521687965833290">ఎక్స్టెన్షన్ను అన్ప్యాక్ చేయడం సాధ్యపడలేదు. ఒక ఎక్స్టెన్షన్ను సురక్షితంగా అన్ప్యాక్ చేయడానికి, మీ ప్రొఫైల్ డైరెక్టరీకి ఒక డ్రైవ్ అక్షరంతో ప్రారంభమయ్యే మరియు జంక్షన్, మౌంట్ పాయింట్ లేదా సింలింక్ ఉండని పాత్ తప్పనిసరిగా ఉండాలి. మీ ప్రొఫైల్కు అటువంటి పాత్ లేదు.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb index a0a94465d..7762fb3 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Jy meld tans aan met 'n rekening wat deur <ph name="DOMAIN" /> bestuur word en gee sy administrateur beheer oor jou Chromium-data. Jou data sal permanent met hierdie rekening verbind word. As jy uit Chromium afmeld, sal jou data van hierdie toestel af uitgevee word, maar dit sal steeds in jou Google-rekening geberg word.</translation> <translation id="5983312940147103417">Maak Chromium beter</translation> <translation id="602807004951640891">Deur Chromium te gebruik, stem jy in tot die <ph name="BEGIN_LINK_TOS" />diensbepalings<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Jou organisasie <ph name="DOMAIN" /> sal toegang hê tot jou Chromium-data, -boekmerke, -geskiedenis, -wagwoorde en ander -instellings wat jy in hierdie rekening stoor. Wanneer jy afmeld, sal jou data van hierdie toestel uitgevee word. Jou data sal egter gestoor bly in jou bestuurde Google-rekening en beskikbaar wees vir jou organisasie. Jou organisasie kan ook gebruikersbeleide spesifiek vir daardie rekening stel wat die gedrag van Chromium kan verander.</translation> <translation id="6119647025869519954">Om Chromium jou verstekblaaier te maak: 1. Maak Instellings oop 2. Tik op Verstekblaaierprogram
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb index 866f5d11..9d9e2c6 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Вы ўваходзіце праз уліковы запіс, які кіруецца даменам <ph name="DOMAIN" />, што дае адміністратару кантроль над вашымі данымі з браўзера Chromium. Вашы даныя будуць назаўсёды прывязаны да гэтага ўліковага запісу. Калі выйсці з браўзера Chromium, вашы даныя будуць выдалены з гэтай прылады, але застануцца ва Уліковым запісе Google.</translation> <translation id="5983312940147103417">Зрабіце браўзер Chromium лепшым</translation> <translation id="602807004951640891">Карыстаючыся Chromium, вы згаджаецеся з <ph name="BEGIN_LINK_TOS" />Умовамі выкарыстання<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Ваша арганізацыя <ph name="DOMAIN" /> будзе мець доступ да даных, закладак, гісторыі і пароляў Chromium, а таксама іншых параметраў гэтага ўліковага запісу. Пасля выхаду з уліковага запісу ўсе вашы даныя будуць выдалены з гэтай прылады. Пры гэтым яны застануцца ва Уліковым запісе Google пад кіраваннем, і ваша арганізацыя будзе мець да іх доступ. Арганізацыя таксама можа задаваць палітыкі для карыстальнікаў – яны будуць дзейнічаць у дачыненні да ўліковага запісу пад кіраваннем і могуць змяняць работу Chromium.</translation> <translation id="6119647025869519954">Як зрабіць Chromium стандартным браўзерам: 1. Адкрыйце Settings. 2. Націсніце Default Browser App.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb index bd9d9c83..c3e0bb4 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Влизате с профил, управляван от <ph name="DOMAIN" />, и предоставяте на администратора му контрол над данните си в Chromium. Те ще се свържат за постоянно с този профил. При излизане от браузъра информацията ви ще се изтрие от устройството, но ще продължи да се съхранява в профила ви в Google.</translation> <translation id="5983312940147103417">Подобряване на Chromium</translation> <translation id="602807004951640891">С използването на Chromium приемате <ph name="BEGIN_LINK_TOS" />Общите условия<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Организацията ви <ph name="DOMAIN" /> ще има достъп до данните, отметките, историята, паролите и другите настройки в Chromium, които съхранявате в този профил. Когато излезете от профила си, данните ви ще бъдат изчистени от това устройство. Те обаче ще продължат да се съхраняват във вашия управляван профил в Google и ще са налице за организацията ви. Организацията ви може също да задава правила за потребители конкретно за този профил, които могат да променят поведението на Chromium.</translation> <translation id="6119647025869519954">За да зададете Chromium като браузъра си по подразбиране: 1. Отворете настройките. 2. Докоснете „Стандартно прилож. за браузър“.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb index 42453bb..3e7d8f1 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
@@ -73,6 +73,7 @@ <translation id="5945387852661427312">Du meldest dich mit einem von <ph name="DOMAIN" /> verwalteten Konto an und gibst dem Administrator der Domain Kontrolle über deine Chromium-Daten. Die Daten werden diesem Konto dauerhaft zugeordnet. Wenn du dich von Chromium abmeldest, werden deine Daten auf dem Gerät gelöscht, bleiben jedoch in deinem Google-Konto erhalten.</translation> <translation id="5983312940147103417">Chromium verbessern</translation> <translation id="602807004951640891">Wenn du Chromium nutzt, stimmst du damit den <ph name="BEGIN_LINK_TOS" />Nutzungsbedingungen<ph name="END_LINK_TOS" /> zu.</translation> +<translation id="6062449165341879460">Deine Organisation <ph name="DOMAIN" /> hat Zugriff auf deine Daten, Lesezeichen, Passwörter und deinen Verlauf in Chromium sowie auf andere Einstellungen, die du in diesem Konto speicherst. Wenn du dich abmeldest, werden deine Daten von diesem Gerät gelöscht. Die Daten bleiben jedoch in deinem verwalteten Google-Konto gespeichert und können von deiner Organisation abgerufen werden. Deine Organisation kann auch spezifische Nutzerrichtlinien für dieses Konto festlegen, die das Verhalten von Chromium verändern können.</translation> <translation id="6119647025869519954">So legst du Chromium als Standardbrowser fest: 1. Öffne die Einstellungen 2. Tippe auf „Standard-Browser-App“
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb index a43e691..86c1337 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Estás accediendo con una cuenta que administra <ph name="DOMAIN" /> y dándole permiso a su administrador para que controle tus datos de Chromium. Tus datos se vincularán de forma permanente a esta cuenta. Si sales de Chromium, los datos se borrarán de este dispositivo, pero quedarán almacenados en tu cuenta de Google.</translation> <translation id="5983312940147103417">Cómo mejorar Chromium</translation> <translation id="602807004951640891">Al usar Chromium, aceptas las <ph name="BEGIN_LINK_TOS" />Condiciones del Servicio<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Tu organización <ph name="DOMAIN" /> tendrá acceso a tus datos, favoritos, historial, contraseñas y otros parámetros de configuración de Chromium que almacenes en esta cuenta. Cuando salgas, se borrarán tus datos de este dispositivo. Sin embargo, tus datos permanecerán almacenados en tu Cuenta de Google administrada y estarán disponibles para tu organización. Tu organización también puede establecer políticas del usuario específicas de esa cuenta, que pueden cambiar el comportamiento de Chromium.</translation> <translation id="6119647025869519954">Para establecer Chromium como navegador predeterminado, haz lo siguiente: 1. Abre Ajustes. 2. Presiona App de navegador predeterminada
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb index 1cc2393..3c02d26c 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">هماکنون درحال ورود به سیستم با حسابی مدیریتشده توسط <ph name="DOMAIN" /> و دادن کنترل دادههای Chromium خود به سرپرست این حساب هستید. دادههایتان بهطور دائم به این حساب مرتبط میشوند. با خروج از Chrome، دادههایتان از این دستگاه حذف میشوند اما همچنان در حساب Google شما باقی میماند.</translation> <translation id="5983312940147103417">بهتر کردن Chromium</translation> <translation id="602807004951640891">بااستفاده از Chromium، موافقت خود را با <ph name="BEGIN_LINK_TOS" />شرایط خدمات<ph name="END_LINK_TOS" /> اعلام میکنید.</translation> +<translation id="6062449165341879460">سازمانتان (<ph name="DOMAIN" />) به دادههای Chromium، نشانکها، سابقه، گذرواژهها، و دیگر تنظیماتی که در حسابتان ذخیره میکنید دسترسی خواهد داشت. وقتی از سیستم خارج میشوید، دادههایتان از این دستگاه پاک خواهد شد. اما دادههایتان در «حساب Google» مدیریتشده شما باقی خواهد ماند و برای سازمانتان دردسترس خواهد بود. سازمانتان همچنین میتواند خطمشیهای کاربر مختص آن حساب را تنظیم کند که میتواند رفتار Chromium را تغییر دهید.</translation> <translation id="6119647025869519954">برای تنظیم Chromium بهعنوان مرورگر پیشفرض: ۱. «تنظیمات» را باز کنید ۲. روی «برنامه مرورگر پیشفرض» ضربه بزنید
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb index 0c17245..1e2f69aa 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Vous vous connectez avec un compte géré par <ph name="DOMAIN" />, ce qui permettra à son administrateur de contrôler vos données Chromium. Celles-ci seront définitivement associées à ce compte. Si vous vous déconnectez de Chromium, vos données seront supprimées de cet appareil, mais elles seront conservées dans votre compte Google.</translation> <translation id="5983312940147103417">Améliorer Chromium</translation> <translation id="602807004951640891">En utilisant Chromium, vous acceptez les <ph name="BEGIN_LINK_TOS" />Conditions d'utilisation<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Votre organisation "<ph name="DOMAIN" />" aura accès à vos données, favoris, historique, mots de passe et autres paramètres Chromium stockés dans ce compte. Lorsque vous vous déconnectez, vos données sont effacées de cet appareil. Vos données resteront toutefois stockées dans votre compte Google géré et seront disponibles pour votre organisation. Votre organisation peut également définir des règles relatives aux utilisateurs propres à ce compte, qui pourront modifier le comportement de Chromium.</translation> <translation id="6119647025869519954">Pour définir Chromium comme votre navigateur par défaut, procédez comme suit : 1. Accédez à "Réglages" Appuyez sur "Navigateur par défaut" 3. Sélectionnez "Chromium".</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb index 49b46d8..92dcd31 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Estás iniciando sesión cunha conta xestionada por <ph name="DOMAIN" /> e proporcionándolle ao seu administrador o control dos teus datos de Chromium, que quedarán ligados permanentemente a esta conta. Se pechas sesión en Chromium, eliminaranse os teus datos deste dispositivo, pero seguirán almacenados na túa conta de Google.</translation> <translation id="5983312940147103417">Mellora Chromium</translation> <translation id="602807004951640891">Ao usar Chromium, aceptas as <ph name="BEGIN_LINK_TOS" />Condicións de servizo<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">A túa organización (<ph name="DOMAIN" />) terá acceso aos teus datos de Chromium, así como aos marcadores, ao historial, aos contrasinais e a outras opcións de configuración que almacenes nesta conta. Cando peches sesión, os datos borraranse deste dispositivo. Non obstante, permanecerán almacenados na túa Conta de Google xestionada e estarán dispoñibles para a túa organización. Esta tamén pode definir políticas de usuario específicas para esa conta que poden modificar o comportamento de Chromium.</translation> <translation id="6119647025869519954">Para facer que Chromium sexa o teu navegador predeterminado, sigue estes pasos: 1. Abre Configuración 2. Toca Aplicación de navegador predeterminada
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb index f989062..682f3a12 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
@@ -73,6 +73,7 @@ <translation id="5945387852661427312">आप <ph name="DOMAIN" /> से प्रबंधित खाते में साइन इन कर रहे हैं और उसके एडमिन को अपने क्रोमियम डेटा पर नियंत्रण दे रहे हैं. आपका डेटा इस खाते से स्थायी रूप से जुड़ जाएगा. क्रोमियम से साइन आउट करने से आपका डेटा इस डिवाइस से मिट जाएगा, लेकिन वह आपके Google खाते में बना रहेगा.</translation> <translation id="5983312940147103417">Chromium को बेहतर बनाएं</translation> <translation id="602807004951640891">Chromium का इस्तेमाल करने का मतलब है कि आप <ph name="BEGIN_LINK_TOS" />सेवा की शर्तों<ph name="END_LINK_TOS" /> से सहमत हैं.</translation> +<translation id="6062449165341879460">आपके संगठन <ph name="DOMAIN" /> के पास, आपके Chromium डेटा, बुकमार्क, इतिहास, पासवर्ड, और इस खाते में स्टोर की जाने वाली अन्य सेटिंग का ऐक्सेस होगा. साइन आउट करने पर, आपका डेटा इस डिवाइस से मिटा दिया जाएगा. हालांकि, आपका डेटा, मैनेज किए जा रहे आपके Google खाते में सेव रहेगा और आपके संगठन के लिए उपलब्ध रहेगा. आपका संगठन उस खाते के लिए खास उपयोगकर्ता नीतियां भी सेट कर सकता है. इन नीतियों से, Chromium के काम करने के तरीके में बदलाव आ सकता है.</translation> <translation id="6119647025869519954">Chromium को डिफ़ॉल्ट ब्राउज़र के तौर पर सेट करने के लिए: 1. Settings खोलें 2. डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन पर टैप करें
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb index c413e0f5..be2d0952 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Þú ert að skrá þig út af reikningi sem stýrt er af <ph name="DOMAIN" /> og veitir í leiðinni stjórnanda lénsins umsjón með Chromium gögnunum þínum. Gögnin þín verða tengd við þennan reikning til frambúðar. Ef þú skráir þig út af Chromium verður gögnunum þínum á þessu tæki eytt, en þau verða áfram geymd á Google reikningnum þínum.</translation> <translation id="5983312940147103417">Bættu Chromium</translation> <translation id="602807004951640891">Með því að nota Chromium samþykkirðu <ph name="BEGIN_LINK_TOS" />þjónustuskilmálana<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460"><ph name="DOMAIN" /> fyrirtækisins þíns fær aðgang að Chromium gögnunum þínum, bókamerkjum, ferli, aðgangsorðum og öðrum stillingum sem þú geymir á þessum reikningi. Þegar þú skráir þig út verður gögnunum þínum eytt úr þessu tæki. Hins vegar verða gögnin þín geymd á stýrða Google reikningnum þínum og verða aðgengileg fyrirtækinu þínu. Fyrirtækið þitt getur líka stillt notendareglur sem eru sértækar fyrir reikninginn þinn og geta breytt virkni Chromium.</translation> <translation id="6119647025869519954">Til að gera Chromium að sjálfgefnum vafra: 1. Opnaðu Stillingar 2. Ýttu á „Sjálfgefið vafraforrit“
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb index 9aab2215..ee241bd 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Stai per eseguire l'accesso con un account gestito da <ph name="DOMAIN" /> e consentire al relativo amministratore di avere il controllo dei tuoi dati di Chromium. I tuoi dati verranno associati definitivamente a questo account. Se esci da Chromium, i dati verranno eliminati da questo dispositivo, ma rimarranno memorizzati nel tuo Account Google.</translation> <translation id="5983312940147103417">Migliora Chromium</translation> <translation id="602807004951640891">Se utilizzi Chromium, accetti i <ph name="BEGIN_LINK_TOS" />Termini di servizio<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">La tua organizzazione <ph name="DOMAIN" /> avrà accesso ai dati, ai preferiti, alla cronologia, alle password e ad altre impostazioni di Chromium che hai memorizzato in questo account. Quando esci, i dati verranno cancellati da questo dispositivo. Tuttavia, i tuoi dati rimarranno memorizzati nel tuo Account Google gestito e saranno disponibili per la tua organizzazione. La tua organizzazione può anche impostare criteri specifici per l'account in grado di modificare il comportamento di Chromium.</translation> <translation id="6119647025869519954">Per impostare Chromium come browser predefinito: 1. Apri le Impostazioni. 2. Tocca App browser predefinita.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb index b0a15627..13b8f820 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">הכניסה שלך נעשית באמצעות חשבון המנוהל על-ידי <ph name="DOMAIN" /> ומעניק למנהל שלו שליטה על הנתונים שלך ב-Chromium. הנתונים שלך ישויכו לצמיתות אל החשבון הזה. יציאה מ-Chromium תמחק את הנתונים שלך מהמכשיר הזה, אבל הם יישארו בחשבון Google שלך.</translation> <translation id="5983312940147103417">משפרים את Chromium</translation> <translation id="602807004951640891">השימוש ב-Chromium מהווה הסכמה ל<ph name="BEGIN_LINK_TOS" />תנאים ולהגבלות<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">לדומיין <ph name="DOMAIN" /> של הארגון תהיה גישה לנתונים, לסימניות, להיסטוריה, לסיסמאות ולהגדרות אחרות ששמרת בחשבון הזה ב-Chromium. לאחר היציאה מהחשבון, הנתונים יימחקו מהמכשיר הזה. עם זאת, הנתונים יישארו בחשבון Google המנוהל שלך ויהיו זמינים לארגון שלך. בנוסף, לארגון יש אפשרות להגדיר מדיניות משתמש ספציפית לחשבון, שיכולה לשנות את אופן הפעולה של Chromium.</translation> <translation id="6119647025869519954">כדי להגדיר את Chromium כדפדפן ברירת המחדל: 1. פותחים את ההגדרות 2. מקישים על אפליקציית הדפדפן שמוגדרת כברירת מחדל
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb index e559572..b15657b1 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">អ្នកកំពុងចូលដោយប្រើគណនីដែលគ្រប់គ្រងដោយ <ph name="DOMAIN" /> និងអនុញ្ញាតឲ្យអ្នកគ្រប់គ្រងរបស់វាធ្វើការគ្រប់គ្រងទិន្នន័យ Chromium របស់អ្នក។ ទិន្នន័យរបស់អ្នកនឹងភ្ជាប់ជាមួយគណនីនេះជាអចិន្ត្រៃយ៍។ ការចេញពី Chromium នឹងលុបទិន្នន័យរបស់អ្នកចេញពីឧបករណ៍នេះ ប៉ុន្តែវានឹងនៅតែរក្សាទុកក្នុងគណនី Google របស់អ្នកដដែល។</translation> <translation id="5983312940147103417">ធ្វើឱ្យ Chromium កាន់តែប្រសើរ</translation> <translation id="602807004951640891">ប្រសិនបើប្រើ Chromium មានន័យថាអ្នកយល់ព្រមតាម<ph name="BEGIN_LINK_TOS" />លក្ខខណ្ឌប្រើប្រាស់<ph name="END_LINK_TOS" />។</translation> +<translation id="6062449165341879460">ស្ថាប័ន <ph name="DOMAIN" /> របស់អ្នកនឹងមានសិទ្ធិចូលប្រើប្រាស់ទិន្នន័យ Chromium របស់អ្នក ចំណាំ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតដែលអ្នករក្សាទុកក្នុងគណនីនេះ។ នៅពេលអ្នកចេញ ទិន្នន័យរបស់អ្នកនឹងត្រូវបានសម្អាតចេញពីឧបករណ៍នេះ។ ប៉ុន្តែ ទិន្នន័យរបស់អ្នកនឹងនៅតែរក្សាទុកក្នុងគណនី Google ដែលស្ថិតក្រោមការគ្រប់គ្រងរបស់អ្នក ហើយអាចប្រើបានសម្រាប់ស្ថាប័នរបស់អ្នក។ ស្ថាប័នរបស់អ្នកក៏អាចកំណត់គោលការណ៍អ្នកប្រើប្រាស់ដែលជាក់លាក់ចំពោះគណនីនោះ ដែលអាចផ្លាស់ប្ដូរសកម្មភាពប្រើប្រាស់ Chromium ផងដែរ។</translation> <translation id="6119647025869519954">ដើម្បីកំណត់ Chromium ជាកម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើមរបស់អ្នក៖ 1. បើកការកំណត់ 2. ចុចកម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើម
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb index b3547d8..61dc2a0 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Prisijungiate naudodami <ph name="DOMAIN" /> valdomą paskyrą ir suteikiate jos administratoriui galimybę valdyti jūsų „Chromium“ duomenis. Duomenys bus visam laikui susieti su šia paskyra. Atsijungę nuo „Chromium“ ištrinsite duomenis iš šio įrenginio, bet jie ir toliau bus saugomi „Google“ paskyroje.</translation> <translation id="5983312940147103417">„Chromium“ tobulinimas</translation> <translation id="602807004951640891">Naudodami „Chromium“ sutinkate su <ph name="BEGIN_LINK_TOS" />paslaugų teikimo sąlygomis<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Organizacija „<ph name="DOMAIN" />“ galės pasiekti „Chromium“ duomenis, žymes, istoriją, slaptažodžius ir kitus nustatymus, kuriuos saugote šioje paskyroje. Kai atsijungsite, šio įrenginio duomenys bus išvalyti. Tačiau duomenys bus toliau saugomi jūsų valdomoje „Google“ paskyroje ir bus pasiekiami jūsų organizacijai. Jūsų organizacija taip pat gali nustatyti tos paskyros naudotojo politiką, pagal kurią galima keisti „Chromium“ veikimą.</translation> <translation id="6119647025869519954">Jei norite nustatyti „Chromium“ kaip numatytąją naršyklę, atlikite toliau nurodytus veiksmus. 1. Atidarykite skiltį „Nustatymai“. 2. Palieskite „Numatytoji naršyklės programa“.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb index 491351b..88a6f6e9 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Jūs pierakstāties kontā, kas tiek pārvaldīts domēnā <ph name="DOMAIN" />, un sniedzat tā administratoram kontroli pār saviem Chromium datiem. Jūsu dati tiks neatgriezeniski saistīti ar šo kontu. Izrakstoties no pārlūka Chromium, jūsu dati tiks dzēsti no šīs ierīces, taču tie tiks saglabāti jūsu Google kontā.</translation> <translation id="5983312940147103417">Uzlabojiet pārlūku Chromium</translation> <translation id="602807004951640891">Izmantojot pārlūkprogrammu Chromium, jūs piekrītat <ph name="BEGIN_LINK_TOS" />pakalpojumu sniegšanas noteikumiem<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Jūsu organizācija (<ph name="DOMAIN" />) varēs piekļūt jūsu Chromium datiem, grāmatzīmēm, vēsturei, parolēm un citiem iestatījumiem, ko glabājat šajā kontā. Izrakstoties jūsu dati tiks dzēsti no šīs ierīces. Tomēr jūsu dati joprojām tiks glabāti jūsu pārvaldītajā Google kontā un būs pieejami jūsu organizācijai. Jūsu organizācija var kontā iestatīt lietotāju politikas, kas var mainīt Chromium darbību.</translation> <translation id="6119647025869519954">Lai iestatītu Chromium kā noklusējuma pārlūku, veiciet tālāk norādītās darbības. 1. Atveriet iestatījumus. 2. Pieskarieties vienumam “Noklusējuma pārlūka lietotne”.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb index f7bc71e..08a8694 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312"><ph name="DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यासह तुम्ही साइन इन करत आहात आणि त्याच्या ॲडमिनिस्ट्रेटरला तुमच्या Chromium डेटाचे नियंत्रण देत आहात. तुमचा डेटा कायमचा या खात्यामध्ये असेल. Chromium मधून साइन आउट केल्याने तुमचा डेटा या डिव्हाइस वरून हटवला जाईल परंतु तो तुमच्या Google खात्यामध्ये स्टोअर केलेला असेल.</translation> <translation id="5983312940147103417">Chromium मध्ये सुधारणा करा</translation> <translation id="602807004951640891">Chromium वापरून, तुम्ही <ph name="BEGIN_LINK_TOS" />सेवा अटी<ph name="END_LINK_TOS" /> यांना सहमती दर्शवता.</translation> +<translation id="6062449165341879460">तुमच्या संस्थेच्या <ph name="DOMAIN" /> ला तुमचा Chromium डेटा, बुकमार्क, इतिहास, पासवर्ड आणि तुम्ही या खात्यामध्ये स्टोअर केलेल्या इतर सेटिंग्जचा ॲक्सेस असेल. तुम्ही साइन आउट करता, तेव्हा तुमचा डेटा या डिव्हाइसवरून साफ केला जाईल. तरीही, तुमचा डेटा तुमचे व्यवस्थापित केलेले Google खाते मध्ये स्टोअर केलेला राहील आणि तुमच्या संस्थेसाठी उपलब्ध असेल. तुमची संस्था त्या खात्यासाठी विशिष्ट वापरकर्ता धोरणेदेखील सेट करू शकते, ज्यांमुळे Chromium चे वर्तन बदलू शकते.</translation> <translation id="6119647025869519954">Chromium ला तुमचे डीफॉल्ट करण्यासाठी: १. सेटिंग्ज उघडा २. डीफॉल्ट ब्राउझर अॅप वर टॅप करा
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb index ff4f1fd..3162e60 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Po identifikohesh me një llogari të menaxhuar nga <ph name="DOMAIN" /> dhe po i jep administratorit të saj kontroll mbi të dhënat e tua të Chromium. Të dhënat e tua do të lidhen përgjithmonë me këtë llogari. Dalja nga Chromium do të bëjë që të fshihen të dhënat e tua nga kjo pajisje, por ato do të mbeten të ruajtura në llogarinë tënde të Google.</translation> <translation id="5983312940147103417">Përmirëso Chromium</translation> <translation id="602807004951640891">Duke përdorur Chromium, ti pranon <ph name="BEGIN_LINK_TOS" />Kushtet e shërbimit<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Organizata jote <ph name="DOMAIN" /> do të ketë qasje te të dhënat, faqeshënuesit, historiku, fjalëkalimet dhe cilësimet e tua të tjera të Chromium që ti ruan në këtë llogari. Kur të dalësh nga llogaria, të dhënat e tua do të pastrohen nga kjo pajisje. Sidoqoftë, të dhënat e tua do të qëndrojnë të ruajtura në "Llogarinë tënde të menaxhuar të Google" dhe do të jenë të disponueshme për organizatën tënde. Organizata jote mund të caktojë po ashtu politika përdoruesi specifike për atë llogari që mund të ndryshojnë sjelljen e Chromium.</translation> <translation id="6119647025869519954">Për ta bërë Chromium shfletuesin e parazgjedhur: 1. Hap "Cilësimet" 2. Trokit tek "Aplikacioni i parazgjedhur i shfletuesit"
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb index 6bc2894..cdfdfc5 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Du håller på att logga in med ett konto som hanteras av <ph name="DOMAIN" /> vilket ger administratören kontroll över data i Chromium. Din data kopplas permanent till det här kontot. Om du loggar ut från Chromium raderas all din data från enheten, men den lagras fortfarande på Google-kontot.</translation> <translation id="5983312940147103417">Gör Chromium bättre</translation> <translation id="602807004951640891">Genom att använda Chromium godkänner du <ph name="BEGIN_LINK_TOS" />användarvillkoren<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Organisationen <ph name="DOMAIN" /> har åtkomst till data, bokmärken, historik, lösenord och andra inställningar i Chromium som du lagrar i det här kontot. När du loggar ut raderas din data från enheten. Datan lagras dock fortfarande i det hanterade Google-kontot och kan kommas åt av organisationen. Organisationen kan även ställa in användarpolicyer som gäller det kontot specifikt och som kan påverka hur Chromium fungerar.</translation> <translation id="6119647025869519954">Så här använder du Chromium som standard: 1. Öppna inställningarna 2. Tryck på Standardwebbläsarapp
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb index 37c525db..968a319e 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Unaingia kwa kutumia akaunti inayodhibitiwa na <ph name="DOMAIN" /> na kumpa msimamizi wa kikoa hicho udhibiti wa data yako ya Chromium. Data yako ya Chromium itahusishwa na akaunti hii daima. Kuondoka kwenye Chromium kutafuta data yako kwenye kifaa hiki, lakini itaendelea kuhifadhiwa katika Akaunti yako ya Google.</translation> <translation id="5983312940147103417">Boresha Chromium</translation> <translation id="602807004951640891">Kwa kutumia Chromium, unakubali <ph name="BEGIN_LINK_TOS" />Sheria na Masharti<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Shirika lako <ph name="DOMAIN" /> litakuwa na uwezo wa kufikia data yako ya Chromium, alamisho, historia, manenosiri na mipangilio mingine uliyohifadhi kwenye akaunti hii. Ukiondoka kwenye akaunti, data yako itafutwa kwenye kifaa hiki. Hata hivyo, data yako itabaki imehifadhiwa kwenye akaunti yako ya Google inayosimamiwa na itapatikana katika shirika lako. Shirika lako linaweza pia kuweka sera mahususi za mtumiaji kwenye akaunti hiyo, hivyo zinaweza kubadilisha tabia ya Chromium.</translation> <translation id="6119647025869519954">Ili ufanye Chromium iwe kivinjari chako chaguomsingi: 1. Fungua Mipangilio 2. Gusa Programu ya Kivinjari Chaguomsingi
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb index c660296..095f3a84 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312"><ph name="DOMAIN" /> tarafından yönetilen bir hesapla oturum açıyor ve yöneticiye tüm Chromium verileriniz üzerinde denetim olanağı veriyorsunuz. Verileriniz kalıcı olarak bu hesaba bağlanacaktır. Chromium'da oturumu kapattığınızda verileriniz bu cihazdan silinir ancak Google Hesabınızda kalmaya devam eder.</translation> <translation id="5983312940147103417">Chromium'u Daha İyi Hale Getirin</translation> <translation id="602807004951640891">Chromium'u kullanarak, <ph name="BEGIN_LINK_TOS" />Hizmet Şartları<ph name="END_LINK_TOS" />'nı kabul etmiş sayılırsınız.</translation> +<translation id="6062449165341879460">Chromium verilerinize, yer işaretlerinize, geçmişinize, şifrelerinize ve bu hesapta sakladığınız diğer ayarlara kuruluşunuz <ph name="DOMAIN" /> erişebilir. Oturumunuzu kapattığınızda verileriniz bu cihazdan silinir. Ancak verileriniz, yönetilen Google Hesabınızda saklanır ve kuruluşunuzun kullanımına açıktır. Kuruluşunuz ayrıca, söz konusu hesaba özel olup Chromium'un davranışını değiştirebilecek kullanıcı politikaları belirleyebilir.</translation> <translation id="6119647025869519954">Chromium'u varsayılan tarayıcınız yapmak için: 1. Ayarlar'ı açın 2. Varsayılan Tarayıcı Uygulaması'na dokunun
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb index 3eea836..8ffdff69 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Ви входите в обліковий запис, зареєстрований у домені <ph name="DOMAIN" />, і надаєте його адміністратору доступ до своїх даних Chromium. Ваші дані буде назавжди зв’язано з цим обліковим записом. Якщо ви вийдете з облікового запису Chromium, дані буде видалено з цього пристрою, але вони залишаться у вашому обліковому записі Google.</translation> <translation id="5983312940147103417">Покращте Chromium</translation> <translation id="602807004951640891">Користуючись Chromium, ви приймаєте <ph name="BEGIN_LINK_TOS" />Умови використання<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">Ваша організація <ph name="DOMAIN" /> матиме доступ до даних Chromium, закладок, історії, паролів та інших налаштувань, які ви зберігаєте в цьому обліковому записі. Коли ви вийдете, ваші дані буде видалено з цього пристрою. Однак вони залишаться в керованому обліковому записі Google і будуть доступними для вашої організації. Крім того, ваша організація може визначити правила для користувачів цього облікового запису, які можуть впливати на роботу Chromium.</translation> <translation id="6119647025869519954">Як зробити Chromium веб-переглядачем за умовчанням 1. Відкрийте налаштування 2. Натисніть "Веб-переглядач за умовчанням"
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb index 25f61f89..fcb6c9b 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb
@@ -74,6 +74,7 @@ <translation id="5945387852661427312">Ungena ngemvume nge-akhawunti ephethwe yi-<ph name="DOMAIN" /> futhi unikeza umlawuli ulawulo ngaphezu kwedatha yakho ye-Chromium. Idatha yakho izoboshelwa ngunaphakade kule akhawunti. Ukuphuma ngemvume ku-Chromium kuzosusa idatha yakho kusukela kule divayisi, kodwa izohlala igcinwe ku-akhawunti yakho ye-Google.</translation> <translation id="5983312940147103417">Yenza I-Chromium Ibe Ngcono</translation> <translation id="602807004951640891">Ngokusebenzisa i-Chromium, uvumelana nokuthi <ph name="BEGIN_LINK_TOS" />Imigomo Yesevisi<ph name="END_LINK_TOS" />.</translation> +<translation id="6062449165341879460">I-<ph name="DOMAIN" /> yenhlangano yakho izoba nokufinyelela kudatha yakho ye-Chromium, amabhukhimakhi, umlando, amaphasiwedi namanye amasethingi owagcina kule akhawunti. Uma uphuma ngemvume, idatha yakho izosulwa kule divayisi. Nokho, idatha yakho izohlala igcinwe ku-Google Account yakho ephethwe futhi itholakale enhlanganweni yakho. Inhlangano yakho ingasetha izinqubomgomo zomsebenzisi eziqondile kuleyo akhawunti ezingashintsha ukuziphatha kwe-Chromium.</translation> <translation id="6119647025869519954">Ukuze wenze i-Chromium ibe ngokuzenzakalelayo kwakho: 1. Vula Amasethingi 2. Thepha Uhlelo Lokusebenza Lwesiphequluli Esizenzakalelayo
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb index 60938da..5f031e3 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Jou wagwoord is in 'n dataskending blootgestel. Chrome beveel aan dat jy die wagwoord nou verander.</translation> <translation id="7693590760643069321">Jy kan Chrome nou enige tyd gebruik wanneer jy op skakels in boodskappe, dokumente en ander programme tik.</translation> <translation id="7698568245838009292">Chrome wil toegang tot die kamera hê</translation> +<translation id="7754633291442704733">Jou organisasie <ph name="DOMAIN" /> sal toegang hê tot jou Chrome-data, -boekmerke, -geskiedenis, -wagwoorde en ander -instellings wat jy in hierdie rekening stoor. Wanneer jy afmeld, sal jou data van hierdie toestel uitgevee word. Jou data sal egter gestoor bly in jou bestuurde Google-rekening en beskikbaar wees vir jou organisasie. Jou organisasie kan ook gebruikersbeleide spesifiek vir daardie rekening stel wat die gedrag van Chrome kan verander.</translation> <translation id="7780154209050837198">Meld met jou Google-rekening by Chrome aan om die meeste voordeel daaruit te trek.</translation> <translation id="7855730255114109580">Google Chrome is op datum</translation> <translation id="8022947259858476807">Gebruik by verstek Chrome om skakels oop te maak, van legstukke af te soek, en wagwoorde outomaties by ander programme in te vul</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb index 33e5de5..726105a 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Пры ўцечцы даных быў раскрыты ваш пароль. Chrome рэкамендуе неадкладна змяніць яго.</translation> <translation id="7693590760643069321">Цяпер вы можаце выкарыстоўваць Chrome кожны раз, калі адкрываеце спасылкі ў паведамленнях, дакументах або іншых праграмах.</translation> <translation id="7698568245838009292">Chrome запытвае доступ да камеры</translation> +<translation id="7754633291442704733">Ваша арганізацыя <ph name="DOMAIN" /> будзе мець доступ да даных, закладак, гісторыі і пароляў Chrome, а таксама іншых параметраў гэтага ўліковага запісу. Пасля выхаду з уліковага запісу ўсе вашы даныя будуць выдалены з гэтай прылады. Пры гэтым яны застануцца ва Уліковым запісе Google пад кіраваннем, і ваша арганізацыя будзе мець да іх доступ. Арганізацыя таксама можа задаваць палітыкі для карыстальнікаў – яны будуць дзейнічаць у дачыненні да ўліковага запісу пад кіраваннем і могуць змяняць работу Chrome.</translation> <translation id="7780154209050837198">Каб карыстацца ўсімі магчымасцямі браўзера Chrome, увайдзіце ў яго праз свой Уліковы запіс Google.</translation> <translation id="7855730255114109580">Google Chrome абноўлены да апошняй версіі</translation> <translation id="8022947259858476807">Зрабіце Chrome стандартным браўзерам, каб адкрываць спасылкі, шукаць інфармацыю праз віджэты і аўтаматычна запаўняць паролі ў іншых праграмах</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb index aa3c0a0..a6d0f2a83 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Паролата ви бе разкрита при нарушение на сигурността на данните. Chrome препоръчва да я промените сега.</translation> <translation id="7693590760643069321">Вече можете да използвате Chrome всеки път, когато докоснете връзки в съобщения, документи и други приложения.</translation> <translation id="7698568245838009292">Chrome иска достъп до камерата</translation> +<translation id="7754633291442704733">Организацията ви <ph name="DOMAIN" /> ще има достъп до данните, отметките, историята, паролите и другите настройки в Chrome, които съхранявате в този профил. Когато излезете от профила си, данните ви ще бъдат изчистени от това устройство. Те обаче ще продължат да се съхраняват във вашия управляван профил в Google и ще са налице за организацията ви. Организацията ви може също да задава правила за потребители конкретно за този профил, които могат да променят поведението на Chrome.</translation> <translation id="7780154209050837198">За да се възползвате максимално от Chrome, влезте в браузъра с профила си в Google.</translation> <translation id="7855730255114109580">Google Chrome е актуален</translation> <translation id="8022947259858476807">Използвайте Chrome по подразбиране за отваряне на връзки, търсене от приспособления и автоматично попълване на пароли в други приложения</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb index acfa65b..564bc466 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Dein Passwort wurde durch eine Datenpanne preisgegeben. Chrome empfiehlt, das Passwort jetzt zu ändern.</translation> <translation id="7693590760643069321">Du kannst jetzt Chrome jederzeit nutzen, wenn du in Nachrichten, Dokumenten und anderen Apps auf Links tippst.</translation> <translation id="7698568245838009292">Chrome möchte auf deine Kamera zugreifen</translation> +<translation id="7754633291442704733">Deine Organisation <ph name="DOMAIN" /> hat Zugriff auf deine Daten, Lesezeichen, Passwörter und deinen Verlauf in Chrome sowie auf andere Einstellungen, die du in diesem Konto speicherst. Wenn du dich abmeldest, werden deine Daten von diesem Gerät gelöscht. Die Daten bleiben jedoch in deinem verwalteten Google-Konto gespeichert und können von deiner Organisation abgerufen werden. Deine Organisation kann auch spezifische Nutzerrichtlinien für dieses Konto festlegen, die das Verhalten von Chrome verändern können.</translation> <translation id="7780154209050837198">Wenn du Chrome optimal nutzen möchtest, meldest du dich mit deinem Google-Konto in Chrome an.</translation> <translation id="7855730255114109580">Google Chrome ist auf dem neuesten Stand.</translation> <translation id="8022947259858476807">Chrome standardmäßig verwenden, um Links zu öffnen, über Widgets zu suchen und Passwörter in anderen Apps automatisch auszufüllen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb index dbd99ec2..ed41b35 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Tu contraseña quedó expuesta en una violación de la seguridad de los datos. Chrome te recomienda cambiarla ahora.</translation> <translation id="7693590760643069321">Ahora puedes usar Chrome cada vez que presionas vínculos que aparecen en mensajes, documentos u otras apps.</translation> <translation id="7698568245838009292">Chrome quiere acceder a la cámara</translation> +<translation id="7754633291442704733">Tu organización <ph name="DOMAIN" /> tendrá acceso a tus datos, favoritos, historial, contraseñas y otros parámetros de configuración de Chrome que almacenes en esta cuenta. Cuando salgas, se borrarán tus datos de este dispositivo. Sin embargo, tus datos permanecerán almacenados en tu Cuenta de Google administrada y estarán disponibles para tu organización. Tu organización también puede establecer políticas del usuario específicas de esa cuenta, que pueden cambiar el comportamiento de Chrome.</translation> <translation id="7780154209050837198">Para aprovechar Chrome al máximo, accede al navegador con tu Cuenta de Google.</translation> <translation id="7855730255114109580">Google Chrome está actualizado</translation> <translation id="8022947259858476807">Usa Chrome como tu navegador predeterminado para abrir vínculos, realizar búsquedas desde widgets y autocompletar contraseñas en otras apps</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb index 2c7e79c..752465a 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">گذرواژهتان بهدلیل نقض داده لو رفته است. Chrome توصیه میکند همینحالا گذرواژه را تغییر دهید.</translation> <translation id="7693590760643069321">اکنون میتوانید انتخاب کنید پیوندهای موجود در پیامها، اسناد، و برنامههای دیگر همیشه در Chrome باز شوند.</translation> <translation id="7698568245838009292">Chrome میخواهد به «دوربین» دسترسی داشته باشد</translation> +<translation id="7754633291442704733">سازمانتان (<ph name="DOMAIN" />) به دادههای Chrome، نشانکها، سابقه، گذرواژهها، و دیگر تنظیماتی که در حسابتان ذخیره میکنید دسترسی خواهد داشت. وقتی از سیستم خارج میشوید، دادههایتان از این دستگاه پاک خواهد شد. اما دادههایتان در «حساب Google» مدیریتشده شما باقی خواهد ماند و برای سازمانتان دردسترس خواهد بود. سازمانتان همچنین میتواند خطمشیهای کاربر مختص آن حساب را تنظیم کند که میتواند رفتار Chrome را تغییر دهید.</translation> <translation id="7780154209050837198">برای اینکه بیشترین بهره را از Chrome ببرید، با «حساب Google» به سیستم Chrome وارد شوید.</translation> <translation id="7855730255114109580">Google Chrome بهروز است</translation> <translation id="8022947259858476807">برای باز کردن پیوندها، جستجوی ابزارکها، و تکمیل خودکار گذرواژهها در دیگر برنامهها، بهطور پیشفرض از Chrome استفاده کنید</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb index 6917f9c..dce6712e 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Votre mot de passe a été compromis lors d'une violation des données. Chrome vous recommande de le modifier immédiatement.</translation> <translation id="7693590760643069321">Chaque fois que vous appuierez sur des liens dans des messages, des documents et d'autres applis, le contenu s'affichera dans Chrome.</translation> <translation id="7698568245838009292">Chrome souhaite accéder à l'appareil photo</translation> +<translation id="7754633291442704733">Votre organisation "<ph name="DOMAIN" />" aura accès à vos données, favoris, historique, mots de passe et autres paramètres Chrome stockés dans ce compte. Lorsque vous vous déconnectez, vos données sont effacées de cet appareil. Vos données resteront toutefois stockées dans votre compte Google géré et seront disponibles pour votre organisation. Votre organisation peut également définir des règles relatives aux utilisateurs propres à ce compte, qui pourront modifier le comportement de Chrome.</translation> <translation id="7780154209050837198">Pour profiter pleinement de Chrome, connectez-vous avec votre compte Google.</translation> <translation id="7855730255114109580">Google Chrome est à jour</translation> <translation id="8022947259858476807">Utilisez Chrome par défaut pour ouvrir les liens, faire des recherches depuis les widgets et saisir automatiquement les mots de passe dans d'autres applis</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb index 2cfd942..0caaac2 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">O teu contrasinal quedou exposto debido a unha violación da seguranza dos datos. Chrome recoméndache que o cambies agora.</translation> <translation id="7693590760643069321">Xa podes utilizar Chrome sempre que toques ligazóns en mensaxes, en documentos e noutras aplicacións.</translation> <translation id="7698568245838009292">Chrome quere acceder á cámara</translation> +<translation id="7754633291442704733">A túa organización (<ph name="DOMAIN" />) terá acceso aos teus datos de Chrome, así como aos marcadores, ao historial, aos contrasinais e a outras opcións de configuración que almacenes nesta conta. Cando peches sesión, os datos borraranse deste dispositivo. Non obstante, permanecerán almacenados na túa Conta de Google xestionada e estarán dispoñibles para a túa organización. Esta tamén pode definir políticas de usuario específicas para esa conta que poden modificar o comportamento de Chrome.</translation> <translation id="7780154209050837198">Para tirarlle o máximo partido a Chrome, inicia sesión coa túa Conta de Google en Chrome.</translation> <translation id="7855730255114109580">Google Chrome está actualizado</translation> <translation id="8022947259858476807">Usa Chrome de forma predeterminada para abrir ligazóns, realizar buscas desde widgets e autocompletar contrasinais noutras aplicacións</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb index ec0c63e..42446b7 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">डेटा के गलत इस्तेमाल की वजह से, आपका पासवर्ड बिना अनुमति के सार्वजनिक हो गया था. Chrome का सुझाव है कि आप अभी पासवर्ड बदल लें.</translation> <translation id="7693590760643069321">अब आप मैसेज, दस्तावेज़ों, और अन्य ऐप्लिकेशन में मिले लिंक पर टैप करके, कभी भी Chrome का इस्तेमाल कर सकते हैं.</translation> <translation id="7698568245838009292">Chrome आपका कैमरा ऐक्सेस करना चाहता है</translation> +<translation id="7754633291442704733">आपके संगठन <ph name="DOMAIN" /> के पास, आपके Chrome डेटा, बुकमार्क, इतिहास, पासवर्ड, और इस खाते में स्टोर की जाने वाली अन्य सेटिंग का ऐक्सेस होगा. साइन आउट करने पर, आपका डेटा इस डिवाइस से मिटा दिया जाएगा. हालांकि, आपका डेटा, मैनेज किए जा रहे आपके Google खाते में सेव रहेगा और आपके संगठन के लिए उपलब्ध रहेगा. आपका संगठन उस खाते के लिए खास उपयोगकर्ता नीतियां भी सेट कर सकता है. इन नीतियों से, Chrome के काम करने के तरीके में बदलाव आ सकता है.</translation> <translation id="7780154209050837198">Chrome का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, अपने Google खाते से Chrome में साइन इन करें.</translation> <translation id="7855730255114109580">Google Chrome अप टू डेट है</translation> <translation id="8022947259858476807">लिंक खोलने के लिए, विजेट से खोजने के लिए, Chrome को डिफ़ॉल्ट रूप से इस्तेमाल करें. ऐप्लिकेशन में पासवर्ड अपने-आप भर जाए, इसके लिए भी Chrome को डिफ़ॉल्ट रूप से इस्तेमाल करें.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb index 23454b4..e0be4ce 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Aðgangsorðið þitt var afhjúpað vegna öryggisbrots. Chrome mælir með því að þú breytir aðgangsorðinu þínu núna.</translation> <translation id="7693590760643069321">Núna geturðu notað Chrome hvenær sem þú ýtir á tengil í skilaboðum, skjölum og öðrum forritum.</translation> <translation id="7698568245838009292">Chrome biður um aðgang að myndavélinni</translation> +<translation id="7754633291442704733"><ph name="DOMAIN" /> fyrirtækisins þíns fær aðgang að Chrome gögnunum þínum, bókamerkjum, ferli, aðgangsorðum og öðrum stillingum sem þú geymir á þessum reikningi. Þegar þú skráir þig út verður gögnunum þínum eytt úr þessu tæki. Hins vegar verða gögnin þín geymd á stýrða Google reikningnum þínum og verða aðgengileg fyrirtækinu þínu. Fyrirtækið þitt getur líka stillt notendareglur sem eru sértækar fyrir reikninginn þinn og geta breytt virkni Chrome.</translation> <translation id="7780154209050837198">Skráðu þig inn á Chrome með Google reikningnum þínum svo að Chrome nýtist þér sem best.</translation> <translation id="7855730255114109580">Google Chrome er uppfært</translation> <translation id="8022947259858476807">Notaðu Chrome sem sjálfgefinn valkost til að opna tengla, leita í græjum og til sjálfvirkrar útfyllingar aðgangsorða í öðrum forritum</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb index 00cd5391..dabf56d7 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">La tua password è stata compromessa a causa di una violazione dei dati. Chrome consiglia di cambiare subito la password.</translation> <translation id="7693590760643069321">Ora puoi usare Chrome ogni volta che tocchi i link in messaggi, documenti e altre app.</translation> <translation id="7698568245838009292">Chrome vorrebbe accedere alla fotocamera</translation> +<translation id="7754633291442704733">La tua organizzazione <ph name="DOMAIN" /> avrà accesso ai dati, ai preferiti, alla cronologia, alle password e ad altre impostazioni di Chrome memorizzate in questo account. Quando esci, i dati verranno cancellati da questo dispositivo. Tuttavia, i tuoi dati rimarranno memorizzati nel tuo Account Google gestito e saranno disponibili per la tua organizzazione. La tua organizzazione può anche impostare criteri relativi agli utenti specifici per l'account, in grado di modificare il comportamento di Chrome.</translation> <translation id="7780154209050837198">Accedi con il tuo Account Google a Chrome per usare al meglio questo browser.</translation> <translation id="7855730255114109580">Google Chrome è aggiornato</translation> <translation id="8022947259858476807">Usa Chrome per impostazione predefinita per aprire link, eseguire ricerche dai widget e compilare automaticamente le password in altre app</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb index c24b0a4..eb052f9 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">הסיסמה שלך נחשפה בעקבות פרצה באבטחת מידע. ההמלצה של Chrome היא לשנות את הסיסמה עכשיו.</translation> <translation id="7693590760643069321">עכשיו משתמשים ב-Chrome בכל פעם שמקישים על קישורים בהודעות, במסמכים ובאפליקציות אחרות.</translation> <translation id="7698568245838009292">ל-Chrome דרושה גישה למצלמה</translation> +<translation id="7754633291442704733">לדומיין <ph name="DOMAIN" /> של הארגון תהיה גישה לנתונים, לסימניות, להיסטוריה, לסיסמאות ולהגדרות אחרות ששמרת בחשבון הזה ב-Chrome. לאחר היציאה מהחשבון, הנתונים יימחקו מהמכשיר הזה. עם זאת, הנתונים יישארו בחשבון Google המנוהל שלך ויהיו זמינים לארגון שלך. בנוסף, לארגון יש אפשרות להגדיר מדיניות משתמש ספציפית לחשבון, שיכולה לשנות את אופן הפעולה של Chrome.</translation> <translation id="7780154209050837198">אפשר להיכנס ל-Chrome באמצעות חשבון Google כדי להפיק את המרב מ-Chrome.</translation> <translation id="7855730255114109580">Google Chrome מעודכן</translation> <translation id="8022947259858476807">כדאי להגדיר את Chrome כדפדפן ברירת המחדל כדי לפתוח קישורים, לחפש מווידג'טים ולבצע מילוי אוטומטי של סיסמאות באפליקציות אחרות</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb index 6103dd7..0a5a981 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">ពាក្យសម្ងាត់របស់អ្នកត្រូវបានបញ្ចេញនៅក្នុងការបែកធ្លាយទិន្នន័យ។ Chrome សូមណែនាំឱ្យប្ដូរពាក្យសម្ងាត់ឥឡូវនេះ។</translation> <translation id="7693590760643069321">ឥឡូវនេះ អ្នកអាចប្រើ Chrome រាល់ពេលដែលអ្នកចុចលើតំណនៅក្នុងសារ ឯកសារ និងកម្មវិធីផ្សេងទៀត។</translation> <translation id="7698568245838009292">Chrome ចង់ចូលប្រើកាមេរ៉ា</translation> +<translation id="7754633291442704733">ស្ថាប័ន <ph name="DOMAIN" /> របស់អ្នកនឹងមានសិទ្ធិចូលប្រើប្រាស់ទិន្នន័យ Chrome របស់អ្នក ចំណាំ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតដែលអ្នករក្សាទុកក្នុងគណនីនេះ។ នៅពេលអ្នកចេញ ទិន្នន័យរបស់អ្នកនឹងត្រូវបានសម្អាតចេញពីឧបករណ៍នេះ។ ប៉ុន្តែ ទិន្នន័យរបស់អ្នកនឹងនៅតែរក្សាទុកក្នុងគណនី Google ដែលស្ថិតក្រោមការគ្រប់គ្រងរបស់អ្នក ហើយអាចប្រើបានសម្រាប់ស្ថាប័នរបស់អ្នក។ ស្ថាប័នរបស់អ្នកក៏អាចកំណត់គោលការណ៍អ្នកប្រើប្រាស់ដែលជាក់លាក់ចំពោះគណនីនោះ ដែលអាចផ្លាស់ប្ដូរសកម្មភាពប្រើប្រាស់ Chrome ផងដែរ។</translation> <translation id="7780154209050837198">ដើម្បីទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពី Chrome សូមចូល Chrome ដោយប្រើគណនី Google របស់អ្នក។</translation> <translation id="7855730255114109580">Google Chrome នេះជាកំណែថ្មីហើយ</translation> <translation id="8022947259858476807">ប្រើ Chrome តាមលំនាំដើម ដើម្បីបើកតំណ ស្វែងរកពីធាតុក្រាហ្វិក និងបំពេញពាក្យសម្ងាត់ដោយស្វ័យប្រវត្តិនៅក្នុងកម្មវិធីផ្សេងទៀត</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb index eabe93a..653500d 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Jūsų slaptažodis atskleistas įvykus duomenų saugos pažeidimui. „Chrome“ rekomenduoja dabar pakeisti slaptažodį.</translation> <translation id="7693590760643069321">Dabar galite naudoti „Chrome“ bet kada palietę nuorodas pranešimuose, dokumentuose ir kitose programose.</translation> <translation id="7698568245838009292">„Chrome“ nori pasiekti fotoaparatą</translation> +<translation id="7754633291442704733">Organizacija „<ph name="DOMAIN" />“ galės pasiekti „Chrome“ duomenis, žymes, istoriją, slaptažodžius ir kitus nustatymus, kuriuos saugote šioje paskyroje. Kai atsijungsite, šio įrenginio duomenys bus išvalyti. Tačiau duomenys bus toliau saugomi jūsų valdomoje „Google“ paskyroje ir bus pasiekiami jūsų organizacijai. Jūsų organizacija taip pat gali nustatyti tos paskyros naudotojo politiką, pagal kurią galima keisti „Chrome“ veikimą.</translation> <translation id="7780154209050837198">Jei norite išnaudoti visas „Chrome“ galimybes, prisijunkite prie „Chrome“ naudodami „Google“ paskyrą.</translation> <translation id="7855730255114109580">„Google Chrome“ yra naujausios versijos</translation> <translation id="8022947259858476807">Naudokite „Chrome“ pagal numatytuosius nustatymus, kad atidarytumėte nuorodas, ieškotumėte iš valdiklių ir automatiškai pildytumėte slaptažodžius kitose programose</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb index e9d32dd..0205d93a 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Jūsu parole tika atklāta datu aizsardzības pārkāpuma dēļ. Chrome iesaka pēc iespējas ātrāk nomainīt paroli.</translation> <translation id="7693590760643069321">Tagad varat izmantot Chrome ikreiz, kad pieskaraties saitēm ziņojumos, dokumentos un citās lietotnēs.</translation> <translation id="7698568245838009292">Chrome pieprasa piekļuvi kamerai</translation> +<translation id="7754633291442704733">Jūsu organizācija (<ph name="DOMAIN" />) varēs piekļūt jūsu Chrome datiem, grāmatzīmēm, vēsturei, parolēm un citiem iestatījumiem, ko glabājat šajā kontā. Izrakstoties jūsu dati tiks dzēsti no šīs ierīces. Tomēr jūsu dati joprojām tiks glabāti jūsu pārvaldītajā Google kontā un būs pieejami jūsu organizācijai. Jūsu organizācija var kontā iestatīt lietotāju politikas, kas var mainīt Chrome darbību.</translation> <translation id="7780154209050837198">Lai pilnvērtīgi izmantotu pārlūku Chrome, pierakstieties tajā, izmantojot savu Google kontu.</translation> <translation id="7855730255114109580">Pārlūks Google Chrome ir atjaunināts.</translation> <translation id="8022947259858476807">Lai atvērtu saites, veiktu meklēšanu logrīkos un automātiski aizpildītu paroles citās lietotnēs, izmantojiet pārlūku Chrome kā noklusējuma pārlūku</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb index 80cfa9b..0dfd2f9 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">तुमचा पासवर्ड डेटा भंगामध्ये उघड झाला होता. Chrome आता पासवर्ड बदलण्याची शिफारस करते.</translation> <translation id="7693590760643069321">तुम्ही आता कधीही मेसेज, दस्तऐवज आणि इतर अॅप्समधील लिंकवर टॅप करता तेव्हा, Chrome वापरू शकता.</translation> <translation id="7698568245838009292">Chrome ला कॅमेरा ॲक्सेस करायचा आहे</translation> +<translation id="7754633291442704733">तुमच्या संस्थेच्या <ph name="DOMAIN" /> ला तुमचा Chrome डेटा, बुकमार्क, इतिहास, पासवर्ड आणि तुम्ही या खात्यामध्ये स्टोअर केलेल्या इतर सेटिंग्जचा ॲक्सेस असेल. तुम्ही साइन आउट करता, तेव्हा तुमचा डेटा या डिव्हाइसवरून साफ केला जाईल. तरीही, तुमचा डेटा तुमचे व्यवस्थापित केलेले Google खाते मध्ये स्टोअर केलेला राहील आणि तुमच्या संस्थेसाठी उपलब्ध असेल. तुमची संस्था त्या खात्यासाठी विशिष्ट वापरकर्ता धोरणेदेखील सेट करू शकते, ज्यांमुळे Chrome चे वर्तन बदलू शकते.</translation> <translation id="7780154209050837198">Chrome चा पुरेपूर वापर करण्यासाठी, तुमचे Google खाते वापरून Chrome मध्ये साइन इन करा.</translation> <translation id="7855730255114109580">Google Chrome अपडेट झाले आहे</translation> <translation id="8022947259858476807">लिंक उघडण्यासाठी, विजेटमध्ये शोधण्यासाठी आणि इतर ॲप्समध्ये पासवर्ड ऑटोफिल करण्यासाठी बाय डीफॉल्ट Chrome वापरा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb index 9a4e68f62..40309eb6a 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Fjalëkalimi yt është ekspozuar në një nxjerrje të paautorizuar të të dhënave. Chrome rekomandon që ta ndryshosh fjalëkalimin tani.</translation> <translation id="7693590760643069321">Tani mund të përdorësh Chrome sa herë që troket te lidhjet në mesazhe, dokumente dhe aplikacione të tjera.</translation> <translation id="7698568245838009292">Chrome dëshiron të ketë qasje te kamera</translation> +<translation id="7754633291442704733">Organizata jote <ph name="DOMAIN" /> do të ketë qasje te të dhënat, faqeshënuesit, historiku, fjalëkalimet dhe cilësimet e tua të tjera të Chrome që ti ruan në këtë llogari. Kur të dalësh nga llogaria, të dhënat e tua do të pastrohen nga kjo pajisje. Sidoqoftë, të dhënat e tua do të qëndrojnë të ruajtura në "Llogarinë tënde të menaxhuar të Google" dhe do të jenë të disponueshme për organizatën tënde. Organizata jote mund të caktojë po ashtu politika përdoruesi specifike për atë llogari që mund të ndryshojnë sjelljen e Chrome.</translation> <translation id="7780154209050837198">Për të marrë maksimumin nga Chrome, identifikohu në Chrome me "Llogarinë tënde të Google".</translation> <translation id="7855730255114109580">Google Chrome është i përditësuar</translation> <translation id="8022947259858476807">Përdor Chrome si parazgjedhje për të hapur lidhjet, për të kërkuar nga miniaplikacionet dhe për të plotësuar automatikisht fjalëkalimet në aplikacione të tjera</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb index 0ece8d4d..2c72feb 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Ditt lösenord har läckt ut vid ett dataintrång. Du rekommenderas att ändra lösenordet nu.</translation> <translation id="7693590760643069321">Nu kan du använda Chrome varje gång du trycker på länkar i meddelanden, dokument och andra appar.</translation> <translation id="7698568245838009292">Chrome vill ha tillgång till kameran</translation> +<translation id="7754633291442704733">Organisationen <ph name="DOMAIN" /> har åtkomst till data, bokmärken, historik, lösenord och andra inställningar i Chrome som du lagrar i det här kontot. När du loggar ut raderas din data från enheten. Datan lagras dock fortfarande i det hanterade Google-kontot och kan kommas åt av organisationen. Organisationen kan även ställa in användarpolicyer som gäller det kontot specifikt och som kan påverka hur Chrome fungerar.</translation> <translation id="7780154209050837198">Logga in med Google-kontot i Chrome så att du får ut mesta möjliga av programmet.</translation> <translation id="7855730255114109580">Google Chrome behöver inte uppdateras</translation> <translation id="8022947259858476807">Använd Chrome som standard när du öppnar länkar och söker med en widget och få lösenord ifyllda i andra appar automatiskt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb index 02abd8b..dcf3a81 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Nenosiri lako limefichuliwa katika tukio la ufichuzi haramu wa data. Chrome inapendekeza ubadilishe nenosiri sasa.</translation> <translation id="7693590760643069321">Sasa unaweza kutumia Chrome wakati wowote unapogusa viungo kwenye ujumbe, hati na programu zingine.</translation> <translation id="7698568245838009292">Chrome Inataka Kufikia Kamera</translation> +<translation id="7754633291442704733">Shirika lako <ph name="DOMAIN" /> litakuwa na uwezo wa kufikia data yako ya Chrome, alamisho, historia, manenosiri na mipangilio mingine uliyohifadhi kwenye akaunti hii. Ukiondoka kwenye akaunti, data yako itafutwa kwenye kifaa hiki. Hata hivyo, data yako itabaki imehifadhiwa kwenye akaunti yako ya Google inayosimamiwa na itapatikana katika shirika lako. Shirika lako linaweza pia kuweka sera mahususi za mtumiaji kwenye akaunti hiyo, hivyo zinaweza kubadilisha tabia ya Chrome.</translation> <translation id="7780154209050837198">Ili unufaike zaidi na Chrome, ingia kwenye Chrome ukitumia Akaunti yako ya Google.</translation> <translation id="7855730255114109580">Google Chrome imesasishwa</translation> <translation id="8022947259858476807">Tumia Chrome kwa chaguomsingi kufungua viungo, kutafuta kwenye wijeti na kujaza manenosiri kiotomatiki katika programu zingine</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb index a655c74..8d758c8 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Şifreniz bir veri ihlali nedeniyle açığa çıktı. Chrome, şifrenizi hemen değiştirmenizi önerir.</translation> <translation id="7693590760643069321">Artık mesajlardaki, dokümanlardaki ve diğer uygulamalardaki bağlantılara dokunduğunuzda Chrome'u kullanabilirsiniz.</translation> <translation id="7698568245838009292">Chrome, Kameraya Erişmek İstiyor</translation> +<translation id="7754633291442704733">Chrome verilerinize, yer işaretlerinize, geçmişinize, şifrelerinize ve bu hesapta sakladığınız diğer ayarlara kuruluşunuz <ph name="DOMAIN" /> erişebilir. Oturumunuzu kapattığınızda verileriniz bu cihazdan silinir. Ancak verileriniz, yönetilen Google Hesabınızda saklanır ve kuruluşunuzun kullanımına açıktır. Kuruluşunuz ayrıca, söz konusu hesaba özel olup Chrome'un davranışını değiştirebilecek kullanıcı politikaları belirleyebilir.</translation> <translation id="7780154209050837198">Chrome'dan en iyi şekilde yararlanmak için Google Hesabı'nızla Chrome'da oturum açın.</translation> <translation id="7855730255114109580">Google Chrome güncel durumda</translation> <translation id="8022947259858476807">Bağlantıları açmak, widget'lardan arama yapmak ve diğer uygulamalarda parolaları otomatik doldurmak için varsayılan olarak Chrome'u kullanın</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb index 7ff8abf8..6a9a6f8 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Ваш пароль розкрито через порушення безпеки даних. Chrome радить негайно змінити його.</translation> <translation id="7693590760643069321">Тепер ви можете відкривати в Chrome посилання з повідомлень, документів та інших додатків.</translation> <translation id="7698568245838009292">Chrome потрібен доступ до камери</translation> +<translation id="7754633291442704733">Ваша організація <ph name="DOMAIN" /> матиме доступ до даних Chrome, закладок, історії, паролів та інших налаштувань, які ви зберігаєте в цьому обліковому записі. Коли ви вийдете, ваші дані буде видалено з цього пристрою. Однак вони залишаться в керованому обліковому записі Google і будуть доступними для вашої організації. Крім того, ваша організація може визначити правила для користувачів цього облікового запису, які можуть впливати на роботу Chrome.</translation> <translation id="7780154209050837198">Щоб користуватись усіма можливостями Chrome, увійдіть в обліковий запис Google у цьому веб-переглядачі.</translation> <translation id="7855730255114109580">У вас остання версія Google Chrome</translation> <translation id="8022947259858476807">Зробіть Chrome веб-переглядачем за умовчанням, щоб відкривати посилання, шукати інформацію через віджети й автоматично заповнювати паролі в інших додатках</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb index 10be0b1..86ac146b 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb
@@ -109,6 +109,7 @@ <translation id="766361182512894255">Iphasiwedi yakho idalulwe ekwephulweni kwesivumelwano sedatha. I-Chrome incoma ukushintsha iphasiwedi manje.</translation> <translation id="7693590760643069321">Manje ungasebenzisa i-Chrome noma nini uma uthepha amalinki kumilayezo, amadokhumenti, namanye ama-app.</translation> <translation id="7698568245838009292">I-Chrome ingathanda ukufinyelela ikhamera</translation> +<translation id="7754633291442704733">I-<ph name="DOMAIN" /> yenhlangano yakho izoba nokufinyelela kudatha yakho ye-Chrome, amabhukhimakhi, umlando, amaphasiwedi namanye amasethingi owagcina kule akhawunti. Uma uphuma ngemvume, idatha yakho izosulwa kule divayisi. Nokho, idatha yakho izohlala igcinwe ku-Google Account yakho ephethwe futhi itholakale enhlanganweni yakho. Inhlangano yakho ingasetha izinqubomgomo zomsebenzisi eziqondile kuleyo akhawunti ezingashintsha ukuziphatha kwe-Chrome.</translation> <translation id="7780154209050837198">Ukuze uthole okuningi kwe-Chrome, ngena ngemvume ku-Chrome nge-Google Account yakho.</translation> <translation id="7855730255114109580">I-Google Chrome isesikhathini samanje</translation> <translation id="8022947259858476807">Sebenzisa i-Chrome ngokuzenzekelayo ukuze uvule amalinki, ukusesha kumawijethi, kanye nokugcwalisa ngokuzenzakalelayo amaphasiwedi kwamanye ama-app</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index e1f60514e..e4fbf2d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Gebruik ander wagwoord …</translation> <translation id="1066060668811609597">Bestuur sinkronisering</translation> <translation id="1076421457278169141">Kode is geskandeer</translation> +<translation id="1076785341346483463">Sinkroniseer met bestuurde rekening</translation> <translation id="1084365883616172403">Facebook-plasing is voltooi.</translation> <translation id="1103523840287552314">Vertaal <ph name="LANGUAGE" /> altyd</translation> <translation id="1104948393051856124">Aanvaar en gaan voort</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Gebou vir iPadOS</translation> <translation id="5173088371991956744">Sinkronisering moet verifieer dat dit jy is</translation> <translation id="5181140330217080051">Laai tans af</translation> +<translation id="5184329579814168207">Maak in Chrome oop</translation> <translation id="5186185447130319458">Privaat</translation> <translation id="5188482106078495165">Jou webkoekiesinstelling is van toepassing op alle oortjies. Herlaai die oortjie om 'n nuwe instelling op 'n oop oortjie toe te pas.</translation> <translation id="5190835502935405962">Boekmerkebalk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index 278e76b..a20f9d0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -494,6 +494,7 @@ <translation id="5168414296986405587">ለiPadOS ይፍጠሩ</translation> <translation id="5173088371991956744">ስምረት እርስዎ መሆንዎን ማረጋገጥ ይፈልጋል</translation> <translation id="5181140330217080051">በማውረድ ላይ</translation> +<translation id="5184329579814168207">በChrome ውስጥ ክፈት</translation> <translation id="5186185447130319458">የግል</translation> <translation id="5188482106078495165">የኩኪዎችዎ ቅንብር በሁሉም ትሮች ላይ ተፈጻሚ ይሆናል። በክፍት ትር ላይ አዲስ ቅንብርን ለመተግበር ትሩን እንደገና ይጫኑት።</translation> <translation id="5190835502935405962">የዕልባቶች አሞሌ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index 3903fd4f..7285b65 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -496,6 +496,7 @@ <translation id="5168414296986405587">مصمّم لنظام التشغيل iPadOS</translation> <translation id="5173088371991956744">تحتاج ميزة المزامنة إلى التحقّق من هويتك</translation> <translation id="5181140330217080051">تنزيل</translation> +<translation id="5184329579814168207">فتح في Chrome</translation> <translation id="5186185447130319458">خاص</translation> <translation id="5188482106078495165">تنطبق إعدادات ملفات تعريف الارتباط على جميع علامات التبويب. ولتطبيق إعدادات جديدة في علامة تبويب مفتوحة، يجب إعادة تحميل علامة التبويب.</translation> <translation id="5190835502935405962">شريط الإشارات</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb index 6c8fb3e..d285128 100644 --- a/ios/chrome/app/strings/resources/ios_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOSৰ বাবে প্ৰস্তুত কৰা</translation> <translation id="5173088371991956744">ছিংক কৰিবলৈ এইগৰাকী আপুনিয়েই বুলি সত্যাপন কৰিব লাগে</translation> <translation id="5181140330217080051">ডাউনল’ড হৈ আছে</translation> +<translation id="5184329579814168207">Chromeত খোলক</translation> <translation id="5186185447130319458">ব্যক্তিগত</translation> <translation id="5188482106078495165">আপোনাৰ কুকিসমূহৰ ছেটিং সকলো টেবত প্ৰযোজ্য হয়। এটা খোল খাই থকা টেবত এটা নতুন ছেটিং প্ৰয়োগ কৰিবলৈ টেবটো পুনৰ ল’ড কৰক।</translation> <translation id="5190835502935405962">বুকমাৰ্কৰ বাৰ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb index 9df9392..34fa91d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_az.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS üçün hazırlanıb</translation> <translation id="5173088371991956744">Sinxronizasiya kimliyinizi təsdiqləməlidir</translation> <translation id="5181140330217080051">Endirilir</translation> +<translation id="5184329579814168207">Chrome'da açın</translation> <translation id="5186185447130319458">Şəxsi</translation> <translation id="5188482106078495165">Kuki ayarınız bütün tablara tətbiq edilir. Açıq taba yeni ayar tətbiq etmək üçün tabı yenidən yükləyin.</translation> <translation id="5190835502935405962">Əlfəcinlər Paneli</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb index cbfcf90..bc31905 100644 --- a/ios/chrome/app/strings/resources/ios_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Выкарыстаць стары пароль...</translation> <translation id="1066060668811609597">Кіраванне сінхранізацыяй</translation> <translation id="1076421457278169141">Код сканіраваны</translation> +<translation id="1076785341346483463">Сінхранізацыя з уліковым запісам пад кіраваннем</translation> <translation id="1084365883616172403">Публікацыя ў Facebook выканана.</translation> <translation id="1103523840287552314">Заўсёды перакладаць з мовы: <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Прыняць і працягнуць</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Браўзер, створаны для iPadOS</translation> <translation id="5173088371991956744">Для сінхранізацыі неабходна спраўдзіць вашу асобу</translation> <translation id="5181140330217080051">Ідзе спампоўванне</translation> +<translation id="5184329579814168207">Адкрыць у Chrome</translation> <translation id="5186185447130319458">Прыватнае</translation> <translation id="5188482106078495165">Налада файлаў cookie прымяняецца да ўсіх укладак. Каб прымяніць новую наладу да адкрытай укладкі, перазагрузіце ўкладку.</translation> <translation id="5190835502935405962">Панэль закладак</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 7e87639c..54095c00 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Използване на друга парола...</translation> <translation id="1066060668811609597">Управление на синхронизирането</translation> <translation id="1076421457278169141">Кодът бе сканиран</translation> +<translation id="1076785341346483463">Синхронизиране с управляван профил</translation> <translation id="1084365883616172403">Публикацията във Facebook е завършена.</translation> <translation id="1103523840287552314">Винаги да се превежда от <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Приемам и напред</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Създадено за iPadOS</translation> <translation id="5173088371991956744">Синхронизирането трябва да потвърди, че това сте вие</translation> <translation id="5181140330217080051">Изтегля се</translation> +<translation id="5184329579814168207">Отваряне в Chrome</translation> <translation id="5186185447130319458">Частно</translation> <translation id="5188482106078495165">Настройката ви за „бисквитките“ се прилага за всички раздели. За да приложите нова настройка за отворен раздел, презаредете го.</translation> <translation id="5190835502935405962">Лента на отметките</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index e0cfb63..32ee4129 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS-এর জন্য তৈরি</translation> <translation id="5173088371991956744">সিঙ্ক করার আগে যাচাই করিয়ে নিতে হবে যে এটি আপনি করছেন</translation> <translation id="5181140330217080051">ডাউনলোড হচ্ছে</translation> +<translation id="5184329579814168207">Chrome এ খুলুন</translation> <translation id="5186185447130319458">ব্যক্তিগত</translation> <translation id="5188482106078495165">আপনার কুকি সেটিং সমস্ত ট্যাবের ক্ষেত্রেই প্রযোজ্য। কোনও খোলা ট্যাবে নতুন সেটিং প্রয়োগ করতে, ট্যাবটি আবার লোড করুন।</translation> <translation id="5190835502935405962">বুকমার্ক বার</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index a58106f..8d1ab2d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Napravljeno za iPadOS</translation> <translation id="5173088371991956744">Sinhronizacija mora potvrditi da ste to vi</translation> <translation id="5181140330217080051">Preuzimanje</translation> +<translation id="5184329579814168207">Otvori u Chromeu</translation> <translation id="5186185447130319458">Privatno</translation> <translation id="5188482106078495165">Postavka kolačića se primjenjuje na sve kartice. Da primijenite novu postavku na otvorenu karticu, ponovo učitajte karticu.</translation> <translation id="5190835502935405962">Traka oznaka</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index b43803b..3c9f6978 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Creat per a iPadOS</translation> <translation id="5173088371991956744">La sincronització ha de verificar la teva identitat</translation> <translation id="5181140330217080051">S'està baixant</translation> +<translation id="5184329579814168207">Obre a Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">La configuració de les galetes s'aplica a totes les pestanyes. Per aplicar una configuració nova a una pestanya oberta, torna a carregar-la.</translation> <translation id="5190835502935405962">Barra d'adreces d'interès</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index 5e157c4..96b9de2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Vytvořeno pro iPadOS</translation> <translation id="5173088371991956744">Synchronizace potřebuje ověřit vaši identitu</translation> <translation id="5181140330217080051">Stahování</translation> +<translation id="5184329579814168207">Otevřít v Chromu</translation> <translation id="5186185447130319458">Soukromé</translation> <translation id="5188482106078495165">Nastavení souborů cookie se vztahuje na všechny karty. Pokud v otevřené kartě chcete použít nové nastavení, znovu ji načtěte.</translation> <translation id="5190835502935405962">Lišta záložek</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb index 9228917..43a83c82 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Wedi'i ddatblygu ar gyfer iPadOS</translation> <translation id="5173088371991956744">Mae Angen i Gysoni Gadarnhau Mai Chi Sydd Yno</translation> <translation id="5181140330217080051">Wrthi'n lawrlwytho</translation> +<translation id="5184329579814168207">Agor yn Chrome</translation> <translation id="5186185447130319458">Preifat</translation> <translation id="5188482106078495165">Mae eich gosodiad cwcis yn berthnasol i bob tab. I gymhwyso gosodiad newydd i dab sydd ar agor, ail-lwythwch y tab.</translation> <translation id="5190835502935405962">Bar Nodau Tudalen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index ed237e14..65b48d6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Udviklet til iPadOS</translation> <translation id="5173088371991956744">Synkronisering skal bekræfte din identitet</translation> <translation id="5181140330217080051">Downloader</translation> +<translation id="5184329579814168207">Åbn i Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Dine cookieindstillinger gælder for alle faner. Du kan anvende en ny indstilling i en åben fane ved at genindlæse fanen.</translation> <translation id="5190835502935405962">Bogmærkelinje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index 88b78d3d4..5fbb66e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Anderes Passwort verwenden…</translation> <translation id="1066060668811609597">Synchronisierung verwalten</translation> <translation id="1076421457278169141">Code gescannt</translation> +<translation id="1076785341346483463">Mit verwaltetem Konto synchronisieren</translation> <translation id="1084365883616172403">Facebook-Beitrag gepostet</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> immer übersetzen</translation> <translation id="1104948393051856124">Akzeptieren & weiter</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Entwickelt für iPadOS</translation> <translation id="5173088371991956744">Zur Synchronisierung muss deine Identität bestätigt werden</translation> <translation id="5181140330217080051">Download wird ausgeführt...</translation> +<translation id="5184329579814168207">In Chrome öffnen</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Deine Cookie-Einstellung gilt für alle Tabs. Wenn du eine neue Einstellung auf einen geöffneten Tab anwenden möchtest, aktualisiere den Tab.</translation> <translation id="5190835502935405962">Lesezeichenleiste</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index 268d473a..21e2ab3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Δημιουργήθηκε για iPadOS</translation> <translation id="5173088371991956744">Ο συγχρονισμός πρέπει να επαληθεύσει την ταυτότητά σας</translation> <translation id="5181140330217080051">Λήψη</translation> +<translation id="5184329579814168207">Άνοιγμα στο Chrome</translation> <translation id="5186185447130319458">Ιδιωτικό</translation> <translation id="5188482106078495165">Η ρύθμιση cookie ισχύει για όλες τις καρτέλες. Για να εφαρμόσετε μια νέα ρύθμιση σε μια ανοικτή καρτέλα, επαναλάβετε ξανά τη φόρτωση της καρτέλας.</translation> <translation id="5190835502935405962">Γραμμή σελιδοδεικτών</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index d77f0acf..4945e81 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Built for iPadOS</translation> <translation id="5173088371991956744">Sync needs to verify that it's you</translation> <translation id="5181140330217080051">Downloading</translation> +<translation id="5184329579814168207">Open in Chrome</translation> <translation id="5186185447130319458">Private</translation> <translation id="5188482106078495165">Your cookies setting applies to all tabs. To apply a new setting to an open tab, reload the tab.</translation> <translation id="5190835502935405962">Bookmarks Bar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 1cdc0791..a0ce645 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Usar otra contraseña…</translation> <translation id="1066060668811609597">Administrar la sincronización</translation> <translation id="1076421457278169141">Código escaneado</translation> +<translation id="1076785341346483463">Sincronizar con una cuenta administrada</translation> <translation id="1084365883616172403">Entrada de Facebook publicada</translation> <translation id="1103523840287552314">Siempre traducir <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Aceptar y continuar</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Diseñado para iPadOS</translation> <translation id="5173088371991956744">La Sincronización necesita verificar tu identidad</translation> <translation id="5181140330217080051">Descargando...</translation> +<translation id="5184329579814168207">Abrir en Chrome</translation> <translation id="5186185447130319458">Privado</translation> <translation id="5188482106078495165">Tu configuración de cookies se aplica a todas las pestañas. Para aplicar una configuración nueva en una pestaña abierta, vuelve a cargarla.</translation> <translation id="5190835502935405962">Barra de favoritos</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index b5fc5b8..b9b511bf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Diseñado para iPadOS</translation> <translation id="5173088371991956744">Verifica tu identidad para usar la sincronización</translation> <translation id="5181140330217080051">Descargando</translation> +<translation id="5184329579814168207">Abrir en Chrome</translation> <translation id="5186185447130319458">Privado</translation> <translation id="5188482106078495165">Tu configuración de cookies se aplica a todas las pestañas. Para aplicar un ajuste nuevo a una pestaña abierta, vuelve a cargarla.</translation> <translation id="5190835502935405962">Barra de marcadores</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index da50c05..0aed0c7d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Loodud iPadOS-ile</translation> <translation id="5173088371991956744">Sünkroonimisfunktsioon peab teie isiku kinnitama</translation> <translation id="5181140330217080051">Allalaadimine</translation> +<translation id="5184329579814168207">Ava Chrome'is</translation> <translation id="5186185447130319458">Privaatne</translation> <translation id="5188482106078495165">Küpsisefailide seaded rakenduvad kõikidele vahelehtedele. Uue seade rakendamiseks avatud vahelehele laadige see uuesti.</translation> <translation id="5190835502935405962">Järjehoidjariba</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb index 4e5f801..ddd3053 100644 --- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS-erako sortua</translation> <translation id="5173088371991956744">Sinkronizazioak zure identitatea egiaztatu behar du</translation> <translation id="5181140330217080051">Deskargatzen</translation> +<translation id="5184329579814168207">Ireki Chrome-n</translation> <translation id="5186185447130319458">Pribatua</translation> <translation id="5188482106078495165">Fitxa guztiei aplikatzen zaizkie cookieen ezarpenak. Irekita dagoen fitxa bati beste ezarpenen bat aplikatzeko, kargatu berriro fitxa.</translation> <translation id="5190835502935405962">Laster-marken barra</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index 4670d26..488c305 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">استفاده از سایر گذرواژهها…</translation> <translation id="1066060668811609597">مدیریت همگامسازی</translation> <translation id="1076421457278169141">کد اسکن شد</translation> +<translation id="1076785341346483463">همگامسازی با حساب مدیریتشده</translation> <translation id="1084365883616172403">پست Facebook ارسال شد.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> همیشه ترجمه شود</translation> <translation id="1104948393051856124">پذیرش و ادامه</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">ساختهشده برای iPadOS</translation> <translation id="5173088371991956744">همگامسازی باید هویتتان را تأیید کند</translation> <translation id="5181140330217080051">در حال بارگیری</translation> +<translation id="5184329579814168207">باز کردن در Chrome</translation> <translation id="5186185447130319458">خصوصی</translation> <translation id="5188482106078495165">تنظیمات کوکی برای همه برگهها اعمال میشود. برای اعمال تنظیم جدید در یکی از برگههای باز، برگه را تازهسازی کنید.</translation> <translation id="5190835502935405962">نوار نشانکها</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index d52faee..49c17f9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Suunniteltu iPadOS:lle</translation> <translation id="5173088371991956744">Synkronoinnin on vahvistettava henkilöllisyytesi</translation> <translation id="5181140330217080051">Ladataan</translation> +<translation id="5184329579814168207">Avaa Chromessa</translation> <translation id="5186185447130319458">Yksityinen</translation> <translation id="5188482106078495165">Evästeasetustasi käytetään kaikilla välilehdillä. Jos haluat käyttää uutta asetusta avoimella välilehdellä, päivitä kyseinen välilehti.</translation> <translation id="5190835502935405962">Kirjanmerkkipalkki</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index ec859c6..c6578bb 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Binuo para sa iPadOS</translation> <translation id="5173088371991956744">Kailangang Ma-verify ng Pag-sync na Ikaw Ito</translation> <translation id="5181140330217080051">Nagda-download</translation> +<translation id="5184329579814168207">Buksan sa Chrome</translation> <translation id="5186185447130319458">Pribado</translation> <translation id="5188482106078495165">Nalalapat ang iyong setting ng cookies sa lahat ng tab. Para maglapat ng bagong setting sa isang bukas na tab, i-reload ang tab.</translation> <translation id="5190835502935405962">Bar ng Mga Bookmark</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index 9ab26c9..25926d0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -494,6 +494,7 @@ <translation id="5168414296986405587">Conçu pour iPadOS</translation> <translation id="5173088371991956744">La synchronisation doit vérifier qu'il s'agit bien de vous</translation> <translation id="5181140330217080051">Téléchargement en cours...</translation> +<translation id="5184329579814168207">Ouvrir dans Chrome</translation> <translation id="5186185447130319458">Privé</translation> <translation id="5188482106078495165">Votre paramètre de témoins s'applique à tous les onglets. Pour appliquer un nouveau paramètre à un onglet ouvert, actualisez-le.</translation> <translation id="5190835502935405962">Barre de favoris</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index e7244fe1..e0f0335 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Utiliser un autre mot de passe…</translation> <translation id="1066060668811609597">Gérer la synchronisation</translation> <translation id="1076421457278169141">Code scanné</translation> +<translation id="1076785341346483463">Synchroniser avec un compte géré</translation> <translation id="1084365883616172403">Post Facebook publié.</translation> <translation id="1103523840287552314">Toujours traduire les pages en <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Accepter et continuer</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Conçu pour iPadOS</translation> <translation id="5173088371991956744">La synchronisation doit confirmer votre identité</translation> <translation id="5181140330217080051">Téléchargement</translation> +<translation id="5184329579814168207">Ouvrir dans Chrome</translation> <translation id="5186185447130319458">Privé</translation> <translation id="5188482106078495165">Votre paramètre de cookies s'applique à tous les onglets. Pour en appliquer un nouveau à un onglet ouvert, rechargez l'onglet.</translation> <translation id="5190835502935405962">Barre de favoris</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index 26253e46..d9734aa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Utilizar outro contrasinal…</translation> <translation id="1066060668811609597">Xestionar sincronización</translation> <translation id="1076421457278169141">Escaneouse o código</translation> +<translation id="1076785341346483463">Sincronizar cunha conta xestionada</translation> <translation id="1084365883616172403">Completouse a publicación de Facebook.</translation> <translation id="1103523840287552314">Traducir sempre o <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Aceptar e continuar</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Creado para iPadOS</translation> <translation id="5173088371991956744">A sincronización necesita verificar a túa identidade</translation> <translation id="5181140330217080051">Descargando</translation> +<translation id="5184329579814168207">Abrir en Chrome</translation> <translation id="5186185447130319458">Privado</translation> <translation id="5188482106078495165">A configuración das cookies aplícase a todas as pestanas. Para aplicar unha nova configuración a unha pestana aberta, volve cargala.</translation> <translation id="5190835502935405962">Barra de marcadores</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index 35b623f..0a38e730 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS માટે બનાવવામાં આવેલું</translation> <translation id="5173088371991956744">સિંકને તમારી ઓળખની ચકાસણી કરવાની જરૂર પડે છે</translation> <translation id="5181140330217080051">ડાઉનલોડ કરી રહ્યું છે</translation> +<translation id="5184329579814168207">Chrome માં ખોલો</translation> <translation id="5186185447130319458">ખાનગી</translation> <translation id="5188482106078495165">તમારી કુકીનાં સેટિંગ બધી ટૅબ પર લાગુ થાય છે. કોઈ ખુલ્લી ટૅબ પર નવું સેટિંગ લાગુ કરવા માટે, ટૅબ ફરીથી લોડ કરો.</translation> <translation id="5190835502935405962">બુકમાર્ક બાર</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index e446dce..3bd1ae3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">कोई और पासवर्ड इस्तेमाल करें...</translation> <translation id="1066060668811609597">सिंक प्रबंधित करें</translation> <translation id="1076421457278169141">कोड स्कैन किया गया</translation> +<translation id="1076785341346483463">मैनेज किए जा रहे खाते के साथ सिंक करें</translation> <translation id="1084365883616172403">Facebook पोस्ट पूरी हुई.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> का हमेशा अनुवाद करें</translation> <translation id="1104948393051856124">स्वीकार करें और जारी रखें</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">iPadOS के लिए बनाया गया</translation> <translation id="5173088371991956744">सिंक को आपकी पहचान की पुष्टि करनी है</translation> <translation id="5181140330217080051">डाउनलोड हो रहा है</translation> +<translation id="5184329579814168207">Chrome में खोलें</translation> <translation id="5186185447130319458">निजी</translation> <translation id="5188482106078495165">आपकी कुकी सेटिंग सभी टैब पर लागू होती है. खुले हुए टैब पर नई सेटिंग लागू करने के लिए, टैब को फिर से लोड करें.</translation> <translation id="5190835502935405962">बुकमार्क बार</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index 5ba67b5..6bdc9b82 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Razvijeno za iPadOS</translation> <translation id="5173088371991956744">Sinkronizacija treba potvrditi da ste to vi</translation> <translation id="5181140330217080051">Preuzimanje</translation> +<translation id="5184329579814168207">Otvori u Chromeu</translation> <translation id="5186185447130319458">Privatno</translation> <translation id="5188482106078495165">Vaša postavka kolačića primjenjuje se na sve kartice. Da biste primijenili novu postavku na otvorenu karticu, ponovo učitajte tu karticu.</translation> <translation id="5190835502935405962">Traka oznaka</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index 7e93278..8348d46 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Az iPadOS-re tervezve</translation> <translation id="5173088371991956744">A szinkronizálás ellenőrizni szeretné az Ön személyazonosságát</translation> <translation id="5181140330217080051">Letöltés</translation> +<translation id="5184329579814168207">Megnyitás Chrome-ban</translation> <translation id="5186185447130319458">Privát</translation> <translation id="5188482106078495165">A cookie-kra vonatkozó beállítás az összes lapra érvényes. Ha valamelyik megnyitott laphoz új beállítást szeretne megadni, töltse be újra az adott lapot.</translation> <translation id="5190835502935405962">Könyvjelzősáv</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb index 16816d1b..04a4312 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Ստեղծված է iPadOS-ի համար</translation> <translation id="5173088371991956744">Համաժամացման համար անհրաժեշտ է հաստատել ձեր ինքնությունը</translation> <translation id="5181140330217080051">Ներբեռնում</translation> +<translation id="5184329579814168207">Բացել Chrome-ով</translation> <translation id="5186185447130319458">Գաղտնի</translation> <translation id="5188482106078495165">Ձեր քուքիների կարգավորումները կիրառվում են բոլոր ներդիրներում։ Եթե նոր կարգավորումն ուզում եք կիրառել բացված ներդիրում, վերաբեռնեք այն։</translation> <translation id="5190835502935405962">Էջանիշների գոտի</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index cca23a03..c97163a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Dibuat untuk iPadOS</translation> <translation id="5173088371991956744">Sinkronisasi Perlu Memverifikasi Diri Anda</translation> <translation id="5181140330217080051">Mendownload</translation> +<translation id="5184329579814168207">Buka di Chrome</translation> <translation id="5186185447130319458">Pribadi</translation> <translation id="5188482106078495165">Setelan cookie berlaku untuk semua tab. Untuk menerapkan setelan baru pada tab yang terbuka, muat ulang tab.</translation> <translation id="5190835502935405962">Bilah Bookmark</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index 2ca5992..e9e34f0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Nota annað aðgangsorð...</translation> <translation id="1066060668811609597">Stjórna samstillingu</translation> <translation id="1076421457278169141">Kóði skannaður</translation> +<translation id="1076785341346483463">Samstilla við stýrðan reikning</translation> <translation id="1084365883616172403">Facebook-færsla birt.</translation> <translation id="1103523840287552314">Þýða alltaf <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Samþykkja og halda áfram</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Hannað fyrir iPadOS</translation> <translation id="5173088371991956744">Samstilling verður að staðfesta að þetta sért þú</translation> <translation id="5181140330217080051">Sækir</translation> +<translation id="5184329579814168207">Opna í Chrome</translation> <translation id="5186185447130319458">Lokað</translation> <translation id="5188482106078495165">Fótsporastillingarnar þínar ná til allra flipa. Til að ný stilling taki gildi fyrir opinn flipa þarftu að endurhlaða hann.</translation> <translation id="5190835502935405962">Bókamerkjastika</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index 71cc9e8..99dc441 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Utilizza un'altra password…</translation> <translation id="1066060668811609597">Gestisci la sincronizzazione</translation> <translation id="1076421457278169141">Scansione del codice eseguita</translation> +<translation id="1076785341346483463">Sincronizza con account gestito</translation> <translation id="1084365883616172403">Pubblicazione su Facebook completata.</translation> <translation id="1103523840287552314">Traduci sempre <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Accetta e continua</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Realizzato per iPadOS</translation> <translation id="5173088371991956744">La sincronizzazione deve verificare la tua identità</translation> <translation id="5181140330217080051">Download in corso</translation> +<translation id="5184329579814168207">Apri in Chrome</translation> <translation id="5186185447130319458">Privata</translation> <translation id="5188482106078495165">L'impostazione relativa ai cookie viene applicata a tutte le schede. Per applicare una nuova impostazione a una scheda aperta, ricarica la scheda.</translation> <translation id="5190835502935405962">Barra dei Preferiti</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index 26277f9..251aa3f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">שימוש בסיסמה אחרת...</translation> <translation id="1066060668811609597">ניהול הסנכרון</translation> <translation id="1076421457278169141">הקוד נסרק</translation> +<translation id="1076785341346483463">סנכרון עם חשבון מנוהל</translation> <translation id="1084365883616172403">הפרסום ב-Facebook בוצע.</translation> <translation id="1103523840287552314">ברצוני לקבל תרגום מ<ph name="LANGUAGE" /> תמיד</translation> <translation id="1104948393051856124">בסדר, מקובל עליי</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">מותאם ל-iPadOS</translation> <translation id="5173088371991956744">כדי לסנכרן צריך לאמת את הזהות שלך</translation> <translation id="5181140330217080051">מוריד</translation> +<translation id="5184329579814168207">פתיחה ב-Chrome</translation> <translation id="5186185447130319458">פרטי</translation> <translation id="5188482106078495165">הגדרת קובצי ה-cookie שלך חלה על כל הכרטיסיות. כדי להחיל הגדרה חדשה על כרטיסייה פתוחה יש לטעון את הכרטיסייה מחדש.</translation> <translation id="5190835502935405962">סרגל הסימניות</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb index a78935d4..89a7cd9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS 向けの設計</translation> <translation id="5173088371991956744">同期するには本人確認が必要です</translation> <translation id="5181140330217080051">ダウンロードしています</translation> +<translation id="5184329579814168207">Chromeで開く</translation> <translation id="5186185447130319458">プライベート接続</translation> <translation id="5188482106078495165">Cookie の設定はすべてのタブに適用されます。開いているタブに新しい設定を適用するには、タブを再読み込みしてください。</translation> <translation id="5190835502935405962">ブックマーク バー</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index 5022893f..4f4b37a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">შექმნილია iPadOS-ისთვის</translation> <translation id="5173088371991956744">სინქრონიზაციის ფუნქციას სჭირდება თქვენი ვინაობის დადასტურება</translation> <translation id="5181140330217080051">ჩამოტვირთვა</translation> +<translation id="5184329579814168207">Chrome-ში გახსნა</translation> <translation id="5186185447130319458">პირადი</translation> <translation id="5188482106078495165">ქუქი-ჩანაწერების პარამეტრები ვრცელდება ყველა ჩანართზე. ახალი პარამეტრის გახსნილ ჩანართზე მისასადაგებლად გადატვირთეთ ჩანართი.</translation> <translation id="5190835502935405962">სანიშნეების ზოლი</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index 4d7ab9d..cde8f3f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS үшін әзірленген</translation> <translation id="5173088371991956744">Sync жеке басыңызды растау керек</translation> <translation id="5181140330217080051">Жүктеу</translation> +<translation id="5184329579814168207">Chrome жүйесінде ашу</translation> <translation id="5186185447130319458">Жеке</translation> <translation id="5188482106078495165">Cookie параметрі барлық қойындыларға қолданылады. Жаңа параметрді ашық қойындыға қолдану үшін қойындыны қайта жүктеңіз.</translation> <translation id="5190835502935405962">Бетбелгілер жолағы</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index 70533f3..f91c015 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">ប្រើពាក្យសម្ងាត់ផ្សេងទៀត...</translation> <translation id="1066060668811609597">គ្រប់គ្រងការធ្វើសមកាលកម្ម</translation> <translation id="1076421457278169141">បានស្កេនរកលេខកូដ</translation> +<translation id="1076785341346483463">ធ្វើសមកាលកម្មដោយប្រើគណនីដែលស្ថិតក្រោមការគ្រប់គ្រង</translation> <translation id="1084365883616172403">ការបង្ហោះតាម Facebook បានបញ្ចប់។</translation> <translation id="1103523840287552314">បកប្រែ <ph name="LANGUAGE" /> ជានិច្ច</translation> <translation id="1104948393051856124">ព្រមទទួល និងបន្ត</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">បានបង្កើតឡើងសម្រាប់ iPadOS</translation> <translation id="5173088371991956744">សមកាលកម្មត្រូវការផ្ទៀងផ្ទាត់ថាជាអ្នក</translation> <translation id="5181140330217080051">កំពុងទាញយក</translation> +<translation id="5184329579814168207">បើកនៅក្នុង Chrome</translation> <translation id="5186185447130319458">ឯកជន</translation> <translation id="5188482106078495165">ការកំណត់ខូគីរបស់អ្នកត្រូវបានអនុវត្តនៅក្នុងផ្ទាំងទាំងអស់។ ដើម្បីប្រើការកំណត់ថ្មីនៅក្នុងផ្ទាំងដែលបើក សូមផ្ទុកផ្ទាំងនោះឡើងវិញ។</translation> <translation id="5190835502935405962">របាចំណាំ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index 04c2ca97..1a063ab 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS ಗಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ</translation> <translation id="5173088371991956744">ಇದು ನೀವೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಸಿಂಕ್ಗೆ ಅಗತ್ಯವಿದೆ</translation> <translation id="5181140330217080051">ಡೌನ್ಲೋಡ್ ಆಗುತ್ತಿದೆ</translation> +<translation id="5184329579814168207">Chrome ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="5186185447130319458">ಖಾಸಗಿ</translation> <translation id="5188482106078495165">ನಿಮ್ಮ ಕುಕೀಗಳ ಸೆಟ್ಟಿಂಗ್ ಎಲ್ಲಾ ಟ್ಯಾಬ್ಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ತೆರೆದ ಟ್ಯಾಬ್ ಒಂದಕ್ಕೆ ಹೊಸ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಅನ್ವಯಿಸಲು, ಟ್ಯಾಬ್ ಅನ್ನು ಮರುಲೋಡ್ ಮಾಡಿ.</translation> <translation id="5190835502935405962">ಬುಕ್ಮಾರ್ಕ್ಗಳ ಬಾರ್</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index eb8567ed..7aed796 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS 최적화</translation> <translation id="5173088371991956744">동기화를 위해 본인 인증 필요</translation> <translation id="5181140330217080051">다운로드 중</translation> +<translation id="5184329579814168207">Chrome에서 열기</translation> <translation id="5186185447130319458">비공개</translation> <translation id="5188482106078495165">쿠키 설정이 모든 탭에 적용됩니다. 새로운 설정을 열려 있는 탭에 적용하려면 탭을 새로고침하세요.</translation> <translation id="5190835502935405962">북마크바</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index e46481b..7ea4c9e4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS үчүн куралган</translation> <translation id="5173088371991956744">Шайкештирүү бул сиз экениңизди ырасташы керек</translation> <translation id="5181140330217080051">Жүктөлүп алынууда</translation> +<translation id="5184329579814168207">Chrome'до ачуу</translation> <translation id="5186185447130319458">Купуя</translation> <translation id="5188482106078495165">Cookie файлдарыңыздын жөндөөсү бардык өтмөктөргө карата колдонулат. Жаңы жөндөөнү ачык өтмөккө карата колдонуу үчүн өтмөктү кайрадан жүктөңүз.</translation> <translation id="5190835502935405962">Кыстармалар тилкеси</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb index b46ff93..21bf4fee 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -494,6 +494,7 @@ <translation id="5168414296986405587">ສ້າງມາສຳລັບ iPadOS</translation> <translation id="5173088371991956744">ການຊິ້ງຂໍ້ມູນຕ້ອງການຢັ້ງຢືນວ່າແມ່ນທ່ານແທ້</translation> <translation id="5181140330217080051">ກໍາລັງດາວໂຫຼດ</translation> +<translation id="5184329579814168207">ເປີດຢູ່ໃນ Chrome</translation> <translation id="5186185447130319458">ສ່ວນຕົວ</translation> <translation id="5188482106078495165">ການຕັ້ງຄ່າຄຸກກີ້ຂອງທ່ານນຳໃຊ້ກັບແຖບທັງໝົດ. ເພື່ອນຳໃຊ້ການຕັ້ງຄ່າໃໝ່ກັບແຖບເປີດ, ກະລຸນາໂຫຼດແຖບ.</translation> <translation id="5190835502935405962">ແຖບບຸກມາກສ໌</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index 51562ccb..e97cfde 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Naudoti kitą slaptažodį...</translation> <translation id="1066060668811609597">Sinchronizavimo tvarkymas</translation> <translation id="1076421457278169141">Kodas nuskaitytas</translation> +<translation id="1076785341346483463">Sinchronizavimas su valdoma paskyra</translation> <translation id="1084365883616172403">„Facebook“ įrašas paskelbtas.</translation> <translation id="1103523840287552314">Visada versti <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Sutikti ir tęsti</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Sukurta „iPad“ OS</translation> <translation id="5173088371991956744">Sinchronizuojant reikia patvirtinti jūsų tapatybę</translation> <translation id="5181140330217080051">Atsisiunčiama</translation> +<translation id="5184329579814168207">Atidaryti naudojant „Chrome“</translation> <translation id="5186185447130319458">Privatu</translation> <translation id="5188482106078495165">Slapukų nustatymai taikomi visiems skirtukams. Norėdami taikyti naują nustatymą atidarytam skirtukui, įkelkite jį iš naujo.</translation> <translation id="5190835502935405962">Žymių juosta</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb index 4221ebb..35f03c32 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Izmantot citu paroli</translation> <translation id="1066060668811609597">Sinhronizācijas pārvaldība</translation> <translation id="1076421457278169141">Kods ir skenēts</translation> +<translation id="1076785341346483463">Sinhronizācija ar pārvaldītu kontu</translation> <translation id="1084365883616172403">Facebook ziņa izveidota.</translation> <translation id="1103523840287552314">Vienmēr tulkot <ph name="LANGUAGE" /> valodas saturu</translation> <translation id="1104948393051856124">Pieņemt un turpināt</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Izstrādāts operētājsistēmai iPadOS</translation> <translation id="5173088371991956744">Sinhronizēšanai nepieciešams apstiprināt jūsu identitāti</translation> <translation id="5181140330217080051">Notiek lejupielāde</translation> +<translation id="5184329579814168207">Atvērt pārlūkā Chrome</translation> <translation id="5186185447130319458">Privāti</translation> <translation id="5188482106078495165">Izvēlētais sīkfailu iestatījums attiecas uz visām cilnēm. Lai atvērtā cilnē lietotu jaunu iestatījumu, atkārtoti ielādējiet cilni.</translation> <translation id="5190835502935405962">Grāmatzīmju josla</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index 076f944..9ddc73051 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Создадено за iPad OS</translation> <translation id="5173088371991956744">Синхронизацијата треба да потврди дека сте вие</translation> <translation id="5181140330217080051">Се презема</translation> +<translation id="5184329579814168207">Отвори во Chrome</translation> <translation id="5186185447130319458">Приватен</translation> <translation id="5188482106078495165">Поставката за колачиња се применува на сите картички. За да примените нова поставка на отворена картичка, вчитајте ја картичката повторно.</translation> <translation id="5190835502935405962">Лента со обележувачи</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index deebc7a7..5f6b5fc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS-നായി സൃഷ്ടിച്ചിരിക്കുന്നത്</translation> <translation id="5173088371991956744">സമന്വയത്തിന് ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്</translation> <translation id="5181140330217080051">ഡൗൺലോഡുചെയ്യുന്നു</translation> +<translation id="5184329579814168207">Chrome-ൽ തുറക്കുക</translation> <translation id="5186185447130319458">സ്വകാര്യം</translation> <translation id="5188482106078495165">നിങ്ങളുടെ കുക്കികളുടെ ക്രമീകരണം എല്ലാ ടാബുകൾക്കും ബാധകമാണ്. തുറന്നിരിക്കുന്ന ടാബിൽ ഒരു പുതിയ ക്രമീകരണം ബാധകമാക്കാൻ, ടാബ് റീലോഡ് ചെയ്യുക.</translation> <translation id="5190835502935405962">ബുക്ക്മാര്ക്ക് ബാര്</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb index 9bcfbbef..5687ccd3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -494,6 +494,7 @@ <translation id="5168414296986405587">iPadOS-д зориулан бүтээсэн</translation> <translation id="5173088371991956744">Синк таныг мөн болохыг баталгаажуулах шаардлагатай байна</translation> <translation id="5181140330217080051">Татаж байна</translation> +<translation id="5184329579814168207">Chrome-д нээх</translation> <translation id="5186185447130319458">Хувийн</translation> <translation id="5188482106078495165">Таны күүкиний тохиргоо бүх табд хэрэгжинэ. Шинэ тохиргоог нээлттэй табд хэрэгжүүлэхийн тулд табыг дахин ачаална уу.</translation> <translation id="5190835502935405962">Хайлтын жагсаалтын цонх</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index dff90e51..c9b7775 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">दुसरा पासवर्ड वापरा...</translation> <translation id="1066060668811609597">सिंक व्यवस्थापित करा</translation> <translation id="1076421457278169141">कोड स्कॅन केला</translation> +<translation id="1076785341346483463">व्यवस्थापित केलेले खाते सोबत सिंक करा</translation> <translation id="1084365883616172403">Facebook पोस्ट पूर्ण केले.</translation> <translation id="1103523840287552314">नेहमी भाषांतर करा <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">स्वीकारा आणि सुरू ठेवा</translation> @@ -495,6 +496,7 @@ <translation id="5168414296986405587">iPadOS साठी बिल्ड केले आहे</translation> <translation id="5173088371991956744">सिंकला हे तुम्हीच आहात याची पडताळणी करायची आहे</translation> <translation id="5181140330217080051">डाउनलोड करीत आहे</translation> +<translation id="5184329579814168207">Chrome मध्ये उघडा</translation> <translation id="5186185447130319458">खाजगी</translation> <translation id="5188482106078495165">तुमची कुकी सेटिंग्ज सर्व टॅबना लागू होतात. उघड्या टॅबवर नवीन सेटिंग लागू करण्यासाठी, टॅब रीलोड करा.</translation> <translation id="5190835502935405962">बुकमार्क बार</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index fae5e405..5d9319de 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Dibina untuk iPadOS</translation> <translation id="5173088371991956744">Penyegerakan Perlu Mengesahkan Itu Anda</translation> <translation id="5181140330217080051">Memuat turun</translation> +<translation id="5184329579814168207">Buka dalam Chrome</translation> <translation id="5186185447130319458">Peribadi</translation> <translation id="5188482106078495165">Tetapan kuki anda digunakan pada semua tab. Untuk menggunakan tetapan baharu pada tab yang terbuka, muat semula tab itu.</translation> <translation id="5190835502935405962">Bar Penanda Halaman</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb index 55aeb14..3de86a8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_my.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS အတွက် ပြုလုပ်ထားသည်</translation> <translation id="5173088371991956744">‘စင့်ခ်လုပ်ခြင်း’ က သင်ဖြစ်ကြောင်း စိစစ်ရန်လိုအပ်သည်</translation> <translation id="5181140330217080051">ဒေါင်းလုဒ် လုပ်နေ</translation> +<translation id="5184329579814168207">Chrome ထဲတွင် ဖွင့်မည်</translation> <translation id="5186185447130319458">ကိုယ်ပိုင်သီးသန့်</translation> <translation id="5188482106078495165">သင့်ကွတ်ကီးများဆက်တင်က တဘ်အားလုံးသို့ သက်ရောက်ပါသည်။ ဖွင့်ထားသောတဘ်သို့ ဆက်တင်အသစ်ထည့်သွင်းရန် တဘ်ကိုပြန်စတင်ပါ။</translation> <translation id="5190835502935405962">စာညှပ် ဘား</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index 0a8c1375..0d6dab3a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS का लागि बनाइएको</translation> <translation id="5173088371991956744">"सिंक" ले तपाईंको पहिचान पुष्टि गर्नु पर्ने हुन्छ</translation> <translation id="5181140330217080051">डाउनलोड गर्दै</translation> +<translation id="5184329579814168207">Chrome मा खोल्नुहोस्</translation> <translation id="5186185447130319458">निजी</translation> <translation id="5188482106078495165">तपाईंको कुकीसम्बन्धी सेटिङ सबै ट्याबमा लागू हुन्छ। कुनै खुला रहेको ट्याबमा नयाँ सेटिङ लागू गर्न उक्त ट्याब पुनः लोड गर्नुहोस्।</translation> <translation id="5190835502935405962">पृष्ठमञ्जूषा पट्टी</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb index b948230..a1aa871 100644 --- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Gebouwd voor iPadOS</translation> <translation id="5173088371991956744">Synchronisatie moet bevestigen dat jij het bent</translation> <translation id="5181140330217080051">Downloaden</translation> +<translation id="5184329579814168207">Openen in Chrome</translation> <translation id="5186185447130319458">Privé</translation> <translation id="5188482106078495165">Je cookie-instellingen zijn van toepassing op alle tabbladen. Als je een nieuwe instelling wilt toepassen op een geopend tabblad, laad je het tabblad opnieuw.</translation> <translation id="5190835502935405962">Bookmarkbalk</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index f87bf4a4..8fb413c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Laget for iPadOS</translation> <translation id="5173088371991956744">Synkronisering må bekrefte at det er deg</translation> <translation id="5181140330217080051">Laster ned</translation> +<translation id="5184329579814168207">Åpne i Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Innstillingen for informasjonskapsler gjelder for alle faner. For å ta i bruk en ny innstilling på en åpen fane, last inn fanen på nytt.</translation> <translation id="5190835502935405962">Bokmerkerad</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index 53b8af6..1626a06 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -493,6 +493,7 @@ <translation id="5168414296986405587">iPadOS ପାଇଁ ତିଆରି କରାଯାଇଛି</translation> <translation id="5173088371991956744">ଏହା ଆପଣ ଅଟନ୍ତି ବୋଲି ସିଙ୍କ ଯାଞ୍ଚ କରିବାକୁ ଚାହେଁ</translation> <translation id="5181140330217080051">ଡାଉନ୍ଲୋଡ୍ ହେଉଛି</translation> +<translation id="5184329579814168207">Chromeରେ ଖୋଲନ୍ତୁ</translation> <translation id="5186185447130319458">ଗୋପନୀୟ</translation> <translation id="5188482106078495165">ଆପଣଙ୍କ କୁକୀ ସେଟିଂ ସମସ୍ତ ଟାବରେ ଲାଗୁ ହୋଇଥାଏ। ଏକ ଖୋଲା ଟାବରେ ଏକ ନୂଆ ସେଟିଂ ଲାଗୁ କରିବାକୁ, ଟାବକୁ ପୁଣି ଲୋଡ୍ କରନ୍ତୁ।</translation> <translation id="5190835502935405962">ବୁକମାର୍କ ବାର୍</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb index a12a676..e485a6b0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -493,6 +493,7 @@ <translation id="5168414296986405587">iPadOS ਲਈ ਬਣਾਇਆ ਗਿਆ</translation> <translation id="5173088371991956744">ਸਿੰਕ ਕਰਨ ਲਈ ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਲੋੜ ਹੈ</translation> <translation id="5181140330217080051">ਡਾਊਨਲੋਡ ਕਰ ਰਿਹਾ ਹੈ</translation> +<translation id="5184329579814168207">Chrome ਵਿੱਚ ਖੋਲ੍ਹੋ</translation> <translation id="5186185447130319458">ਨਿੱਜੀ</translation> <translation id="5188482106078495165">ਤੁਹਾਡੀ ਕੁਕੀਜ਼ ਸੈਟਿੰਗ ਸਾਰੀਆਂ ਟੈਬਾਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ। ਖੁਲ੍ਹੀ ਹੋਈ ਟੈਬ 'ਤੇ ਨਵੀਂ ਸੈਟਿੰਗ ਲਾਗੂ ਕਰਨ ਲਈ, ਟੈਬ ਨੂੰ ਰੀਲੋਡ ਕਰੋ।</translation> <translation id="5190835502935405962">ਬੁੱਕਮਾਰਸ ਬਾਰ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index e764a39..d62fe804 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -493,6 +493,7 @@ <translation id="5168414296986405587">Stworzona dla iPadOS</translation> <translation id="5173088371991956744">Synchronizacja musi potwierdzić Twoją tożsamość</translation> <translation id="5181140330217080051">Pobieranie</translation> +<translation id="5184329579814168207">Otwórz w Chrome</translation> <translation id="5186185447130319458">Prywatna</translation> <translation id="5188482106078495165">Ustawienie plików cookie obowiązuje w odniesieniu do wszystkich kart. Aby zastosować nowe ustawienie do otwartej karty, załaduj ją ponownie.</translation> <translation id="5190835502935405962">Pasek zakładek</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index bc914bf9..a942b8e6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Desenvolvido para iPadOS</translation> <translation id="5173088371991956744">A sincronização precisa confirmar sua identidade</translation> <translation id="5181140330217080051">Fazendo download</translation> +<translation id="5184329579814168207">Abrir no Google Chrome</translation> <translation id="5186185447130319458">Particular</translation> <translation id="5188482106078495165">Sua configuração de cookies é aplicada a todas as guias. Para aplicar uma nova configuração a uma guia aberta, atualize a guia.</translation> <translation id="5190835502935405962">Barra de favoritos</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb index f7d774e..ef98929 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Criado para o iPadOS</translation> <translation id="5173088371991956744">A sincronização precisa de validar a sua identidade</translation> <translation id="5181140330217080051">A transferir</translation> +<translation id="5184329579814168207">Abrir no Chrome</translation> <translation id="5186185447130319458">Privado</translation> <translation id="5188482106078495165">A sua definição de cookies aplica-se a todos os separadores. Para aplicar uma nova definição a um separador aberto, atualize o separador.</translation> <translation id="5190835502935405962">Barra de marcadores</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index a163cb07..a11a945 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Creat pentru iPadOS</translation> <translation id="5173088371991956744">Sincronizarea trebuie să-ți confirme identitatea</translation> <translation id="5181140330217080051">Se descarcă</translation> +<translation id="5184329579814168207">Deschide în Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Setarea pentru cookie-uri se aplică tuturor filelor. Pentru a aplica o nouă setare unei file deschise, reîncarcă fila.</translation> <translation id="5190835502935405962">Bară de marcaje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index c3a0dd71..ebd4e601 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Создано для iPadOS</translation> <translation id="5173088371991956744">Подтвердите личность для синхронизации</translation> <translation id="5181140330217080051">Скачивается</translation> +<translation id="5184329579814168207">Открыть в Chrome</translation> <translation id="5186185447130319458">Конфиденциально</translation> <translation id="5188482106078495165">Заданные вами параметры в отношении файлов cookie действуют для всех вкладок. Если вам нужно применить новый параметр к открытой вкладке, перезагрузите ее.</translation> <translation id="5190835502935405962">Панель закладок</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb index 62e0e97..371954c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_si.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS සඳහා තනා ඇත</translation> <translation id="5173088371991956744">ඒ ඔබ බව සත්යාපනය කිරීමට සමමුහුර්තයට අවශ්යයි</translation> <translation id="5181140330217080051">බාගනිමින්</translation> +<translation id="5184329579814168207">Chrome තුළ විවෘත කරන්න</translation> <translation id="5186185447130319458">රහසිගත</translation> <translation id="5188482106078495165">ඔබේ කුකි සැකසීම සියලු ටැබවලට යෙදේ. නව සැකසීමක් විවෘත ටැබයකට යෙදීමට, ටැබය නැවත පූරණය කරන්න.</translation> <translation id="5190835502935405962">පොත්සලකුණු තීරුව</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 4c89077..bf04512 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Vytvorené pre iPadOS</translation> <translation id="5173088371991956744">Synchronizácia potrebuje overiť vašu totožnosť</translation> <translation id="5181140330217080051">Sťahovanie</translation> +<translation id="5184329579814168207">Otvoriť v prehliadači Chrome</translation> <translation id="5186185447130319458">Súkromné</translation> <translation id="5188482106078495165">Nastavenie súborov cookie platí pre všetky karty. Ak chcete pre otvorenú kartu použiť nové nastavenie, znova ju načítajte.</translation> <translation id="5190835502935405962">Panel so záložkami</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 3432dac..e086127 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Ustvarjeno za iPadOS</translation> <translation id="5173088371991956744">Sinhroniziranje mora potrditi, da ste to vi</translation> <translation id="5181140330217080051">Prenos</translation> +<translation id="5184329579814168207">Odpri v Chromu</translation> <translation id="5186185447130319458">Zasebno</translation> <translation id="5188482106078495165">Nastavitev piškotkov velja za vse zavihke. Če želite uporabiti novo nastavitev na odprtem zavihku, ga znova naložite.</translation> <translation id="5190835502935405962">Vrstica z zaznamki</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb index dfdc4a1..5ce64c2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Përdor një fjalëkalim tjetër...</translation> <translation id="1066060668811609597">Menaxho sinkronizimin</translation> <translation id="1076421457278169141">Kodi u skanua</translation> +<translation id="1076785341346483463">Sinkronizo me një llogari të menaxhuar</translation> <translation id="1084365883616172403">Postimi në Facebook u krye.</translation> <translation id="1103523840287552314">Përkthe gjithmonë nga <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Prano dhe vazhdo</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Krijuar për iPadOS</translation> <translation id="5173088371991956744">Sinkronizimi ka nevojë të verifikojë që je ti</translation> <translation id="5181140330217080051">Po shkarkon</translation> +<translation id="5184329579814168207">Hape në Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Cilësimet e tua të kukive zbatohen te të gjitha skedat. Për të zbatuar një cilësim të ri te një skedë e hapur, ringarkoje skedën.</translation> <translation id="5190835502935405962">Shiriti i faqeshënuesve</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb index e59bcea..c5b6890 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Napravljeno za iPadOS</translation> <translation id="5173088371991956744">Sinhronizacija mora da potvrdi da ste to vi</translation> <translation id="5181140330217080051">Preuzimanje</translation> +<translation id="5184329579814168207">Otvori u Chrome-u</translation> <translation id="5186185447130319458">Privatno</translation> <translation id="5188482106078495165">Podešavanje kolačića se primenjuje na sve kartice. Da biste primenili novo podešavanje na otvorenu karticu, ponovo učitajte karticu.</translation> <translation id="5190835502935405962">Traka sa obeleživačima</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index fb34b4f..9d0d208 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Направљено за iPadOS</translation> <translation id="5173088371991956744">Синхронизација мора да потврди да сте то ви</translation> <translation id="5181140330217080051">Преузимање</translation> +<translation id="5184329579814168207">Отвори у Chrome-у</translation> <translation id="5186185447130319458">Приватно</translation> <translation id="5188482106078495165">Подешавање колачића се примењује на све картице. Да бисте применили ново подешавање на отворену картицу, поново учитајте картицу.</translation> <translation id="5190835502935405962">Трака са обележивачима</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index 1b499cdd..8e20b7f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Använd ett annat lösenord …</translation> <translation id="1066060668811609597">Hantera synkronisering</translation> <translation id="1076421457278169141">Koden skannades</translation> +<translation id="1076785341346483463">Synkronisera med ett hanterat konto</translation> <translation id="1084365883616172403">Inlägg på Facebook klart.</translation> <translation id="1103523840287552314">Översätt alltid <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Godkänn och fortsätt</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Gjord för iPadOS</translation> <translation id="5173088371991956744">Verifiera din identitet för synkronisering</translation> <translation id="5181140330217080051">Nedladdning</translation> +<translation id="5184329579814168207">Öppna i Chrome</translation> <translation id="5186185447130319458">Privat</translation> <translation id="5188482106078495165">Cookie-inställningarna tillämpas för alla flikar. Om du vill tillämpa en ny inställning på en öppen flik läser du in fliken igen.</translation> <translation id="5190835502935405962">Bokmärkesfältet</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 458226ec..74c0d03 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Tumia Nenosiri Jingine...</translation> <translation id="1066060668811609597">Dhibiti Usawazishaji</translation> <translation id="1076421457278169141">Msimbo umechanganuliwa</translation> +<translation id="1076785341346483463">Sawazisha Ukitumia Akaunti Inayosimamiwa</translation> <translation id="1084365883616172403">Chapisho la Facebook limekamilika.</translation> <translation id="1103523840287552314">Tafsiri <ph name="LANGUAGE" /> kila wakati</translation> <translation id="1104948393051856124">Kubali na Uendelee</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Imetengenezwa kwa ajili ya iPadOS</translation> <translation id="5173088371991956744">Kipengele cha Kusawazisha Kinahitaji Kuthibitisha Kwamba Ni Wewe</translation> <translation id="5181140330217080051">Inapakua</translation> +<translation id="5184329579814168207">Fungulia katika Chrome</translation> <translation id="5186185447130319458">Faragha</translation> <translation id="5188482106078495165">Mipangilio yako ya vidakuzi inatumika kwenye vichupo vyote. Ili utumie mipangilio mipya kwenye kichupo ulichofungua, kipakie upya.</translation> <translation id="5190835502935405962">Sehemu ya Alamisho</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 975a484..86e6f2c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOSஸுக்காக உருவாக்கப்பட்டது</translation> <translation id="5173088371991956744">ஒத்திசைக்க இது நீங்கள்தான் என உறுதிசெய்ய வேண்டும்</translation> <translation id="5181140330217080051">பதிவிறக்குகிறது</translation> +<translation id="5184329579814168207">Chrome இல் திற</translation> <translation id="5186185447130319458">தனிப்பட்டது</translation> <translation id="5188482106078495165">குக்கீகளுக்கான உங்கள் அமைப்பு அனைத்துத் தாவல்களுக்கும் பொருந்தும். திறந்திருக்கும் தாவலை புதிய அமைப்புக்கு உட்படுத்த, அதை ரெஃப்ரெஷ் செய்யவும்.</translation> <translation id="5190835502935405962">புக்மார்க் பட்டி</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index 6af4687..bd12de2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS కోసం బిల్డ్ చేయబడింది</translation> <translation id="5173088371991956744">ఇది మీరేనని సింక్ వెరిఫై చేయాలి</translation> <translation id="5181140330217080051">డౌన్లోడ్ చేస్తోంది</translation> +<translation id="5184329579814168207">Chromeలో తెరువు</translation> <translation id="5186185447130319458">ప్రైవేట్</translation> <translation id="5188482106078495165">మీ కుక్కీల సెట్టింగ్ అన్ని ట్యాబ్లకు వర్తిస్తుంది. తెరిచి ఉన్న ట్యాబ్కు కొత్త సెట్టింగ్ వర్తించాలంటే, ట్యాబ్ను రీలోడ్ చేయండి.</translation> <translation id="5190835502935405962">బుక్మార్క్ల బార్</translation> @@ -740,7 +741,7 @@ <translation id="7029809446516969842">పాస్వర్డ్లు</translation> <translation id="7053983685419859001">నిరోధించు</translation> <translation id="7062545763355031412">అంగీకరిస్తున్నాను, ఖాతాలను మార్చు</translation> -<translation id="7080806333218412752">URLలను తనిఖీ చేయడానికి వాటిని సురక్షిత బ్రౌజింగ్కు పంపుతుంది. కొత్త రకం ప్రమాదాలను గుర్తించడంలో సహాయపడటానికి కొన్ని నమూనా పేజీలు, డౌన్లోడ్లు, ఎక్స్టెన్షన్ యాక్టివిటీ, సిస్టమ్ సమాచారాన్ని కూడా పంపుతుంది. మీరు సైన్ ఇన్ చేసి ఉన్నప్పుడు, మిమ్మల్ని అన్ని Google యాప్లలో కాపాడటానికి ఈ డేటాను తాత్కాలికంగా మీ Google ఖాతాకు లింక్ చేస్తుంది.</translation> +<translation id="7080806333218412752">URLలను చెక్ చేయడానికి వాటిని సురక్షిత బ్రౌజింగ్కు పంపుతుంది. కొత్త రకం ప్రమాదాలను గుర్తించడంలో సహాయపడటానికి కొన్ని నమూనా పేజీలు, డౌన్లోడ్లు, ఎక్స్టెన్షన్ యాక్టివిటీ, సిస్టమ్ సమాచారాన్ని కూడా పంపుతుంది. మీరు సైన్ ఇన్ చేసి ఉన్నప్పుడు, మిమ్మల్ని అన్ని Google యాప్లలో కాపాడటానికి ఈ డేటాను తాత్కాలికంగా మీ Google ఖాతాకు లింక్ చేస్తుంది.</translation> <translation id="7099761977003084116">ఇటీవలి ట్యాబ్లు</translation> <translation id="7102005569666697658">డౌన్లోడ్ చేస్తోంది… <ph name="FILE_SIZE" /></translation> <translation id="7108338896283013870">దాచిపెట్టు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index b3f0389..2edf230 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">สร้างมาเพื่อใช้กับ iPadOS</translation> <translation id="5173088371991956744">การซิงค์จะต้องยืนยันว่าเป็นคุณ</translation> <translation id="5181140330217080051">กำลังดาวน์โหลด</translation> +<translation id="5184329579814168207">เปิดใน Chrome</translation> <translation id="5186185447130319458">ส่วนตัว</translation> <translation id="5188482106078495165">การตั้งค่าคุกกี้จะมีผลกับทุกแท็บ โหลดแท็บซ้ำเพื่อให้การตั้งค่าใหม่มีผลกับแท็บที่เปิดอยู่</translation> <translation id="5190835502935405962">แถบบุ๊กมาร์ก</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index f190815d..75b8b7c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Diğer Şifreyi Kullan...</translation> <translation id="1066060668811609597">Senkronizasyonu yönetin</translation> <translation id="1076421457278169141">Kod tarandı</translation> +<translation id="1076785341346483463">Yönetilen Hesapla Senkronize Edin</translation> <translation id="1084365883616172403">Facebook yayını tamamlandı.</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> dilini daima çevir</translation> <translation id="1104948393051856124">Kabul Et ve Devam Et</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">iPadOS için geliştirildi</translation> <translation id="5173088371991956744">Senkronizasyonun, Kimliğinizi Doğrulaması Gerekiyor</translation> <translation id="5181140330217080051">İndiriliyor</translation> +<translation id="5184329579814168207">Chrome'da aç</translation> <translation id="5186185447130319458">Gizli</translation> <translation id="5188482106078495165">Çerez ayarlarınız tüm sekmelere uygulanır. Açık bir sekmeye yeni bir ayar uygulamak için sekmeyi yeniden yükleyin.</translation> <translation id="5190835502935405962">Yer İşareti Çubuğu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index ef8073f9..3b17ac6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Ввести інший пароль…</translation> <translation id="1066060668811609597">Керуйте синхронізацією</translation> <translation id="1076421457278169141">Код зіскановано</translation> +<translation id="1076785341346483463">Синхронізувати з керованим обліковим записом</translation> <translation id="1084365883616172403">Опубліковано у Facebook</translation> <translation id="1103523840287552314">Завжди перекладати з такої мови: <ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Прийняти та продовжити</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Створено для iPadOS</translation> <translation id="5173088371991956744">Для синхронізації потрібно підтвердити вашу особу</translation> <translation id="5181140330217080051">Завантаження</translation> +<translation id="5184329579814168207">Відкрити в Chrome</translation> <translation id="5186185447130319458">Конфіденційно</translation> <translation id="5188482106078495165">Налаштування файлів cookie застосовується до всіх вкладок. Щоб застосувати його до відкритої вкладки, оновіть її.</translation> <translation id="5190835502935405962">Панель закладок</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index 51e52b1c..c762e4e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS کیلئے بنائی گئی</translation> <translation id="5173088371991956744">مطابقت پذیری کو آپ کی شناخت کی توثیق کرنے کی ضرورت ہے</translation> <translation id="5181140330217080051">ڈاؤن لوڈ کیا جا رہا ہے</translation> +<translation id="5184329579814168207">Chrome میں کھولیں</translation> <translation id="5186185447130319458">نجی</translation> <translation id="5188482106078495165">آپ کی کوکیز کی ترتیب سبھی ٹیبز پر لاگو ہوتی ہے۔ ایک کھلے ٹیب پر نئی ترتیب لاگو کرنے کیلئے، ٹیب کو دوبارہ لوڈ کریں۔</translation> <translation id="5190835502935405962">بُک مارکس بار</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb index df322468..2693b9d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">iPadOS uchun ishlab chiqilgan</translation> <translation id="5173088371991956744">Sinxronizatsiya uchun shaxsingizni tasdiqlang</translation> <translation id="5181140330217080051">Yuklab olinmoqda</translation> +<translation id="5184329579814168207">Chrome brauzerida ochish</translation> <translation id="5186185447130319458">Shaxsiy</translation> <translation id="5188482106078495165">Cookie sozlamalaringiz barcha varaqlarga tadbiq qilinadi. Yangi sozlamani tadbiq qilish uchun, varaqni ochib, uni yangilang.</translation> <translation id="5190835502935405962">Xatcho‘plar paneli</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 118ee92..de23d003 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">Thiết kế cho iPadOS</translation> <translation id="5173088371991956744">Tính năng đồng bộ hóa cần xác minh danh tính của bạn</translation> <translation id="5181140330217080051">Đang tải xuống</translation> +<translation id="5184329579814168207">Mở trong Chrome</translation> <translation id="5186185447130319458">Riêng tư</translation> <translation id="5188482106078495165">Tùy chọn cài đặt cookie của bạn sẽ áp dụng cho mọi thẻ. Để áp dụng một tùy chọn cài đặt mới cho một thẻ đang mở, hãy tải lại thẻ đó.</translation> <translation id="5190835502935405962">Thanh Dấu trang</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index 9ba57618..b3bae21 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">专为 iPadOS 打造</translation> <translation id="5173088371991956744">同步功能需要验证您的身份</translation> <translation id="5181140330217080051">正在下载</translation> +<translation id="5184329579814168207">在 Chrome 中打开</translation> <translation id="5186185447130319458">不公开</translation> <translation id="5188482106078495165">您的 Cookie 设置适用于所有标签页。若要对某个已打开的标签页应用新设置,请重新加载该标签页。</translation> <translation id="5190835502935405962">书签栏</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb index 7a2bc587..3d08b65 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">為 iPadOS 而設</translation> <translation id="5173088371991956744">同步功能需要驗證您的身分</translation> <translation id="5181140330217080051">下載中</translation> +<translation id="5184329579814168207">在 Chrome 中開啟</translation> <translation id="5186185447130319458">私人</translation> <translation id="5188482106078495165">您的 Cookie 設定會套用至所有分頁。如要為已開啟的分頁套用新設定,請重新載入分頁。</translation> <translation id="5190835502935405962">書籤列</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb index 601dc53..63aff99c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -495,6 +495,7 @@ <translation id="5168414296986405587">專為 iPadOS 打造</translation> <translation id="5173088371991956744">同步功能需要驗證你的身分</translation> <translation id="5181140330217080051">下載中</translation> +<translation id="5184329579814168207">在 Chrome 中開啟</translation> <translation id="5186185447130319458">私人</translation> <translation id="5188482106078495165">你的 Cookie 設定會套用到所有分頁。如要將新的設定套用到已開啟的分頁,請重新載入分頁。</translation> <translation id="5190835502935405962">書籤列</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb index e5817c8d..c80668e7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -17,6 +17,7 @@ <translation id="1063454504051558093">Sebenzisa enye iphasiwedi...</translation> <translation id="1066060668811609597">Phatha ukuvumelanisa</translation> <translation id="1076421457278169141">Ikhodi iskeniwe</translation> +<translation id="1076785341346483463">Vumelanisa Nge-akhawunti Ephethwe</translation> <translation id="1084365883616172403">Okuthunyelwe kwe-Facebook kuqedile.</translation> <translation id="1103523840287552314">Humusha njalo i-<ph name="LANGUAGE" /></translation> <translation id="1104948393051856124">Yamukela futhi uqhubeke</translation> @@ -494,6 +495,7 @@ <translation id="5168414296986405587">Yakhelwe i-iPadOS</translation> <translation id="5173088371991956744">Ukuvumelanisa Kudinga Ukuqinisekisa Ukuthi Nguwe</translation> <translation id="5181140330217080051">Iyalanda</translation> +<translation id="5184329579814168207">Vula ku-Chrome</translation> <translation id="5186185447130319458">Okuyimfihlo</translation> <translation id="5188482106078495165">Isethingi lamakhukhi wakho lisebenza kuwo wonke amathebhu. Ukuze usebenzise isethingi entsha ukuvula ithebhu, layisha kabusha ithebhu.</translation> <translation id="5190835502935405962">Ibha yamabhukhimakhi</translation>
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_tile_view.mm b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_tile_view.mm index dd89528b..637a721 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_tile_view.mm +++ b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_tile_view.mm
@@ -42,10 +42,6 @@ _titleLabel.textAlignment = NSTextAlignmentCenter; _titleLabel.preferredMaxLayoutWidth = kPreferredMaxWidth; _titleLabel.numberOfLines = kLabelNumLines; - if (IsContentSuggestionsUIModuleRefreshEnabled()) { - _titleLabel.adjustsFontSizeToFitWidth = YES; - _titleLabel.minimumScaleFactor = 0.7; - } _imageContainerView = [[UIView alloc] init]; _titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
diff --git a/media/capture/video/chromeos/camera_hal_dispatcher_impl_unittest.cc b/media/capture/video/chromeos/camera_hal_dispatcher_impl_unittest.cc index 1086df5..8afbeed 100644 --- a/media/capture/video/chromeos/camera_hal_dispatcher_impl_unittest.cc +++ b/media/capture/video/chromeos/camera_hal_dispatcher_impl_unittest.cc
@@ -124,15 +124,13 @@ return dispatcher_->proxy_task_runner_; } - void DoLoop(int expected_quit_count) { - quit_count_ = expected_quit_count; + void DoLoop() { run_loop_ = std::make_unique<base::RunLoop>(); run_loop_->Run(); } void QuitRunLoop() { - quit_count_--; - if (quit_count_ == 0 && run_loop_) { + if (run_loop_) { run_loop_->Quit(); } } @@ -185,7 +183,6 @@ CameraHalDispatcherImpl* dispatcher_; base::WaitableEvent register_client_event_; int32_t last_register_client_result_; - int quit_count_; private: base::test::TaskEnvironment task_environment_; @@ -200,10 +197,7 @@ auto mock_server = std::make_unique<MockCameraHalServer>(); auto mock_client = std::make_unique<MockCameraHalClient>(); - EXPECT_CALL(*mock_server, DoCreateChannel(_, _)) - .Times(1) - .WillOnce( - InvokeWithoutArgs(this, &CameraHalDispatcherImplTest::QuitRunLoop)); + EXPECT_CALL(*mock_server, DoCreateChannel(_, _)).Times(1); EXPECT_CALL(*mock_client, DoSetUpChannel(_)) .Times(1) .WillOnce( @@ -229,7 +223,7 @@ base::Unretained(this)))); // Wait until the client gets the established Mojo channel. - DoLoop(2); + DoLoop(); // The client registration callback may be called after // CameraHalClient::SetUpChannel(). Use a waitable event to make sure we have @@ -242,10 +236,7 @@ // Make sure we create a new Mojo channel from the new server to the same // client. - EXPECT_CALL(*mock_server, DoCreateChannel(_, _)) - .Times(1) - .WillOnce( - InvokeWithoutArgs(this, &CameraHalDispatcherImplTest::QuitRunLoop)); + EXPECT_CALL(*mock_server, DoCreateChannel(_, _)).Times(1); EXPECT_CALL(*mock_client, DoSetUpChannel(_)) .Times(1) .WillOnce( @@ -261,7 +252,7 @@ base::Unretained(this)))); // Wait until the clients get the newly established Mojo channel. - DoLoop(2); + DoLoop(); } // Test that the CameraHalDisptcherImpl correctly re-establishes a Mojo channel @@ -272,10 +263,7 @@ auto mock_server = std::make_unique<MockCameraHalServer>(); auto mock_client = std::make_unique<MockCameraHalClient>(); - EXPECT_CALL(*mock_server, DoCreateChannel(_, _)) - .Times(1) - .WillOnce( - InvokeWithoutArgs(this, &CameraHalDispatcherImplTest::QuitRunLoop)); + EXPECT_CALL(*mock_server, DoCreateChannel(_, _)).Times(1); EXPECT_CALL(*mock_client, DoSetUpChannel(_)) .Times(1) .WillOnce( @@ -301,7 +289,7 @@ base::Unretained(this)))); // Wait until the client gets the established Mojo channel. - DoLoop(2); + DoLoop(); // The client registration callback may be called after // CameraHalClient::SetUpChannel(). Use a waitable event to make sure we have @@ -314,10 +302,7 @@ // Make sure we re-create the Mojo channel from the same server to the new // client. - EXPECT_CALL(*mock_server, DoCreateChannel(_, _)) - .Times(1) - .WillOnce( - InvokeWithoutArgs(this, &CameraHalDispatcherImplTest::QuitRunLoop)); + EXPECT_CALL(*mock_server, DoCreateChannel(_, _)).Times(1); EXPECT_CALL(*mock_client, DoSetUpChannel(_)) .Times(1) .WillOnce( @@ -335,7 +320,7 @@ base::Unretained(this)))); // Wait until the clients gets the newly established Mojo channel. - DoLoop(2); + DoLoop(); // Make sure the client is still successfully registered. register_client_event_.Wait(); @@ -360,10 +345,7 @@ for (auto type : TokenManager::kTrustedClientTypes) { auto mock_client = std::make_unique<MockCameraHalClient>(); - EXPECT_CALL(*mock_server, DoCreateChannel(_, _)) - .Times(1) - .WillOnce( - InvokeWithoutArgs(this, &CameraHalDispatcherImplTest::QuitRunLoop)); + EXPECT_CALL(*mock_server, DoCreateChannel(_, _)).Times(1); EXPECT_CALL(*mock_client, DoSetUpChannel(_)) .Times(1) .WillOnce( @@ -380,7 +362,7 @@ base::Unretained(this)))); // Wait until the client gets the established Mojo channel. - DoLoop(2); + DoLoop(); // The client registration callback may be called after // CameraHalClient::SetUpChannel(). Use a waitable event to make sure we @@ -440,7 +422,7 @@ dispatcher_->CameraDeviceActivityChange( /*camera_id=*/0, /*opened=*/true, cros::mojom::CameraClientType::TESTING); - DoLoop(1); + DoLoop(); EXPECT_CALL(observer, DoOnActiveClientChange( cros::mojom::CameraClientType::TESTING, false)) @@ -451,7 +433,7 @@ /*camera_id=*/0, /*opened=*/false, cros::mojom::CameraClientType::TESTING); - DoLoop(1); + DoLoop(); } } // namespace media
diff --git a/net/cert/internal/trust_store_chrome.cc b/net/cert/internal/trust_store_chrome.cc index 926c1207..6b824d6 100644 --- a/net/cert/internal/trust_store_chrome.cc +++ b/net/cert/internal/trust_store_chrome.cc
@@ -73,10 +73,12 @@ for (const auto& cert_info : certs) { bssl::UniquePtr<CRYPTO_BUFFER> cert; if (certs_are_static) { - // TODO(mattm,hchao): When the component updater is implemented, ensure - // the static data crypto_buffers for the compiled-in roots are kept - // alive, so that roots from the component updater data will de-dupe - // against them. + // TODO(mattm,hchao): Ensure the static data crypto_buffers for the + // compiled-in roots are kept alive, so that roots from the component + // updater data will de-dupe against them. This currently works if the + // new components roots are the same as the compiled in roots, but + // fails if a component update drops a root and then the next component + // update readds the root without a restart. cert = x509_util::CreateCryptoBufferFromStaticDataUnsafe( cert_info.root_cert_der); } else { @@ -86,8 +88,6 @@ auto parsed = ParsedCertificate::Create( std::move(cert), x509_util::DefaultParseCertificateOptions(), &errors); DCHECK(parsed); - // TODO(hchao): Figure out how to fail gracefully when the Chrome Root Store - // gets a bad component update. trust_store_.AddTrustAnchor(parsed); } version_ = version; @@ -130,4 +130,20 @@ return kRootStoreVersion; } +ParsedCertificateList CompiledChromeRootStoreAnchors() { + ParsedCertificateList parsed_cert_list; + for (const auto& cert_info : kChromeRootCertList) { + bssl::UniquePtr<CRYPTO_BUFFER> cert = + x509_util::CreateCryptoBufferFromStaticDataUnsafe( + cert_info.root_cert_der); + CertErrors errors; + auto parsed = ParsedCertificate::Create( + std::move(cert), x509_util::DefaultParseCertificateOptions(), &errors); + DCHECK(parsed); + parsed_cert_list.push_back(parsed); + } + + return parsed_cert_list; +} + } // namespace net
diff --git a/net/cert/internal/trust_store_chrome.h b/net/cert/internal/trust_store_chrome.h index 5f59e2c..48835f8 100644 --- a/net/cert/internal/trust_store_chrome.h +++ b/net/cert/internal/trust_store_chrome.h
@@ -89,6 +89,10 @@ // binary. NET_EXPORT int64_t CompiledChromeRootStoreVersion(); +// Returns the anchors of the Chrome Root Store that were compiled into the +// binary. +NET_EXPORT ParsedCertificateList CompiledChromeRootStoreAnchors(); + } // namespace net #endif // NET_CERT_INTERNAL_TRUST_STORE_CHROME_H_
diff --git a/net/http/http_cache_transaction.h b/net/http/http_cache_transaction.h index 624279ed..0a937a3 100644 --- a/net/http/http_cache_transaction.h +++ b/net/http/http_cache_transaction.h
@@ -616,12 +616,16 @@ // Initial request with which Start() was invoked. raw_ptr<const HttpRequestInfo> initial_request_ = nullptr; - raw_ptr<const HttpRequestInfo, DanglingUntriaged> request_ = nullptr; + // `custom_request_` is assigned to `request_` after allocation. It must be + // declared before `request_` so that it will be destroyed afterwards to + // prevent that pointer from dangling. + std::unique_ptr<HttpRequestInfo> custom_request_; + + raw_ptr<const HttpRequestInfo> request_ = nullptr; std::string method_; RequestPriority priority_; NetLogWithSource net_log_; - std::unique_ptr<HttpRequestInfo> custom_request_; HttpRequestHeaders request_headers_copy_; // If extra_headers specified a "if-modified-since" or "if-none-match", // |external_validation_| contains the value of those headers.
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index 232be7c..5132cb8 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-07-13 12:54 UTC +# Last updated: 2022-07-14 12:54 UTC PinsListTimestamp -1657716857 +1657803288 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb index e7a2020..d4d2796 100644 --- a/remoting/resources/remoting_strings_te.xtb +++ b/remoting/resources/remoting_strings_te.xtb
@@ -52,7 +52,7 @@ <translation id="3339299787263251426">ఇంటర్నెట్ని ఉపయోగించేటప్పుడు మీ కంప్యూటర్ని సురక్షితంగా యాక్సెస్ చేయండి</translation> <translation id="3385242214819933234">చెల్లని హోస్ట్ యజమాని.</translation> <translation id="3423542133075182604">భద్రతా కీ రిమోటింగ్ ప్రాసెస్</translation> -<translation id="3581045510967524389">నెట్వర్క్కు కనెక్ట్ చేయడం సాధ్యపడలేదు. దయచేసి మీ పరికరం ఆన్లైన్లో ఉందా? అని తనిఖీ చేయండి.</translation> +<translation id="3581045510967524389">నెట్వర్క్కు కనెక్ట్ చేయడం సాధ్యపడలేదు. దయచేసి మీ పరికరం ఆన్లైన్లో ఉందా? అని చెక్ చేయండి.</translation> <translation id="3596628256176442606">ఈ సేవ Chromoting క్లయింట్ల నుండి ఇన్కమింగ్ కనెక్షన్లను అనుమతిస్తుంది.</translation> <translation id="369442766917958684">ఆఫ్లైన్లో ఉన్నారు.</translation> <translation id="3695446226812920698">ఎలాగో తెలుసుకోండి</translation>
diff --git a/services/cert_verifier/cert_verifier_service_factory.cc b/services/cert_verifier/cert_verifier_service_factory.cc index 3608393..b2e5a49 100644 --- a/services/cert_verifier/cert_verifier_service_factory.cc +++ b/services/cert_verifier/cert_verifier_service_factory.cc
@@ -26,6 +26,8 @@ #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) #include "mojo/public/cpp/base/big_buffer.h" +#include "net/cert/internal/parse_name.h" +#include "net/cert/internal/parsed_certificate.h" #include "net/cert/internal/trust_store_chrome.h" #include "net/cert/root_store_proto_lite/root_store.pb.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -72,6 +74,26 @@ std::move(cert_net_fetcher)); } +#if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) +std::string GetName(scoped_refptr<net::ParsedCertificate> cert) { + net::RDNSequence subject_rdn; + if (!net::ParseName(cert->subject_tlv(), &subject_rdn)) { + return "UNKNOWN"; + } + std::string subject_string; + if (!net::ConvertToRFC2253(subject_rdn, &subject_string)) { + return "UNKNOWN"; + } + return subject_string; +} + +std::string GetHash(scoped_refptr<net::ParsedCertificate> cert) { + net::SHA256HashValue hash = + net::X509Certificate::CalculateFingerprint256(cert->cert_buffer()); + return base::HexEncode(hash.data, std::size(hash.data)); +} +#endif + } // namespace CertVerifierServiceFactoryImpl::CertVerifierServiceFactoryImpl( @@ -148,6 +170,25 @@ // instances will start with the updated store. root_store_data_ = std::move(root_store_data); } + +void CertVerifierServiceFactoryImpl::GetChromeRootStoreInfo( + GetChromeRootStoreInfoCallback callback) { + mojom::ChromeRootStoreInfoPtr info_ptr = mojom::ChromeRootStoreInfo::New(); + if (root_store_data_) { + info_ptr->version = root_store_data_->version(); + for (auto cert : root_store_data_->anchors()) { + info_ptr->root_cert_info.push_back( + mojom::ChromeRootCertInfo::New(GetName(cert), GetHash(cert))); + } + } else { + info_ptr->version = net::CompiledChromeRootStoreVersion(); + for (auto cert : net::CompiledChromeRootStoreAnchors()) { + info_ptr->root_cert_info.push_back( + mojom::ChromeRootCertInfo::New(GetName(cert), GetHash(cert))); + } + } + std::move(callback).Run(std::move(info_ptr)); +} #endif void CertVerifierServiceFactoryImpl::RemoveService(
diff --git a/services/cert_verifier/cert_verifier_service_factory.h b/services/cert_verifier/cert_verifier_service_factory.h index c1e582fa..ccbe6f1 100644 --- a/services/cert_verifier/cert_verifier_service_factory.h +++ b/services/cert_verifier/cert_verifier_service_factory.h
@@ -51,6 +51,7 @@ #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) // mojom::CertVerifierServiceFactory implementation: void UpdateChromeRootStore(mojom::ChromeRootStorePtr new_root_store) override; + void GetChromeRootStoreInfo(GetChromeRootStoreInfoCallback callback) override; #endif // Remove a CertVerifyService from needing updates to the Chrome Root Store.
diff --git a/services/cert_verifier/cert_verifier_service_factory_unittest.cc b/services/cert_verifier/cert_verifier_service_factory_unittest.cc index 3a971d1..4f0f328 100644 --- a/services/cert_verifier/cert_verifier_service_factory_unittest.cc +++ b/services/cert_verifier/cert_verifier_service_factory_unittest.cc
@@ -33,8 +33,10 @@ #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) #include "mojo/public/cpp/base/big_buffer.h" +#include "net/cert/internal/parse_name.h" #include "net/cert/internal/trust_store_chrome.h" #include "net/cert/root_store_proto_lite/root_store.pb.h" +#include "net/der/input.h" #endif namespace cert_verifier { @@ -446,6 +448,80 @@ } } +void GetRootStoreInfo(cert_verifier::mojom::ChromeRootStoreInfoPtr* return_ptr, + base::RepeatingClosure quit_closure, + cert_verifier::mojom::ChromeRootStoreInfoPtr info) { + *return_ptr = std::move(info); + quit_closure.Run(); +} + +TEST(CertVerifierServiceFactoryTest, RootStoreInfoWithUpdatedRootStore) { + // Create leaf and root certs. + base::test::TaskEnvironment task_environment; + std::unique_ptr<net::CertBuilder> leaf, root; + net::CertBuilder::CreateSimpleChain(&leaf, &root); + + base::Time now = base::Time::Now(); + leaf->SetValidity(now - base::Days(1), now + base::Days(1)); + + // Create updated Chrome Root Store with just the root cert from above. + chrome_root_store::RootStore root_store_proto; + root_store_proto.set_version_major(net::CompiledChromeRootStoreVersion() + 1); + chrome_root_store::TrustAnchor* anchor = root_store_proto.add_trust_anchors(); + anchor->set_der(root->GetDER()); + std::string proto_serialized; + root_store_proto.SerializeToString(&proto_serialized); + cert_verifier::mojom::ChromeRootStorePtr root_store_ptr = + cert_verifier::mojom::ChromeRootStore::New( + base::as_bytes(base::make_span(proto_serialized))); + + mojo::Remote<mojom::CertVerifierServiceFactory> cv_service_factory_remote; + CertVerifierServiceFactoryImpl cv_service_factory_impl( + cv_service_factory_remote.BindNewPipeAndPassReceiver()); + + // Feed factory the new Chrome Root Store. + cv_service_factory_impl.UpdateChromeRootStore(std::move(root_store_ptr)); + + cert_verifier::mojom::ChromeRootStoreInfoPtr info_ptr; + base::RunLoop request_completed_run_loop; + cv_service_factory_remote->GetChromeRootStoreInfo(base::BindOnce( + &GetRootStoreInfo, &info_ptr, request_completed_run_loop.QuitClosure())); + request_completed_run_loop.Run(); + ASSERT_TRUE(info_ptr); + EXPECT_EQ(info_ptr->version, root_store_proto.version_major()); + ASSERT_EQ(info_ptr->root_cert_info.size(), static_cast<std::size_t>(1)); + + net::der::Input subject_tlv(&root->GetSubject()); + net::RDNSequence subject_rdn; + DCHECK(net::ParseName(subject_tlv, &subject_rdn)); + std::string subject_string; + DCHECK(net::ConvertToRFC2253(subject_rdn, &subject_string)); + EXPECT_EQ(info_ptr->root_cert_info[0]->name, subject_string); + + net::SHA256HashValue root_hash = + net::X509Certificate::CalculateFingerprint256(root->GetCertBuffer()); + EXPECT_EQ(info_ptr->root_cert_info[0]->sha256hash_hex, + base::HexEncode(root_hash.data, std::size(root_hash.data))); +} + +TEST(CertVerifierServiceFactoryTest, RootStoreInfoWithCompiledRootStore) { + base::test::TaskEnvironment task_environment; + net::ParsedCertificateList anchors = net::CompiledChromeRootStoreAnchors(); + + mojo::Remote<mojom::CertVerifierServiceFactory> cv_service_factory_remote; + CertVerifierServiceFactoryImpl cv_service_factory_impl( + cv_service_factory_remote.BindNewPipeAndPassReceiver()); + cert_verifier::mojom::ChromeRootStoreInfoPtr info_ptr; + base::RunLoop request_completed_run_loop; + cv_service_factory_remote->GetChromeRootStoreInfo(base::BindOnce( + &GetRootStoreInfo, &info_ptr, request_completed_run_loop.QuitClosure())); + request_completed_run_loop.Run(); + + ASSERT_TRUE(info_ptr); + EXPECT_EQ(info_ptr->version, net::CompiledChromeRootStoreVersion()); + EXPECT_EQ(info_ptr->root_cert_info.size(), anchors.size()); +} + #endif } // namespace cert_verifier
diff --git a/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom b/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom index 8cc5e7c8..38a218a 100644 --- a/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom +++ b/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom
@@ -75,6 +75,19 @@ mojo_base.mojom.BigBuffer serialized_proto_root_store; }; +// Information about a certificate in the Chrome Root Store +struct ChromeRootCertInfo { + // Human-readable name for the certificate. + string name; + string sha256hash_hex; +}; + +// Information about the Chrome Root Store +struct ChromeRootStoreInfo { + int64 version; + array<ChromeRootCertInfo> root_cert_info; +}; + // Parent interface for the CertVerifierProcess. Hands out new // CertVerifierService's, which have their own underlying CertVerifier's // underneath. @@ -88,4 +101,8 @@ // new version. [EnableIf=is_chrome_root_store_supported] UpdateChromeRootStore(ChromeRootStore new_root_store); + + // Returns information about the current Chrome Root Store. + [EnableIf=is_chrome_root_store_supported] + GetChromeRootStoreInfo() => (ChromeRootStoreInfo root_store_info); };
diff --git a/services/cert_verifier/test_cert_verifier_service_factory.cc b/services/cert_verifier/test_cert_verifier_service_factory.cc index 363f6bda1..139d98f 100644 --- a/services/cert_verifier/test_cert_verifier_service_factory.cc +++ b/services/cert_verifier/test_cert_verifier_service_factory.cc
@@ -48,6 +48,13 @@ #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) void TestCertVerifierServiceFactoryImpl::UpdateChromeRootStore( mojom::ChromeRootStorePtr new_root_store) {} + +void TestCertVerifierServiceFactoryImpl::GetChromeRootStoreInfo( + GetChromeRootStoreInfoCallback callback) { + mojom::ChromeRootStoreInfoPtr info_ptr = mojom::ChromeRootStoreInfo::New(); + info_ptr->version = 42; + std::move(callback).Run(std::move(info_ptr)); +} #endif void TestCertVerifierServiceFactoryImpl::ReleaseAllCertVerifierParams() {
diff --git a/services/cert_verifier/test_cert_verifier_service_factory.h b/services/cert_verifier/test_cert_verifier_service_factory.h index f256214..6ff8a30 100644 --- a/services/cert_verifier/test_cert_verifier_service_factory.h +++ b/services/cert_verifier/test_cert_verifier_service_factory.h
@@ -48,6 +48,7 @@ #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) void UpdateChromeRootStore(mojom::ChromeRootStorePtr new_root_store) override; + void GetChromeRootStoreInfo(GetChromeRootStoreInfoCallback callback) override; #endif // Pops the first request off the back of the list and forwards it to the
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json index 9795fd9..3038b45 100644 --- a/testing/buildbot/chromium.dawn.json +++ b/testing/buildbot/chromium.dawn.json
@@ -401,6 +401,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-19.0.2", + "os": "Ubuntu-19.04", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -840,6 +879,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-440.100", + "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-440.100", + "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -1241,6 +1359,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-19.0.2", + "os": "Ubuntu-19.04", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -1642,6 +1799,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:9bc5-20.0.8", + "os": "Ubuntu-18.04.6", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -2081,6 +2277,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-440.100", + "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=Vulkan", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-440.100", + "os": "Ubuntu-18.04.5|Ubuntu-18.04.6", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -2513,6 +2788,48 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "1002:6821", + "hidpi": "1", + "os": "Mac-12.1", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -2956,6 +3273,87 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-11.5.2|Mac-12.4" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-11.5.2|Mac-12.4" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -3441,6 +3839,93 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "1002:6821", + "hidpi": "1", + "os": "Mac-12.1", + "pool": "chromium.tests.gpu" + } + ], + "expiration": 21600, + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "1002:6821", + "hidpi": "1", + "os": "Mac-12.1", + "pool": "chromium.tests.gpu" + } + ], + "expiration": 21600, + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -3898,6 +4383,89 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-12.4" + } + ], + "expiration": 21600, + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-12.4" + } + ], + "expiration": 21600, + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -4328,6 +4896,48 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "1002:6821", + "hidpi": "1", + "os": "Mac-12.1", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -4771,6 +5381,87 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-11.5.2|Mac-12.4" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "display_attached": "1", + "gpu": "8086:3e9b", + "os": "Mac-11.5.2|Mac-12.4" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -5506,6 +6197,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", + "os": "Windows-10", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -5935,6 +6665,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -6326,6 +7135,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", + "os": "Windows-10", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -6755,6 +7603,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release_x64", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -7117,6 +8044,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", + "os": "Windows-10", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -7542,6 +8508,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -7902,6 +8947,45 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "8086:5912-26.20.100.8141|8086:3e92-26.20.100.8141", + "os": "Windows-10", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }, @@ -8327,6 +9411,85 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://:webgpu_blink_web_tests/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" + }, + { + "args": [ + "webgpu_cts", + "--show-stdout", + "--browser=release", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--use-webgpu-adapter=swiftshader", + "--test-filter=*web_platform*", + "--enable-dawn-backend-validation", + "--retry-limit=3", + "--jobs=4" + ], + "isolate_name": "telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webgpu_swiftshader_web_platform_cts_with_validation_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "gpu": "10de:2184-27.21.14.5638", + "os": "Windows-10-18363", + "pool": "chromium.tests.gpu" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", + "shards": 2 + }, + "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" } ] }
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl index ba6cb4e..74e0a36a1 100644 --- a/testing/buildbot/mixins.pyl +++ b/testing/buildbot/mixins.pyl
@@ -1203,6 +1203,18 @@ 'enable': True, }, }, + 'webgpu_telemetry_cts': { + '$mixin_append': { + 'args': [ + '--extra-browser-args=--force_high_performance_gpu', + '--retry-limit=3', + '--jobs=4', + ], + 'linux_args': [ + '--extra-browser-args=--enable-features=Vulkan', + ], + }, + }, 'win10': { 'swarming': { 'dimensions': {
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 2b24bf9..3a593892 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -2915,42 +2915,59 @@ 'gpu_dawn_telemetry_cts_tests': { 'webgpu_cts': { - 'args': [ - '--extra-browser-args=--force_high_performance_gpu', - '--retry-limit=3', - '--jobs=4', - ], - 'linux_args': [ - '--extra-browser-args=--enable-features=Vulkan', - ], 'mixins': [ 'has_native_resultdb_integration', + 'webgpu_telemetry_cts', ], 'swarming': { 'shards': 14, }, }, + 'webgpu_swiftshader_web_platform_cts': { + 'args': [ + '--use-webgpu-adapter=swiftshader', + '--test-filter=*web_platform*', + ], + 'mixins': [ + 'has_native_resultdb_integration', + 'webgpu_telemetry_cts', + ], + 'swarming': { + 'shards': 2, + }, + 'telemetry_test_name': 'webgpu_cts', + }, }, 'gpu_dawn_telemetry_cts_tests_with_validation': { 'webgpu_cts_with_validation': { 'args': [ - '--extra-browser-args=--force_high_performance_gpu', '--enable-dawn-backend-validation', - '--retry-limit=3', - '--jobs=4', - ], - 'linux_args': [ - '--extra-browser-args=--enable-features=Vulkan', ], 'mixins': [ 'has_native_resultdb_integration', + 'webgpu_telemetry_cts', ], 'swarming': { 'shards': 14, }, 'telemetry_test_name': 'webgpu_cts', }, + 'webgpu_swiftshader_web_platform_cts_with_validation': { + 'args': [ + '--use-webgpu-adapter=swiftshader', + '--test-filter=*web_platform*', + '--enable-dawn-backend-validation', + ], + 'mixins': [ + 'has_native_resultdb_integration', + 'webgpu_telemetry_cts', + ], + 'swarming': { + 'shards': 2, + }, + 'telemetry_test_name': 'webgpu_cts', + }, }, 'gpu_default_and_optional_win_specific_gtests': {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 520c384..5e7f8a7 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -269,6 +269,22 @@ ] } ], + "AndroidPhotoPickerComparison": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AndroidMediaPickerSupport" + ], + "min_os_version": "13.0.0" + } + ] + } + ], "AndroidScrollOptimizations": [ { "platforms": [ @@ -759,22 +775,6 @@ ] } ], - "AutofillAssistantDomAnnotation": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "//1": "This launch is gated external to Chrome.", - "name": "Enabled_20220211", - "enable_features": [ - "AutofillAssistantAnnotateDom" - ] - } - ] - } - ], "AutofillAssistantInCCTTriggering": [ { "platforms": [ @@ -5079,14 +5079,17 @@ ], "experiments": [ { - "name": "Blocks_1_20211021", + "name": "Reid_score_AND_Blocks_1_20211021", "params": { "ActivelySampledFonts": "Arial,Helvetica,Times New Roman", "BlockWeights": "5202,37515,33617,35842,36929,33922,20441,31021,28500,34490,24343", "BlockedHashes": "44033,44289,286465,680961,681473,693249,693505,693761,694017,696065,880129,881409,881665,881921", "BlockedTypes": "13,25,28", "Blocks": "9129224;865032;8710152;8678920;9305096;8942088;8939784;1722309467823238416;3972031034286914064;2988159541422276624;8328626426974190352;9545333389081804304;13173218182366896400;12249551522105410064;18426709255769621264;789,681729;690945;9305096;1722309467823238416;3972031034286914064;2988159541422276624;12249551522105410064;789,695297;9304840;9585928;680705;9305352;3873813933275956760;18009598079355128088,691201;680449;690945;142593;8939784;9128968;865032;3158419467;1722309467823238416;11068226492212177680;7532279523433960728,680193;681729;692225;8939784;9304840;9216356244107974160;8328626426974190352;533,680193;9129224;679425;695297;8710152;7532279523433960728,681729;18009598079355128088,690689;679425;542977;201473;681217;3873813933275956760;7191660495369152024,142593;201217;680193;691713;681217;542977;9586184;8716040;3158419467;789,680705;642817;201473;838401;8678664;865032;9585928;9586184;9305096;7532279523433960728;533;7191660495369152024,681729;642817;542977;9585928;3873813933275956760;7532279523433960728;13014994009983628312", - "Gen": "7" + "EnableActiveSampling": "true", + "Gen": "8", + "ReidBlocks": "18009598079355128088,9223784233214641190;10735872651981970214", + "ReidBlocksSaltsRanges": "1000,1000000" }, "enable_features": [ "IdentifiabilityStudy"
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index a6819ac9..42547d9 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -959,7 +959,7 @@ const base::Feature kSanitizerAPI{"SanitizerAPI", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kSanitizerAPIv0{"SanitizerAPIv0", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; // Controls whether the Sanitizer API allows namespaced content (SVG + MathML). //
diff --git a/third_party/blink/public/platform/scheduler/test/web_fake_thread_scheduler.h b/third_party/blink/public/platform/scheduler/test/web_fake_thread_scheduler.h index 9e342bf8..2bca7b4 100644 --- a/third_party/blink/public/platform/scheduler/test/web_fake_thread_scheduler.h +++ b/third_party/blink/public/platform/scheduler/test/web_fake_thread_scheduler.h
@@ -21,7 +21,6 @@ // RendererScheduler implementation. std::unique_ptr<Thread> CreateMainThread() override; - scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; std::unique_ptr<WebAgentGroupScheduler> CreateAgentGroupScheduler() override; WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override;
diff --git a/third_party/blink/public/platform/scheduler/web_thread_scheduler.h b/third_party/blink/public/platform/scheduler/web_thread_scheduler.h index e0bb72a3..57e4416 100644 --- a/third_party/blink/public/platform/scheduler/web_thread_scheduler.h +++ b/third_party/blink/public/platform/scheduler/web_thread_scheduler.h
@@ -59,9 +59,6 @@ // Returns main thread scheduler for the main thread of the current process. static WebThreadScheduler* MainThreadScheduler(); - // Returns the default task runner. - virtual scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner(); - // Returns the compositor task runner. virtual scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner();
diff --git a/third_party/blink/renderer/core/css/counter_style_map_test.cc b/third_party/blink/renderer/core/css/counter_style_map_test.cc index 1bc40f1..33caf4f1 100644 --- a/third_party/blink/renderer/core/css/counter_style_map_test.cc +++ b/third_party/blink/renderer/core/css/counter_style_map_test.cc
@@ -7,16 +7,11 @@ #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/dom/shadow_root.h" #include "third_party/blink/renderer/core/testing/page_test_base.h" -#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" namespace blink { -class CounterStyleMapTest - : public PageTestBase, - private ScopedCSSAtRuleCounterStyleInShadowDOMForTest { +class CounterStyleMapTest : public PageTestBase { public: - CounterStyleMapTest() : ScopedCSSAtRuleCounterStyleInShadowDOMForTest(true) {} - ShadowRoot& AttachShadowTo(const char* host_id) { Element* host = GetElementById(host_id); return host->AttachShadowRootInternal(ShadowRootType::kOpen);
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc index c7b3455..30643a7 100644 --- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc +++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -3051,18 +3051,13 @@ intrinsic_length->GetLength(), style); } - if (RuntimeEnabledFeatures::ContainIntrinsicSizeAutoEnabled()) { - if (!intrinsic_length) - return CSSIdentifierValue::Create(CSSValueID::kNone); - CSSValueList* list = CSSValueList::CreateSpaceSeparated(); - if (intrinsic_length->HasAuto()) - list->Append(*CSSIdentifierValue::Create(CSSValueID::kAuto)); - list->Append(*length); - return list; - } if (!intrinsic_length) - return CSSIdentifierValue::Create(CSSValueID::kAuto); - return length; + return CSSIdentifierValue::Create(CSSValueID::kNone); + CSSValueList* list = CSSValueList::CreateSpaceSeparated(); + if (intrinsic_length->HasAuto()) + list->Append(*CSSIdentifierValue::Create(CSSValueID::kAuto)); + list->Append(*length); + return list; } std::unique_ptr<CrossThreadStyleValue>
diff --git a/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc b/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc index dd357aa..3e64442 100644 --- a/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc +++ b/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
@@ -1262,17 +1262,6 @@ return ConsumeIdent(range); } -CSSCustomIdentValue* ConsumeCustomIdentWithToken( - const CSSParserToken& token, - const CSSParserContext& context) { - if (token.GetType() != kIdentToken || IsCSSWideKeyword(token.Id()) || - token.Id() == CSSValueID::kDefault) - return nullptr; - - return MakeGarbageCollected<CSSCustomIdentValue>( - token.Value().ToAtomicString()); -} - CSSCustomIdentValue* ConsumeCustomIdent(CSSParserTokenRange& range, const CSSParserContext& context) { if (range.Peek().GetType() != kIdentToken || @@ -1280,8 +1269,8 @@ range.Peek().Id() == CSSValueID::kDefault) { return nullptr; } - return ConsumeCustomIdentWithToken(range.ConsumeIncludingWhitespace(), - context); + return MakeGarbageCollected<CSSCustomIdentValue>( + range.ConsumeIncludingWhitespace().Value().ToAtomicString()); } // Consume a custom ident more conservatively, for use in new uses of custom @@ -2513,9 +2502,7 @@ CSSValue* ConsumeIntrinsicSizeLonghand(CSSParserTokenRange& range, const CSSParserContext& context) { - if (RuntimeEnabledFeatures::ContainIntrinsicSizeAutoEnabled()) - return ConsumeIntrinsicSizeLonghandNew(range, context); - return ConsumeIntrinsicSizeLonghandOld(range, context); + return ConsumeIntrinsicSizeLonghandNew(range, context); } static CSSValue* ConsumeCrossFade(CSSParserTokenRange& args, @@ -2548,8 +2535,7 @@ static CSSValue* ConsumePaint(CSSParserTokenRange& args, const CSSParserContext& context) { - const CSSParserToken& name_token = args.ConsumeIncludingWhitespace(); - CSSCustomIdentValue* name = ConsumeCustomIdentWithToken(name_token, context); + CSSCustomIdentValue* name = ConsumeCustomIdent(args, context); if (!name) return nullptr;
diff --git a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc index a4ced770..638a5e9 100644 --- a/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/scoped_style_resolver.cc
@@ -94,13 +94,6 @@ } void ScopedStyleResolver::AddCounterStyleRules(const RuleSet& rule_set) { - if (!RuntimeEnabledFeatures::CSSAtRuleCounterStyleInShadowDOMEnabled()) { - // Our support of @counter-style rules in shadow DOM is experimental and - // non-standard. See https://github.com/w3c/csswg-drafts/issues/5693 - if (!GetTreeScope().RootNode().IsDocumentNode()) - return; - } - if (rule_set.CounterStyleRules().IsEmpty()) return; EnsureCounterStyleMap().AddCounterStyles(rule_set);
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc index 33a6a299..8c80ea0 100644 --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -2296,9 +2296,7 @@ // If we have a single identifier, it is "none" in either syntax. auto* identifier_value = DynamicTo<CSSIdentifierValue>(value); if (identifier_value) { - DCHECK((!RuntimeEnabledFeatures::ContainIntrinsicSizeAutoEnabled() && - identifier_value->GetValueID() == CSSValueID::kAuto) || - identifier_value->GetValueID() == CSSValueID::kNone); + DCHECK(identifier_value->GetValueID() == CSSValueID::kNone); return absl::nullopt; }
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc index 496c74e..319a928 100644 --- a/third_party/blink/renderer/core/css/style_engine_test.cc +++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -4414,47 +4414,6 @@ EXPECT_TRUE(IsUseCounted(WebFeature::kCSSAtRuleCounterStyle)); } -TEST_F(StyleEngineTest, CounterStyleDisabledInShadowDOM) { - ScopedCSSAtRuleCounterStyleInShadowDOMForTest - counter_style_in_shadow_dom_disabled(false); - - GetDocument().body()->setInnerHTML(R"HTML( - <style> - @counter-style foo { symbols: A; } - </style> - <ol id="foo" style="list-style-type: foo"><li></li></ol> - <div id="host"></div> - )HTML"); - - Element* host = GetDocument().getElementById("host"); - ShadowRoot& shadow_root = - host->AttachShadowRootInternal(ShadowRootType::kOpen); - shadow_root.setInnerHTML(R"HTML( - <style> - @counter-style bar { symbols: B; } - </style> - <ol id="foo" style="list-style-type: foo"><li></li></ol> - <ol id="bar" style="list-style-type: bar"><li></li></ol> - )HTML"); - - UpdateAllLifecyclePhases(); - - // Only @counter-style rules defined in the document scope are effective, - // matching the spec status as of Feb 2021. - - LayoutObject* document_foo = - GetDocument().getElementById("foo")->firstChild()->GetLayoutObject(); - EXPECT_EQ("A. ", GetListMarkerText(document_foo)); - - LayoutObject* shadow_foo = - shadow_root.getElementById("foo")->firstChild()->GetLayoutObject(); - EXPECT_EQ("A. ", GetListMarkerText(shadow_foo)); - - LayoutObject* shadow_bar = - shadow_root.getElementById("bar")->firstChild()->GetLayoutObject(); - EXPECT_EQ("1. ", GetListMarkerText(shadow_bar)); -} - TEST_F(StyleEngineTest, SystemFontsObeyDefaultFontSize) { // <input> get assigned "font: -webkit-small-control" in the UA sheet. Element* body = GetDocument().body();
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index 0bb6bd0d..9c1bdaa1 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -3011,12 +3011,10 @@ // Every document has its own axObjectCache if accessibility is enabled, // except for page popups, which share the axObjectCache of their owner. Document* doc = const_cast<Document*>(this); - if (doc->GetFrame() && doc->GetFrame()->PagePopupOwner()) { + auto* frame = doc->GetFrame(); + if (frame && frame->HasPagePopupOwner()) { DCHECK(!doc->ax_object_cache_); - return doc->GetFrame() - ->PagePopupOwner() - ->GetDocument() - .AXObjectCacheOwner(); + return frame->PagePopupOwner()->GetDocument().AXObjectCacheOwner(); } return *doc; } @@ -3099,6 +3097,16 @@ return cache_owner.ax_object_cache_.Get(); } +bool Document::HasAXObjectCache() const { + auto& cache_owner = AXObjectCacheOwner(); + + // If the LayoutView is gone then we are in the process of destruction. + if (!cache_owner.layout_view_) + return false; + + return cache_owner.ax_object_cache_; +} + CanvasFontCache* Document::GetCanvasFontCache() { if (!canvas_font_cache_) canvas_font_cache_ = MakeGarbageCollected<CanvasFontCache>(*this);
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h index 629f3d3..b50f9b92 100644 --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h
@@ -754,7 +754,7 @@ // AXContext associated with this document. When all associated // AXContexts are deleted, the AXObjectCache will be removed. AXObjectCache* ExistingAXObjectCache() const; - + bool HasAXObjectCache() const; Document& AXObjectCacheOwner() const; void ClearAXObjectCache();
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index d0736e14..ac91a4c 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -3061,6 +3061,60 @@ return GetTreeScope().getElementById(anchor_id); // may be null } +void Element::MaybeTriggerHoverPopup(Element* popup_element) { + DCHECK(RuntimeEnabledFeatures::HTMLPopupAttributeEnabled()); + if (!popup_element || !popup_element->HasValidPopupAttribute()) + return; + // Remove this element from hoverPopupTasks always. + popup_element->GetPopupData()->hoverPopupTasks().erase(this); + // Only trigger the pop-up if the hoverpopup attribute still points to the + // same pop-up, and the pop-up is in the tree and still not showing. + if (popup_element->IsInTreeScope() && !popup_element->popupOpen() && + popup_element == GetTreeScope().getElementById( + FastGetAttribute(html_names::kHoverpopupAttr))) { + popup_element->showPopUp(ASSERT_NO_EXCEPTION); + } +} + +void Element::HandlePopupHovered(bool hovered) { + if (!RuntimeEnabledFeatures::HTMLPopupAttributeEnabled()) + return; + if (!FastHasAttribute(html_names::kHoverpopupAttr) || !IsInTreeScope()) + return; + Element* popup_element = GetTreeScope().getElementById( + FastGetAttribute(html_names::kHoverpopupAttr)); + if (!popup_element || !popup_element->HasValidPopupAttribute()) + return; + if (hovered) { + auto& hover_tasks = popup_element->GetPopupData()->hoverPopupTasks(); + DCHECK(!hover_tasks.Contains(this)); + + // TODO(masonf): Use CSS timeout value instead of this hard-coded timeout. + constexpr base::TimeDelta kDelayBeforeShow = base::Milliseconds(100); + + // When we enter an element, we'll post a delayed task for the pop-up we're + // targeting. It's possible that multiple nested elements have hoverpopup + // attributes pointing to the same pop-up, and in that case, we want to + // trigger on the first of them that reaches its timeout threshold. + hover_tasks.insert( + this, + PostDelayedCancellableTask( + *GetExecutionContext()->GetTaskRunner(TaskType::kInternalDefault), + FROM_HERE, + WTF::Bind(&Element::MaybeTriggerHoverPopup, + WrapWeakPersistent(this), + WrapWeakPersistent(popup_element)), + kDelayBeforeShow)); + } else { + // If we have a task still waiting, cancel it. + popup_element->GetPopupData()->hoverPopupTasks().Take(this).Cancel(); + // TODO(masonf): Still need to implement the code to hide this pop-up after + // a configurable delay. That needs to work even if the pop-up wasn't + // triggered by a hoverpopup attribute. E.g. a regular pop-up that gets + // hidden after it has not been hovered for n seconds. + } +} + void Element::SetNeedsRepositioningForSelectMenu(bool flag) { DCHECK(RuntimeEnabledFeatures::HTMLSelectMenuElementEnabled()); DCHECK(RuntimeEnabledFeatures::HTMLPopupAttributeEnabled()); @@ -8244,6 +8298,7 @@ return; GetDocument().UserActionElements().SetHovered(this, hovered); + HandlePopupHovered(hovered); const ComputedStyle* style = GetComputedStyle(); if (!style || style->AffectedByHover()) {
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h index 7565b8f..11405c2 100644 --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h
@@ -594,6 +594,8 @@ HidePopupFocusBehavior, HidePopupForcingLevel, HidePopupIndependence); + void MaybeTriggerHoverPopup(Element* popup_element); + void HandlePopupHovered(bool hovered); // TODO(crbug.com/1197720): The popup position should be provided by the new // anchored positioning scheme.
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc index ca093c10..f1e42bf 100644 --- a/third_party/blink/renderer/core/dom/node.cc +++ b/third_party/blink/renderer/core/dom/node.cc
@@ -2243,8 +2243,9 @@ } if (ParentOrShadowHostNode()->IsInShadowTree()) SetFlag(kIsInShadowTreeFlag); - if (AXObjectCache* cache = GetDocument().ExistingAXObjectCache()) - cache->ChildrenChanged(&insertion_point); + if (GetDocument().HasAXObjectCache()) { + GetDocument().ExistingAXObjectCache()->ChildrenChanged(&insertion_point); + } return kInsertionDone; } @@ -2261,8 +2262,9 @@ } if (IsInShadowTree() && !ContainingTreeScope().RootNode().IsShadowRoot()) ClearFlag(kIsInShadowTreeFlag); - if (AXObjectCache* cache = GetDocument().ExistingAXObjectCache()) - cache->Remove(this); + if (GetDocument().HasAXObjectCache()) { + GetDocument().ExistingAXObjectCache()->Remove(this); + } } String Node::DebugName() const {
diff --git a/third_party/blink/renderer/core/dom/popup_data.h b/third_party/blink/renderer/core/dom/popup_data.h index beee90d7..d49b7ef 100644 --- a/third_party/blink/renderer/core/dom/popup_data.h +++ b/third_party/blink/renderer/core/dom/popup_data.h
@@ -81,6 +81,10 @@ animation_finished_listener_ = listener; } + HeapHashMap<WeakMember<Element>, TaskHandle>& hoverPopupTasks() { + return hover_popup_tasks_; + } + HTMLSelectMenuElement* ownerSelectMenuElement() const { return owner_select_menu_element_; } @@ -92,6 +96,7 @@ visitor->Trace(invoker_); visitor->Trace(previously_focused_element_); visitor->Trace(animation_finished_listener_); + visitor->Trace(hover_popup_tasks_); visitor->Trace(owner_select_menu_element_); } @@ -105,6 +110,9 @@ // We hold a strong reference to the animation finished listener, so that we // can confirm that the listeners get removed before cleanup. Member<PopupAnimationFinishedEventListener> animation_finished_listener_; + // Map from triggering elements to a TaskHandle for the task that will invoke + // the pop-up. + HeapHashMap<WeakMember<Element>, TaskHandle> hover_popup_tasks_; // TODO(crbug.com/1197720): The popup position should be provided by the new // anchored positioning scheme.
diff --git a/third_party/blink/renderer/core/editing/ime/input_method_controller.cc b/third_party/blink/renderer/core/editing/ime/input_method_controller.cc index a701c5a..c7262fc4 100644 --- a/third_party/blink/renderer/core/editing/ime/input_method_controller.cc +++ b/third_party/blink/renderer/core/editing/ime/input_method_controller.cc
@@ -1686,9 +1686,6 @@ } ui::TextInputAction InputMethodController::InputActionOfFocusedElement() const { - if (!RuntimeEnabledFeatures::EnterKeyHintAttributeEnabled()) - return ui::TextInputAction::kDefault; - AtomicString action = GetEnterKeyHintAttribute(GetDocument().FocusedElement());
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc index 1f44b31..b5509f82 100644 --- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc +++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -40,6 +40,7 @@ #include "third_party/blink/public/mojom/input/input_handler.mojom-blink.h" #include "third_party/blink/public/web/web_view_client.h" #include "third_party/blink/renderer/core/accessibility/ax_object_cache_base.h" +#include "third_party/blink/renderer/core/css/media_feature_overrides.h" #include "third_party/blink/renderer/core/dom/context_features.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" @@ -138,6 +139,18 @@ main_settings.GetPreferredColorScheme()); page->GetSettings().SetForceDarkModeEnabled( main_settings.GetForceDarkModeEnabled()); + + const MediaFeatureOverrides* media_feature_overrides = + opener_web_view.GetPage()->GetMediaFeatureOverrides(); + if (media_feature_overrides && + media_feature_overrides->GetPreferredColorScheme().has_value()) { + page->SetMediaFeatureOverride( + "prefers-color-scheme", + media_feature_overrides->GetPreferredColorScheme().value() == + mojom::blink::PreferredColorScheme::kDark + ? "dark" + : "light"); + } return page; }
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index acfab949..4b5e88a 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -531,7 +531,7 @@ view->GetLayoutView()->GetDocument().Lifecycle().AdvanceTo( DocumentLifecycle::kInPaint); - PaintLayerPainter(*root_layer).PaintLayerContents(builder->Context()); + PaintLayerPainter(*root_layer).Paint(builder->Context()); view->GetLayoutView()->GetDocument().Lifecycle().AdvanceTo( DocumentLifecycle::kPaintClean); builder->EndRecording()->Playback(&canvas);
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h index de97f47..27efafe 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -246,6 +246,7 @@ Document* GetDocument() const; void SetPagePopupOwner(Element&); Element* PagePopupOwner() const { return page_popup_owner_.Get(); } + bool HasPagePopupOwner() const { return page_popup_owner_; } // Root of the layout tree for the document contained in this frame. LayoutView* ContentLayoutObject() const;
diff --git a/third_party/blink/renderer/core/html/canvas/image_data.cc b/third_party/blink/renderer/core/html/canvas/image_data.cc index a926f2c..2baa063 100644 --- a/third_party/blink/renderer/core/html/canvas/image_data.cc +++ b/third_party/blink/renderer/core/html/canvas/image_data.cc
@@ -46,11 +46,6 @@ ValidateAndCreateParams params, ExceptionState& exception_state) { gfx::Size size; - if (params.require_canvas_color_management && - !RuntimeEnabledFeatures::CanvasColorManagementEnabled()) { - exception_state.ThrowTypeError("Overload resolution failed."); - return nullptr; - } if (params.require_canvas_color_management_v2 && !RuntimeEnabledFeatures::CanvasColorManagementV2Enabled()) { exception_state.ThrowTypeError("Overload resolution failed.");
diff --git a/third_party/blink/renderer/core/html/canvas/image_data.h b/third_party/blink/renderer/core/html/canvas/image_data.h index 216777cf..c0f3db4 100644 --- a/third_party/blink/renderer/core/html/canvas/image_data.h +++ b/third_party/blink/renderer/core/html/canvas/image_data.h
@@ -64,10 +64,8 @@ unsigned height, const ImageDataSettings* settings, ExceptionState& exception_state) { - ValidateAndCreateParams params; - params.require_canvas_color_management = true; - return ValidateAndCreate(width, height, absl::nullopt, settings, params, - exception_state); + return ValidateAndCreate(width, height, absl::nullopt, settings, + ValidateAndCreateParams(), exception_state); } // Constructors that take Uint8ClampedArray, width, optional height, and @@ -90,10 +88,8 @@ unsigned height, const ImageDataSettings* settings, ExceptionState& exception_state) { - ValidateAndCreateParams params; - params.require_canvas_color_management = true; - return ValidateAndCreate(width, height, data, settings, params, - exception_state); + return ValidateAndCreate(width, height, data, settings, + ValidateAndCreateParams(), exception_state); } // Constructor that takes DOMUint16Array, width, optional height, and optional @@ -149,10 +145,6 @@ bool context_2d_error_mode = false; // Constructors in IDL files cannot specify RuntimeEnabled restrictions. // This argument is passed by Create functions that should require that the - // CanvasColorManagement feature be enabled. - bool require_canvas_color_management = false; - // Constructors in IDL files cannot specify RuntimeEnabled restrictions. - // This argument is passed by Create functions that should require that the // CanvasColorManagementV2 feature be enabled. bool require_canvas_color_management_v2 = false; // If the caller is guaranteed to write over the result in its entirety,
diff --git a/third_party/blink/renderer/core/html/canvas/image_data.idl b/third_party/blink/renderer/core/html/canvas/image_data.idl index f5bd844..919f8fb 100644 --- a/third_party/blink/renderer/core/html/canvas/image_data.idl +++ b/third_party/blink/renderer/core/html/canvas/image_data.idl
@@ -45,7 +45,7 @@ readonly attribute unsigned long width; readonly attribute unsigned long height; - [RuntimeEnabled=CanvasColorManagement] readonly attribute PredefinedColorSpace colorSpace; + readonly attribute PredefinedColorSpace colorSpace; [RuntimeEnabled=CanvasColorManagementV2] readonly attribute ImageDataStorageFormat storageFormat; readonly attribute ImageDataArray data; };
diff --git a/third_party/blink/renderer/core/html/html_attribute_names.json5 b/third_party/blink/renderer/core/html/html_attribute_names.json5 index caf9b35..47275d1f 100644 --- a/third_party/blink/renderer/core/html/html_attribute_names.json5 +++ b/third_party/blink/renderer/core/html/html_attribute_names.json5
@@ -102,6 +102,7 @@ "hidden", "hidepopup", "high", + "hoverpopup", "href", "hreflang", "hreftranslate",
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc index d895ac1..44f2904 100644 --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -54,6 +54,7 @@ #include "third_party/blink/renderer/core/editing/editing_utilities.h" #include "third_party/blink/renderer/core/editing/serializers/serialization.h" #include "third_party/blink/renderer/core/editing/spellcheck/spell_checker.h" +#include "third_party/blink/renderer/core/event_type_names.h" #include "third_party/blink/renderer/core/events/keyboard_event.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" @@ -442,20 +443,23 @@ static AttributeTriggers attribute_triggers[] = { {html_names::kDirAttr, kNoWebFeature, kNoEvent, &HTMLElement::OnDirAttrChanged}, - {html_names::kFocusgroupAttr, kNoWebFeature, kNoEvent, - &HTMLElement::OnFocusgroupAttrChanged}, {html_names::kFormAttr, kNoWebFeature, kNoEvent, &HTMLElement::OnFormAttrChanged}, {html_names::kLangAttr, kNoWebFeature, kNoEvent, &HTMLElement::OnLangAttrChanged}, {html_names::kNonceAttr, kNoWebFeature, kNoEvent, &HTMLElement::OnNonceAttrChanged}, + + {html_names::kFocusgroupAttr, kNoWebFeature, kNoEvent, + &HTMLElement::ReparseAttribute}, {html_names::kTabindexAttr, kNoWebFeature, kNoEvent, - &HTMLElement::OnTabIndexAttrChanged}, + &HTMLElement::ReparseAttribute}, {xml_names::kLangAttr, kNoWebFeature, kNoEvent, - &HTMLElement::OnXMLLangAttrChanged}, + &HTMLElement::ReparseAttribute}, {html_names::kPopupAttr, kNoWebFeature, kNoEvent, - &HTMLElement::OnPopupAttrChanged}, + &HTMLElement::ReparseAttribute}, + {html_names::kHoverpopupAttr, kNoWebFeature, kNoEvent, + &HTMLElement::ReparseAttribute}, {html_names::kOnabortAttr, kNoWebFeature, event_type_names::kAbort, nullptr}, @@ -2021,8 +2025,7 @@ } } -void HTMLElement::OnFocusgroupAttrChanged( - const AttributeModificationParams& params) { +void HTMLElement::ReparseAttribute(const AttributeModificationParams& params) { Element::ParseAttribute(params); } @@ -2041,21 +2044,6 @@ setNonce(params.new_value); } -void HTMLElement::OnTabIndexAttrChanged( - const AttributeModificationParams& params) { - Element::ParseAttribute(params); -} - -void HTMLElement::OnXMLLangAttrChanged( - const AttributeModificationParams& params) { - Element::ParseAttribute(params); -} - -void HTMLElement::OnPopupAttrChanged( - const AttributeModificationParams& params) { - Element::ParseAttribute(params); -} - ElementInternals* HTMLElement::attachInternals( ExceptionState& exception_state) { // 1. If this's is value is not null, then throw a "NotSupportedError"
diff --git a/third_party/blink/renderer/core/html/html_element.h b/third_party/blink/renderer/core/html/html_element.h index 5522413..e135d75 100644 --- a/third_party/blink/renderer/core/html/html_element.h +++ b/third_party/blink/renderer/core/html/html_element.h
@@ -264,13 +264,11 @@ const QualifiedName& attr_name); void OnDirAttrChanged(const AttributeModificationParams&); - void OnFocusgroupAttrChanged(const AttributeModificationParams&); void OnFormAttrChanged(const AttributeModificationParams&); void OnLangAttrChanged(const AttributeModificationParams&); void OnNonceAttrChanged(const AttributeModificationParams&); - void OnTabIndexAttrChanged(const AttributeModificationParams&); - void OnXMLLangAttrChanged(const AttributeModificationParams&); - void OnPopupAttrChanged(const AttributeModificationParams&); + + void ReparseAttribute(const AttributeModificationParams&); }; template <typename T>
diff --git a/third_party/blink/renderer/core/html/html_element.idl b/third_party/blink/renderer/core/html/html_element.idl index c7ab3fd..640c1c5 100644 --- a/third_party/blink/renderer/core/html/html_element.idl +++ b/third_party/blink/renderer/core/html/html_element.idl
@@ -48,7 +48,7 @@ // HTMLElement includes ElementContentEditable // https://html.spec.whatwg.org/C/#contenteditable [CEReactions, RaisesException=Setter] attribute DOMString contentEditable; - [RuntimeEnabled=EnterKeyHintAttribute, CEReactions, Reflect, ReflectOnly=("enter","done","go","next","previous","search","send")] attribute DOMString enterKeyHint; + [CEReactions, Reflect, ReflectOnly=("enter","done","go","next","previous","search","send")] attribute DOMString enterKeyHint; [ImplementedAs=isContentEditableForBinding] readonly attribute boolean isContentEditable; [CEReactions, Reflect, ReflectOnly=("none","text","tel","url","email","numeric","decimal","search")] attribute DOMString inputMode;
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h index 227a0466..fef4d0f 100644 --- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h +++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
@@ -77,6 +77,9 @@ template <> struct DowncastTraits<VTTCueBackgroundBox> { + static bool AllowFrom(const Node& node) { + return node.IsElementNode() && To<Element>(node).IsVTTCueBackgroundBox(); + } static bool AllowFrom(const Element& element) { return element.IsVTTCueBackgroundBox(); }
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc index 6db0dd0..b11eac8a 100644 --- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc +++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.cc
@@ -4,8 +4,10 @@ #include "third_party/blink/renderer/core/html/track/vtt/vtt_cue_layout_algorithm.h" +#include "third_party/blink/renderer/core/html/track/vtt/vtt_cue.h" #include "third_party/blink/renderer/core/html/track/vtt/vtt_cue_box.h" #include "third_party/blink/renderer/core/layout/layout_vtt_cue.h" +#include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h" namespace blink { @@ -49,6 +51,32 @@ } void VttCueLayoutAlgorithm::AdjustPositionWithSnapToLines() { + // 9. If there are no line boxes in boxes, skip the remainder of these + // substeps for cue. The cue is ignored. + const LayoutBox& cue_box = *cue_.GetLayoutBox(); + NGInlineCursor cursor(To<LayoutBlockFlow>(cue_box)); + cursor.MoveToFirstLine(); + if (cursor.IsNull()) { + return; + } + // We refer to the block size of a kBox item for VTTCueBackgroundBox rather + // than the block size of a line box. The kBox item is taller than the line + // box due to paddings. + cursor.MoveToNext(); + if (cursor.IsNull()) + return; + const NGFragmentItem& first_item = *cursor.CurrentItem(); + DCHECK(first_item.GetLayoutObject()); + DCHECK(IsA<VTTCueBackgroundBox>(first_item.GetLayoutObject()->GetNode())); + + const bool is_horizontal = cue_box.IsHorizontalWritingMode(); + const LayoutBlock& container = *cue_box.ContainingBlock(); + + // 1. Horizontal: Let full dimension be the height of video’s rendering area. + // Vertical: Let full dimension be the width of video’s rendering area. + [[maybe_unused]] const LayoutUnit full_dimension = + is_horizontal ? container.Size().Height() : container.Size().Width(); + // TODO(crbug.com/1335309): Implement this. // This function will make cue_.adjusted_position_ a value other than
diff --git a/third_party/blink/renderer/core/layout/list_marker_test.cc b/third_party/blink/renderer/core/layout/list_marker_test.cc index 57a23e3..bb78544 100644 --- a/third_party/blink/renderer/core/layout/list_marker_test.cc +++ b/third_party/blink/renderer/core/layout/list_marker_test.cc
@@ -231,8 +231,6 @@ } TEST_F(ListMarkerTest, ModifyShadowDOMWithOwnCounterStyles) { - ScopedCSSAtRuleCounterStyleInShadowDOMForTest scope(true); - GetDocument().body()->setInnerHTML(R"HTML( <style> @counter-style foo {
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.cc b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.cc index e106ad08..1279ab3 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.cc
@@ -338,6 +338,17 @@ return NGPhysicalFragment::NGBoxType::kNormalBox; } +void NGBoxFragmentBuilder::PropagateSpaceShortage( + absl::optional<LayoutUnit> space_shortage) { + // Space shortage should only be reported when we already have a tentative + // fragmentainer block-size. It's meaningless to talk about space shortage + // in the initial column balancing pass, because then we have no + // fragmentainer block-size at all, so who's to tell what's too short or + // not? + DCHECK(!IsInitialColumnBalancingPass()); + UpdateMinimalSpaceShortage(space_shortage, &minimal_space_shortage_); +} + EBreakBetween NGBoxFragmentBuilder::JoinedBreakBetweenValue( EBreakBetween break_before) const { return JoinFragmentainerBreakValues(previous_break_after_, break_before);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h index 2f91029..1c8787b3 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h +++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
@@ -371,23 +371,8 @@ // Report space shortage, i.e. how much more space would have been sufficient // to prevent some piece of content from breaking. This information may be // used by the column balancer to stretch columns. - void PropagateSpaceShortage(absl::optional<LayoutUnit> space_shortage) { - if (!space_shortage || *space_shortage <= LayoutUnit()) - return; + void PropagateSpaceShortage(absl::optional<LayoutUnit> space_shortage); - // Space shortage should only be reported when we already have a tentative - // fragmentainer block-size. It's meaningless to talk about space shortage - // in the initial column balancing pass, because then we have no - // fragmentainer block-size at all, so who's to tell what's too short or - // not? - DCHECK(!IsInitialColumnBalancingPass()); - if (minimal_space_shortage_ == kIndefiniteSize) { - minimal_space_shortage_ = *space_shortage; - } else { - minimal_space_shortage_ = - std::min(minimal_space_shortage_, *space_shortage); - } - } absl::optional<LayoutUnit> MinimalSpaceShortage() const { if (minimal_space_shortage_ == kIndefiniteSize) return absl::nullopt;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc index 5bc65b1..f39a89a1 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
@@ -715,7 +715,7 @@ // lowest value of those. This will serve as the column stretch amount, if // we determine that stretching them is necessary and possible (column // balancing). - absl::optional<LayoutUnit> minimal_space_shortage; + LayoutUnit minimal_space_shortage = kIndefiniteSize; min_break_appeal = absl::nullopt; @@ -746,11 +746,7 @@ absl::optional<LayoutUnit> space_shortage = result->MinimalSpaceShortage(); - if (space_shortage && *space_shortage > LayoutUnit()) { - minimal_space_shortage = - std::min(minimal_space_shortage.value_or(LayoutUnit::Max()), - *space_shortage); - } + UpdateMinimalSpaceShortage(space_shortage, &minimal_space_shortage); actual_column_count++; if (result->ColumnSpannerPath()) { @@ -859,8 +855,9 @@ // duplicated logic). We'll use as much as we're allowed to. new_column_block_size = LayoutUnit::Max(); } else { - new_column_block_size = column_size.block_size + - minimal_space_shortage.value_or(LayoutUnit()); + new_column_block_size = column_size.block_size; + if (minimal_space_shortage > LayoutUnit()) + new_column_block_size += minimal_space_shortage; } new_column_block_size = ConstrainColumnBlockSize(new_column_block_size, row_offset);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.cc b/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.cc index 51c529c..b6ce5c82 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.cc
@@ -726,14 +726,32 @@ LayoutUnit fragmentainer_block_offset, NGBoxFragmentBuilder* builder, absl::optional<LayoutUnit> block_size_override) { + // Only multicol cares about space shortage. + if (space.BlockFragmentationType() != kFragmentColumn) + return; + + LayoutUnit space_shortage = CalculateSpaceShortage( + space, layout_result, fragmentainer_block_offset, block_size_override); + + // TODO(mstensho): Turn this into a DCHECK, when the engine is ready for + // it. Space shortage should really be positive here, or we might ultimately + // fail to stretch the columns (column balancing). + if (space_shortage > LayoutUnit()) + builder->PropagateSpaceShortage(space_shortage); +} + +LayoutUnit CalculateSpaceShortage( + const NGConstraintSpace& space, + const NGLayoutResult* layout_result, + LayoutUnit fragmentainer_block_offset, + absl::optional<LayoutUnit> block_size_override) { // Space shortage is only reported for soft breaks, and they can only exist if // we know the fragmentainer block-size. DCHECK(space.HasKnownFragmentainerBlockSize()); DCHECK(layout_result || block_size_override); // Only multicol cares about space shortage. - if (space.BlockFragmentationType() != kFragmentColumn) - return; + DCHECK_EQ(space.BlockFragmentationType(), kFragmentColumn); LayoutUnit space_shortage; if (block_size_override) { @@ -742,9 +760,9 @@ } else if (!layout_result->MinimalSpaceShortage()) { // Calculate space shortage: Figure out how much more space would have been // sufficient to make the child fragment fit right here in the current - // fragmentainer. If layout aborted, though, we can't propagate anything. + // fragmentainer. If layout aborted, though, we can't calculate anything. if (layout_result->Status() != NGLayoutResult::kSuccess) - return; + return kIndefiniteSize; NGFragment fragment(space.GetWritingDirection(), layout_result->PhysicalFragment()); space_shortage = fragmentainer_block_offset + fragment.BlockSize() - @@ -755,12 +773,20 @@ // shortage for the child as a whole would be impossible and pointless. space_shortage = *layout_result->MinimalSpaceShortage(); } + return space_shortage; +} - // TODO(mstensho): Turn this into a DCHECK, when the engine is ready for - // it. Space shortage should really be positive here, or we might ultimately - // fail to stretch the columns (column balancing). - if (space_shortage > LayoutUnit()) - builder->PropagateSpaceShortage(space_shortage); +void UpdateMinimalSpaceShortage(absl::optional<LayoutUnit> new_space_shortage, + LayoutUnit* minimal_space_shortage) { + DCHECK(minimal_space_shortage); + if (!new_space_shortage || *new_space_shortage <= LayoutUnit()) + return; + if (*minimal_space_shortage == kIndefiniteSize) { + *minimal_space_shortage = *new_space_shortage; + } else { + *minimal_space_shortage = + std::min(*minimal_space_shortage, *new_space_shortage); + } } bool MovePastBreakpoint(const NGConstraintSpace& space,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h b/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h index 39db480d..764d72b7 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h +++ b/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h
@@ -349,6 +349,18 @@ LayoutUnit fragmentainer_block_offset, NGBoxFragmentBuilder*, absl::optional<LayoutUnit> block_size_override = absl::nullopt); +// Calculate how much we would need to stretch the column block-size to fit the +// current result (if applicable). |block_size_override| should only be supplied +// when you wish to propagate a different block-size than that of the provided +// layout result. +LayoutUnit CalculateSpaceShortage( + const NGConstraintSpace&, + const NGLayoutResult*, + LayoutUnit fragmentainer_block_offset, + absl::optional<LayoutUnit> block_size_override = absl::nullopt); +// Update |minimal_space_shortage| based on the current |space_shortage|. +void UpdateMinimalSpaceShortage(absl::optional<LayoutUnit> space_shortage, + LayoutUnit* minimal_space_shortage); // Move past the breakpoint before the child, if possible, and return true. Also // update the appeal of breaking before or inside the child (if we're not going
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter.cc b/third_party/blink/renderer/core/paint/paint_layer_painter.cc index 949443a..6ce4275 100644 --- a/third_party/blink/renderer/core/paint/paint_layer_painter.cc +++ b/third_party/blink/renderer/core/paint/paint_layer_painter.cc
@@ -73,28 +73,6 @@ return contents_visual_rect; } -PaintResult PaintLayerPainter::Paint(GraphicsContext& context, - PaintFlags paint_flags) { - const LayoutObject& layout_object = paint_layer_.GetLayoutObject(); - if (UNLIKELY(layout_object.NeedsLayout() && - !layout_object.ChildLayoutBlockedByDisplayLock())) { - // Skip if we need layout. This should never happen. See crbug.com/1244130 - NOTREACHED(); - return kFullyPainted; - } - - if (layout_object.GetFrameView()->ShouldThrottleRendering()) - return kFullyPainted; - - // Non self-painting layers without self-painting descendants don't need to be - // painted as their layoutObject() should properly paint itself. - if (!paint_layer_.IsSelfPaintingLayer() && - !paint_layer_.HasSelfPaintingLayerDescendant()) - return kFullyPainted; - - return PaintLayerContents(context, paint_flags); -} - static bool ShouldCreateSubsequence(const PaintLayer& paint_layer, const GraphicsContext& context, PaintFlags paint_flags) { @@ -125,15 +103,24 @@ return ToEnclosingRect(overflow_rect); } -PaintResult PaintLayerPainter::PaintLayerContents(GraphicsContext& context, - PaintFlags paint_flags) { - DCHECK(paint_layer_.IsSelfPaintingLayer() || - paint_layer_.HasSelfPaintingLayerDescendant()); - +PaintResult PaintLayerPainter::Paint(GraphicsContext& context, + PaintFlags paint_flags) { const auto& object = paint_layer_.GetLayoutObject(); - PaintResult result = kFullyPainted; + if (UNLIKELY(object.NeedsLayout() && + !object.ChildLayoutBlockedByDisplayLock())) { + // Skip if we need layout. This should never happen. See crbug.com/1244130 + NOTREACHED(); + return kFullyPainted; + } + if (object.GetFrameView()->ShouldThrottleRendering()) - return result; + return kFullyPainted; + + // Non self-painting layers without self-painting descendants don't need to be + // painted as their layoutObject() should properly paint itself. + if (!paint_layer_.IsSelfPaintingLayer() && + !paint_layer_.HasSelfPaintingLayerDescendant()) + return kFullyPainted; // A paint layer should always have LocalBorderBoxProperties when it's ready // for paint. @@ -147,7 +134,7 @@ bool selection_drag_image_only = paint_flags & PaintFlag::kSelectionDragImageOnly; if (selection_drag_image_only && !object.IsSelected()) - return result; + return kFullyPainted; IgnorePaintTimingScope ignore_paint_timing; if (object.StyleRef().Opacity() == 0.0f) { @@ -173,6 +160,7 @@ // is primary, not auxiliary. !paint_layer_.IsUnderSVGHiddenContainer() && is_self_painting_layer; + PaintResult result = kFullyPainted; if (object.FirstFragment().NextFragment() || // When printing, the LayoutView's background should extend infinitely // regardless of LayoutView's visual rect, so don't check intersection
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter.h b/third_party/blink/renderer/core/paint/paint_layer_painter.h index a3b707a0..76951cf 100644 --- a/third_party/blink/renderer/core/paint/paint_layer_painter.h +++ b/third_party/blink/renderer/core/paint/paint_layer_painter.h
@@ -32,10 +32,6 @@ // Paints the layers from back to front. It assumes that the caller will // clip to the bounds of damage rect if necessary. PaintResult Paint(GraphicsContext&, PaintFlags = PaintFlag::kNoFlag); - // PaintLayerContents() assumes that the caller will clip to the bounds of the - // painting dirty rect if necessary. - PaintResult PaintLayerContents(GraphicsContext&, - PaintFlags = PaintFlag::kNoFlag); // Returns true if the painted output of this PaintLayer and its children is // invisible and therefore can't impact painted output.
diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn index 724185c..4c0c050 100644 --- a/third_party/blink/renderer/modules/BUILD.gn +++ b/third_party/blink/renderer/modules/BUILD.gn
@@ -535,6 +535,7 @@ "payments/payment_test_helper.cc", "payments/payment_test_helper.h", "payments/payments_validators_test.cc", + "payments/secure_payment_confirmation_helper_test.cc", "peerconnection/byte_buffer_queue_test.cc", "peerconnection/call_setup_state_tracker_unittest.cc", "peerconnection/media_stream_remote_video_source_test.cc",
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index 5f1e9e2..69d4834c 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -1098,8 +1098,7 @@ CanvasRenderingContext2DSettings* settings = CanvasRenderingContext2DSettings::Create(); settings->setAlpha(CreationAttributes().alpha); - if (RuntimeEnabledFeatures::CanvasColorManagementEnabled()) - settings->setColorSpace(color_params_.GetColorSpaceAsString()); + settings->setColorSpace(color_params_.GetColorSpaceAsString()); if (RuntimeEnabledFeatures::CanvasColorManagementV2Enabled()) settings->setPixelFormat(color_params_.GetPixelFormatAsString()); settings->setDesynchronized(Host()->LowLatencyEnabled());
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index 34e7bba..5cbe19c 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -133,9 +133,9 @@ // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh); - [RaisesException, RuntimeEnabled=CanvasColorManagement] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); + [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); [RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh); - [RaisesException, RuntimeEnabled=CanvasColorManagement] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); + [RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy); [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_settings.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_settings.idl index e9f1e1a..9ee6a3a 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_settings.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_settings.idl
@@ -6,7 +6,7 @@ dictionary CanvasRenderingContext2DSettings { boolean alpha = true; boolean desynchronized = false; - [RuntimeEnabled=CanvasColorManagement] PredefinedColorSpace colorSpace = "srgb"; + PredefinedColorSpace colorSpace = "srgb"; [RuntimeEnabled=CanvasColorManagementV2] CanvasPixelFormat pixelFormat = "uint8"; boolean willReadFrequently = false; };
diff --git a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl index c3c8379..a2eca42 100644 --- a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl +++ b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl
@@ -38,7 +38,7 @@ // Canvas 2D attributes boolean alpha = true; // Also used for WebGL. - [RuntimeEnabled=CanvasColorManagement] PredefinedColorSpace colorSpace = "srgb"; + PredefinedColorSpace colorSpace = "srgb"; [RuntimeEnabled=CanvasColorManagementV2] CanvasPixelFormat pixelFormat = "uint8"; boolean willReadFrequently = false;
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl index 42badc9b..7e409b3 100644 --- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
@@ -86,9 +86,9 @@ // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh); - [RaisesException, RuntimeEnabled=CanvasColorManagement] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); + [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); [HighEntropy, MeasureAs=OffscreenCanvasGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh); - [HighEntropy, MeasureAs=OffscreenCanvasGetImageData, RaisesException, RuntimeEnabled=CanvasColorManagement] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); + [HighEntropy, MeasureAs=OffscreenCanvasGetImageData, RaisesException] ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, ImageDataSettings imageDataSettings); [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy); [RaisesException] void putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc index d66d081..6d4226f 100644 --- a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc +++ b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc
@@ -63,6 +63,20 @@ return true; } +bool CheckSendReceiveBufferSize(const TCPSocketOptions* options, + ExceptionState& exception_state) { + if (options->hasSendBufferSize() && options->sendBufferSize() == 0) { + exception_state.ThrowTypeError("sendBufferSize must be greater than zero."); + return false; + } + if (options->hasReceiveBufferSize() && options->receiveBufferSize() == 0) { + exception_state.ThrowTypeError( + "receiverBufferSize must be greater than zero."); + return false; + } + return true; +} + mojom::blink::DirectSocketOptionsPtr CreateTCPSocketOptions( const String& remote_address, const uint16_t remote_port, @@ -83,6 +97,10 @@ return {}; } + if (!CheckSendReceiveBufferSize(options, exception_state)) { + return {}; + } + if (!CheckKeepAliveOptionsValidity(options, exception_state)) { return {}; }
diff --git a/third_party/blink/renderer/modules/direct_sockets/udp_socket.cc b/third_party/blink/renderer/modules/direct_sockets/udp_socket.cc index 91eca46..b2813e0 100644 --- a/third_party/blink/renderer/modules/direct_sockets/udp_socket.cc +++ b/third_party/blink/renderer/modules/direct_sockets/udp_socket.cc
@@ -39,6 +39,27 @@ constexpr uint32_t readableStreamDefaultBufferSize = 32; +bool CheckSendReceiveReadableStreamBufferSize(const UDPSocketOptions* options, + ExceptionState& exception_state) { + if (options->hasSendBufferSize() && options->sendBufferSize() == 0) { + exception_state.ThrowTypeError("sendBufferSize must be greater than zero."); + return false; + } + if (options->hasReceiveBufferSize() && options->receiveBufferSize() == 0) { + exception_state.ThrowTypeError( + "receiverBufferSize must be greater than zero."); + return false; + } + if (options->hasReadableStreamBufferSize() && + options->readableStreamBufferSize() == 0) { + exception_state.ThrowTypeError( + "readableStreamBufferSize must be greater than zero."); + return false; + } + + return true; +} + mojom::blink::DirectSocketOptionsPtr CreateUDPSocketOptions( const String& address, const uint16_t port, @@ -49,10 +70,7 @@ socket_options->remote_hostname = address; socket_options->remote_port = port; - if (options->hasReadableStreamBufferSize() && - options->readableStreamBufferSize() == 0) { - exception_state.ThrowTypeError( - "readableStreamBufferSize must be greater than zero."); + if (!CheckSendReceiveReadableStreamBufferSize(options, exception_state)) { return {}; }
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc index 0d9f545..74b12e6e 100644 --- a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc +++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.cc
@@ -9,6 +9,7 @@ #include "base/logging.h" #include "third_party/blink/public/mojom/payments/payment_request.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_union_arraybuffer_arraybufferview.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_secure_payment_confirmation_request.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -16,12 +17,17 @@ #include "third_party/blink/renderer/platform/bindings/exception_state.h" namespace blink { + namespace { - -// Arbitrarily chosen limit of 1 hour. Keep in sync with -// secure_payment_confirmation_app_factory.cc. -constexpr uint32_t kMaxTimeoutInMilliseconds = 1000 * 60 * 60; - +bool IsEmpty(const V8UnionArrayBufferOrArrayBufferView* buffer) { + DCHECK(buffer); + switch (buffer->GetContentType()) { + case V8BufferSource::ContentType::kArrayBuffer: + return buffer->GetAsArrayBuffer()->ByteLength() == 0; + case V8BufferSource::ContentType::kArrayBufferView: + return buffer->GetAsArrayBufferView()->byteLength() == 0; + } +} } // namespace // static @@ -43,11 +49,19 @@ "\"credentialIds\" field."); return nullptr; } - - if (request->hasTimeout() && request->timeout() > kMaxTimeoutInMilliseconds) { - exception_state.ThrowRangeError( - "The \"secure-payment-confirmation\" method requires at most 1 hour " - "\"timeout\" field."); + for (const V8UnionArrayBufferOrArrayBufferView* id : + request->credentialIds()) { + if (IsEmpty(id)) { + exception_state.ThrowRangeError( + "The \"secure-payment-confirmation\" method requires that elements " + "in the \"credentialIds\" field are non-empty."); + return nullptr; + } + } + if (IsEmpty(request->challenge())) { + exception_state.ThrowTypeError( + "The \"secure-payment-confirmation\" method requires a non-empty " + "\"challenge\" field."); return nullptr; } @@ -69,6 +83,13 @@ "the \"instrument.icon\" field."); return nullptr; } + // TODO(https://crbug.com/1342686): Check that rpId is a valid domain. + if (request->rpId().IsEmpty()) { + exception_state.ThrowTypeError( + "The \"secure-payment-confirmation\" method requires a non-empty " + "\"rpId\" field."); + return nullptr; + } if ((!request->hasPayeeOrigin() && !request->hasPayeeName()) || (request->hasPayeeOrigin() && request->payeeOrigin().IsEmpty()) || (request->hasPayeeName() && request->payeeName().IsEmpty())) { @@ -86,12 +107,6 @@ return nullptr; } } - if (request->rpId().IsEmpty()) { - exception_state.ThrowTypeError( - "The \"secure-payment-confirmation\" method requires a non-empty " - "\"rpId\" field."); - return nullptr; - } // Opt Out should only be carried through if the flag is enabled. if (request->hasShowOptOut() &&
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h index 3e92a49..fce1e2bb 100644 --- a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h +++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h
@@ -6,6 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_SECURE_PAYMENT_CONFIRMATION_HELPER_H_ #include "third_party/blink/public/mojom/payments/payment_request.mojom-blink-forward.h" +#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { @@ -14,7 +15,7 @@ class ExecutionContext; class ExceptionState; -class SecurePaymentConfirmationHelper { +class MODULES_EXPORT SecurePaymentConfirmationHelper { STATIC_ONLY(SecurePaymentConfirmationHelper); public:
diff --git a/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper_test.cc b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper_test.cc new file mode 100644 index 0000000..01e80130 --- /dev/null +++ b/third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper_test.cc
@@ -0,0 +1,373 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/modules/payments/secure_payment_confirmation_helper.h" + +#include "base/time/time.h" +#include "third_party/blink/public/mojom/payments/payment_request.mojom-blink.h" +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_union_arraybuffer_arraybufferview.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_secure_payment_confirmation_request.h" +#include "third_party/blink/renderer/platform/bindings/exception_state.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace blink { + +namespace { + +WTF::Vector<uint8_t> CreateVector(const uint8_t* buffer, + const unsigned length) { + WTF::Vector<uint8_t> vector; + vector.Append(buffer, length); + return vector; +} + +const uint8_t kCredentialId[] = {0x63, 0x72, 0x65, 0x64, 0x65, + 0x6E, 0x74, 0x69, 0x61, 0x6C}; +const uint8_t kChallenge[] = {0x63, 0x68, 0x61, 0x6C, 0x6C, + 0x65, 0x6E, 0x67, 0x65}; + +// Creates and returns a minimal SecurePaymentConfirmationRequest object with +// only required fields filled in to pass parsing. +// +// If include_payee_name is set to false, this function will not include the +// payeeName field which is not required by IDL (and thus not required for +// conversion to ScriptValue), but is required by the parsing code. +SecurePaymentConfirmationRequest* CreateSecurePaymentConfirmationRequest( + const V8TestingScope& scope, + const bool include_payee_name = true) { + SecurePaymentConfirmationRequest* request = + SecurePaymentConfirmationRequest::Create(scope.GetIsolate()); + + HeapVector<Member<V8UnionArrayBufferOrArrayBufferView>> credentialIds; + credentialIds.push_back( + MakeGarbageCollected<V8UnionArrayBufferOrArrayBufferView>( + DOMArrayBuffer::Create(kCredentialId, std::size(kCredentialId)))); + request->setCredentialIds(credentialIds); + + request->setChallenge( + MakeGarbageCollected<V8UnionArrayBufferOrArrayBufferView>( + DOMArrayBuffer::Create(kChallenge, std::size(kChallenge)))); + + PaymentCredentialInstrument* instrument = + PaymentCredentialInstrument::Create(scope.GetIsolate()); + instrument->setDisplayName("My Card"); + instrument->setIcon("https://bank.example/icon.png"); + request->setInstrument(instrument); + + request->setRpId("bank.example"); + + if (include_payee_name) { + request->setPayeeName("Merchant Shop"); + } + + return request; +} +} // namespace + +// Test that parsing a valid SecurePaymentConfirmationRequest succeeds and +// correctly copies the fields to the mojo output. +TEST(SecurePaymentConfirmationHelper, Parse_Success) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + ::payments::mojom::blink::SecurePaymentConfirmationRequestPtr parsed_request = + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), ASSERT_NO_EXCEPTION); + ASSERT_TRUE(parsed_request); + + ASSERT_EQ(parsed_request->credential_ids.size(), 1u); + EXPECT_EQ(parsed_request->credential_ids[0], + CreateVector(kCredentialId, std::size(kCredentialId))); + EXPECT_EQ(parsed_request->challenge, + CreateVector(kChallenge, std::size(kChallenge))); + EXPECT_EQ(parsed_request->instrument->display_name, "My Card"); + EXPECT_EQ(parsed_request->instrument->icon.GetString(), + "https://bank.example/icon.png"); + EXPECT_EQ(parsed_request->payee_name, "Merchant Shop"); + EXPECT_EQ(parsed_request->rp_id, "bank.example"); +} + +// Test that optional fields are correctly copied to the mojo output. +TEST(SecurePaymentConfirmationHelper, Parse_OptionalFields) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->setPayeeOrigin("https://merchant.example"); + request->setTimeout(5 * 60 * 1000); // 5 minutes + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + ::payments::mojom::blink::SecurePaymentConfirmationRequestPtr parsed_request = + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), ASSERT_NO_EXCEPTION); + ASSERT_TRUE(parsed_request); + + EXPECT_EQ(parsed_request->payee_origin->ToString(), + "https://merchant.example"); + EXPECT_EQ(parsed_request->timeout, base::Minutes(5)); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty +// credentialIds field throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyIdCredentialIds) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + HeapVector<Member<V8UnionArrayBufferOrArrayBufferView>> emptyCredentialIds; + request->setCredentialIds(emptyCredentialIds); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kRangeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty ID inside +// the credentialIds field throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyId) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + // This credentialIds array contains one valid and one empty ID. The empty one + // should cause an exception to be thrown. + HeapVector<Member<V8UnionArrayBufferOrArrayBufferView>> credentialIds; + credentialIds.push_back( + MakeGarbageCollected<V8UnionArrayBufferOrArrayBufferView>( + DOMArrayBuffer::Create(kCredentialId, std::size(kCredentialId)))); + const size_t num_elements = 0; + const size_t byte_length = 0; + credentialIds.push_back( + MakeGarbageCollected<V8UnionArrayBufferOrArrayBufferView>( + DOMArrayBuffer::CreateOrNull(num_elements, byte_length))); + ASSERT_NE(credentialIds[1], nullptr); // Make sure the return was non-null. + request->setCredentialIds(credentialIds); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kRangeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty challenge +// throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyChallenge) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + const size_t num_elements = 0; + const size_t byte_length = 0; + request->setChallenge( + MakeGarbageCollected<V8UnionArrayBufferOrArrayBufferView>( + DOMArrayBuffer::CreateOrNull(num_elements, byte_length))); + ASSERT_NE(request->challenge(), + nullptr); // Make sure the return was non-null. + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty +// displayName throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyDisplayName) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->instrument()->setDisplayName(""); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty +// icon throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyIcon) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->instrument()->setIcon(""); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an invalid icon URL +// throws. +TEST(SecurePaymentConfirmationHelper, Parse_InvalidIcon) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->instrument()->setIcon("thisisnotaurl"); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an invalid RP +// domain throws. +TEST(SecurePaymentConfirmationHelper, Parse_InvalidRpId) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + // TODO(https://crbug.com/1342686): Test a non-empty but invalid domain. + request->setRpId(""); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with neither a payeeName +// or payeeOrigin throws. +TEST(SecurePaymentConfirmationHelper, Parse_MissingPayeeNameAndPayeeOrigin) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope, + /*include_payee_name=*/false); + + // Validate that the helper method did not include the two fields. + ASSERT_FALSE(request->hasPayeeName()); + ASSERT_FALSE(request->hasPayeeOrigin()); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty payeeName +// throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyPayeeName) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->setPayeeName(""); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an empty +// payeeOrigin throws. +TEST(SecurePaymentConfirmationHelper, Parse_EmptyPayeeOrigin) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->setPayeeOrigin(""); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with an invalid +// payeeOrigin URL throws. +TEST(SecurePaymentConfirmationHelper, Parse_InvalidPayeeOrigin) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->setPayeeOrigin("thisisnotaurl"); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +// Test that parsing a SecurePaymentConfirmationRequest with a non-https +// payeeOrigin URL throws. +TEST(SecurePaymentConfirmationHelper, Parse_NotHttpsPayeeOrigin) { + V8TestingScope scope; + SecurePaymentConfirmationRequest* request = + CreateSecurePaymentConfirmationRequest(scope); + + request->setPayeeOrigin("http://merchant.example"); + + ScriptValue script_value(scope.GetIsolate(), + ToV8Traits<SecurePaymentConfirmationRequest>::ToV8( + scope.GetScriptState(), request)); + SecurePaymentConfirmationHelper::ParseSecurePaymentConfirmationData( + script_value, *scope.GetExecutionContext(), scope.GetExceptionState()); + EXPECT_TRUE(scope.GetExceptionState().HadException()); + EXPECT_EQ(ESErrorType::kTypeError, + scope.GetExceptionState().CodeAs<ESErrorType>()); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/sanitizer_api/README.md b/third_party/blink/renderer/modules/sanitizer_api/README.md index 034851d5..c08458f3 100644 --- a/third_party/blink/renderer/modules/sanitizer_api/README.md +++ b/third_party/blink/renderer/modules/sanitizer_api/README.md
@@ -4,7 +4,10 @@ ## Status -The Sanitizer API is currently behind a flag: +A basic version of the Sanitizer API - chiefly the `Element.setHTML` method - +is available. + +The full Sanitizer API is currently behind a flag: * --enable-blink-features=SanitizerAPI or * --enable-experimental-web-platform-features or * chrome://flags#sanitizer-api @@ -26,7 +29,7 @@ * `--enable-blink-features=SanitizerAPIv0`: This includes the basic Sanitizer API with configuration and the `Element.setHTML` method, but not the - `.sanitizeFor` or `.sanitize` methods. + `.sanitizeFor` or `.sanitize` methods. This flag is on by default. * `--enable-blink-features=SanitizerAPI`: This includes `SanitizerAPv0` plus the sanitization methods of the `Sanitizer` object, as specified as of 04/2022. These APIs are likely to change.
diff --git a/third_party/blink/renderer/platform/heap/member.h b/third_party/blink/renderer/platform/heap/member.h index 04f4acf..f399c08e 100644 --- a/third_party/blink/renderer/platform/heap/member.h +++ b/third_party/blink/renderer/platform/heap/member.h
@@ -65,12 +65,26 @@ // Default hash for hash tables with Member<>-derived elements. template <typename T> -struct MemberHash : PtrHash<T> { +struct MemberHash + : IntHash<cppgc::internal::MemberBase::RawStorage::IntegralType> { + using Base = IntHash<cppgc::internal::MemberBase::RawStorage::IntegralType>; STATIC_ONLY(MemberHash); - template <typename U> - static unsigned GetHash(const U& key) { - return PtrHash<T>::GetHash(key); + // Heap hash containers allow to operate with raw pointers, e.g. + // HeapHashSet<Member<GCed>> set; + // set.find(raw_ptr); + // Therefore, provide two hashing functions, one for raw pointers, another for + // Member. Prefer compressing raw pointers instead of decompressing Members, + // assuming the former is cheaper. + static unsigned GetHash(const T* key) { + cppgc::internal::MemberBase::RawStorage st(key); + return Base::GetHash(st.GetAsInteger()); } + template <typename Member, + std::enable_if_t<WTF::IsAnyMemberType<Member>::value>* = nullptr> + static unsigned GetHash(const Member& m) { + return Base::GetHash(m.GetRawStorage().GetAsInteger()); + } + template <typename U, typename V> static bool Equal(const U& a, const V& b) { return a == b;
diff --git a/third_party/blink/renderer/platform/heap/write_barrier.h b/third_party/blink/renderer/platform/heap/write_barrier.h index adfe0da..8a5697e6 100644 --- a/third_party/blink/renderer/platform/heap/write_barrier.h +++ b/third_party/blink/renderer/platform/heap/write_barrier.h
@@ -17,7 +17,7 @@ public: template <typename T> - static void DispatchForObject(T* element) { + ALWAYS_INLINE static void DispatchForObject(T* element) { HeapConsistency::WriteBarrierParams params; switch (HeapConsistency::GetWriteBarrierType(element, *element, params)) { case HeapConsistency::WriteBarrierType::kMarking:
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 36066d6..08005de 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -330,10 +330,6 @@ status: "experimental", }, { - name: "CanvasColorManagement", - status: "stable", - }, - { name: "CanvasColorManagementV2", status: "experimental", }, @@ -466,10 +462,6 @@ status: {"Android": "stable", "default": "test"}, }, { - name: "ContainIntrinsicSizeAuto", - status: "stable", - }, - { name: "ContentIndex", status: {"Android": "stable", "default": "experimental"}, }, @@ -508,12 +500,6 @@ name: "CSSAtRuleCounterStyleImageSymbols", }, { - // https://github.com/w3c/csswg-drafts/issues/5693 - // Experimental support of @counter-style rules in shadow DOM. - name: "CSSAtRuleCounterStyleInShadowDOM", - status: "stable", - }, - { // https://drafts.csswg.org/css-counter-styles/#counter-style-speak-as name: "CSSAtRuleCounterStyleSpeakAsDescriptor", status: "test", @@ -969,10 +955,6 @@ status: "stable", }, { - name: "EnterKeyHintAttribute", - status: "stable", - }, - { // Non-standard API Event.path. Should be replaced by Event.composedPath. // TODO(1277431): This flag should be eventually disabled. name: "EventPath", @@ -2095,7 +2077,7 @@ }, { name: "SanitizerAPIv0", - status: "experimental", + status: "stable", implied_by: ["SanitizerAPI"], },
diff --git a/third_party/blink/renderer/platform/scheduler/common/dummy_schedulers.cc b/third_party/blink/renderer/platform/scheduler/common/dummy_schedulers.cc index e295fa0..13b5718f 100644 --- a/third_party/blink/renderer/platform/scheduler/common/dummy_schedulers.cc +++ b/third_party/blink/renderer/platform/scheduler/common/dummy_schedulers.cc
@@ -310,11 +310,6 @@ // WebThreadScheduler implementation: void Shutdown() override {} - scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override { - DCHECK(WTF::IsMainThread()); - return base::ThreadTaskRunnerHandle::Get(); - } - scoped_refptr<base::SingleThreadTaskRunner> DeprecatedDefaultTaskRunner() override { DCHECK(WTF::IsMainThread());
diff --git a/third_party/blink/renderer/platform/scheduler/common/web_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/common/web_thread_scheduler.cc index b2dd6d4..0e95f58 100644 --- a/third_party/blink/renderer/platform/scheduler/common/web_thread_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/common/web_thread_scheduler.cc
@@ -42,12 +42,6 @@ // Stubs for main thread only virtual functions. scoped_refptr<base::SingleThreadTaskRunner> -WebThreadScheduler::DefaultTaskRunner() { - NOTREACHED(); - return nullptr; -} - -scoped_refptr<base::SingleThreadTaskRunner> WebThreadScheduler::CompositorTaskRunner() { NOTREACHED(); return nullptr;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h index 1e701b18..5c52456 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
@@ -236,8 +236,7 @@ return back_forward_cache_ipc_tracking_task_runner_; } - // WebThreadScheduler implementation: - scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; + scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner(); // The following functions are defined in both WebThreadScheduler and // ThreadScheduler, and have the same function signatures -- see above.
diff --git a/third_party/blink/renderer/platform/scheduler/test/renderer_scheduler_test_support.cc b/third_party/blink/renderer/platform/scheduler/test/renderer_scheduler_test_support.cc index c291ddb..228a47e 100644 --- a/third_party/blink/renderer/platform/scheduler/test/renderer_scheduler_test_support.cc +++ b/third_party/blink/renderer/platform/scheduler/test/renderer_scheduler_test_support.cc
@@ -28,10 +28,6 @@ : simple_thread_scheduler_(CreateDummyWebThreadScheduler()) {} ~SimpleMockMainThreadScheduler() override {} - scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override { - return base::ThreadTaskRunnerHandle::Get(); - } - std::unique_ptr<Thread> CreateMainThread() override { return simple_thread_scheduler_->CreateMainThread(); }
diff --git a/third_party/blink/renderer/platform/scheduler/test/web_fake_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/test/web_fake_thread_scheduler.cc index 300c73e1..506379a 100644 --- a/third_party/blink/renderer/platform/scheduler/test/web_fake_thread_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/test/web_fake_thread_scheduler.cc
@@ -23,11 +23,6 @@ } scoped_refptr<base::SingleThreadTaskRunner> -WebFakeThreadScheduler::DefaultTaskRunner() { - return base::ThreadTaskRunnerHandle::Get(); -} - -scoped_refptr<base::SingleThreadTaskRunner> WebFakeThreadScheduler::CompositorTaskRunner() { return base::ThreadTaskRunnerHandle::Get(); }
diff --git a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc index 0b283e0..f5a5d696 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
@@ -76,12 +76,6 @@ } scoped_refptr<base::SingleThreadTaskRunner> -CompositorThreadScheduler::DefaultTaskRunner() { - NOTREACHED(); - return nullptr; -} - -scoped_refptr<base::SingleThreadTaskRunner> CompositorThreadScheduler::InputTaskRunner() { return GetHelper().InputTaskRunner(); }
diff --git a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.h b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.h index 86f61bb0..b75eb66 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.h +++ b/third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.h
@@ -42,7 +42,6 @@ // WebThreadScheduler: scoped_refptr<base::SingleThreadTaskRunner> V8TaskRunner() override; - scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; scoped_refptr<base::SingleThreadTaskRunner> InputTaskRunner() override; scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; scoped_refptr<base::SingleThreadTaskRunner> NonWakingTaskRunner() override;
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc index 258e978..18cdb13f 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc
@@ -103,7 +103,8 @@ scoped_refptr<base::SingleThreadTaskRunner> NonMainThreadSchedulerImpl::DeprecatedDefaultTaskRunner() { - return DefaultTaskRunner(); + NOTREACHED(); + return nullptr; } void NonMainThreadSchedulerImpl::AttachToCurrentThread() {
diff --git a/third_party/blink/renderer/platform/wtf/type_traits.h b/third_party/blink/renderer/platform/wtf/type_traits.h index c309a38..7e9514d 100644 --- a/third_party/blink/renderer/platform/wtf/type_traits.h +++ b/third_party/blink/renderer/platform/wtf/type_traits.h
@@ -115,30 +115,30 @@ struct IsWeak : cppgc::internal::IsWeak<T> {}; template <typename T> -struct IsMemberType : std::integral_constant<bool, cppgc::IsMemberTypeV<T>> {}; +struct IsMemberType : std::bool_constant<cppgc::IsMemberTypeV<T>> {}; template <typename T> -struct IsWeakMemberType - : std::integral_constant<bool, cppgc::IsWeakMemberTypeV<T>> {}; +struct IsWeakMemberType : std::bool_constant<cppgc::IsWeakMemberTypeV<T>> {}; template <typename T> struct IsMemberOrWeakMemberType - : std::integral_constant<bool, - cppgc::IsMemberTypeV<T> || - cppgc::IsWeakMemberTypeV<T>> {}; + : std::bool_constant<cppgc::IsMemberTypeV<T> || + cppgc::IsWeakMemberTypeV<T>> {}; + +template <typename T> +struct IsAnyMemberType + : std::bool_constant<IsMemberOrWeakMemberType<T>::value || + cppgc::IsUntracedMemberTypeV<T>> {}; template <typename T, typename U> struct IsTraceable<std::pair<T, U>> - : std::integral_constant<bool, - IsTraceable<T>::value || IsTraceable<U>::value> {}; + : std::bool_constant<IsTraceable<T>::value || IsTraceable<U>::value> {}; // Convenience template wrapping the IsTraceableInCollection template in // Collection Traits. It helps make the code more readable. template <typename Traits> struct IsTraceableInCollectionTrait - : std::integral_constant< - bool, - Traits::template IsTraceableInCollection<>::value> {}; + : std::bool_constant<Traits::template IsTraceableInCollection<>::value> {}; enum WeakHandlingFlag { kNoWeakHandling,
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng index e3ff762..03e861d 100644 --- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng +++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -11,6 +11,7 @@ # Tests that fail in legacy but pass in NG # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/css/css-display/display-flow-root-002.html [ Failure ] crbug.com/626703 external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-040.html [ Failure ] crbug.com/626703 external/wpt/service-workers/cache-storage/crashtests/cache-response-clone.https.html [ Timeout ] crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/service-workers/cache-storage/crashtests/cache-response-clone.https.html [ Timeout ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index efc2f55..34449eb7 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -213,6 +213,9 @@ crbug.com/1320294 virtual/oopr-canvas2d/fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] crbug.com/1320294 virtual/oopr-canvas2d/fast/canvas/canvas-zero-length-lineCap.html [ Failure Pass ] +crbug.com/1344252 svg/W3C-SVG-1.1/pservers-grad-05-b.svg [ Failure Pass ] +crbug.com/1344252 svg/wicd/test-scalable-background-image2.xhtml [ Failure Pass ] + # --- END Skia roll test suppresions @@ -3475,6 +3478,8 @@ crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Mac11 ] external/wpt/html/browsers/origin/cross-origin-objects/location-properties-smoke-test.html [ Timeout ] +crbug.com/626703 [ Mac11 ] virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/geometry-background-image-tiled-001.https.html [ Failure ] crbug.com/626703 external/wpt/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html [ Failure ] crbug.com/626703 virtual/no-alloc-direct-call/external/wpt/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html [ Failure ] crbug.com/626703 [ Mac11-arm64 ] virtual/fenced-frame-mparch/wpt_internal/fenced_frame/key-scrolling.https.html [ Failure Timeout ] @@ -6155,7 +6160,6 @@ # A number of http/tests/inspector-protocol/network tests are flaky. crbug.com/1196027 http/tests/inspector-protocol/network/request-interception.js [ Failure Pass ] crbug.com/1228246 http/tests/inspector-protocol/network/request-interception-frame-id.js [ Failure Pass Timeout ] -crbug.com/1228246 http/tests/inspector-protocol/network/request-interception-patterns.js [ Failure Pass Timeout ] # linux_layout_tests_layout_ng_disabled needs its own baselines. crbug.com/1231699 [ Linux ] fast/borders/border-inner-bleed.html [ Failure Pass ] @@ -6168,7 +6172,6 @@ # Other devtools flaky tests outside of http/tests/inspector-protocol/network. crbug.com/1228261 http/tests/inspector-protocol/browser-grant-permissions.js [ Failure Pass Timeout ] -crbug.com/1228261 http/tests/inspector-protocol/network-fetch-content-with-error-status-code.js [ Failure Pass Timeout ] # Flakes that might be caused or aggravated by PlzServiceWorker crbug.com/996511 external/wpt/service-workers/cache-storage/window/cache-abort.https.html [ Crash Failure Pass ] @@ -7202,9 +7205,8 @@ crbug.com/1221127 virtual/coop-restrict-properties/external/wpt/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?9-last [ Crash Failure ] # Sheriff 2022-07-13 -crbug.com/1344128 external/wpt/html/webappapis/scripting/events/event-handler-attributes-body-window.html [ Skip ] crbug.com/1204176 [ Linux ] fast/scrolling/overflow-scrollability.html [ Failure Pass ] -crbug.com/1344210 [ Linux Debug ] http/tests/devtools/elements/styles-2/page-reload-update-sidebar.js [ Failure Pass ] +crbug.com/1344210 [ Debug Linux ] http/tests/devtools/elements/styles-2/page-reload-update-sidebar.js [ Failure Pass ] crbug.com/1344175 [ Mac12 ] external/wpt/dom/events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-root.html [ Failure Pass ] # Flaking on WebKit Linux MSAN crbug.com/1344277 [ Linux ] wpt_internal/webxr/ar/ar_light_estimation.https.html [ Crash Failure Pass ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations index f97affe..22cb85b 100644 --- a/third_party/blink/web_tests/android/WebviewWPTExpectations +++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -2450,7 +2450,6 @@ crbug.com/1050754 external/wpt/html/browsers/windows/noreferrer-window-name.html [ Timeout ] crbug.com/1050754 external/wpt/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html [ Failure Pass ] crbug.com/1050754 external/wpt/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html [ Failure Pass ] -crbug.com/1050754 external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/Version b/third_party/blink/web_tests/external/Version index 2f5c352..e7ce08b 100644 --- a/third_party/blink/web_tests/external/Version +++ b/third_party/blink/web_tests/external/Version
@@ -1 +1 @@ -Version: f5a2d3ec1ce8fecf1eef456969ca1aee87138c40 +Version: 2781ee1ecb863fe628daf493b5a1f411e218397c
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 6ea5e75..f610187 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
@@ -103547,6 +103547,19 @@ {} ] ], + "display-flow-root-002.html": [ + "0640db93db4f6de8f5f85e7ef255e4da8774e24e", + [ + null, + [ + [ + "/css/css-display/display-flow-root-002-ref.html", + "==" + ] + ], + {} + ] + ], "display-flow-root-list-item-001.html": [ "6c5bece5864aa15f7bd34b26055ed755b43db1f1", [ @@ -145604,6 +145617,19 @@ {} ] ], + "overflow-img-display-table.html": [ + "b7e19aa616dc42674e33e399729986d5316ecb13", + [ + null, + [ + [ + "/css/css-overflow/overflow-img-display-table-ref.html", + "==" + ] + ], + {} + ] + ], "overflow-img-object-position.html": [ "67e6febef275ccd07957db6687bdbefddf02c23b", [ @@ -249385,7 +249411,7 @@ ] }, "web-identity": [ - "54814793429c0ba0cdc88890fb5dfa4d0046546a", + "6f50363785538924af15210d27b607cf7bbd917b", [] ] }, @@ -266933,6 +266959,10 @@ "fcb5ac277ee72f8dd4d70d66b7b6ce736225940e", [] ], + "display-flow-root-002-ref.html": [ + "014380f96ea60844ba3b148b529a7db354ed2103", + [] + ], "display-flow-root-list-item-001-ref.html": [ "7d9199af420f8c00fa18991a530977b91b5b446d", [] @@ -281515,6 +281545,10 @@ "33b0a4d6ad4ec5cfb5d279413d315a6b9d328655", [] ], + "overflow-img-display-table-ref.html": [ + "4552cb06da9ad3eebaf06de531219b7e021d6281", + [] + ], "overflow-img-object-position-ref.html": [ "dde966c99174c4d82fa4f6e1d7d10da0c301f087", [] @@ -307407,7 +307441,7 @@ "yaml": { "element": { "drawing-text-to-the-canvas.yaml": [ - "686bd0763f214cff22be0fa5bd7a59a5a057fcb3", + "e0f0d4f724288144a4f4e7e16b458299b531f4c5", [] ], "fill-and-stroke-styles.yaml": [ @@ -322088,11 +322122,11 @@ [] ], "mediasource-worker-detach-element.js": [ - "3007f6ed983fa4153b6f7b7ee76268cb3bb08cc8", + "54b1d815f2529932a153440db3cb3f1033fd84a6", [] ], "mediasource-worker-duration.js": [ - "d868fc4a1fecfdf1357991aa5b3862c0354b93cc", + "2a2c7bac0b279304d6e9e2c99193dcc36bb30ec3", [] ], "mediasource-worker-get-objecturl.js": [ @@ -322100,15 +322134,15 @@ [] ], "mediasource-worker-handle-transfer-to-main.js": [ - "e83ab75c6a9f670aea8655ff61b563158d08c673", + "15cccb1a0e3f7239955a076a67ef1a72cfbfc33d", [] ], "mediasource-worker-handle-transfer.js": [ - "4c62aeec7cd63bf8015861ec69fb2d98fc16fb2a", + "803da44e23c234cb0847754929cf66ef95c00019", [] ], "mediasource-worker-handle.js": [ - "577b1facbc9fcd04f6bcc3ce711504912ae5ba69", + "d35cb877c2a73b45af46bdfa9c5abb05bcfff284", [] ], "mediasource-worker-must-fail-if-unsupported.js": [ @@ -322124,7 +322158,7 @@ [] ], "mediasource-worker-play.js": [ - "d2f3aa031cd9bc00054584ed803352bc8c17bdda", + "5c4760bf7b1a4e346919e719430cfce7fdcab0aa", [] ], "mediasource-worker-util.js": [ @@ -330359,6 +330393,30 @@ ] } }, + "shared-storage": { + "permissions-policy-none.tentative.https.sub.html.headers": [ + "9903f7c578df6af6d2a43454e305aec6cffdfa5f", + [] + ], + "permissions-policy-self.tentative.https.sub.html.headers": [ + "36c95f2b087ba06f930731dbd16a54e913d588ca", + [] + ], + "resources": { + "permissions-policy-helper.html": [ + "d87092aad1d2efedf5d4245884e28e159880b2df", + [] + ], + "simple-module.js": [ + "ad9a93a7c160f02945911772460eb8a1bcb003db", + [] + ], + "util.js": [ + "4dea9837646dc38ccee9ab01aeb83cf371ff3a5a", + [] + ] + } + }, "signed-exchange": { "META.yml": [ "f56fbab13ecc0256f23133a1086e8925729121f9", @@ -372939,7 +372997,7 @@ ] ], "animation-name-invalid.html": [ - "77d53f990b1607c07a07648b5f0283f9fb5e4fbf", + "739641a51d8bf43590fa9eb73ddc711add880d53", [ null, {} @@ -374948,7 +375006,7 @@ ] ], "color-scheme-invalid.html": [ - "89c17e3246601a8cea97c0dae133c9ea74c73934", + "e2eb0098dca370cc7d3b450745836977b5cee3cc", [ null, {} @@ -376106,7 +376164,7 @@ ] ], "symbols-syntax.html": [ - "240ce8a16a31722d09452fd578fe3da05ee4a9f9", + "df0824d6d7f8471b3fe4841cb43dc1b847428bd0", [ null, {} @@ -383238,7 +383296,7 @@ ] ], "counter-increment-invalid.html": [ - "2138584913de7bd279e4ee143d05d90f0be08118", + "b893d537cebbf4bd5ec351587df6eb7dbd17dfa9", [ null, {} @@ -383252,7 +383310,7 @@ ] ], "counter-reset-invalid.html": [ - "d79736001f72a2d2d457fa6521d3615b7d92f993", + "18e406bd1759dcdb730212d13b6983f803c1fadd", [ null, {} @@ -383273,7 +383331,7 @@ ] ], "counter-set-invalid.html": [ - "e955049222c2de367a4977990ee5fea7da14e147", + "7b2f500fa4d989fb0cc6ff8d31644ae85bdfe7e1", [ null, {} @@ -385175,7 +385233,7 @@ ] ], "page-invalid.html": [ - "7af7ccb9a30ddb5018e06cc230836e017e83c614", + "2c373a7d7f2290340e463967efc7cd90c1aff2a7", [ null, {} @@ -385908,7 +385966,7 @@ ] ], "register-property-syntax-parsing.html": [ - "ee3ebc8f256702b374c9872976d9710b63b3b38a", + "f9022764b1ad80aa648f2cae54b68db63d5803b0", [ null, {} @@ -393584,7 +393642,7 @@ ] ], "transition-property-invalid.html": [ - "715e13d7a249d8762350070c7c47aa8043297b54", + "f71963f52ce3fd6d65f6ae7ba75d7a4a15a3dd41", [ null, {} @@ -443650,7 +443708,7 @@ ] ], "2d.text.drawing.style.fontKerning.html": [ - "417d698ac3383ab47d3cb3aae1a19ef16878ea57", + "f6c3826317b82ebf87c4a24acde743d9c9cf3f03", [ null, {} @@ -466285,7 +466343,7 @@ ] ], "structured-cloning-error-stack-optional.sub.window.js": [ - "3427db657472812a83eed286f78bdaf9ba7a6c05", + "cbc6a73d518a193878a3ed7703ec340d47561880", [ "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.html", { @@ -492159,7 +492217,7 @@ ] ], "mediasource-worker-handle.html": [ - "b084fb6d5bb9cb5b66ddc1536c2bf0719348e1ff", + "a921acdec9e4015f8671a1c78e477e2559a59821", [ null, {} @@ -526970,6 +527028,29 @@ ] ] }, + "shared-storage": { + "permissions-policy-default.tentative.https.sub.html": [ + "f055ae0421f6c93afcb6ce84cb2381b0ed051390", + [ + null, + {} + ] + ], + "permissions-policy-none.tentative.https.sub.html": [ + "7154061d50abada545c21e2489d55822d5772567", + [ + null, + {} + ] + ], + "permissions-policy-self.tentative.https.sub.html": [ + "bde32a5c306602f54ea02ad77b58eb3febc0d558", + [ + null, + {} + ] + ] + }, "signed-exchange": { "check-cert-request.tentative.html": [ "b1418e929083bf1cd8c591bb42e13a35b0b47a6f",
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html index 9159225..52d460d 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance.html
@@ -39,7 +39,7 @@ const img = iframe.contentDocument.createElement('img'); const promise = new Promise((resolve, reject) => { - iframe.contentDocument.onsecuritypolicyviolation = resolve; + img.onload = resolve; // First the security policy violation should be reported, which will finish // this test. If for some reason the error event is fired without the // violation being reported, something else went wrong—fail the test. @@ -47,9 +47,9 @@ reject(new Error("The srcdoc iframe's img failed to load but not due to " + "a CSP violation")); }; - img.onload = e => { - reject(new Error("The srcdoc iframe's img loaded correctly, bypassing " + - "the parent's update CSP")); + iframe.contentDocument.onsecuritypolicyviolation = e => { + reject(new Error("The srcdoc iframe's img has been blocked by the " + + "new CSP. It means it was different and wasn't restored from history")); }; }); // The srcdoc iframe tries to load an image, and should generate a security
diff --git a/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002-ref.html new file mode 100644 index 0000000..014380f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002-ref.html
@@ -0,0 +1,28 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<title>Reference for CSS Display Test</title> +<style> + .float { + background-color: blue; + width: 250px; + height: 100px; + } + .left { float: left; } + .right { float: right; } + + #outer { position: relative; width: 400px; } + + #zerowidth { + position: absolute; + top: 100px; + left: 250px; + width: 0; + outline: 1px solid black; + height: 200px; + } +</style> +<div id="outer"> + <div class="float right"></div> + <div class="float left"></div> + <div id="zerowidth"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002.html b/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002.html new file mode 100644 index 0000000..0640db9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-display/display-flow-root-002.html
@@ -0,0 +1,31 @@ +<!DOCTYPE HTML> +<meta charset="utf-8"> +<title>CSS Display Test: div with display: flow-root and zero width does not intersect outer floats</title> +<link rel="author" title="David Shin" href="mailto:dshin@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-display-3/#valdef-display-flow-root"> +<link rel="help" href="https://www.w3.org/TR/CSS21/visuren.html#floats"> +<link rel="match" href="display-flow-root-002-ref.html"> +<style> + .float { + background-color: blue; + width: 250px; + height: 100px; + } + .left { float: left; } + .right { float: right; } + + #outer { width: 400px; } + + #zerowidth { + display: flow-root; + width: 0; + outline: 1px solid black; + height: 200px; + } +</style> +<div id="outer"> + <!-- Two floats are positioned and sized such that there is less than zero empty space "between" them. --> + <div class="float right"></div> + <div class="float left"></div> + <div id="zerowidth"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/parsing/paint-function-valid.https.html b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parsing/paint-function-valid.https.html new file mode 100644 index 0000000..b67ab35 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/parsing/paint-function-valid.https.html
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<meta charset=UTF-8> +<title>CSS Painting API Level 1: parsing paint() with valid values</title> +<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/#paint-notation"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<body> + +<!-- + +This test registers the paint function it uses. However, for access +to specified and computed values, this doesn't appear to be required +by the specification. However, it does appear to be required by the +current implementation in Chromium. See https://crbug.com/1344490 . + +--> + +<script id="code" type="text/worklet"> + +registerPaint('mypaint', class { + paint(ctx, size, properties, args) { } +}); + +</script> + +<script> + +setup({ explicit_done: true }); + +let worklet_code = document.getElementById('code').textContent; +importWorklet(CSS.paintWorklet, worklet_code).then(() => { + test_valid_value("background-image", "paint(mypaint)"); + test_valid_value("background-image", "paint( mypaint )", "paint(mypaint)"); + test_valid_value("background-image", "paint(mypaint ", "paint(mypaint)"); + test_valid_value("background-image", "paint( mypaint", "paint(mypaint)"); + test_valid_value("background-image", "paint(mypaint, blue)"); + + done(); +}); + +</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html index 417d698..f6c3826 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html
@@ -20,10 +20,10 @@ _addTest(function(canvas, ctx) { _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "Normal"; +ctx.fontKerning = "normal"; _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); width_normal = ctx.measureText("TAWATAVA").width; -ctx.fontKerning = "None"; +ctx.fontKerning = "none"; _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); width_none = ctx.measureText("TAWATAVA").width; _assert(width_normal < width_none, "width_normal < width_none");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml index 686bd076..e0f0d4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml +++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml
@@ -922,10 +922,10 @@ - 2d.text.drawing.style.fontKerning code: | @assert ctx.fontKerning === "auto"; - ctx.fontKerning = "Normal"; + ctx.fontKerning = "normal"; @assert ctx.fontKerning === "normal"; width_normal = ctx.measureText("TAWATAVA").width; - ctx.fontKerning = "None"; + ctx.fontKerning = "none"; @assert ctx.fontKerning === "none"; width_none = ctx.measureText("TAWATAVA").width; @assert width_normal < width_none;
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js index 3427db65..cbc6a73d 100644 --- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js +++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js
@@ -66,7 +66,7 @@ worker.postMessage(error); }, description + ' (worker)'); - async_test(t => { + let iframeTest = (t, url) => { const thisTestId = token(); const error = errorFactory(); @@ -89,9 +89,18 @@ iframe.contentWindow.postMessage({ error, testId: thisTestId }, "*"); }); - const crossSiteEchoIFrame = new URL('resources/echo-iframe.html', location.href); - crossSiteEchoIFrame.hostname = '{{hosts[alt][www1]}}'; - iframe.src = crossSiteEchoIFrame; + iframe.src = url; document.body.append(iframe); + } + + async_test(t => { + const crossSiteURL = new URL('resources/echo-iframe.html', location.href); + crossSiteURL.hostname = '{{hosts[alt][www1]}}'; + iframeTest(t, crossSiteURL); }, description + ' (cross-site iframe)'); + + async_test(t => { + const sameOriginURL = new URL('resources/echo-iframe.html', location.href); + iframeTest(t, sameOriginURL); + }, description + ' (same-origin iframe)') }
diff --git a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt deleted file mode 100644 index 3f12cf85..0000000 --- a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt +++ /dev/null
@@ -1,18 +0,0 @@ -This is a testharness.js-based test. -PASS page-created Error (structuredClone()) -PASS page-created Error (worker) -PASS page-created Error (cross-site iframe) -PASS page-created DOMException (structuredClone()) -PASS page-created DOMException (worker) -PASS page-created DOMException (cross-site iframe) -PASS JS-engine-created TypeError (structuredClone()) -PASS JS-engine-created TypeError (worker) -PASS JS-engine-created TypeError (cross-site iframe) -PASS web API-created TypeError (structuredClone()) -PASS web API-created TypeError (worker) -PASS web API-created TypeError (cross-site iframe) -FAIL web API-created DOMException (structuredClone()) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at test (http://web-platform.test:8001/resources/testharness.js:628:30)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:53:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:52:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:69:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network-fetch-content-with-error-status-code.js b/third_party/blink/web_tests/http/tests/inspector-protocol/network-fetch-content-with-error-status-code.js index bd3ada01..445d12e 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/network-fetch-content-with-error-status-code.js +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/network-fetch-content-with-error-status-code.js
@@ -13,7 +13,7 @@ const gotAllEvents = new Promise((resolve) => { let eventHandler = (event) => { events.push(event); - if (events.length == 9) { + if (events.length == 10) { resolve(); } };
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network/cross-origin-isolation/coop-coep-get-security-isolation-info.js b/third_party/blink/web_tests/http/tests/inspector-protocol/network/cross-origin-isolation/coop-coep-get-security-isolation-info.js index d9040a8..9f8403e 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/network/cross-origin-isolation/coop-coep-get-security-isolation-info.js +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/network/cross-origin-isolation/coop-coep-get-security-isolation-info.js
@@ -9,6 +9,7 @@ } await dp.Page.enable(); + await dp.Network.enable(); const results = new Map();
diff --git a/third_party/blink/web_tests/inspector-protocol/emulation/select-popup-auto-dark-mode.js b/third_party/blink/web_tests/inspector-protocol/emulation/select-popup-auto-dark-mode.js new file mode 100644 index 0000000..daccade --- /dev/null +++ b/third_party/blink/web_tests/inspector-protocol/emulation/select-popup-auto-dark-mode.js
@@ -0,0 +1,41 @@ +(async function(testRunner) { + const {page, session, dp} = await testRunner.startHTML(` + <script src="../../resources/testdriver.js"></script> + <script src="../../resources/testdriver-vendor.js"></script> + <script src="../../fast/forms/resources/picker-common.js"></script> + <select> + <option>OPTION1</option> + <option>OPTION2</option> + <option>OPTION3</option> + <option>OPTION4</option> + </select> + `, '[crbug/1311561] Tests that auto dark mode emulation from DevTools correctly emulates dark mode for select element'); + + async function logScreenshotData() { + const response = await dp.Page.captureScreenshot(); + const imageData = response.result.data; + testRunner.log(`data:image/png;base64,${imageData}`); + } + + await dp.Emulation.enable(); + await dp.Page.enable(); + + testRunner.log("=== Before auto dark mode (autoDarkMode and prefers-color-scheme override) is not enabled ==="); + await session.evaluateAsync(`openPicker(document.querySelector("select"))`); + await logScreenshotData(); + + await dp.Emulation.setAutoDarkModeOverride({enabled: true}); + await dp.Emulation.setEmulatedMedia({ + type: '', + features: [{ + name: 'prefers-color-scheme', + value: 'dark' + }] + }); + + testRunner.log("\n=== After auto dark mode (autoDarkMode and prefers-color-scheme override) is enabled ==="); + await session.evaluateAsync(`openPicker(document.querySelector("select"))`); + await logScreenshotData(); + + testRunner.completeTest(); +}); \ No newline at end of file
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt deleted file mode 100644 index b817744..0000000 --- a/third_party/blink/web_tests/platform/generic/external/wpt/content-security-policy/inheritance/iframe-srcdoc-history-inheritance-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL iframe-srcdoc-history-inheritance promise_test: Unhandled rejection with value: object "Error: The srcdoc iframe's img loaded correctly, bypassing the parent's update CSP" -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt index 3f12cf85..989a3d46 100644 --- a/third_party/blink/web_tests/platform/generic/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt +++ b/third_party/blink/web_tests/platform/generic/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -2,17 +2,22 @@ PASS page-created Error (structuredClone()) PASS page-created Error (worker) PASS page-created Error (cross-site iframe) +PASS page-created Error (same-origin iframe) PASS page-created DOMException (structuredClone()) PASS page-created DOMException (worker) PASS page-created DOMException (cross-site iframe) +PASS page-created DOMException (same-origin iframe) PASS JS-engine-created TypeError (structuredClone()) PASS JS-engine-created TypeError (worker) PASS JS-engine-created TypeError (cross-site iframe) +PASS JS-engine-created TypeError (same-origin iframe) PASS web API-created TypeError (structuredClone()) PASS web API-created TypeError (worker) PASS web API-created TypeError (cross-site iframe) +PASS web API-created TypeError (same-origin iframe) FAIL web API-created DOMException (structuredClone()) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at test (http://web-platform.test:8001/resources/testharness.js:628:30)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:53:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:52:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:69:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:99:5)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:96:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (same-origin iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:104:5)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2590:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:102:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/generic/external/wpt/secure-payment-confirmation/constructor-validate-payment-method-data.https-expected.txt b/third_party/blink/web_tests/platform/generic/external/wpt/secure-payment-confirmation/constructor-validate-payment-method-data.https-expected.txt index 1d9bf5ef..add417c4 100644 --- a/third_party/blink/web_tests/platform/generic/external/wpt/secure-payment-confirmation/constructor-validate-payment-method-data.https-expected.txt +++ b/third_party/blink/web_tests/platform/generic/external/wpt/secure-payment-confirmation/constructor-validate-payment-method-data.https-expected.txt
@@ -1,26 +1,6 @@ This is a testharness.js-based test. PASS Empty credentialIds field throws exception. -FAIL Empty ID within credentialIds field throws exception. assert_throws_js: function "() => { - new PaymentRequest([{ - supportedMethods: 'secure-payment-confirmation', - data: { - relyingPartyId: 'relying-party.example', - credentialIds: [ - Uint8Array.from('c1', c => c.charCodeAt(0)), - new Uint8Array(), // Empty - Uint8Array.from('c2', c => c.charCodeAt(0)), - ], - challenge: Uint8Array.from('x', c => c.charCodeAt(0)), - payeeOrigin: window.location.origin, - timeout: 60000, - instrument: { - displayName: 'X', - icon: 'https://example.test/icon.png', - }, - rpId: 'relying-party.example', - }, - }], details); - }" did not throw +PASS Empty ID within credentialIds field throws exception. PASS Multiple IDs in credentialIds is valid. PASS Large credentialIds value throws exception. PASS Null challenge field throws exception.
diff --git a/third_party/blink/web_tests/platform/generic/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt b/third_party/blink/web_tests/platform/generic/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt new file mode 100644 index 0000000..12cdab12 --- /dev/null +++ b/third_party/blink/web_tests/platform/generic/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt
@@ -0,0 +1,7 @@ +[crbug/1311561] Tests that auto dark mode emulation from DevTools correctly emulates dark mode for select element +=== Before auto dark mode (autoDarkMode and prefers-color-scheme override) is not enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAHwlJREFUeJzt3X+QlfV96PHP7h6WDSyBkA0/l12YZkKsWEqqt40BkUQTiNVoWSe6ViWI9eK9BTVx6WIJGGlwM7SW+gOJBofLDEoSEUyIBuSGTKeTZqbk6tybBJ046N1JugKtbOBGS9g99w/rWrqA7LPLJxl9vf7Rc77P83y+e/7aN+c8eyrK5XI5AAAAElT+pjcAAAC8ewgQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0pRO56AlS5ac6X2847S1tf2mtwAAAL913jZAlixZ4pfpArxuAADQm49gAQAAaQQIAACQRoAAAABp+hUg3/3ud2PmzJlRW1sbw4cPjxkzZsSTTz553DEjRoyI6urqqKmpiZqamhg3blzceOON0dnZGRERn/nMZ6JUKkWpVIrKysqorKzseXz99ddHRMS5554bDz74YKHZH//4x3vte/r06fHNb36z5/H3v//9GD58eNx33339eTkAAIC3UThANm/eHE1NTfG5z30uOjo64pVXXolFixbFvHnzYt26dccd++STT8brr78er7/+evzjP/5j7N27N2655ZaIiNi2bVscO3Ysjh07Fs3NzXHzzTf3PN6wYUO/Z7/44ovxrW9966Q/x9atW2PlypXx4Q9/uOhLAQAAnKZCAXL06NFYvHhx3HXXXTFv3ryora2NmpqauPLKK2PNmjXx+c9/Po4cOXLCcxsaGuL222+P73znO4U23NfZX/ziF6OlpSWOHTt2wuv9+Mc/jm3btsWwYcNOOXfFihVx6NChXs8fOnQo7rzzzkI/CwAAvNsUCpAf/vCHsX///rjxxht7rTU3N0epVIqdO3ee9Pyurq6orq4uMrrPsy+88MKYOHFiPPTQQye83h133BFDhgw55cwVK1bEnXfeGbNmzTouQg4dOhSzZs2KFStWxIoVKwr9PAAA8G5SKEBefvnlGDNmTAwdOrTXWlVVVUyaNClefvnlXmvlcjlefPHFaGtri6ampiKj+zy7XC7HV77ylbjrrrvi8OHDhWbecsstMXXq1Hj22Wd7IuTN+Hj22Wdj6tSpPR8pAwAATq5QgAwaNCi6urpOut7d3R2VlW9d+oorroja2tp473vfG5/61KfiggsuiC9/+ctFRvd5dkTEOeecE5/+9Kdj1apVhWaOGDEidu/efVyE/Mf42L17d4wYMaLQtQEA4N3kbb8J/UQmTZoU+/fvj0OHDvX6xburqyteeuml+OAHP9jz3BNPPBGzZ8/u304Lzn7Tl770pZg6dWosXLgwKioq+jz3zQi58MIL49lnn42IEB8AANBHhd4BOffcc6O+vj7uv//+XmuPPvpoDBo0KD7xiU/0e3MDOXvcuHGxcOHCuOOOO2LQoEGFZv/Hd0LEBwAA9F2hd0AqKyvjgQceiKuvvjpGjRoVV199dZRKpdi+fXvceuutce+998bgwYMHeq/9nt3S0hIf+tCHCt8AH/FWhLz5/wAAwOkr/D0gl156aWzfvj2+/vWvx4QJE2L06NHxd3/3d7Fx48a4+uqrB3KPAza7trY2li9f3nOTeldXV88XJH7ve9+LW2+9NWpqauLP//zPTzl/xIgR4gMAAAqoKJfL5VMdsGTJkmhra8vazzuG1w0AAHor/A4IAABAXwkQAAAgjQABAADSvO09IBFv3M9A37j/AwAAenvbd0DERzFeNwAA6O20vgfksXH+Nb+vrvqFAAEAgP/MPSAAAEAaAQIAAKQ5rY9gncxre78bv9z55Tjavieisiqqx/1eDPv47TFkymU9x7S3jojy0V9FVLzROlVDRkbN714S7/vM6qh8z/A48PBn4rWfbH/j4HL3G//992OH/sE18f5rNkTHX58bQ/9oQQz72H/t8+zq+o/E6P/2P4/b9ytrpsewmbfEkN9vioiI13/2/Tjw8GUx4pK/imEz/nt/XhIAAOAUCgfI//tfm+NfH1sQ75t7b3zgz7ZHRWUpXvvxt+JfN82Lrj9eFcPOv6nn2A8seDLec9bsiIg49ur/jX/ZeE28+sQt8f7mR+IDC7b1HHdw459G5XtGxMim+wZs9rGDL8av/s+3YsiUS094rV/9761x5O/vj0GjPlz0pQAAAE5ToY9glY8djVe3LI7hn74rav/LvKgcXBsVg2piyO9fGe+7Yk0c2vr56P63Iyc8t/S+hhj28dvjtZ98p9CG+zp7+Ke+GIe+1RLlrmMnvN6v//nHUbdgW1TUDCu0HwAA4PQVCpB/e/mH0X1kf9T+0Y291ob8QXNEVSlef37nyS/Q3RUVpeoio/s8e/AHL4zSyIlx5AcPnfB6wz95R1RWDym0FwAAoG8KBUjXqy9H1bAxUTl4aK+1isqqKI2cFMdefbnXWrlcjl8ffDF+uasthkxtKjK677PL5Rhx6Vfilzvuiu7XDxeaCQAADIxi94BUDYpyd9fJ18vdUVHxVtscXH9FREVVREVFVA0bHe/5vT+J4bPvLDS6r7MjIqrHnRM1v/vp+OUzq2LEH3+52FwAAKDfCgVIaeSk6D6yP7pfOxSV7xlx3Fq5uyuO/etLUar7YM9zdfOf6LkJvb/6OvtNw+d8KTq+MjVqP7YwoqJiQPYCAAD0TaGPYFVPODeqRtTH4b+/v9far370aFRUDYqaD32i35sbyNml4eOi9mMLo3P7HRFVg87I3gAAgFMr9A5IRWVlvK/pgfiX/3F1VA0bFUM+cvUbfwr3J9vj1Sdujff9yb1RURo80Hvt9+z3fqIl/vmvPhRR8AZ4AACgfwp/D8iQKZdG5Z9tj1/uWBmvPtkSUe6O6vG/H+//040D9nGrgZ5dObg23jt7ebz69Te+0LDc3RXtLf9+M3vXr+Pffvb9eHXbF6L2ozfGyLn3ntGfAQAA3o0qyuVy+VQHLFmyJB4b15a1n3eMq36xJNravG4AAPAfFboHBAAAoAgBAgAApBEgAABAmtO6Cf256w+d6X2846xa9ZveAQAA/PbxDggAAJBGgAAAAGn6FSC7du2KSy65JOrr66OxsTHmzJkTTz311HHHNDY2xqhRo2LMmDExZsyYOOuss2Lx4sXR2dkZERHNzc1RV1cXdXV1MXLkyBg5cmTP44ULF0ZExKxZs2L9+vWFZl922WW99j1nzpzYtm1bRET84Ac/iIsuuigmTpwYH/nIR+LRRx/tz0sCAACcQuEA2bJlS8ybNy+uueaa2Lt3bzz//PNx0003xc033xyPPPLIccdu2rQpOjo6oqOjI3bs2BEvvPBCLF26tGft4MGDcfDgwWhqaoobbrih5/HatWv7PXvfvn3x9NNPn/A6nZ2dcdVVV8WCBQti3759sXbt2rjtttvipz/9adGXBQAAOIVCAXL06NFobW2NpUuXRnNzc9TW1kZNTU1cfvnlcffdd8eyZcviyJEjJzx3woQJsWjRoti5c2ehDfd1dktLSyxfvjyOHTt2wmvdddddcdVVV0VFRUX84R/+YUyZMiX27NlTaG8AAMCpFQqQPXv2xIEDB+K6667rtdbU1BRVVVWxe/fuk57f1dUV1dXVRUb3efb06dOjoaEhNmzY0Ov4D3zgA8ddp1wuR3t7e9TX1xfaGwAAcGqFAqS9vT1Gjx4dQ4cO7bVWVVUVjY2N0d7e3mutXC7Hvn37Ys2aNSe8N+NMzC6Xy7FixYpYvXp1HD58+JTXvvfee2Ps2LFxwQUXFNobAABwaoUCpFQqRVdX10nXu7u7o7LyrUtfe+21UV9fHw0NDTF37tw4//zzY9myZUVG93l2RMTZZ58dF198cdxzzz0nPW/9+vWxbt26WL9+fa/zAQCAgXFaX0T4nzU2NsaBAweis7Mzhg8fftxaV1dXtLe3x6RJk3qe27hxY1x00UX922nB2W9qbW2NGTNmxPz583ut3X///fHQQw/F9u3bY+LEiQOyTwAAoLdC/9Q/bdq0GD9+fDz88MO91h5//PEolUoxc+bMfm9uIGePHTs25s+fHytXroxBgwb1PL9ly5b46le/Gt/+9rfFBwAAnGGF3gGprKyM1atXx4IFC6Kuri7mzp0bpVIpduzYEUuXLo22trYYPHjwQO+137MXLVoU5513Xk+AHD58OFpbW2PDhg1uPAcAgASFb3aYPXt2bN68ObZu3RpTpkyJyZMnx7p16+LBBx+MpqamgdzjgM2ura2NlpaWnpvUd+3aFfv374/LL7+854sSx4wZ0/MdJQAAwMCqKJfL5VMdsGTJkmhtbc3azzvGqlWroq2t7Te9DQAA+K3izz0BAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQpl8BsmvXrrjkkkuivr4+GhsbY86cOfHUU08dd0xjY2OMGjWq5zs2zjrrrFi8eHF0dnZGRERzc3PU1dVFXV1djBw5MkaOHNnzeOHChRERMWvWrFi/fn2h2Zdddlmvfc+ZMye2bdsWERHPPPNMXHDBBTFx4sSYNm1afO1rX+vPSwIAAJxC4QDZsmVLzJs3L6655prYu3dvPP/883HTTTfFzTffHI888shxx27atCk6Ojqio6MjduzYES+88ELPl/1t2rQpDh48GAcPHoympqa44YYbeh6vXbu237P37dsXTz/99Amv8/Of/zyuv/76+Mu//Mt46aWXYv369bFs2bL40Y9+VPRlAQAATqFQgBw9ejRaW1tj6dKl0dzcHLW1tVFTUxOXX3553H333bFs2bI4cuTICc+dMGFCLFq0KHbu3Flow32d3dLSEsuXL49jx471ulZFRUXcd9998clPfjIiIqZNmxa/8zu/Ez/72c8K7Q0AADi1QgGyZ8+eOHDgQFx33XW91pqamqKqqip279590vO7urqiurq6yOg+z54+fXo0NDTEhg0beh0/bty4uOKKKyIi4vXXX49t27bF/v37Y8aMGYX2BgAAnFqhAGlvb4/Ro0fH0KFDe61VVVVFY2NjtLe391orl8uxb9++WLNmzQnvzTgTs8vlcqxYsSJWr14dhw8fPuE1v/GNb8S4cePiC1/4QqxduzbGjh1baG8AAMCpFQqQUqkUXV1dJ13v7u6Oysq3Ln3ttddGfX19NDQ0xNy5c+P888+PZcuWFRnd59kREWeffXZcfPHFcc8995zwnCuvvDI6OjrigQceiAULFsQ//dM/FdobAABwaqUiJzU2NsaBAweis7Mzhg8fftxaV1dXtLe3x6RJk3qe27hxY1x00UX922nB2W9qbW2NGTNmxPz580943erq6rj44ovj0ksvjUcffTTOPffcAdkvAADwlkLvgEybNi3Gjx8fDz/8cK+1xx9/PEqlUsycObPfmxvI2WPHjo358+fHypUrY9CgQRER8dxzz8WmTZuOO667uztKpUJdBgAAvI1Cv2lXVlbG6tWrY8GCBVFXVxdz586NUqkUO3bsiKVLl0ZbW1sMHjx4oPfa79mLFi2K8847rydAIiJuv/32GD9+fFxwwQXx3HPPxZNPPum7QAAA4Awp/D0gs2fPjs2bN8fWrVtjypQpMXny5Fi3bl08+OCD0dTUNJB7HLDZtbW10dLS0nOT+tSpU2PNmjXxF3/xF9HQ0BCf+9znYtmyZQP2cTEAAOB4FeVyuXyqA5YsWRKtra1Z+3nHWLVqVbS1tf2mtwEAAL9VCr8DAgAA0FcCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEjTrwDZtWtXXHLJJVFfXx+NjY0xZ86ceOqpp447prGxMUaNGhVjxoyJMWPGxFlnnRWLFy+Ozs7OiIhobm6Ourq6qKuri5EjR8bIkSN7Hi9cuDAiImbNmhXr168vNPuyyy7rte85c+bEtm3bjnvutddei6lTp8Ztt93Wn5cEAAA4hcIBsmXLlpg3b15cc801sXfv3nj++efjpptuiptvvjkeeeSR447dtGlTdHR0REdHR+zYsSNeeOGFWLp0ac/awYMH4+DBg9HU1BQ33HBDz+O1a9f2e/a+ffvi6aefftuf52//9m+ju7u74KsBAACcjkIBcvTo0WhtbY2lS5dGc3Nz1NbWRk1NTVx++eVx9913x7Jly+LIkSMnPHfChAmxaNGi2LlzZ6EN93V2S0tLLF++PI4dO3bSa7788suxZcuW+OxnP1toTwAAwOkpFCB79uyJAwcOxHXXXddrrampKaqqqmL37t0nPb+rqyuqq6uLjO7z7OnTp0dDQ0Ns2LDhpNdsbW2NlpaWqKmpKbQnAADg9BQKkPb29hg9enQMHTq011pVVVU0NjZGe3t7r7VyuRz79u2LNWvWnPDejDMxu1wux4oVK2L16tVx+PDhXuc888wz8corr0RTU1Oh/QAAAKevUICUSqXo6uo66Xp3d3dUVr516WuvvTbq6+ujoaEh5s6dG+eff34sW7asyOg+z46IOPvss+Piiy+Oe+6557jn3/w418qVK6OioqLQfgAAgNNXKnJSY2NjHDhwIDo7O2P48OHHrXV1dUV7e3tMmjSp57mNGzfGRRdd1L+dFpz9ptbW1pgxY0bMnz+/57kHHnggzjnnnPjoRz86IHsDAABOrdA7INOmTYvx48fHww8/3Gvt8ccfj1KpFDNnzuz35gZy9tixY2P+/PmxcuXKGDRoUERE/PSnP41/+Id/iMmTJ8fkyZNjzZo18dhjj8WcOXPOyN4BAODdrtA7IJWVlbF69epYsGBB1NXVxdy5c6NUKsWOHTti6dKl0dbWFoMHDx7ovfZ79qJFi+K8887rCZB169Ydt7569er4xS9+EX/zN39zRvYOAADvdoW/B2T27NmxefPm2Lp1a0yZMiUmT54c69atiwcffPCM39BddHZtbW20tLSc8AZ5AADgzKsol8vlUx2wZMmSaG1tzdrPO8aqVauira3tN70NAAD4rVL4HRAAAIC+EiAAAEAaAQIAAKQ5rb+CtWrVqjO9DwAA4F3gbW9CBwAAGCg+ggUAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApPn/KVRFXTObneEAAAAASUVORK5CYII= + +=== After auto dark mode (autoDarkMode and prefers-color-scheme override) is enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAH0VJREFUeJzt3X2QlvV97/HPLoQC3Z4OJB4XaJImjSGlGauNYin2aIi2R86QB9KeTOMgBs8xLTJAD9kRY44moSCZZGeNUkadnULtgGfoJKIhwIAGOIWCbeVkkjSloKZpTLdQLA4PQmAfzh/W7VAeIjfsV0dfr7/gvq77+v72/mvfc1+/vZpGjhzZFwAAgALNr/UCAACANw8BAgAAlBEgAABAGQECAACUESAAAEAZAQIAAJQRIAAAQJnBr+akefPmDfQ63nDa29tf6yUAAMDrTtNPexDhvHnzsnbt2qr1vGFMnjxZhAAAwH/gFiwAAKCMAAEAAMoIEAAAoMyr2oR+JuPHj89NN92UsWPHpre3N88++2xWrlyZrVu39p+zfv36DB06NL29vUmSgwcPZvv27VmyZEmOHDmSxYsXZ8KECUmS5uaXe+iVczds2JCFCxems7Mza9asyerVq8959u7duzN79uyT1r106dKsWrUqmzdvTpJcdtll+dKXvpSHHnooX/va187nIwEAAM6i4QCZNGlS5s+fn46OjrS1taWnpycTJ07MnXfemQceeCCPPfZY/7m33357nnrqqSTJxRdfnLvvvjtz5szJokWLMn/+/P7z7rrrrhw6dCgdHR0XbPaYMWMyceLEbNu27bTX+s3f/M1MnTo1P/zhDxv9KAAAgFepoVuwBg8enLlz56azszPr1q3L0aNHc/z48WzatCn33ntvZs2alWHDhp32vXv37s3KlSv7v/UY6NnLli3LzJkzM2jQoNNe713velfmz5+fl1566axzZ8yYkZaWllNeb2lpyac+9amGfhYAAHizaShAxo0blxEjRuTxxx8/5djGjRvT09OTK6+88sxDm5tz4sSJRkaf8+ydO3emq6srU6ZMOe31Hn744fzkJz8568wZM2ZkxowZuf/++0+KkJaWltx///255ZZbMmPGjIZ+HgAAeDNpKEBaW1vzwgsv5NixY6cc6+3tTVdXV1pbW0/73tGjR+fGG2/s338x0LObmpqydOnS3HzzzRk+fHhDM1etWpVnnnkml1xySX+EvBIfl1xySZ555pmsWrWqoWsDAMCbSUN7QLq7u894S1Py8i/9r2wkT5J77rknPT096evry4EDB7Jly5Z0dnY2MvqcZyfJc889lx07dmTatGl58MEHz3nm4cOHM2vWrCxZsqQ/QpL0x8esWbNy+PDhc74uAAC82TQUIF1dXRkxYkRaWlpO+cW7ubk5o0aNyvPPP9//2h133NG/Cf18nevsV3R2dmb58uV59NFHG5r7HyMkifgAAIBz1NAtWLt27cq+ffsyderUU45dd9116e7uztNPP33ei7uQs/fv35/Vq1fn1ltvTXd3d0OzX4mQZ555RnwAAEADGvoGpK+vL+3t7fn85z+fAwcO5IknnkhPT08mTJiQ2bNnp6Ojo+FN5gM5e8WKFXnkkUcaDpDk3yPklX8DAACvXsPPAdm2bVva2toyffr0zJw5M83NzdmzZ08WLFhwwW63utCzjx49mmXLlqWtrS3Jy7dsPfHEE0le/vO+l19+eW677bZ84xvfOOuzSIQHAAA0pmnkyJF9Zzth3rx5Wbt2bdV63jAmT56c9vb213oZAADwutLQHhAAAIBGCBAAAKCMAAEAAMr81D0gycv7QDg39n8AAMCpfuo3IOKjMT43AAA41av6M7xv+9BnB3odbzj7n1z0Wi8BAABed+wBAQAAyggQAACgTMNPQk+SH+96Kt998uH86/N/nzQ1Z+To9+RXPvjJvP1Xru4/55E7fzvdx4+lqfnl1vmZ4f8pY943IVd8eFaGDGvJpj+Zn+f/7i+TJH29vUnSf+67fu23cvXvfS7f7Lgl77lqSsb+xkfPefZbf2FsfusP7jtp3evu/4P88n/57/nFX/1gkuSfn/l/+daf3J5fm/zpvO/qj5/PRwIAAJxFwwHyD99+Mn+5anHGf+wP845bvpxBgwbnR3+7Ndv+z8JcfsOnT4qFD874Un7hl389SXLkwN78xYov5K9WfzVX/96d+eCMxf3n/cWKL2bIsJZcNfV/XbDZh174cf7xe1vzjvdffdpr/eN3/2/+ftvX8/P/+Z2NfhQAAMCr1NAtWD3dJ/JXj96by//r/8x7rpycIUOHZ9BbhuQXL5uUKz8yJ09/Y0mOH3vptO/92REX51c++Mn8+O+2N7Tgc5196fWfys5vLk1vT89pr/fiP/8gH5yxOG8ZOryh9QAAAK9eQwGy/x+/n2OHD+Q9V0055di7Lr8+Tc2D0rX7r8/4/t6engwa/JZGRp/z7NZfujwtI0dlz47HT3u9S6+fnsFDhja0FgAA4Nw0FCBHDvxzhv2nt+YtPzPs1AsOGpSWkaPy0ot7TznW19eXQ/t/nL/dtCLv/Lf9FwM9u6+vLx/4bzPznSeW58QZvpUBAABqNLQHpHnQ4DPe0pQk6etLmpr6/7vlTz+bpqbmpKkpQ1tG5J2XXptf/a1bGhl9zrOTZMToX8qYX56Q737rz/Jrkz/d0FwAAOD8NRQgPztiVH5y5MX85KVD+ZnhP3fSsd6enhz616783Nt+of+1a6Yv6t+Efr7OdfYrLvvt/5FvtE/Peyd8NE3/IVAAAIAaDd2C9da3vy/Df/6i/P22r59y7B++/USaBw1O63s+cN6Lu5Czh//82zL2Nz6Wb697KM2DzuuvDwMAAA1qKECam5szfuq8fO9bf5bdOx7P8WMvpefE8fzwO5vz14/dl/Ef+8MMfsuQC73W85497tpPpmvP3+TQCz8ekLUBAABn1/BXAe94/9WZdMuX890n/jQ71yxNb29vRo65JBN/739fsNutLvTsIUOH59LrP5WnvvaVJC/fsrXys9f927+7s/fZb+dvvrEk7/31D2f8x/5wQH8GAAB4M2oaOXJk39lOmDdvXt72oc9WrecNY/+Ti9Le3v5aLwMAAF5XGroFCwAAoBECBAAAKCNAAACAMq9qE/rD864e6HW84UyePPm1XgIAALzu+AYEAAAoI0AAAIAy5/VI8PHjx+emm27K2LFj09vbm2effTYrV67M1q1b+89Zv359hg4dmt7e3iTJwYMHs3379ixZsiRHjhzJ4sWLM2HChCQvP2QwSf+5GzZsyMKFC9PZ2Zk1a9Zk9erV5zx79+7dmT179knrXrp0aVatWpXNmzfn0ksvzaxZs/L2t789Bw8ezPLly7Nu3brz+VgAAIAzaDhAJk2alPnz56ejoyNtbW3p6enJxIkTc+edd+aBBx7IY4891n/u7bffnqeeeipJcvHFF+fuu+/OnDlzsmjRosyfP7//vLvuuiuHDh1KR0fHBZs9ZsyYTJw4Mdu2bTvlOi0tLfnyl7+cjo6OrF+/Pu9///tz3333ZdeuXfnBD37Q6EcDAACcQUO3YA0ePDhz585NZ2dn1q1bl6NHj+b48ePZtGlT7r333syaNSvDhg077Xv37t2blStX9n/rMdCzly1blpkzZ2bQoEGnvdb999+f9evXJ0m+973vZc+ePRk3blxDawMAAM6uoQAZN25cRowYkccff/yUYxs3bkxPT0+uvPLKMw9tbs6JEycaGX3Os3fu3Jmurq5MmTLllPNffPHFrFmz5qTXWltbs3fv3obWBgAAnF1DAdLa2poXXnghx44dO+VYb29vurq60traetr3jh49OjfeeGM2b97cyOhznt3U1JSlS5fm5ptvzvDhw8967U9+8pP5l3/5lzz99NMNrQ0AADi7hvaAdHd3n/aWplc0NTX1byRPknvuuSc9PT3p6+vLgQMHsmXLlnR2djYy+pxnJ8lzzz2XHTt2ZNq0aXnwwQdP+76PfvSj+d3f/d3cdttt6evra2htAADA2TUUIF1dXRkxYkRaWlpy+PDhk441Nzdn1KhRef755/tfu+OOO/o3oZ+vc539is7OzixfvjyPPvroKcc+8YlP5OMf/3huu+22/NM//dMFWScAAHCqhm7B2rVrV/bt25epU6eecuy6665Ld3f3gN3G1Ojs/fv3Z/Xq1bn11lvT3d3d//qkSZPyO7/zO5k1a5b4AACAAdZQgPT19aW9vT3Tpk3LlClTMmzYsAwZMiTXXHNNZs+enY6OjoY3mQ/k7BUrVuSKK67I6NGjkyTDhw/P3Llz88UvfjH79u0bkPUCAAD/ruHngGzbti1tbW2ZPn16Zs6cmebm5uzZsycLFiy4YLdbXejZR48ezbJly9LW1pYkueqqqzJy5Mh89atfPem81atX57777hvQnwEAAN6MmkaOHHnWHdfz5s3L2rVrq9bzhjF58uS0t7e/1ssAAIDXlYZuwQIAAGiEAAEAAMoIEAAAoIwAAQAAyggQAACgjAABAADKNPwckCQZP358brrppowdOza9vb159tlns3LlymzdurX/nPXr12fo0KHp7e1Nkhw8eDDbt2/PkiVLcuTIkSxevDgTJkxIkjQ3v9xDr5y7YcOGLFy4MJ2dnVmzZk1Wr159zrN3796d2bNnn7TupUuXZtWqVdm8eXOuuuqq/P7v/35aW1tz6NChrFy58qQ5AADAhdNwgEyaNCnz589PR0dH2tra0tPTk4kTJ+bOO+/MAw88kMcee6z/3Ntvv73/AYEXX3xx7r777syZMyeLFi3K/Pnz+8+76667cujQoXR0dFyw2WPGjMnEiROzbdu2U65z0UUXZeHChfnc5z6XHTt25H3ve1/++I//OLt27cquXbsa/WgAAIAzaOgWrMGDB2fu3Lnp7OzMunXrcvTo0Rw/fjybNm3Kvffem1mzZmXYsGGnfe/evXuzcuXK/m89Bnr2smXLMnPmzAwaNOiUa/X19WXRokXZsWNHkmTXrl350Y9+lHe84x0NrQ0AADi7hgJk3LhxGTFiRB5//PFTjm3cuDE9PT258sorzzy0uTknTpxoZPQ5z965c2e6uroyZcqUU87fv39/vvWtbyVJhgwZkmuvvTYjR47Mzp07G1obAABwdg0FSGtra1544YUcO3bslGO9vb3p6upKa2vrad87evTo3Hjjjdm8eXMjo895dlNTU5YuXZqbb745w4cPP+01r7/++jz55JP5zGc+kwULFmT//v0NrQ0AADi7hvaAdHd3n/aWplc0NTX1byRPknvuuSc9PT3p6+vLgQMHsmXLlnR2djYy+pxnJ8lzzz2XHTt2ZNq0aXnwwQdPec/GjRuzadOmXHHFFfnCF76Qz3zmM/n+97/f0PoAAIAzayhAurq6MmLEiLS0tOTw4cMnHWtubs6oUaPy/PPP9792xx139G9CP1/nOvsVnZ2dWb58eR599NHTXre7uzs7duzIli1bcsMNNwgQAAAYAA3dgrVr167s27cvU6dOPeXYddddl+7u7jz99NPnvbgLOXv//v1ZvXp1br311nR3dydJ3vve9+aGG2446bympqb09PQMyNoBAODNrqEA6evrS3t7e6ZNm5YpU6Zk2LBhGTJkSK655prMnj07HR0dDW8yH8jZK1asyBVXXJHRo0f3vzZv3rx84AMfSJKMHTs21157bbZv3z4gawcAgDe7hp8Dsm3btrS1tWX69OmZOXNmmpubs2fPnixYsOCC3W51oWcfPXo0y5YtS1tbW5Jk9+7dWbx4cebOnZuLL744L774Yh566KEBXz8AALxZNY0cObLvbCfMmzcva9eurVrPG8bkyZPT3t7+Wi8DAABeVxq6BQsAAKARAgQAACgjQAAAgDICBAAAKCNAAACAMgIEAAAo0/BzQJJk/PjxuemmmzJ27Nj09vbm2WefzcqVK7N169b+c9avX5+hQ4emt7c3SXLw4MFs3749S5YsyZEjR7J48eJMmDAhSdLc/HIPvXLuhg0bsnDhwnR2dmbNmjVZvXr1Oc/evXt3Zs+efdK6ly5dmlWrVmXz5s39rw0ZMiQrVqzIU089la985Svn87EAAABn0PA3IJMmTcof/dEf5Zvf/GY+/OEPZ8qUKfnzP//z3HnnnfnIRz5y0rm33357Jk2alEmTJuXTn/503vnOd2bOnDlJkvnz5+eaa67JNddck40bN+brX/96//8XLlx43rPHjBmTiRMn/tSfZ9q0af0BBAAADIyGfuMePHhw5s6dm87Ozqxbty5Hjx7N8ePHs2nTptx7772ZNWtWhg0bdtr37t27NytXruz/1mOgZy9btiwzZ87MoEGDznjNUaNG5UMf+lDWr1/f0JoAAIBXp6EAGTduXEaMGJHHH3/8lGMbN25MT09PrrzyyjMPbW7OiRMnGhl9zrN37tyZrq6uTJky5YzXnDNnTpYvX57jx483tCYAAODVaShAWltb88ILL+TYsWOnHOvt7U1XV1daW1tP+97Ro0fnxhtvPGn/xUDObmpqytKlS3PzzTdn+PDhp7znqquuylvf+tZs2LChofUAAACvXkOb0Lu7u896S1NTU1P/RvIkueeee9LT05O+vr4cOHAgW7ZsSWdnZyOjz3l2kjz33HPZsWNHpk2blgcffLD/9cGDB2fOnDlZvHhxQ2sBAADOTUMB0tXVlREjRqSlpSWHDx8+6Vhzc3NGjRqV559/vv+1O+64I0899dT5rbTB2a/o7OzM8uXL8+ijj/a/9olPfCLPPPNMvvOd71yQtQEAAGfXUIDs2rUr+/bty9SpU/Pwww+fdOy6665Ld3d3nn766QuywAs1e//+/Vm9enVuvfXWdHd3J0ne/e5357LLLuvfTzJ06NAMGjQo7373uzNz5swBWT8AALyZNRQgfX19aW9vz+c///kcOHAgTzzxRHp6ejJhwoTMnj07HR0dDW8yH8jZK1asyCOPPNIfIAsWLDjp+PTp03PRRRd5DggAAAyQhh9EuG3btrS1tWX69OmZOXNmmpubs2fPnixYsOCC3W51oWcfPXo0y5YtS1tb24CuDwAAOL2mkSNH9p3thHnz5mXt2rVV63nDmDx5ctrb21/rZQAAwOuKR38DAABlBAgAAFBGgAAAAGVe1Sb0yZMnD/Q6AACAN4GfugkdAADgQnELFgAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQ5v8DP7+kS7i28+0AAAAASUVORK5CYII= +
diff --git a/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/element-instance-property-listing-expected.txt b/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/element-instance-property-listing-expected.txt index a018261..c25b109 100644 --- a/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/element-instance-property-listing-expected.txt
@@ -302,6 +302,7 @@ property setAttributeNS property setAttributeNode property setAttributeNodeNS + property setHTML property setPointerCapture property shadowRoot property slot @@ -1469,6 +1470,7 @@ property setAttributeNS property setAttributeNode property setAttributeNodeNS + property setHTML property setPointerCapture property shadowRoot property slot
diff --git a/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/global-interface-listing-expected.txt index 948e127..ba51d3d7 100644 --- a/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/platform/generic/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -1913,6 +1913,7 @@ method setAttributeNS method setAttributeNode method setAttributeNodeNS + method setHTML method setPointerCapture method toggleAttribute method webkitMatchesSelector @@ -7343,6 +7344,11 @@ getter zoomAndPan method constructor setter zoomAndPan +interface Sanitizer + static method getDefaultConfiguration + attribute @@toStringTag + method constructor + method getConfiguration interface Scheduler attribute @@toStringTag method constructor
diff --git a/third_party/blink/web_tests/platform/linux/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt b/third_party/blink/web_tests/platform/linux/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt new file mode 100644 index 0000000..12cdab12 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt
@@ -0,0 +1,7 @@ +[crbug/1311561] Tests that auto dark mode emulation from DevTools correctly emulates dark mode for select element +=== Before auto dark mode (autoDarkMode and prefers-color-scheme override) is not enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAHwlJREFUeJzt3X+QlfV96PHP7h6WDSyBkA0/l12YZkKsWEqqt40BkUQTiNVoWSe6ViWI9eK9BTVx6WIJGGlwM7SW+gOJBofLDEoSEUyIBuSGTKeTZqbk6tybBJ046N1JugKtbOBGS9g99w/rWrqA7LPLJxl9vf7Rc77P83y+e/7aN+c8eyrK5XI5AAAAElT+pjcAAAC8ewgQAAAgjQABAADSCBAAACCNAAEAANIIEAAAII0AAQAA0pRO56AlS5ac6X2847S1tf2mtwAAAL913jZAlixZ4pfpArxuAADQm49gAQAAaQQIAACQRoAAAABp+hUg3/3ud2PmzJlRW1sbw4cPjxkzZsSTTz553DEjRoyI6urqqKmpiZqamhg3blzceOON0dnZGRERn/nMZ6JUKkWpVIrKysqorKzseXz99ddHRMS5554bDz74YKHZH//4x3vte/r06fHNb36z5/H3v//9GD58eNx33339eTkAAIC3UThANm/eHE1NTfG5z30uOjo64pVXXolFixbFvHnzYt26dccd++STT8brr78er7/+evzjP/5j7N27N2655ZaIiNi2bVscO3Ysjh07Fs3NzXHzzTf3PN6wYUO/Z7/44ovxrW9966Q/x9atW2PlypXx4Q9/uOhLAQAAnKZCAXL06NFYvHhx3HXXXTFv3ryora2NmpqauPLKK2PNmjXx+c9/Po4cOXLCcxsaGuL222+P73znO4U23NfZX/ziF6OlpSWOHTt2wuv9+Mc/jm3btsWwYcNOOXfFihVx6NChXs8fOnQo7rzzzkI/CwAAvNsUCpAf/vCHsX///rjxxht7rTU3N0epVIqdO3ee9Pyurq6orq4uMrrPsy+88MKYOHFiPPTQQye83h133BFDhgw55cwVK1bEnXfeGbNmzTouQg4dOhSzZs2KFStWxIoVKwr9PAAA8G5SKEBefvnlGDNmTAwdOrTXWlVVVUyaNClefvnlXmvlcjlefPHFaGtri6ampiKj+zy7XC7HV77ylbjrrrvi8OHDhWbecsstMXXq1Hj22Wd7IuTN+Hj22Wdj6tSpPR8pAwAATq5QgAwaNCi6urpOut7d3R2VlW9d+oorroja2tp473vfG5/61KfiggsuiC9/+ctFRvd5dkTEOeecE5/+9Kdj1apVhWaOGDEidu/efVyE/Mf42L17d4wYMaLQtQEA4N3kbb8J/UQmTZoU+/fvj0OHDvX6xburqyteeuml+OAHP9jz3BNPPBGzZ8/u304Lzn7Tl770pZg6dWosXLgwKioq+jz3zQi58MIL49lnn42IEB8AANBHhd4BOffcc6O+vj7uv//+XmuPPvpoDBo0KD7xiU/0e3MDOXvcuHGxcOHCuOOOO2LQoEGFZv/Hd0LEBwAA9F2hd0AqKyvjgQceiKuvvjpGjRoVV199dZRKpdi+fXvceuutce+998bgwYMHeq/9nt3S0hIf+tCHCt8AH/FWhLz5/wAAwOkr/D0gl156aWzfvj2+/vWvx4QJE2L06NHxd3/3d7Fx48a4+uqrB3KPAza7trY2li9f3nOTeldXV88XJH7ve9+LW2+9NWpqauLP//zPTzl/xIgR4gMAAAqoKJfL5VMdsGTJkmhra8vazzuG1w0AAHor/A4IAABAXwkQAAAgjQABAADSvO09IBFv3M9A37j/AwAAenvbd0DERzFeNwAA6O20vgfksXH+Nb+vrvqFAAEAgP/MPSAAAEAaAQIAAKQ5rY9gncxre78bv9z55Tjavieisiqqx/1eDPv47TFkymU9x7S3jojy0V9FVLzROlVDRkbN714S7/vM6qh8z/A48PBn4rWfbH/j4HL3G//992OH/sE18f5rNkTHX58bQ/9oQQz72H/t8+zq+o/E6P/2P4/b9ytrpsewmbfEkN9vioiI13/2/Tjw8GUx4pK/imEz/nt/XhIAAOAUCgfI//tfm+NfH1sQ75t7b3zgz7ZHRWUpXvvxt+JfN82Lrj9eFcPOv6nn2A8seDLec9bsiIg49ur/jX/ZeE28+sQt8f7mR+IDC7b1HHdw459G5XtGxMim+wZs9rGDL8av/s+3YsiUS094rV/9761x5O/vj0GjPlz0pQAAAE5ToY9glY8djVe3LI7hn74rav/LvKgcXBsVg2piyO9fGe+7Yk0c2vr56P63Iyc8t/S+hhj28dvjtZ98p9CG+zp7+Ke+GIe+1RLlrmMnvN6v//nHUbdgW1TUDCu0HwAA4PQVCpB/e/mH0X1kf9T+0Y291ob8QXNEVSlef37nyS/Q3RUVpeoio/s8e/AHL4zSyIlx5AcPnfB6wz95R1RWDym0FwAAoG8KBUjXqy9H1bAxUTl4aK+1isqqKI2cFMdefbnXWrlcjl8ffDF+uasthkxtKjK677PL5Rhx6Vfilzvuiu7XDxeaCQAADIxi94BUDYpyd9fJ18vdUVHxVtscXH9FREVVREVFVA0bHe/5vT+J4bPvLDS6r7MjIqrHnRM1v/vp+OUzq2LEH3+52FwAAKDfCgVIaeSk6D6yP7pfOxSV7xlx3Fq5uyuO/etLUar7YM9zdfOf6LkJvb/6OvtNw+d8KTq+MjVqP7YwoqJiQPYCAAD0TaGPYFVPODeqRtTH4b+/v9far370aFRUDYqaD32i35sbyNml4eOi9mMLo3P7HRFVg87I3gAAgFMr9A5IRWVlvK/pgfiX/3F1VA0bFUM+cvUbfwr3J9vj1Sdujff9yb1RURo80Hvt9+z3fqIl/vmvPhRR8AZ4AACgfwp/D8iQKZdG5Z9tj1/uWBmvPtkSUe6O6vG/H+//040D9nGrgZ5dObg23jt7ebz69Te+0LDc3RXtLf9+M3vXr+Pffvb9eHXbF6L2ozfGyLn3ntGfAQAA3o0qyuVy+VQHLFmyJB4b15a1n3eMq36xJNravG4AAPAfFboHBAAAoAgBAgAApBEgAABAmtO6Cf256w+d6X2846xa9ZveAQAA/PbxDggAAJBGgAAAAGn6FSC7du2KSy65JOrr66OxsTHmzJkTTz311HHHNDY2xqhRo2LMmDExZsyYOOuss2Lx4sXR2dkZERHNzc1RV1cXdXV1MXLkyBg5cmTP44ULF0ZExKxZs2L9+vWFZl922WW99j1nzpzYtm1bRET84Ac/iIsuuigmTpwYH/nIR+LRRx/tz0sCAACcQuEA2bJlS8ybNy+uueaa2Lt3bzz//PNx0003xc033xyPPPLIccdu2rQpOjo6oqOjI3bs2BEvvPBCLF26tGft4MGDcfDgwWhqaoobbrih5/HatWv7PXvfvn3x9NNPn/A6nZ2dcdVVV8WCBQti3759sXbt2rjtttvipz/9adGXBQAAOIVCAXL06NFobW2NpUuXRnNzc9TW1kZNTU1cfvnlcffdd8eyZcviyJEjJzx3woQJsWjRoti5c2ehDfd1dktLSyxfvjyOHTt2wmvdddddcdVVV0VFRUX84R/+YUyZMiX27NlTaG8AAMCpFQqQPXv2xIEDB+K6667rtdbU1BRVVVWxe/fuk57f1dUV1dXVRUb3efb06dOjoaEhNmzY0Ov4D3zgA8ddp1wuR3t7e9TX1xfaGwAAcGqFAqS9vT1Gjx4dQ4cO7bVWVVUVjY2N0d7e3mutXC7Hvn37Ys2aNSe8N+NMzC6Xy7FixYpYvXp1HD58+JTXvvfee2Ps2LFxwQUXFNobAABwaoUCpFQqRVdX10nXu7u7o7LyrUtfe+21UV9fHw0NDTF37tw4//zzY9myZUVG93l2RMTZZ58dF198cdxzzz0nPW/9+vWxbt26WL9+fa/zAQCAgXFaX0T4nzU2NsaBAweis7Mzhg8fftxaV1dXtLe3x6RJk3qe27hxY1x00UX922nB2W9qbW2NGTNmxPz583ut3X///fHQQw/F9u3bY+LEiQOyTwAAoLdC/9Q/bdq0GD9+fDz88MO91h5//PEolUoxc+bMfm9uIGePHTs25s+fHytXroxBgwb1PL9ly5b46le/Gt/+9rfFBwAAnGGF3gGprKyM1atXx4IFC6Kuri7mzp0bpVIpduzYEUuXLo22trYYPHjwQO+137MXLVoU5513Xk+AHD58OFpbW2PDhg1uPAcAgASFb3aYPXt2bN68ObZu3RpTpkyJyZMnx7p16+LBBx+MpqamgdzjgM2ura2NlpaWnpvUd+3aFfv374/LL7+854sSx4wZ0/MdJQAAwMCqKJfL5VMdsGTJkmhtbc3azzvGqlWroq2t7Te9DQAA+K3izz0BAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQpl8BsmvXrrjkkkuivr4+GhsbY86cOfHUU08dd0xjY2OMGjWq5zs2zjrrrFi8eHF0dnZGRERzc3PU1dVFXV1djBw5MkaOHNnzeOHChRERMWvWrFi/fn2h2Zdddlmvfc+ZMye2bdsWERHPPPNMXHDBBTFx4sSYNm1afO1rX+vPSwIAAJxC4QDZsmVLzJs3L6655prYu3dvPP/883HTTTfFzTffHI888shxx27atCk6Ojqio6MjduzYES+88ELPl/1t2rQpDh48GAcPHoympqa44YYbeh6vXbu237P37dsXTz/99Amv8/Of/zyuv/76+Mu//Mt46aWXYv369bFs2bL40Y9+VPRlAQAATqFQgBw9ejRaW1tj6dKl0dzcHLW1tVFTUxOXX3553H333bFs2bI4cuTICc+dMGFCLFq0KHbu3Flow32d3dLSEsuXL49jx471ulZFRUXcd9998clPfjIiIqZNmxa/8zu/Ez/72c8K7Q0AADi1QgGyZ8+eOHDgQFx33XW91pqamqKqqip279590vO7urqiurq6yOg+z54+fXo0NDTEhg0beh0/bty4uOKKKyIi4vXXX49t27bF/v37Y8aMGYX2BgAAnFqhAGlvb4/Ro0fH0KFDe61VVVVFY2NjtLe391orl8uxb9++WLNmzQnvzTgTs8vlcqxYsSJWr14dhw8fPuE1v/GNb8S4cePiC1/4QqxduzbGjh1baG8AAMCpFQqQUqkUXV1dJ13v7u6Oysq3Ln3ttddGfX19NDQ0xNy5c+P888+PZcuWFRnd59kREWeffXZcfPHFcc8995zwnCuvvDI6OjrigQceiAULFsQ//dM/FdobAABwaqUiJzU2NsaBAweis7Mzhg8fftxaV1dXtLe3x6RJk3qe27hxY1x00UX922nB2W9qbW2NGTNmxPz580943erq6rj44ovj0ksvjUcffTTOPffcAdkvAADwlkLvgEybNi3Gjx8fDz/8cK+1xx9/PEqlUsycObPfmxvI2WPHjo358+fHypUrY9CgQRER8dxzz8WmTZuOO667uztKpUJdBgAAvI1Cv2lXVlbG6tWrY8GCBVFXVxdz586NUqkUO3bsiKVLl0ZbW1sMHjx4oPfa79mLFi2K8847rydAIiJuv/32GD9+fFxwwQXx3HPPxZNPPum7QAAA4Awp/D0gs2fPjs2bN8fWrVtjypQpMXny5Fi3bl08+OCD0dTUNJB7HLDZtbW10dLS0nOT+tSpU2PNmjXxF3/xF9HQ0BCf+9znYtmyZQP2cTEAAOB4FeVyuXyqA5YsWRKtra1Z+3nHWLVqVbS1tf2mtwEAAL9VCr8DAgAA0FcCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEjTrwDZtWtXXHLJJVFfXx+NjY0xZ86ceOqpp447prGxMUaNGhVjxoyJMWPGxFlnnRWLFy+Ozs7OiIhobm6Ourq6qKuri5EjR8bIkSN7Hi9cuDAiImbNmhXr168vNPuyyy7rte85c+bEtm3bjnvutddei6lTp8Ztt93Wn5cEAAA4hcIBsmXLlpg3b15cc801sXfv3nj++efjpptuiptvvjkeeeSR447dtGlTdHR0REdHR+zYsSNeeOGFWLp0ac/awYMH4+DBg9HU1BQ33HBDz+O1a9f2e/a+ffvi6aefftuf52//9m+ju7u74KsBAACcjkIBcvTo0WhtbY2lS5dGc3Nz1NbWRk1NTVx++eVx9913x7Jly+LIkSMnPHfChAmxaNGi2LlzZ6EN93V2S0tLLF++PI4dO3bSa7788suxZcuW+OxnP1toTwAAwOkpFCB79uyJAwcOxHXXXddrrampKaqqqmL37t0nPb+rqyuqq6uLjO7z7OnTp0dDQ0Ns2LDhpNdsbW2NlpaWqKmpKbQnAADg9BQKkPb29hg9enQMHTq011pVVVU0NjZGe3t7r7VyuRz79u2LNWvWnPDejDMxu1wux4oVK2L16tVx+PDhXuc888wz8corr0RTU1Oh/QAAAKevUICUSqXo6uo66Xp3d3dUVr516WuvvTbq6+ujoaEh5s6dG+eff34sW7asyOg+z46IOPvss+Piiy+Oe+6557jn3/w418qVK6OioqLQfgAAgNNXKnJSY2NjHDhwIDo7O2P48OHHrXV1dUV7e3tMmjSp57mNGzfGRRdd1L+dFpz9ptbW1pgxY0bMnz+/57kHHnggzjnnnPjoRz86IHsDAABOrdA7INOmTYvx48fHww8/3Gvt8ccfj1KpFDNnzuz35gZy9tixY2P+/PmxcuXKGDRoUERE/PSnP41/+Id/iMmTJ8fkyZNjzZo18dhjj8WcOXPOyN4BAODdrtA7IJWVlbF69epYsGBB1NXVxdy5c6NUKsWOHTti6dKl0dbWFoMHDx7ovfZ79qJFi+K8887rCZB169Ydt7569er4xS9+EX/zN39zRvYOAADvdoW/B2T27NmxefPm2Lp1a0yZMiUmT54c69atiwcffPCM39BddHZtbW20tLSc8AZ5AADgzKsol8vlUx2wZMmSaG1tzdrPO8aqVauira3tN70NAAD4rVL4HRAAAIC+EiAAAEAaAQIAAKQ5rb+CtWrVqjO9DwAA4F3gbW9CBwAAGCg+ggUAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApPn/KVRFXTObneEAAAAASUVORK5CYII= + +=== After auto dark mode (autoDarkMode and prefers-color-scheme override) is enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAH0VJREFUeJzt3X2QlvV97/HPLoQC3Z4OJB4XaJImjSGlGauNYin2aIi2R86QB9KeTOMgBs8xLTJAD9kRY44moSCZZGeNUkadnULtgGfoJKIhwIAGOIWCbeVkkjSloKZpTLdQLA4PQmAfzh/W7VAeIjfsV0dfr7/gvq77+v72/mvfc1+/vZpGjhzZFwAAgALNr/UCAACANw8BAgAAlBEgAABAGQECAACUESAAAEAZAQIAAJQRIAAAQJnBr+akefPmDfQ63nDa29tf6yUAAMDrTtNPexDhvHnzsnbt2qr1vGFMnjxZhAAAwH/gFiwAAKCMAAEAAMoIEAAAoMyr2oR+JuPHj89NN92UsWPHpre3N88++2xWrlyZrVu39p+zfv36DB06NL29vUmSgwcPZvv27VmyZEmOHDmSxYsXZ8KECUmS5uaXe+iVczds2JCFCxems7Mza9asyerVq8959u7duzN79uyT1r106dKsWrUqmzdvTpJcdtll+dKXvpSHHnooX/va187nIwEAAM6i4QCZNGlS5s+fn46OjrS1taWnpycTJ07MnXfemQceeCCPPfZY/7m33357nnrqqSTJxRdfnLvvvjtz5szJokWLMn/+/P7z7rrrrhw6dCgdHR0XbPaYMWMyceLEbNu27bTX+s3f/M1MnTo1P/zhDxv9KAAAgFepoVuwBg8enLlz56azszPr1q3L0aNHc/z48WzatCn33ntvZs2alWHDhp32vXv37s3KlSv7v/UY6NnLli3LzJkzM2jQoNNe713velfmz5+fl1566axzZ8yYkZaWllNeb2lpyac+9amGfhYAAHizaShAxo0blxEjRuTxxx8/5djGjRvT09OTK6+88sxDm5tz4sSJRkaf8+ydO3emq6srU6ZMOe31Hn744fzkJz8568wZM2ZkxowZuf/++0+KkJaWltx///255ZZbMmPGjIZ+HgAAeDNpKEBaW1vzwgsv5NixY6cc6+3tTVdXV1pbW0/73tGjR+fGG2/s338x0LObmpqydOnS3HzzzRk+fHhDM1etWpVnnnkml1xySX+EvBIfl1xySZ555pmsWrWqoWsDAMCbSUN7QLq7u894S1Py8i/9r2wkT5J77rknPT096evry4EDB7Jly5Z0dnY2MvqcZyfJc889lx07dmTatGl58MEHz3nm4cOHM2vWrCxZsqQ/QpL0x8esWbNy+PDhc74uAAC82TQUIF1dXRkxYkRaWlpO+cW7ubk5o0aNyvPPP9//2h133NG/Cf18nevsV3R2dmb58uV59NFHG5r7HyMkifgAAIBz1NAtWLt27cq+ffsyderUU45dd9116e7uztNPP33ei7uQs/fv35/Vq1fn1ltvTXd3d0OzX4mQZ555RnwAAEADGvoGpK+vL+3t7fn85z+fAwcO5IknnkhPT08mTJiQ2bNnp6Ojo+FN5gM5e8WKFXnkkUcaDpDk3yPklX8DAACvXsPPAdm2bVva2toyffr0zJw5M83NzdmzZ08WLFhwwW63utCzjx49mmXLlqWtrS3Jy7dsPfHEE0le/vO+l19+eW677bZ84xvfOOuzSIQHAAA0pmnkyJF9Zzth3rx5Wbt2bdV63jAmT56c9vb213oZAADwutLQHhAAAIBGCBAAAKCMAAEAAMr81D0gycv7QDg39n8AAMCpfuo3IOKjMT43AAA41av6M7xv+9BnB3odbzj7n1z0Wi8BAABed+wBAQAAyggQAACgTMNPQk+SH+96Kt998uH86/N/nzQ1Z+To9+RXPvjJvP1Xru4/55E7fzvdx4+lqfnl1vmZ4f8pY943IVd8eFaGDGvJpj+Zn+f/7i+TJH29vUnSf+67fu23cvXvfS7f7Lgl77lqSsb+xkfPefZbf2FsfusP7jtp3evu/4P88n/57/nFX/1gkuSfn/l/+daf3J5fm/zpvO/qj5/PRwIAAJxFwwHyD99+Mn+5anHGf+wP845bvpxBgwbnR3+7Ndv+z8JcfsOnT4qFD874Un7hl389SXLkwN78xYov5K9WfzVX/96d+eCMxf3n/cWKL2bIsJZcNfV/XbDZh174cf7xe1vzjvdffdpr/eN3/2/+ftvX8/P/+Z2NfhQAAMCr1NAtWD3dJ/JXj96by//r/8x7rpycIUOHZ9BbhuQXL5uUKz8yJ09/Y0mOH3vptO/92REX51c++Mn8+O+2N7Tgc5196fWfys5vLk1vT89pr/fiP/8gH5yxOG8ZOryh9QAAAK9eQwGy/x+/n2OHD+Q9V0055di7Lr8+Tc2D0rX7r8/4/t6engwa/JZGRp/z7NZfujwtI0dlz47HT3u9S6+fnsFDhja0FgAA4Nw0FCBHDvxzhv2nt+YtPzPs1AsOGpSWkaPy0ot7TznW19eXQ/t/nL/dtCLv/Lf9FwM9u6+vLx/4bzPznSeW58QZvpUBAABqNLQHpHnQ4DPe0pQk6etLmpr6/7vlTz+bpqbmpKkpQ1tG5J2XXptf/a1bGhl9zrOTZMToX8qYX56Q737rz/Jrkz/d0FwAAOD8NRQgPztiVH5y5MX85KVD+ZnhP3fSsd6enhz616783Nt+of+1a6Yv6t+Efr7OdfYrLvvt/5FvtE/Peyd8NE3/IVAAAIAaDd2C9da3vy/Df/6i/P22r59y7B++/USaBw1O63s+cN6Lu5Czh//82zL2Nz6Wb697KM2DzuuvDwMAAA1qKECam5szfuq8fO9bf5bdOx7P8WMvpefE8fzwO5vz14/dl/Ef+8MMfsuQC73W85497tpPpmvP3+TQCz8ekLUBAABn1/BXAe94/9WZdMuX890n/jQ71yxNb29vRo65JBN/739fsNutLvTsIUOH59LrP5WnvvaVJC/fsrXys9f927+7s/fZb+dvvrEk7/31D2f8x/5wQH8GAAB4M2oaOXJk39lOmDdvXt72oc9WrecNY/+Ti9Le3v5aLwMAAF5XGroFCwAAoBECBAAAKCNAAACAMq9qE/rD864e6HW84UyePPm1XgIAALzu+AYEAAAoI0AAAIAy5/VI8PHjx+emm27K2LFj09vbm2effTYrV67M1q1b+89Zv359hg4dmt7e3iTJwYMHs3379ixZsiRHjhzJ4sWLM2HChCQvP2QwSf+5GzZsyMKFC9PZ2Zk1a9Zk9erV5zx79+7dmT179knrXrp0aVatWpXNmzfn0ksvzaxZs/L2t789Bw8ezPLly7Nu3brz+VgAAIAzaDhAJk2alPnz56ejoyNtbW3p6enJxIkTc+edd+aBBx7IY4891n/u7bffnqeeeipJcvHFF+fuu+/OnDlzsmjRosyfP7//vLvuuiuHDh1KR0fHBZs9ZsyYTJw4Mdu2bTvlOi0tLfnyl7+cjo6OrF+/Pu9///tz3333ZdeuXfnBD37Q6EcDAACcQUO3YA0ePDhz585NZ2dn1q1bl6NHj+b48ePZtGlT7r333syaNSvDhg077Xv37t2blStX9n/rMdCzly1blpkzZ2bQoEGnvdb999+f9evXJ0m+973vZc+ePRk3blxDawMAAM6uoQAZN25cRowYkccff/yUYxs3bkxPT0+uvPLKMw9tbs6JEycaGX3Os3fu3Jmurq5MmTLllPNffPHFrFmz5qTXWltbs3fv3obWBgAAnF1DAdLa2poXXnghx44dO+VYb29vurq60traetr3jh49OjfeeGM2b97cyOhznt3U1JSlS5fm5ptvzvDhw8967U9+8pP5l3/5lzz99NMNrQ0AADi7hvaAdHd3n/aWplc0NTX1byRPknvuuSc9PT3p6+vLgQMHsmXLlnR2djYy+pxnJ8lzzz2XHTt2ZNq0aXnwwQdP+76PfvSj+d3f/d3cdttt6evra2htAADA2TUUIF1dXRkxYkRaWlpy+PDhk441Nzdn1KhRef755/tfu+OOO/o3oZ+vc539is7OzixfvjyPPvroKcc+8YlP5OMf/3huu+22/NM//dMFWScAAHCqhm7B2rVrV/bt25epU6eecuy6665Ld3f3gN3G1Ojs/fv3Z/Xq1bn11lvT3d3d//qkSZPyO7/zO5k1a5b4AACAAdZQgPT19aW9vT3Tpk3LlClTMmzYsAwZMiTXXHNNZs+enY6OjoY3mQ/k7BUrVuSKK67I6NGjkyTDhw/P3Llz88UvfjH79u0bkPUCAAD/ruHngGzbti1tbW2ZPn16Zs6cmebm5uzZsycLFiy4YLdbXejZR48ezbJly9LW1pYkueqqqzJy5Mh89atfPem81atX57777hvQnwEAAN6MmkaOHHnWHdfz5s3L2rVrq9bzhjF58uS0t7e/1ssAAIDXlYZuwQIAAGiEAAEAAMoIEAAAoIwAAQAAyggQAACgjAABAADKNPwckCQZP358brrppowdOza9vb159tlns3LlymzdurX/nPXr12fo0KHp7e1Nkhw8eDDbt2/PkiVLcuTIkSxevDgTJkxIkjQ3v9xDr5y7YcOGLFy4MJ2dnVmzZk1Wr159zrN3796d2bNnn7TupUuXZtWqVdm8eXOuuuqq/P7v/35aW1tz6NChrFy58qQ5AADAhdNwgEyaNCnz589PR0dH2tra0tPTk4kTJ+bOO+/MAw88kMcee6z/3Ntvv73/AYEXX3xx7r777syZMyeLFi3K/Pnz+8+76667cujQoXR0dFyw2WPGjMnEiROzbdu2U65z0UUXZeHChfnc5z6XHTt25H3ve1/++I//OLt27cquXbsa/WgAAIAzaOgWrMGDB2fu3Lnp7OzMunXrcvTo0Rw/fjybNm3Kvffem1mzZmXYsGGnfe/evXuzcuXK/m89Bnr2smXLMnPmzAwaNOiUa/X19WXRokXZsWNHkmTXrl350Y9+lHe84x0NrQ0AADi7hgJk3LhxGTFiRB5//PFTjm3cuDE9PT258sorzzy0uTknTpxoZPQ5z965c2e6uroyZcqUU87fv39/vvWtbyVJhgwZkmuvvTYjR47Mzp07G1obAABwdg0FSGtra1544YUcO3bslGO9vb3p6upKa2vrad87evTo3Hjjjdm8eXMjo895dlNTU5YuXZqbb745w4cPP+01r7/++jz55JP5zGc+kwULFmT//v0NrQ0AADi7hvaAdHd3n/aWplc0NTX1byRPknvuuSc9PT3p6+vLgQMHsmXLlnR2djYy+pxnJ8lzzz2XHTt2ZNq0aXnwwQdPec/GjRuzadOmXHHFFfnCF76Qz3zmM/n+97/f0PoAAIAzayhAurq6MmLEiLS0tOTw4cMnHWtubs6oUaPy/PPP9792xx139G9CP1/nOvsVnZ2dWb58eR599NHTXre7uzs7duzIli1bcsMNNwgQAAAYAA3dgrVr167s27cvU6dOPeXYddddl+7u7jz99NPnvbgLOXv//v1ZvXp1br311nR3dydJ3vve9+aGG2446bympqb09PQMyNoBAODNrqEA6evrS3t7e6ZNm5YpU6Zk2LBhGTJkSK655prMnj07HR0dDW8yH8jZK1asyBVXXJHRo0f3vzZv3rx84AMfSJKMHTs21157bbZv3z4gawcAgDe7hp8Dsm3btrS1tWX69OmZOXNmmpubs2fPnixYsOCC3W51oWcfPXo0y5YtS1tbW5Jk9+7dWbx4cebOnZuLL744L774Yh566KEBXz8AALxZNY0cObLvbCfMmzcva9eurVrPG8bkyZPT3t7+Wi8DAABeVxq6BQsAAKARAgQAACgjQAAAgDICBAAAKCNAAACAMgIEAAAo0/BzQJJk/PjxuemmmzJ27Nj09vbm2WefzcqVK7N169b+c9avX5+hQ4emt7c3SXLw4MFs3749S5YsyZEjR7J48eJMmDAhSdLc/HIPvXLuhg0bsnDhwnR2dmbNmjVZvXr1Oc/evXt3Zs+efdK6ly5dmlWrVmXz5s39rw0ZMiQrVqzIU089la985Svn87EAAABn0PA3IJMmTcof/dEf5Zvf/GY+/OEPZ8qUKfnzP//z3HnnnfnIRz5y0rm33357Jk2alEmTJuXTn/503vnOd2bOnDlJkvnz5+eaa67JNddck40bN+brX/96//8XLlx43rPHjBmTiRMn/tSfZ9q0af0BBAAADIyGfuMePHhw5s6dm87Ozqxbty5Hjx7N8ePHs2nTptx7772ZNWtWhg0bdtr37t27NytXruz/1mOgZy9btiwzZ87MoEGDznjNUaNG5UMf+lDWr1/f0JoAAIBXp6EAGTduXEaMGJHHH3/8lGMbN25MT09PrrzyyjMPbW7OiRMnGhl9zrN37tyZrq6uTJky5YzXnDNnTpYvX57jx483tCYAAODVaShAWltb88ILL+TYsWOnHOvt7U1XV1daW1tP+97Ro0fnxhtvPGn/xUDObmpqytKlS3PzzTdn+PDhp7znqquuylvf+tZs2LChofUAAACvXkOb0Lu7u896S1NTU1P/RvIkueeee9LT05O+vr4cOHAgW7ZsSWdnZyOjz3l2kjz33HPZsWNHpk2blgcffLD/9cGDB2fOnDlZvHhxQ2sBAADOTUMB0tXVlREjRqSlpSWHDx8+6Vhzc3NGjRqV559/vv+1O+64I0899dT5rbTB2a/o7OzM8uXL8+ijj/a/9olPfCLPPPNMvvOd71yQtQEAAGfXUIDs2rUr+/bty9SpU/Pwww+fdOy6665Ld3d3nn766QuywAs1e//+/Vm9enVuvfXWdHd3J0ne/e5357LLLuvfTzJ06NAMGjQo7373uzNz5swBWT8AALyZNRQgfX19aW9vz+c///kcOHAgTzzxRHp6ejJhwoTMnj07HR0dDW8yH8jZK1asyCOPPNIfIAsWLDjp+PTp03PRRRd5DggAAAyQhh9EuG3btrS1tWX69OmZOXNmmpubs2fPnixYsOCC3W51oWcfPXo0y5YtS1tb24CuDwAAOL2mkSNH9p3thHnz5mXt2rVV63nDmDx5ctrb21/rZQAAwOuKR38DAABlBAgAAFBGgAAAAGVe1Sb0yZMnD/Q6AACAN4GfugkdAADgQnELFgAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQRoAAAABlBAgAAFBGgAAAAGUECAAAUEaAAAAAZQQIAABQ5v8DP7+kS7i28+0AAAAASUVORK5CYII= +
diff --git a/third_party/blink/web_tests/platform/mac/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt b/third_party/blink/web_tests/platform/mac/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt new file mode 100644 index 0000000..70bc2a6 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt
@@ -0,0 +1,7 @@ +[crbug/1311561] Tests that auto dark mode emulation from DevTools correctly emulates dark mode for select element +=== Before auto dark mode (autoDarkMode and prefers-color-scheme override) is not enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAADcJJREFUeJzt3cFx4kgAQNFmawMgE1IwGXHjKo5kRQiEQgbMyd4Zr7GFwd8e+72TkYTU5VP/akkszufzeQAAAAT++ewBAAAAP4cAAQAAMgIEAADICBAAACAjQAAAgIwAAQAAMgIEAADI/DvnoO12+9Hj+Lb2+/1nDwEAAL6MNwNku92aRN/A/w8AAP7jFiwAACAjQAAAgMysZ0Bes1gs/vh8Pp9f3f/8uEv7nx/z/Lxzr33pe9dsBwAA7uOmAHlpwv7Sttcm+7/vuyYA5l577jlfCyEAAOA+3n0L1qWJ/fl8/vDJ/DXXnjOea8JnmqZxOp3+t/10Oo3dbjfrHAAA8FN5BmS8vELzkmmaxm63G+v1+o8IOZ1OY71ej2maxjRNHzVMAAD46/2IALnXqsxmsxmr1Wocj8enCHmMj+PxOFar1dhsNncYMQAAfE83P4Q+x0uT/7/xYe/lcjkOh8N4eHh4ipAxxlN8HA6HsVwuP3mUAADwdSUB8hVi43EV5NaxPI+QMYb4AACAmZIA+W5+j5AxhvgAAICZ3h0gl1YUit/SeO+17/mGrscIefwbAAB4200rIJdee1t477XvHSEAAMB8N9+C9dak/5oguXTstds/6nwAAMBtfsRreAEAgK9BgAAAABkBAgAAZBbnGQ8+bLfbYizf0n6//+whAADAlzErQAAAAO7BLVgAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQ+QU1l/HvAz+BqAAAAABJRU5ErkJggg== + +=== After auto dark mode (autoDarkMode and prefers-color-scheme override) is enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAADdhJREFUeJzt3bFZKmkYgNHffTYkoge7oAK6EFMy6iDCKiiACiyDMsjvBru6e131joqvXj0nY2aY+cJ5n5kfLubz+Y8BAAAQ+OOjBwAAAL4PAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkPlzykGbzea95/iyttvtR48AAACfxsWv/ohws9mMw+FQzfPlLJdLEQIAAP/wChYAAJARIAAAQGbSGpDn3N7e/vR5sVg8u//hcU/tf3jMw/NOvfZT33vJdgAA4DzeFCCP3bA/tu25m/3/7ntJAEy99tRzPhdCAADAebz6FaynbuwXi8W738y/5NpT5nlJ+KxWqzGbzf63fTabjaurq0nnAACA78oakPH4E5rHrFarsVqtxm63+ylCZrPZ2O124/r6eqxWq/caEwAAfnvfIkDO9VRmv9+P4/E4Li8v7yPkLj4uLy/H8Xgc+/3+DBMDAMDX9OZF6FM8dvP/Oy72Pp1OY71ej5ubm/sIGWPcx8d6vR6n0+mDpwQAgM8rCZDPEBt3T0HeOsvDCBljiA8AAJjoW7yCdW53EXI8HsUHAAC8wKsD5Kl1FcV/abz22uf8ha67CBEfAAAw3ZtewXrqZ28Lr732uSMEAACY7mI+n/947oDNZjMOh0M1z5ezXC7Hdrv96DEAAOBTsAYEAADICBAAACAjQAAAgMwv14CM8fc6EF7H+g8AAPjXpAABAAA4B69gAQAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQOYvGRHRRa1fX6gAAAAASUVORK5CYII= +
diff --git a/third_party/blink/web_tests/platform/win/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt b/third_party/blink/web_tests/platform/win/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt new file mode 100644 index 0000000..6000e7fd --- /dev/null +++ b/third_party/blink/web_tests/platform/win/inspector-protocol/emulation/select-popup-auto-dark-mode-expected.txt
@@ -0,0 +1,7 @@ +[crbug/1311561] Tests that auto dark mode emulation from DevTools correctly emulates dark mode for select element +=== Before auto dark mode (autoDarkMode and prefers-color-scheme override) is not enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAEExJREFUeJzt3bF149gBQFHSxwUoduAW1MKoC3dhZUylUNmW4TJUglrwBo7VAR1xDodDkCBAPGqpe5OdAUB8nInw9uMD6+12u10BAAAE/nbrCwAAAL4PAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkPn7mIM2m83S13F33t7ebn0JAADw5ZwNkM1m42Z6Av9uAADwO49gAQAAGQECAABkBAgAAJAZtQj9lPV6/cvft9vtyf2Hxw3t3x2zXq/PnvPY/sNtQ9uHjgUAAK5vVoCMvaE/FQP7+8bEwNgxx54LAADoTH4Ea+gGfzdrsYRLxjx3HZfMfLy8vKw+Pz9/2/75+bl6fX0ddQ4AAOAbrwG5JD5eX19XT09Pv0TI5+fn6unpafXy8rJ6eXlZ6jIBAOCu3HWAXGM25vn5efX4+Lj6+Pj4GSG7+Pj4+Fg9Pj6unp+fr3TFAABw32YvQh/jWAT8VRZ+Pzw8rN7f31c/fvz4GSGr1epnfLy/v68eHh5ufJUAAPDXkATILWNj6E1alziMkNVqJT4AAGCCJEDuwX6ErFYr8QEAABNMDpBT3+hYasZj6pjXejPXLkJ2fwYAAC4zawZk6PW3S5o65jUjBAAAmGb2I1jnbv4vCZKhb3xca8wp5wIAAK7nrl/DCwAAfC0CBAAAyAgQAAAgs96OWASx2WyKa7krb29vt74EAAD4cs7OgIiPafy7AQDA70a9Bes///B/8y/1r/8JEAAAOGQNCAAAkBEgAABAZvaHCP98/vXr4v/8Y3ty/+FxQ/t3x/z5vD57zmP7D7cNbR86FgAAuL5ZATL2hv5UDOzvGxMDY8ccey4AAKAz+RGsoRv83azFEi4Z89x1mPkAAIDet10DIj4AAKB31wGy5GwMAABwudmL0Mc4FgFmIAAA4PtJAuSWsTH0Ji0AAKB3149gAQAAX8vkABlaX7HkbMPUMa0FAQCAr2HWI1hDr79d0tQxRQgAANze7DUg527+LwmSoW98XGvMKecCAACuxxoQAAAgI0AAAICMAAEAADKj1oD8999LX8b92WxufQUAAPD1mAEBAAAyAgQAAMjMfg3vev3rtzW22+3J/YfHDe3fHbNer8+e89j+w22H28+dAwAAuL5ZATIUB4fbTsXA/r6hcJgy5qlzXXo8AABwHZMfwRq6Yd/NWizhkjFPXYfQAACA27AGBAAAyNx1gCw5GwMAAFxu9iL0MY5FwFd6DMr6DwAAaCQBcsub+6E3ae2IDwAA6Nz1I1jniA8AAGhNDpCh9RVL3tRPHfPY78QHAAD0Zj2CNfT62yVNHXP/d4f/veQ8AADAdLPXgJy7ab/kpn7oGx/XGnO3XWgAAMBtfOs1IAAAQEuAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAmdmv4T33LY1jHw7cP25o/+6YYx8MHDPmsVft7m/3DRAAAOjNCpChODjcdioG9veN+Tr52DFPnevS4wEAgOuY/AjW0A37sS+VX8slY566DqEBAAC3YQ0IAACQmb0G5CsbWkOysz9DYlYEAACWlwTIsUehvsIN/6XrTwAAgHmSALnljf25WRAAAKBjDQgAAJCZHCBDb5lacrZh6piHv1vqLV0AAMBpsx7BGnr97ZKmjrn/u1tcNwAAcIU1IOdu3C+5sR/6xse1xtzfLjgAAKBnDQgAAJARIAAAQEaAAAAAGQECAABkBAgAAJARIAAAQGb2a3jPfU9j6KN/u+NOfRRw972Oc+c8tv/Ya3Yv3Q4AAFzXrAAZioPDbadu+vf3jQmBsWOOjQpfRQcAgM7kR7CGbvCPfWX8Wi4Zc8nrAAAApvnWa0A8egUAAK27DhCzIAAA8LXMXoQ+xrEIuPXMg9kPAADoJQFyyxv9oTdpAQAAvbt+BGvIbkZmvV7/8mcAAGBZkwNkaH3FkrMNU8c8/N3u9b/7rwE2QwIAAMub9QjW0OtvlzR1TAvSAQDg9mavATl3839JkAx94+NaY166HQAAuK5vuQYEAAC4DQECAABkBAgAAJAZtQZks9ksfR0AAMA3sN5agQ0AAEQ8ggUAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGT+D9trUrBx9MPnAAAAAElFTkSuQmCC + +=== After auto dark mode (autoDarkMode and prefers-color-scheme override) is enabled === +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAEJhJREFUeJzt3T2S20YCgFHM1oYTsfYKuoUyZzzEVnmcKmPmAzhjJJ/AoQ7AzBmPMUdwqFwbbNE1ogj+gORHmvNeYhvAEF2O8FWj0U+z2ezbAAAAEPjXrQcAAAC8HwIEAADICBAAACAjQAAAgIwAAQAAMgIEAADICBAAACDz72MuWiwW1x7Hw1kul7ceAgAA3J2nQxsRLhaLYbVaVeN5GPP5XIQAAMAWr2ABAAAZAQIAAGQECAAAkDlqEfo+6/X6u//++PHj3vPb142d31yzXq8P/uau89vHxo6PXQsAAFzeWQFy7AP9vhh4e+6YGDj2nsf+FgAA0Jn8CtbYA/5m1uIaTrnnoXGcMvPx8vIyPD8//3D8+fl5+Pnnn4/6DQAA4B2vATklPl5eXobPnz9/FyHPz8/D58+fh19++WV4eXm51jABAOChPHSAXGI25suXL8Pr6+vw4cOHvyNkEx8fPnwYXl9fhy9fvlxoxAAA8NjOXoR+jF0R8E9Z+P3169fh06dPw++///53hAzD8Hd8fPr0afj69euNRwkAAP8MSYDcMjbGvqR1iu0IGYZBfAAAwAQP/QrWJW0i5PX1VXwAAMBEkwNkbH3FNffVmHrPS32ZaxMh4gMAAKY56xWssc/fXtPUe14yQgAAgGmeZrPZt30XLBaLYbVaVeN5GPP5fFgul7ceBgAA3BVrQAAAgIwAAQAAMgIEAADIHFwDMgz/XwfCaaz/AACAHx2cAREf0/j/BgAAPzrqM7z/+enXa4/j4fz152+3HgIAANwda0AAAICMAAEAADJn7YQ+DMPwx+L7Xcj/u1zvPb993dj5zTV/LD4e/M1d57ePjR0fuxYAALi8swLk2Af6fTHw9twxMXDsPY/9LQAAoDP5FayxB/zNrMU1nHLPQ+Mw8wEAAL13uwZEfAAAQO+hA+SaszEAAMDpzl6EfoxdEWAGAgAA3p8kQG4ZG2Nf0gIAAHoP/QoWAABwXyYHyNj6imvONky9p7UgAABwH856BWvs87fXNPWeIgQAAG7vaTabfdt3wWKxGP7z06/VeB7GX3/+NiyXy1sPAwAA7oo1IAAAQEaAAAAAGQECAABkjlqEbvH26ebz+a2HAAAAd8cMCAAAkBEgAABA5qx9QIZhGNbr7/fg+Pjx497z29eNnd9cs16vD/7mrvPbx7aPH/oNAADg8s4KkLE42D62LwbenhsLhyn33Pdbp14PAABcxuRXsMYe2DezFtdwyj33jUNoAADAbVgDAgAAZB46QK45GwMAAJzu7EXox9gVAff0GpT1HwAA0EgC5JYP92Nf0toQHwAA0HnoV7AOER8AANCaHCBj6yuu+VA/9Z67/k58AABA76xXsMY+f3tNU+/59u+2/3nK7wAAANM9zWazb/suWCwWw2q1qsbzMObz+bBcLm89DAAAuCvveg0IAADQEiAAAEBGgAAAABkBAgAAZAQIAACQESAAAEDmrH1AhuHwXhq7Ng58e93Y+c01uzYMPOaeu/b0eHvcHiAAANA7K0DG4mD72L4YeHvumN3Jj73nvt869XoAAOAyJr+CNfbAvmun8ks55Z77xiE0AADgNqwBAQAAMmevAblnY2tINt7OkJgVAQCA60sCZNerUPfwwH/q+hMAAOA8SYDc8sH+0CwIAADQsQYEAADITA6Qsa9MXXO2Yeo9t//uWl/pAgAA9jvrFayxz99e09R7vv27W4wbAAAYhqfZbPZt3wWLxWJYrVbVeB7GfD4flsvlrYcBAAB3xRoQAAAgI0AAAICMAAEAADICBAAAyAgQAAAgI0AAAIDMWfuADMOPm/pt76cxtunf5rp9mwJu9us49Ju7zu/a1+PU4wAAwGWdFSBjcbB9bN9D/9tzx4TAsfc8Nirsig4AAJ3Jr2CNPeDv2mX8Uk655zXHAQAATPOu14B49QoAAFoPHSBmQQAA4L6cvQj9GLsi4NYzD2Y/AACglwTILR/0x76kBQAA9B76FawxmxmZ9Xr93b8DAADXNTlAxtZXXHO2Yeo9t/9u8/nft58BNkMCAADXd9YrWGOfv72mqfe0IB0AAG7vaTabfdt3wWKxGFarVTWehzGfz4flcnnrYQAAwF15l2tAAACA2xAgAABARoAAAACZoxahz+fza48DAAB4Bw4uQgcAALgUr2ABAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAACZ/wGnlMkAul43qwAAAABJRU5ErkJggg== +
diff --git a/third_party/crubit/.gitignore b/third_party/crubit/.gitignore new file mode 100644 index 0000000..85de9cf9 --- /dev/null +++ b/third_party/crubit/.gitignore
@@ -0,0 +1 @@ +src
diff --git a/third_party/crubit/LICENSE b/third_party/crubit/LICENSE new file mode 100644 index 0000000..90d89d0 --- /dev/null +++ b/third_party/crubit/LICENSE
@@ -0,0 +1,234 @@ +============================================================================== +The Crubit project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the Crubit project: +============================================================================== +The Crubit project contains third party software which is under different +license terms. All such code will be identified clearly using at least one of +two mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. \ No newline at end of file
diff --git a/third_party/crubit/OWNERS b/third_party/crubit/OWNERS new file mode 100644 index 0000000..ec1b1412 --- /dev/null +++ b/third_party/crubit/OWNERS
@@ -0,0 +1 @@ +file://build/rust/OWNERS
diff --git a/third_party/crubit/README.chromium b/third_party/crubit/README.chromium new file mode 100644 index 0000000..e6534b8 --- /dev/null +++ b/third_party/crubit/README.chromium
@@ -0,0 +1,28 @@ +Name: Crubit: C++/Rust Bidirectional Interop Tool +Short Name: crubit +URL: https://github.com/google/crubit +Version: 0 +Date: See the comments next to the `crubit_revision` in the //DEPS file +Revision: See `crubit_revision` in the //DEPS file +License: Apache 2.0 +Security Critical: no + +Description: + +Extremely experimental interop tooling for C++ and Rust. + +See also: + +- Google-internal "High-level Design of C++/Rust Interop" doc at + https://docs.google.com/document/d/1FDBHv0qQQpvV8URRW1crgKWlVm3UEh87pJrmFAxuFrI/edit?usp=sharing + +- //build/rust/rs_bindings_from_cc.gni (support for using Crubit for generating + C++/Rust bindings during Chromium build using `bin/rs_bindings_from_cc` tool + + for building such generated files against + `./src/rs_bindings_from_cc/support` libraries). + +- //tools/rust/build_crubit.py (for building `bin/rs_bindings_from_cc` tool for + packaging and distribution via `gclient sync`) + +Local Modifications: +- TODO(lukasza): BUILD.gn that covers `src/rs_bindings_from_cc/support'
diff --git a/third_party/nearby/README.chromium b/third_party/nearby/README.chromium index 1f5b14a2..e5486a8 100644 --- a/third_party/nearby/README.chromium +++ b/third_party/nearby/README.chromium
@@ -1,7 +1,7 @@ Name: Nearby Connections Library Short Name: Nearby URL: https://github.com/google/nearby -Version: 0a7f68f382ff32d0c28d207a728c5c15611ce888 +Version: 591ef0922ecae79789e89bb417f59e5fbf1d42d5 License: Apache 2.0 License File: LICENSE Security Critical: yes
diff --git a/third_party/zxcvbn-cpp/BUILD.gn b/third_party/zxcvbn-cpp/BUILD.gn index 35786428..0d1947a7 100644 --- a/third_party/zxcvbn-cpp/BUILD.gn +++ b/third_party/zxcvbn-cpp/BUILD.gn
@@ -5,12 +5,14 @@ import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/test.gni") -config("zxcvbn_config") { - include_dirs = [ "//third_party/zxcvbn-cpp/native-src" ] - +config("zxcvbn_internal_config") { cflags = [ "-Wno-shadow" ] } +config("zxcvbn_public_config") { + include_dirs = [ "//third_party/zxcvbn-cpp/native-src" ] +} + source_set("zxcvbn-cpp") { sources = [ "native-src/zxcvbn/adjacency_graphs.cpp", @@ -29,12 +31,13 @@ "native-src/zxcvbn/util.hpp", ] - public_deps = [ + deps = [ "//base", "//third_party/icu", ] - public_configs = [ ":zxcvbn_config" ] + public_configs = [ ":zxcvbn_public_config" ] + configs += [ ":zxcvbn_internal_config" ] } test("zxcvbn_unittests") { @@ -49,16 +52,24 @@ "//testing/gtest", "//testing/gtest:gtest_main", ] + + configs += [ ":zxcvbn_internal_config" ] } fuzzer_test("zxcvbn_matching_fuzzer") { sources = [ "test/matching_fuzzer.cc" ] - deps = [ ":zxcvbn-cpp" ] + deps = [ + ":zxcvbn-cpp", + "//base", + ] libfuzzer_options = [ "max_len=128" ] } fuzzer_test("zxcvbn_scoring_fuzzer") { sources = [ "test/scoring_fuzzer.cc" ] - deps = [ ":zxcvbn-cpp" ] + deps = [ + ":zxcvbn-cpp", + "//base", + ] libfuzzer_options = [ "max_len=128" ] }
diff --git a/tools/mb/mb.py b/tools/mb/mb.py index adc8c37..4547829 100755 --- a/tools/mb/mb.py +++ b/tools/mb/mb.py
@@ -1704,8 +1704,6 @@ # that one Ozone build can be used to run different backends. Currently, # tests are executed for the headless and X11 backends and both can run # under Xvfb on Linux. - # TODO(tonikitoo,msisov,fwang): Find a way to run tests for the Wayland - # backend. use_xvfb = (self.platform.startswith('linux') and not is_android and not is_fuchsia and not is_cros_device)
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 278d83f..1cc8b68b 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -55484,6 +55484,7 @@ <int value="-2023673947" label="TabRestoreSubMenus:disabled"/> <int value="-2023641192" label="DestroySystemProfiles:enabled"/> <int value="-2022956008" label="ExternalPciDevicesAllowed:disabled"/> + <int value="-2022243258" label="SiteDataImprovements:enabled"/> <int value="-2021954068" label="TapVisualizerApp:disabled"/> <int value="-2020721975" label="smart-virtual-keyboard"/> <int value="-2020024440" label="scroll-end-effect"/> @@ -56537,6 +56538,7 @@ <int value="-1382918690" label="VirtualKeyboardApi:enabled"/> <int value="-1382671832" label="OmniboxUIExperimentVerticalMargin:enabled"/> <int value="-1378071979" label="CroshSWA:enabled"/> + <int value="-1377367284" label="SiteDataImprovements:disabled"/> <int value="-1377186702" label="DesktopIOSPromotion:disabled"/> <int value="-1376510363" label="ServiceWorkerScriptFullCodeCache:disabled"/> <int value="-1376258171" label="InstanceSwitcher:enabled"/> @@ -88672,6 +88674,12 @@ </int> </enum> +<enum name="SimLockNotificationEvent"> + <int value="0" label="Shown"/> + <int value="1" label="Clicked"/> + <int value="2" label="Dismissed"/> +</enum> + <enum name="SimPinOperationResult"> <int value="0" label="Success"/> <int value="1" label="Error Device Missing"/>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index e346e5d..78056ea 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -3668,8 +3668,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.CPSDirectorySize" units="KB" - expires_after="2022-07-01"> - <owner>nator@chromium.org</owner> + expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3679,8 +3678,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.CUSDirectorySize" units="KB" - expires_after="2022-07-01"> - <owner>nator@chromium.org</owner> + expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3690,8 +3688,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.GetFilesDuration" units="ms" - expires_after="2022-11-13"> - <owner>nator@chromium.org</owner> + expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3703,7 +3700,6 @@ <histogram name="Android.WebView.ComponentUpdater.GetFilesResult" enum="WebViewComponentUpdaterGetFilesResult" expires_after="2022-11-13"> - <owner>nator@chromium.org</owner> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3725,8 +3721,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.UnexpectedExit" - enum="Boolean" expires_after="2022-11-13"> - <owner>nator@chromium.org</owner> + enum="Boolean" expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3737,8 +3732,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.UpdateJobDuration" units="ms" - expires_after="2022-11-13"> - <owner>nator@chromium.org</owner> + expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -3748,8 +3742,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.UpdateJobFilesChanged" - units="count" expires_after="2022-07-01"> - <owner>nator@chromium.org</owner> + units="count" expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4128,7 +4121,7 @@ </histogram> <histogram name="Android.WebView.Metrics.PackagesAllowList.ParseStatus" - enum="AppPackageNameAllowlistParseStatus" expires_after="2022-07-01"> + enum="AppPackageNameAllowlistParseStatus" expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4168,7 +4161,7 @@ </histogram> <histogram name="Android.WebView.Metrics.PackagesAllowList.ThrottleStatus" - enum="Boolean" expires_after="2022-05-30"> + enum="Boolean" expires_after="2023-02-01"> <owner>hazems@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml index 4e3fd0e..e9d7b99 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -59,6 +59,18 @@ </summary> </histogram> +<histogram name="Network.Ash.Cellular.SimLock.Policy.Notification.Event" + enum="SimLockNotificationEvent" expires_after="2022-12-31"> + <owner>hsuregan@chromium.org</owner> + <owner>nikhilcn@chromium.org</owner> + <owner>cros-connectivity@google.com</owner> + <summary> + Records events on the notification shown when the SIM is locked and admin + has restricted users from PIN locking their SIMs. These are emitted once the + notification is shown and once when the user interacts with it. + </summary> +</histogram> + <histogram name="Network.Ash.VPN.{VPNProviderType}.ConfigurationSource" enum="VPNConfigurationSource" expires_after="2022-12-31"> <owner>chadduffin@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/v8/histograms.xml b/tools/metrics/histograms/metadata/v8/histograms.xml index d4755ea5..0777b2e 100644 --- a/tools/metrics/histograms/metadata/v8/histograms.xml +++ b/tools/metrics/histograms/metadata/v8/histograms.xml
@@ -1027,7 +1027,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMC.Clear" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMC.Clear" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1037,7 +1037,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMC.Epilogue" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMC.Epilogue" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1046,7 +1046,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMC.Finish" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMC.Finish" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1066,7 +1066,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMC.Prologue" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMC.Prologue" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1075,17 +1075,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMC.Sweep" units="ms" expires_after="M106"> - <owner>mlippautz@chromium.org</owner> - <owner>hpayer@chromium.org</owner> - <owner>v8-memory-sheriffs@google.com</owner> - <summary> - Time spent in the sweeping phase of incremental latency-optimized - Mark-Compact GC. - </summary> -</histogram> - -<histogram name="V8.GCFinalizeMCBackground" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMCBackground" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1095,7 +1085,7 @@ </summary> </histogram> -<histogram name="V8.GCFinalizeMCForeground" units="ms" expires_after="M106"> +<histogram name="V8.GCFinalizeMCForeground" units="ms" expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> @@ -1117,24 +1107,26 @@ </histogram> <histogram name="V8.GCFinalizeMCReduceMemoryBackground" units="ms" - expires_after="M106"> + expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> <summary> Time spent in the final atomic pause of incremental memory-optimized - Mark-Compact GC in a background isolate. + Mark-Compact GC in a background isolate. Recorded at the end of the garbage + collection. </summary> </histogram> <histogram name="V8.GCFinalizeMCReduceMemoryForeground" units="ms" - expires_after="M106"> + expires_after="M111"> <owner>mlippautz@chromium.org</owner> <owner>hpayer@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> <summary> Time spent in the final atomic pause of incremental memory-optimized - Mark-Compact GC in a foreground isolate. + Mark-Compact GC in a foreground isolate. Recorded at the end of the garbage + collection. </summary> </histogram>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 11336e31..a70ee9dc 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,15 +6,15 @@ }, "win": { "hash": "442215a8926ba4e584127836c87418604dd2f0db", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/ed613a2e0f3cef06eef18baf8f5a908da89fcbad/trace_processor_shell.exe" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/da6e55d8b227cff3a88c26db23781790fad56c49/trace_processor_shell.exe" }, "linux_arm": { "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893", "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "mac": { - "hash": "54c2187ed808addfb8596ce614d5bce616c23425", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/ed613a2e0f3cef06eef18baf8f5a908da89fcbad/trace_processor_shell" + "hash": "efa73c7dd47ad2f78e240471101ac3aa4fbdc665", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/5771b652471bcc60464cce7605d2066aba8f0a9d/trace_processor_shell" }, "mac_arm64": { "hash": "e1ad4861384b06d911a65f035317914b8cc975c6", @@ -22,7 +22,7 @@ }, "linux": { "hash": "a7493722bdc1866cc4273841e4a3ceead448c387", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/ed613a2e0f3cef06eef18baf8f5a908da89fcbad/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/da6e55d8b227cff3a88c26db23781790fad56c49/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/rust/build_crubit.py b/tools/rust/build_crubit.py index 900fc7d..e6ac86f5 100755 --- a/tools/rust/build_crubit.py +++ b/tools/rust/build_crubit.py
@@ -35,12 +35,18 @@ STAGE0_JSON_SHA256, THIRD_PARTY_DIR, GetPackageVersion) -# Trunk on 2022-06-13. -CRUBIT_REVISION = '0a25665ed0df6d4f067bfd5855be1c24d2df3f6c' +# Trunk on 2022-07-13. +# +# The revision specified below should typically be the same as the +# `crubit_revision` specified in the //DEPS file. +# +# TODO(https://crbug.com/1329611): Move `CRUBIT_REVISION` to `update_rust.py` +# (see WIP CL: https://crrev.com/c/3718281). +CRUBIT_REVISION = '07b3390a62412543c80226db44eecc317bbfcee0' CRUBIT_SUB_REVISION = 1 THIRD_PARTY_DIR = os.path.join(CHROMIUM_DIR, 'third_party') -CRUBIT_SRC_DIR = os.path.join(THIRD_PARTY_DIR, 'crubit') +CRUBIT_SRC_DIR = os.path.join(THIRD_PARTY_DIR, 'crubit', 'src') def RunCommand(command, env=None, cwd=None, fail_hard=True):
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml index 638b0df20..5b80247 100644 --- a/tools/traffic_annotation/summary/annotations.xml +++ b/tools/traffic_annotation/summary/annotations.xml
@@ -371,7 +371,7 @@ <item id="device_activity_client_check_in" added_in_milestone="102" content_hash_code="0548d084" os_list="chromeos" file_path="ash/components/device_activity/device_activity_client.cc" /> <item id="device_activity_client_check_membership" added_in_milestone="102" content_hash_code="02827a9f" os_list="chromeos" file_path="ash/components/device_activity/device_activity_client.cc" /> <item id="interest_group_well_known_fetcher" added_in_milestone="103" content_hash_code="01ea06eb" os_list="linux,windows,android,chromeos" file_path="content/browser/interest_group/interest_group_permissions_checker.cc" /> - <item id="speculation_rules_prefetch" added_in_milestone="103" content_hash_code="015fd398" os_list="linux,windows,android,chromeos" file_path="content/browser/speculation_rules/prefetch/prefetch_service.cc" /> + <item id="speculation_rules_prefetch" added_in_milestone="103" content_hash_code="015fd398" os_list="linux,windows,android,chromeos" file_path="content/browser/preloading/prefetch/prefetch_service.cc" /> <item id="share_preview_image_fetch" added_in_milestone="103" content_hash_code="03f3333d" os_list="linux,windows" file_path="chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller_desktop_impl.cc" /> <item id="fast_pair_image_decoder" added_in_milestone="103" content_hash_code="04d764bc" os_list="chromeos" file_path="ash/quick_pair/repository/fast_pair/fast_pair_image_decoder_impl.cc" /> <item id="drivefs_http_client" added_in_milestone="104" content_hash_code="042b8f2c" os_list="chromeos" file_path="ash/components/drivefs/drivefs_http_client.cc" />
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java index 20356f6..84f2fc89 100644 --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
@@ -654,11 +654,16 @@ return; } - Intent imageCapture = getImageCaptureIntent(); if (mDirectToCamera) { - mWindow.showIntent(imageCapture, mCallback, R.string.low_memory_error); + // Android doesn't support launching an intent flexible enough to let the user + // decide whether to record photos _or_ videos so, when both types are requested, + // we choose one over the other. We currently default to photos, to maintain past + // behavior, but should perhaps consider showing the user a chooser instead. + Intent intent = acceptsOnlyType(VIDEO_TYPE) ? getVideoCaptureIntent() + : getImageCaptureIntent(); + mWindow.showIntent(intent, mCallback, R.string.low_memory_error); } else { - launchSelectFileWithCameraIntent(imageCapture); + launchSelectFileWithCameraIntent(getImageCaptureIntent()); } } }
diff --git a/ui/android/java/strings/translations/android_ui_strings_af.xtb b/ui/android/java/strings/translations/android_ui_strings_af.xtb index f4763b4..b8861341 100644 --- a/ui/android/java/strings/translations/android_ui_strings_af.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_af.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="af"> +<translation id="2405260961377511836">Kan nie fotokieser oopmaak nie</translation> <translation id="3240426699337459095">Skakel gekopieer</translation> <translation id="6315516427814392808">Kon nie die vorige handeling voltooi nie, weens min geheue</translation> <translation id="6555463879959038093">Kon nie na die knipbord kopieer nie</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_be.xtb b/ui/android/java/strings/translations/android_ui_strings_be.xtb index d7e59d6..2c2047d 100644 --- a/ui/android/java/strings/translations/android_ui_strings_be.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_be.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="be"> +<translation id="2405260961377511836">Інструмент выбару не адкрыўся</translation> <translation id="3240426699337459095">Спасылка скапіравана</translation> <translation id="6315516427814392808">Не ўдалося завяршыць папярэднюю аперацыю з-за недахопу памяці</translation> <translation id="6555463879959038093">Не ўдалося скапіраваць у буфер абмену</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_bg.xtb b/ui/android/java/strings/translations/android_ui_strings_bg.xtb index b3c2f2d9..e16e3be 100644 --- a/ui/android/java/strings/translations/android_ui_strings_bg.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_bg.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bg"> +<translation id="2405260961377511836">Не могат да се изберат снимки</translation> <translation id="3240426699337459095">Връзката е копирана</translation> <translation id="6315516427814392808">Предишната операция не можа да завърши поради недостиг на памет</translation> <translation id="6555463879959038093">Копирането в буферната памет не бе успешно</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_de.xtb b/ui/android/java/strings/translations/android_ui_strings_de.xtb index 08898868..f9efe594 100644 --- a/ui/android/java/strings/translations/android_ui_strings_de.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_de.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="de"> +<translation id="2405260961377511836">Bildauswahl kann nicht geöffnet werden</translation> <translation id="3240426699337459095">Link wurde kopiert.</translation> <translation id="6315516427814392808">Zu wenig Speicher für vorherige Operation</translation> <translation id="6555463879959038093">Fehler beim Kopieren in die Zwischenablage</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_es-419.xtb b/ui/android/java/strings/translations/android_ui_strings_es-419.xtb index a30ecf0..8f87578 100644 --- a/ui/android/java/strings/translations/android_ui_strings_es-419.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_es-419.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="es-419"> +<translation id="2405260961377511836">No se abre el selector de fotos</translation> <translation id="3240426699337459095">Vínculo copiado</translation> <translation id="6315516427814392808">Memoria insuficiente para completar la operación anterior</translation> <translation id="6555463879959038093">Error al copiar al portapapeles</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_fa.xtb b/ui/android/java/strings/translations/android_ui_strings_fa.xtb index 238f489..acde144 100644 --- a/ui/android/java/strings/translations/android_ui_strings_fa.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_fa.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fa"> +<translation id="2405260961377511836">انتخابگر عکس باز نشد</translation> <translation id="3240426699337459095">پیوند کپی شد</translation> <translation id="6315516427814392808">به دلیل کم بودن حافظه، تکمیل عملیات قبلی امکانپذیر نیست</translation> <translation id="6555463879959038093">کپی در بریدهدان ناموفق بود</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_fr.xtb b/ui/android/java/strings/translations/android_ui_strings_fr.xtb index c41351f..63bbee4 100644 --- a/ui/android/java/strings/translations/android_ui_strings_fr.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_fr.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr"> +<translation id="2405260961377511836">Sélecteur de photos inaccessible</translation> <translation id="3240426699337459095">Le lien a bien été copié.</translation> <translation id="6315516427814392808">Impossible de terminer l'opération précédente. Mémoire insuffisante.</translation> <translation id="6555463879959038093">Échec de la copie du contenu dans le presse-papiers.</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_gl.xtb b/ui/android/java/strings/translations/android_ui_strings_gl.xtb index ecf3059a..edeb081 100644 --- a/ui/android/java/strings/translations/android_ui_strings_gl.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_gl.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gl"> +<translation id="2405260961377511836">Non se puido abrir o selector</translation> <translation id="3240426699337459095">Copiouse a ligazón</translation> <translation id="6315516427814392808">Non se puido completar a operación anterior debido á falta de memoria</translation> <translation id="6555463879959038093">Non se puido copiar no portapapeis</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_hi.xtb b/ui/android/java/strings/translations/android_ui_strings_hi.xtb index 1e85c956..24ca413 100644 --- a/ui/android/java/strings/translations/android_ui_strings_hi.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_hi.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hi"> +<translation id="2405260961377511836">फ़ोटो पिकर नहीं खोला जा सकता</translation> <translation id="3240426699337459095">लिंक कॉपी की गई</translation> <translation id="6315516427814392808">कम मेमोरी के कारण पिछला ऑपरेशन पूरा नहीं हो पाया</translation> <translation id="6555463879959038093">क्लिपबोर्ड पर कॉपी बनाने में विफल रहा</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_is.xtb b/ui/android/java/strings/translations/android_ui_strings_is.xtb index d5f318b..56c4fc2e 100644 --- a/ui/android/java/strings/translations/android_ui_strings_is.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_is.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="is"> +<translation id="2405260961377511836">Ekki tókst að opna myndaveljara</translation> <translation id="3240426699337459095">Tengill afritaður</translation> <translation id="6315516427814392808">Lítið minni veldur því að ekki er hægt að ljúka fyrri aðgerð</translation> <translation id="6555463879959038093">Mistókst að afrita á klippiborð</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_it.xtb b/ui/android/java/strings/translations/android_ui_strings_it.xtb index a93574c..aee51740 100644 --- a/ui/android/java/strings/translations/android_ui_strings_it.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_it.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="it"> +<translation id="2405260961377511836">Impossibile aprire selettore foto</translation> <translation id="3240426699337459095">Link copiato</translation> <translation id="6315516427814392808">Impossibile completare l'operazione precedente. Memoria insufficiente.</translation> <translation id="6555463879959038093">Impossibile copiare negli appunti</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_iw.xtb b/ui/android/java/strings/translations/android_ui_strings_iw.xtb index 1b006f7..75e42e08 100644 --- a/ui/android/java/strings/translations/android_ui_strings_iw.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_iw.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="iw"> +<translation id="2405260961377511836">לא ניתן לפתוח כלי לבחירת תמונות</translation> <translation id="3240426699337459095">הקישור הועתק</translation> <translation id="6315516427814392808">לא ניתן להשלים את הפעולה הקודמת עקב מחסור בזיכרון</translation> <translation id="6555463879959038093">ההעתקה אל הלוח נכשלה</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_km.xtb b/ui/android/java/strings/translations/android_ui_strings_km.xtb index e147cb4..5946033 100644 --- a/ui/android/java/strings/translations/android_ui_strings_km.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_km.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="km"> +<translation id="2405260961377511836">មិនអាចបើកមុខងាររើសរូបថតបានទេ</translation> <translation id="3240426699337459095">បានចម្លងតំណ</translation> <translation id="6315516427814392808">មិនអាចបំពេញការដំណើរការពីមុនទេដោយសារមេម៉ូរីទាប</translation> <translation id="6555463879959038093">បានបរាជ័យក្នុងចម្លងទៅក្លីបបត</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_lt.xtb b/ui/android/java/strings/translations/android_ui_strings_lt.xtb index a769f1bf..2f3a20b 100644 --- a/ui/android/java/strings/translations/android_ui_strings_lt.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_lt.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lt"> +<translation id="2405260961377511836">Nepavyko atidaryti nuotraukų parinkimo priemonės</translation> <translation id="3240426699337459095">Nuoroda nukopijuota</translation> <translation id="6315516427814392808">Nepavyko baigti ankstesnio veiksmo dėl atminties trūkumo</translation> <translation id="6555463879959038093">Nepavyko nukopijuoti į iškarpinę</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_lv.xtb b/ui/android/java/strings/translations/android_ui_strings_lv.xtb index 2674f4b6..a45fa91 100644 --- a/ui/android/java/strings/translations/android_ui_strings_lv.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_lv.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lv"> +<translation id="2405260961377511836">Nevar atvērt foto atlasītāju</translation> <translation id="3240426699337459095">Saite nokopēta</translation> <translation id="6315516427814392808">Iepriekšējo darbību nevar pabeigt mazā atmiņas apjoma dēļ.</translation> <translation id="6555463879959038093">Neizdevās kopēt starpliktuvē.</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_mr.xtb b/ui/android/java/strings/translations/android_ui_strings_mr.xtb index f404dbfc..616df2fb 100644 --- a/ui/android/java/strings/translations/android_ui_strings_mr.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_mr.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="mr"> +<translation id="2405260961377511836">फोटो पिकर उघडता आले नाही</translation> <translation id="3240426699337459095">लिंक कॉपी केला</translation> <translation id="6315516427814392808">कमी मेमरीमुळे मागील ऑपरेशन पूर्ण करण्यात अक्षम</translation> <translation id="6555463879959038093">क्लिपबोर्डवर कॉपी करण्यात अयशस्वी</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_sq.xtb b/ui/android/java/strings/translations/android_ui_strings_sq.xtb index b4ce4dd..68e4faf 100644 --- a/ui/android/java/strings/translations/android_ui_strings_sq.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_sq.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sq"> +<translation id="2405260961377511836">Përzgjedhësi i fotografive nuk mund të hapet</translation> <translation id="3240426699337459095">Lidhja u kopjua</translation> <translation id="6315516427814392808">Operacioni i mëparshëm nuk mund të përfundonte për shkak të nivelit të ulët të memories</translation> <translation id="6555463879959038093">Dështoi të kopjojë në kujtesën e fragmenteve</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_sv.xtb b/ui/android/java/strings/translations/android_ui_strings_sv.xtb index f6c4a5d..169a9eeb 100644 --- a/ui/android/java/strings/translations/android_ui_strings_sv.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_sv.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sv"> +<translation id="2405260961377511836">Kunde inte öppna fotoväljaren</translation> <translation id="3240426699337459095">Länken har kopierats</translation> <translation id="6315516427814392808">Föregående åtgärd kan inte slutföras. För lite minne.</translation> <translation id="6555463879959038093">Det gick inte att kopiera till Urklipp</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_sw.xtb b/ui/android/java/strings/translations/android_ui_strings_sw.xtb index 62a3d65..6c8e290 100644 --- a/ui/android/java/strings/translations/android_ui_strings_sw.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_sw.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sw"> +<translation id="2405260961377511836">Kimeshindwa kufungua kiteua picha</translation> <translation id="3240426699337459095">Kiungo kimenakiliwa</translation> <translation id="6315516427814392808">Imeshindwa kukamilisha jukumu lililotangulia kwa sababu ya nafasi ndogo ya hifadhi</translation> <translation id="6555463879959038093">Imeshindwa kuongeza kwenye ubao wa kunakili.</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_tr.xtb b/ui/android/java/strings/translations/android_ui_strings_tr.xtb index 24a91ae..24c6c665 100644 --- a/ui/android/java/strings/translations/android_ui_strings_tr.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_tr.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="tr"> +<translation id="2405260961377511836">Fotoğraf seçici açılamadı</translation> <translation id="3240426699337459095">Bağlantı kopyalandı</translation> <translation id="6315516427814392808">Bellek yetersiz olduğundan önceki işlem tamamlanamadı</translation> <translation id="6555463879959038093">Panoya kopyalanamadı</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_uk.xtb b/ui/android/java/strings/translations/android_ui_strings_uk.xtb index 952acf6..8a62886 100644 --- a/ui/android/java/strings/translations/android_ui_strings_uk.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_uk.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uk"> +<translation id="2405260961377511836">Засіб вибору не відкривається</translation> <translation id="3240426699337459095">Посилання скопійовано</translation> <translation id="6315516427814392808">Не вдається закінчити попередню операцію через нестачу пам’яті</translation> <translation id="6555463879959038093">Не вдалося скопіювати в буфер обміну</translation>
diff --git a/ui/android/java/strings/translations/android_ui_strings_zu.xtb b/ui/android/java/strings/translations/android_ui_strings_zu.xtb index 677b3f0..bcbbade 100644 --- a/ui/android/java/strings/translations/android_ui_strings_zu.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_zu.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zu"> +<translation id="2405260961377511836">Ayikwazi ukuvula isicoshi sesithombe</translation> <translation id="3240426699337459095">Isixhumanisi sikopishiwe</translation> <translation id="6315516427814392808">Ayikwazi ukuqedelela ukusebenza okudlule ngenxa yememori ephansi</translation> <translation id="6555463879959038093">Yehlulekile ukukopisheka kubhodi lokunamathisela</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb index fc088099..10049765 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Beveilig</translation> <translation id="2638942478653899953">Google Drive kon nie bereik word nie. <ph name="BEGIN_LINK" />Meld asseblief af<ph name="END_LINK" /> en meld dan weer aan.</translation> <translation id="2649120831653069427">Reënboogvis</translation> +<translation id="2653059201992392941">Jy het <ph name="RETRIES" /> pogings oor.</translation> <translation id="2663066752008346276">Birmaans/Mianmar met Miansan-sleutelbord</translation> <translation id="2664412712123763093">Lêerligging</translation> <translation id="2718540689505416944">Installeer program met Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Letties</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" />-filter is af.</translation> <translation id="5494920125229734069">Kies almal</translation> +<translation id="5500104704744051184">Jy sal nie hierdie netwerk kan gebruik totdat jy die PUK ingevoer het nie</translation> <translation id="5500122897333236901">Yslands</translation> <translation id="5508696409934741614">Kolle</translation> <translation id="5522908512596376669">Lêerlys het na lysaansig toe verander.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> items</translation> <translation id="642282551015776456">Hierdie naam mag nie as 'n lêer- of vouernaam gebruik word nie</translation> <translation id="6423031066725912715">Viëtnamees met TCVN-sleutelbord</translation> +<translation id="6430271654280079150">Jy het 1 poging oor.</translation> <translation id="6485131920355264772">Kon nie spasieinligting gaan haal nie</translation> <translation id="6495925982925244349">Netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, seinsterkte <ph name="SIGNAL_STRENGTH" />%, deur jou administrateur bestuur, besonderhede</translation> <translation id="649877868557234318">Onttrek tans <ph name="FILE_NAME" /> na <ph name="FOLDER_NAME" /></translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Sinkroniseer tans <ph name="NUMBER_OF_FILES" /> items …</translation> <translation id="8600173386174225982">Lêerlys het na kleinkiekieaansig toe verander.</translation> <translation id="8601932370724196034">Crostini-prentlêer</translation> +<translation id="8608515571837163082">’n Verkeerde PIN is te veel kere ingevoer. Voer die persoonlike deblokkeringsleutel (PUK) van 8 syfers in wat deur die diensverskaffer verskaf is.</translation> <translation id="8609695766746872526">Yslands</translation> <translation id="863903787380594467">Verkeerde PIN. Jy het <ph name="RETRIES" /> pogings oor.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Poort</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb index aaac7c4d..4e40728c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Bu gün</translation> <translation id="2163152940313951844">Yanlış simvol: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">ABŞ Beynəlxalq kompüter klaviaturası ilə Portuqal dili</translation> +<translation id="2193661397560634290"><ph name="SPACE_USED" /> istifadə edilib</translation> <translation id="2198315389084035571">Sadələşmiş Çin</translation> <translation id="22085916256174561">Koreya</translation> <translation id="2208919847696382164">Linux ilə quraşdırın</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">F klaviaturası ilə Türk dili</translation> <translation id="2732839045120506979">Vyetnam dili (VNI)</translation> <translation id="2735623501230989521">Parallels Desktop'a <ph name="FOLDER_NAME" /> qovluğundakı fayllara giriş icazəsi verin</translation> +<translation id="2764206540577097904">Bütün fərdi Google Workspace yaddaşınızdan istifadə etmisiniz.</translation> <translation id="2771816809568414714">Pendir</translation> <translation id="2781645665747935084">Belçikalı</translation> <translation id="2782104745158847185">Linux tətbiqini quraşdırarkən xəta baş verdi</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Qısa ad istifadə edin</translation> <translation id="2949781154072577687"><ph name="DRIVE_NAME" /> formatlanır...</translation> <translation id="2951236788251446349">Meduza</translation> +<translation id="2958458230122209142">Yaddaş azdır. <ph name="TOTAL_SPACE" /> fərdi yaddaşdan <ph name="REMAINING_PERCENTAGE" />% qalıb.</translation> <translation id="2977940621473452797">Bu fayl Macintosh proqram təminatından istifadə edən kompüter üçündür. Bu, ChromeOS işlədən cihazınız üçün uyğun deyil.</translation> <translation id="2984337792991268709">Bu gün <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337"><ph name="COUNT" /> element bərpa edilir...</translation> @@ -669,6 +672,7 @@ <translation id="6823166707458800069">Bu qovluqda saxlanan bütün fayllar avtomatik olaraq onlayn yedəklənir.</translation> <translation id="6825883775269213504">Rus</translation> <translation id="6847101934483209767"><ph name="ENTRY_NAME" /> seçimdən silindi.</translation> +<translation id="6848194403851638089"><ph name="ORGANIZATION_NAME" /> bütün Google Workspace yaddaşından istifadə edib.</translation> <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Detallar</translation> <translation id="6861394552169064235">Fars</translation> <translation id="6862635236584086457">Bütün fayllar bu qovluqda saxlandı və avtomatik güncəlləşdi.</translation> @@ -700,6 +704,7 @@ <translation id="6989942356279143254">İsveç</translation> <translation id="6990081529015358884">Boş yer bitdi</translation> <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> qovluqlar seçildi</translation> +<translation id="7008426324576352165">Yükləməni tamamlamaq üçün təşkilatınız daha çox yaddaş tələb edir.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Quraşdırma uğursuz oldu.</translation> <translation id="7031639531908619281">Türk</translation> @@ -931,11 +936,13 @@ <translation id="8919081441417203123">Danimarka</translation> <translation id="8965697826696209160">Yer çatmır.</translation> <translation id="8997962250644902079">Çin dili (Ənənəvi) Pinyin</translation> +<translation id="8998871447376656508">Yükləməni tamamlamaq üçün Google Diskinizdə kifayət qədər boş yer yoxdur.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Administratorunuz tərəfindən idarə olunur, Detallar</translation> <translation id="9017798300203431059">Rus fonetikası</translation> <translation id="9034924485347205037">Linux faylları</translation> <translation id="9035012421917565900">Element yenidən "<ph name="DESTINATION_NAME" />" təyinatına köçürülə bilməz, ona görə də bu əməliyyat geri qaytara bilməyəcəksiniz.</translation> <translation id="9035689366572880647">Cari PİN'i daxil edin</translation> +<translation id="9037777873893411148">*Təşkilatın yaddaşı doludur</translation> <translation id="9038620279323455325">"<ph name="FILE_NAME" />" adlı fayl artıq mövcuddur. Fərqli ad seçin.</translation> <translation id="9046895021617826162">Qoşulma uğursuz oldu</translation> <translation id="9065512565307033593">Doğrulamaq alınmasa, şəbəkəyə girişiniz deaktiv ediləcək.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb index de9ccc2..e68e66a5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Абаронена</translation> <translation id="2638942478653899953">Не ўдалося атрымаць доступ да Google Дыска. <ph name="BEGIN_LINK" />Выйдзіце<ph name="END_LINK" /> і зноў увайдзіце ва ўліковы запіс.</translation> <translation id="2649120831653069427">Радужная рыбка</translation> +<translation id="2653059201992392941">Засталося спроб: <ph name="RETRIES" />.</translation> <translation id="2663066752008346276">Бірманская (М'янма) з раскладкай Myansan</translation> <translation id="2664412712123763093">Месцазнаходжанне файла</translation> <translation id="2718540689505416944">Усталяваць праграму з дапамогай Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Латышская</translation> <translation id="5489965683297092283">Выключаны фільтр "<ph name="FILTER_NAME" />".</translation> <translation id="5494920125229734069">Выбраць усё</translation> +<translation id="5500104704744051184">Вы не зможаце выкарыстоўваць гэту сетку, пакуль не ўведзяце PUK-код</translation> <translation id="5500122897333236901">Ісландская</translation> <translation id="5508696409934741614">Кропкі</translation> <translation id="5522908512596376669">Спіс файлаў перайшоў у рэжым спіса.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044">Элементаў: <ph name="NUMBER_OF_FILES" /></translation> <translation id="642282551015776456">Гэту назву нельга выкарыстоўваць як назву файла або папкі</translation> <translation id="6423031066725912715">В'етнамская (раскладка TCVN)</translation> +<translation id="6430271654280079150">У вас засталася 1 спроба.</translation> <translation id="6485131920355264772">Не ўдалося атрымаць звесткі пра вольнае месца</translation> <translation id="6495925982925244349">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, знаходзіцца пад кіраваннем адміністратара, падрабязныя звесткі</translation> <translation id="649877868557234318">Выманне файла "<ph name="FILE_NAME" />" ажыццяўляецца ў папку "<ph name="FOLDER_NAME" />"</translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Ідзе сінхранізацыя элементаў (<ph name="NUMBER_OF_FILES" />)...</translation> <translation id="8600173386174225982">Спіс файлаў перайшоў у рэжым мініяцюр.</translation> <translation id="8601932370724196034">Файл вобраза Crostini</translation> +<translation id="8608515571837163082">Занадта шмат разоў быў уведзены няправільны PIN-код. Увядзіце 8-значны PUK-код, атрыманы ад аператара.</translation> <translation id="8609695766746872526">Ісландская</translation> <translation id="863903787380594467">Няправільны PIN-код. Засталося спроб: <ph name="RETRIES" />.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – порт</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb index 0615d06..c6f6325c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">защитена</translation> <translation id="2638942478653899953">Не можа да се установи връзка с Google Диск. Моля, <ph name="BEGIN_LINK" />излезте от профила си<ph name="END_LINK" /> и влезте отново.</translation> <translation id="2649120831653069427">Риба дъга</translation> +<translation id="2653059201992392941">Остават ви <ph name="RETRIES" /> опита.</translation> <translation id="2663066752008346276">Бирмански с клавиатура Myansan</translation> <translation id="2664412712123763093">Местоположение на файла</translation> <translation id="2718540689505416944">Инсталиране на приложението с Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Латвийски</translation> <translation id="5489965683297092283">Филтърът „<ph name="FILTER_NAME" />“ е изключен.</translation> <translation id="5494920125229734069">Избиране на всички</translation> +<translation id="5500104704744051184">Няма да можете да използвате тази мрежа, докато не въведете PUK кода</translation> <translation id="5500122897333236901">исландски</translation> <translation id="5508696409934741614">Точки</translation> <translation id="5522908512596376669">Списъкът с файлове е превключен към списъчен изглед.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> елемента</translation> <translation id="642282551015776456">Това име не може да се използва като име на файл или на папка</translation> <translation id="6423031066725912715">Виетнамски с клавиатура TCVN</translation> +<translation id="6430271654280079150">Остава ви 1 опит.</translation> <translation id="6485131920355264772">Извличането на информацията за мястото не бе успешно</translation> <translation id="6495925982925244349">Мрежа <ph name="NETWORK_INDEX" /> от <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />%, управлява се от администратора ви, подробности</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> се извлича в(ъв) „<ph name="FOLDER_NAME" />“</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> елемента се синхронизират...</translation> <translation id="8600173386174225982">Списъкът с файлове е превключен към изглед с миниизображения.</translation> <translation id="8601932370724196034">Файл с образ на Crostini</translation> +<translation id="8608515571837163082">Въведохте грешен ПИН код твърде много пъти. Въведете 8-цифрения PUK код, предоставен от оператора.</translation> <translation id="8609695766746872526">Исландски</translation> <translation id="863903787380594467">Неправилен ПИН код. Остават ви <ph name="RETRIES" /> опита.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Порт</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb index a3b516c..53cd93de 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Danas</translation> <translation id="2163152940313951844">Nevažeći znak: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">portugalski s međunarodnom SAD tastaturom za PC</translation> +<translation id="2193661397560634290">Iskorišteno: <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">Pojednostavljeni kineski</translation> <translation id="22085916256174561">korejski</translation> <translation id="2208919847696382164">Instaliraj s Linuxom</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">turski s tastaturom F</translation> <translation id="2732839045120506979">vijetnamski VNI</translation> <translation id="2735623501230989521">Odobrite da Parallels Desktop pristupa fajlovima u folderu <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Iskoristili ste svu svoju privatnu pohranu na Google Workspaceu.</translation> <translation id="2771816809568414714">Sir</translation> <translation id="2781645665747935084">belgijska</translation> <translation id="2782104745158847185">Greška prilikom instalacije Linux aplikacije</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Koristite kraći naziv</translation> <translation id="2949781154072577687">Formatiranje diska <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Meduza</translation> +<translation id="2958458230122209142">Preostalo je malo pohrane, još <ph name="REMAINING_PERCENTAGE" />% od ukupno <ph name="TOTAL_SPACE" /> u vašoj privatnoj pohrani.</translation> <translation id="2977940621473452797">Ovaj fajl je dizajniran za računar koji koristi Macintosh softver. Sadržaj nije kompatibilan s vašim uređajem koji koristi ChromeOS. Pretražite Chrome Web trgovinu da pronađete odgovarajuću zamjensku aplikaciju.</translation> <translation id="2984337792991268709">Danas u <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Vraćanje sljedećeg broja stavki: <ph name="COUNT" />…</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">Za sve fajlove koje sačuvate u ovom folderu se automatski kreira sigurnosna kopija na mreži.</translation> <translation id="6825883775269213504">ruski</translation> <translation id="6847101934483209767">Stavka <ph name="ENTRY_NAME" /> je uklonjena iz odabira.</translation> +<translation id="6848194403851638089">Organizacija <ph name="ORGANIZATION_NAME" /> iskoristila je svu svoju pohranu na Google Workspaceu.</translation> <translation id="6856459657722366306">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, detalji</translation> <translation id="6861394552169064235">perzijski</translation> <translation id="6862635236584086457">Za sve datoteke spremljene u ovoj mapi automatski se izrađuje sigurnosna kopija na mreži</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">švedski</translation> <translation id="6990081529015358884">Nestalo vam je prostora</translation> <translation id="6998711733709403587">Broj odabranih foldera: <ph name="SELCTED_FOLDERS_COUNT" /></translation> +<translation id="7008426324576352165">Vaša organizacija treba imati više pohrane da bi se prijenos dovršio.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalacija nije uspjela:</translation> <translation id="7031639531908619281">turski</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">danski</translation> <translation id="8965697826696209160">Nema dovoljno prostora.</translation> <translation id="8997962250644902079">kineski (tradicionalni) pinyin</translation> +<translation id="8998871447376656508">Nema dovoljno slobodnog prostora na Google disku da biste dovršili prijenos.</translation> <translation id="9003940392834790328">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja vaš administrator, detalji</translation> <translation id="9017798300203431059">Ruska fonetska</translation> <translation id="9034924485347205037">Linux fajlovi</translation> <translation id="9035012421917565900">Stavke se ne mogu premjestiti nazad u "<ph name="DESTINATION_NAME" />", tako da nećete moći opozvati ovu radnju.</translation> <translation id="9035689366572880647">Unesite trenutni PIN</translation> +<translation id="9037777873893411148">*Pohrana organizacije je puna</translation> <translation id="9038620279323455325">Fajl s nazivom "<ph name="FILE_NAME" />" već postoji. Odaberite drugi naziv fajla.</translation> <translation id="9046895021617826162">Povezivanje nije uspjelo</translation> <translation id="9065512565307033593">Ako ne uspijete potvrditi, onemogućit će vam se pristup mreži.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb index 99637d8bd..cfdcd68 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Dnes</translation> <translation id="2163152940313951844">Neplatný znak: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">portugalština s klávesnicí USA – mezinárodní (PC)</translation> +<translation id="2193661397560634290">Využito <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">Zjednodušená čínština</translation> <translation id="22085916256174561">korejština</translation> <translation id="2208919847696382164">Instalovat aplikaci pro Linux</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">turečtina s klávesnicí F</translation> <translation id="2732839045120506979">vietnamština VNI</translation> <translation id="2735623501230989521">Udělujete nástroji Parallels Desktop oprávnění k přístupu k souborům ve složce <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Zaplnili jste celé své úložiště Google Workspace.</translation> <translation id="2771816809568414714">Sýr</translation> <translation id="2781645665747935084">Belgická klávesnice</translation> <translation id="2782104745158847185">Při instalaci aplikace pro Linux došlo k chybě</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Použijte kratší název</translation> <translation id="2949781154072577687">Formátování disku <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Medúza</translation> +<translation id="2958458230122209142">Na samostatném úložišti o velikosti <ph name="TOTAL_SPACE" /> už máte jen <ph name="REMAINING_PERCENTAGE" /> % místa.</translation> <translation id="2977940621473452797">Tento soubor je určen pro počítač se softwarem Macintosh. S vaším zařízením se systémem ChromeOS není kompatibilní. Vyhledejte v Internetovém obchodě Chrome vhodnou náhradní aplikaci.</translation> <translation id="2984337792991268709">Dnes <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Obnovování položek (<ph name="COUNT" />)…</translation> @@ -669,6 +672,7 @@ <translation id="6823166707458800069">Všechny soubory uložené v této složce se automaticky zálohují online.</translation> <translation id="6825883775269213504">ruština</translation> <translation id="6847101934483209767">Položka <ph name="ENTRY_NAME" /> byla odebrána z výběru.</translation> +<translation id="6848194403851638089"><ph name="ORGANIZATION_NAME" /> už nemá žádné volné místo v úložišti Google Workspace.</translation> <translation id="6856459657722366306">Síť <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %, podrobnosti</translation> <translation id="6861394552169064235">perština</translation> <translation id="6862635236584086457">Všechny soubory uložené v této složce se automaticky zálohují online</translation> @@ -700,6 +704,7 @@ <translation id="6989942356279143254">švédština</translation> <translation id="6990081529015358884">Došlo vám místo</translation> <translation id="6998711733709403587">Vybrané soubory: <ph name="SELCTED_FOLDERS_COUNT" /></translation> +<translation id="7008426324576352165">K dokončení nahrávání vaše organizace potřebuje víc úložného prostoru.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalace se nezdařila.</translation> <translation id="7031639531908619281">turečtina</translation> @@ -933,11 +938,13 @@ <translation id="8919081441417203123">dánština</translation> <translation id="8965697826696209160">Nedostatek místa.</translation> <translation id="8997962250644902079">čínština (tradiční) – pchin-jin</translation> +<translation id="8998871447376656508">K nahrání na Disk Google není dost volného místa.</translation> <translation id="9003940392834790328">Síť <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %, spravováno administrátorem, podrobnosti</translation> <translation id="9017798300203431059">Ruská fonetická klávesnice</translation> <translation id="9034924485347205037">Soubory systému Linux</translation> <translation id="9035012421917565900">Položky nelze přesunout zpět do týmu <ph name="DESTINATION_NAME" />. Tuto akci proto nebude možné vrátit zpět.</translation> <translation id="9035689366572880647">Zadejte aktuální PIN</translation> +<translation id="9037777873893411148">*Úložiště organizace je plné</translation> <translation id="9038620279323455325">Soubor s názvem „<ph name="FILE_NAME" />“ již existuje. Zvolte jiný název.</translation> <translation id="9046895021617826162">Připojení selhalo</translation> <translation id="9065512565307033593">Pokud se vám nepodaří provést ověření, bude vám zakázán přístup k síti.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb index 79afc3b..293bf0d3 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Gesichert</translation> <translation id="2638942478653899953">Google Drive konnte nicht erreicht werden. Bitte <ph name="BEGIN_LINK" />melde dich ab<ph name="END_LINK" /> und melde dich dann erneut an.</translation> <translation id="2649120831653069427">Regenbogenfisch</translation> +<translation id="2653059201992392941">Du hast noch <ph name="RETRIES" /> Versuche.</translation> <translation id="2663066752008346276">Burmesisch (Myanmar) mit Myansan-Tastatur</translation> <translation id="2664412712123763093">Dateispeicherort</translation> <translation id="2718540689505416944">App mit Linux installieren</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Lettisch</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" />-Filter ist aus.</translation> <translation id="5494920125229734069">Alle auswählen</translation> +<translation id="5500104704744051184">Du kannst dieses Mobilfunknetz erst verwenden, wenn du die PUK eingegeben hast</translation> <translation id="5500122897333236901">Isländisch</translation> <translation id="5508696409934741614">Punkte</translation> <translation id="5522908512596376669">Die Dateiliste wird jetzt in der Listenansicht angezeigt.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> Elemente</translation> <translation id="642282551015776456">Dieser Name darf nicht als Datei- oder Ordnername verwendet werden.</translation> <translation id="6423031066725912715">Vietnamesisch mit TCVN-Tastatur</translation> +<translation id="6430271654280079150">Du hast noch 1 Versuch.</translation> <translation id="6485131920355264772">Angaben zum Speicherplatz konnten nicht abgerufen werden.</translation> <translation id="6495925982925244349">Netzwerk <ph name="NETWORK_INDEX" /> von <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" /> %, von deinem Administrator verwaltet, Details</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> wird in <ph name="FOLDER_NAME" /> extrahiert</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> Elemente werden synchronisiert...</translation> <translation id="8600173386174225982">Die Dateiliste wird jetzt in der Miniaturansicht angezeigt.</translation> <translation id="8601932370724196034">Crostini-Bilddatei</translation> +<translation id="8608515571837163082">Es wurde zu oft die falsche PIN eingegeben. Gib den achtstelligen PIN-Entsperrschlüssel (PUK) ein, den du vom Mobilfunkanbieter erhalten hast.</translation> <translation id="8609695766746872526">Isländisch</translation> <translation id="863903787380594467">Falsche PIN. Du hast noch <ph name="RETRIES" /> Versuche.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb index 5d3cec5..91af54b 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Segura</translation> <translation id="2638942478653899953">No se pudo establecer conexión con Google Drive. <ph name="BEGIN_LINK" />Sal de la cuenta<ph name="END_LINK" /> y vuelve a acceder.</translation> <translation id="2649120831653069427">Pez arco iris</translation> +<translation id="2653059201992392941">Te quedan <ph name="RETRIES" /> intentos.</translation> <translation id="2663066752008346276">Birmano con teclado Myansan</translation> <translation id="2664412712123763093">Ubicación del archivo</translation> <translation id="2718540689505416944">Instalar la app con Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Letón</translation> <translation id="5489965683297092283">El filtro <ph name="FILTER_NAME" /> está desactivado.</translation> <translation id="5494920125229734069">Seleccionar todo</translation> +<translation id="5500104704744051184">Para usar esta red, debes ingresar la PUK.</translation> <translation id="5500122897333236901">Islandés</translation> <translation id="5508696409934741614">Puntos</translation> <translation id="5522908512596376669">La lista de archivos cambió a la vista de lista.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> elementos</translation> <translation id="642282551015776456">Este nombre no se puede utilizar como archivo del nombre de la carpeta</translation> <translation id="6423031066725912715">Vietnamita con teclado TCVN</translation> +<translation id="6430271654280079150">Te queda 1 intento.</translation> <translation id="6485131920355264772">No se pudo recuperar la información sobre el espacio.</translation> <translation id="6495925982925244349">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%, administrada por tu administrador, detalles</translation> <translation id="649877868557234318">Extrayendo <ph name="FILE_NAME" /> en <ph name="FOLDER_NAME" /></translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> elementos…</translation> <translation id="8600173386174225982">La lista de archivos cambió a la vista de miniaturas.</translation> <translation id="8601932370724196034">Archivo de imagen de Crostini</translation> +<translation id="8608515571837163082">Se ingresó el PIN de forma incorrecta demasiadas veces. Ingresa la clave personal de desbloqueo (PUK) de 8 dígitos que te proporcionó el proveedor.</translation> <translation id="8609695766746872526">Islandés</translation> <translation id="863903787380594467">El PIN es incorrecto. Te quedan <ph name="RETRIES" /> intentos.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" />: puerto</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb index 61dd666..5b767f4 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">ایمن شد</translation> <translation id="2638942478653899953">دسترسی به Google Drive امکانپذیر نیست. لطفاً <ph name="BEGIN_LINK" />از سیستم خارج شوید<ph name="END_LINK" /> و دوباره وارد شوید.</translation> <translation id="2649120831653069427">ماهی رنگینمکان</translation> +<translation id="2653059201992392941"><ph name="RETRIES" /> تلاش دیگر دارید.</translation> <translation id="2663066752008346276">میانماری/برمهای با صفحهکلید میانسان</translation> <translation id="2664412712123763093">محل فایل</translation> <translation id="2718540689505416944">نصب برنامه با Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">لتونیایی</translation> <translation id="5489965683297092283">فیلتر <ph name="FILTER_NAME" /> خاموش است.</translation> <translation id="5494920125229734069">انتخاب همه</translation> +<translation id="5500104704744051184">تا زمانیکه PUK را وارد نکنید، نمیتوانید از این شبکه استفاده کنید</translation> <translation id="5500122897333236901">ایسلندی</translation> <translation id="5508696409934741614">نقطهها</translation> <translation id="5522908512596376669">نمای فهرست فایل به نمای فهرستی تغییر کرده است.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> مورد</translation> <translation id="642282551015776456">این نام ممکن است بهعنوان نام فایلی از پوشه استفاده نشود</translation> <translation id="6423031066725912715">ویتنامی با صفحهکلید TCVN</translation> +<translation id="6430271654280079150">۱ تلاش دیگر دارید.</translation> <translation id="6485131920355264772">دریافت اطلاعات فضا انجام نشد</translation> <translation id="6495925982925244349">شبکه <ph name="NETWORK_INDEX" /> از <ph name="NETWORK_COUNT" />، <ph name="NETWORK_NAME" />، <ph name="SECURITY_STATUS" />، <ph name="CONNECTION_STATUS" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" />٪، تحتمدیریت سرپرست، جزئیات</translation> <translation id="649877868557234318">درحال استخراج <ph name="FILE_NAME" /> در <ph name="FOLDER_NAME" /></translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">در حال همگامسازی <ph name="NUMBER_OF_FILES" /> مورد...</translation> <translation id="8600173386174225982">فهرست فایل به نمای تصویر کوچک تغییر کرده است.</translation> <translation id="8601932370724196034">فایل تصویری Crostini</translation> +<translation id="8608515571837163082">پین نادرست دفعات زیادی وارد شده است. «کلید لغو انسداد شخصی» (PUK) ۸ رقمی را که شرکت مخابراتی ارائه کرده است وارد کنید.</translation> <translation id="8609695766746872526">ایسلندی</translation> <translation id="863903787380594467">پین اشتباه است. <ph name="RETRIES" /> تلاش دیگر دارید.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - درگاه</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb index a2b091d..a18642a6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Sécurisé</translation> <translation id="2638942478653899953">Impossible d'accéder à Google Drive. Veuillez vous <ph name="BEGIN_LINK" />déconnecter<ph name="END_LINK" />, puis vous reconnecter.</translation> <translation id="2649120831653069427">Poisson arc-en-ciel</translation> +<translation id="2653059201992392941">Il vous reste <ph name="RETRIES" /> tentatives.</translation> <translation id="2663066752008346276">Birman/Myanmar avec clavier MyanSan</translation> <translation id="2664412712123763093">Emplacement du fichier</translation> <translation id="2718540689505416944">Installer l'appli avec Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Letton</translation> <translation id="5489965683297092283">Le filtre <ph name="FILTER_NAME" /> est désactivé.</translation> <translation id="5494920125229734069">Tout sélectionner</translation> +<translation id="5500104704744051184">Vous ne pourrez pas utiliser ce réseau avant d'avoir saisi la clé PUK</translation> <translation id="5500122897333236901">Islandais</translation> <translation id="5508696409934741614">Points</translation> <translation id="5522908512596376669">Les fichiers s'affichent désormais sous forme de liste.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> éléments</translation> <translation id="642282551015776456">Ce nom ne peut pas être utilisé comme nom de fichier ni de dossier.</translation> <translation id="6423031066725912715">Vietnamien (avec clavier TCVN)</translation> +<translation id="6430271654280079150">Il vous reste 1 tentative.</translation> <translation id="6485131920355264772">Échec de la récupération des informations sur l'espace disponible</translation> <translation id="6495925982925244349">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, détails</translation> <translation id="649877868557234318">Extraction de <ph name="FILE_NAME" /> vers <ph name="FOLDER_NAME" /></translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Synchronisation de <ph name="NUMBER_OF_FILES" /> éléments en cours…</translation> <translation id="8600173386174225982">Les fichiers s'affichent désormais sous forme de vignettes.</translation> <translation id="8601932370724196034">Fichier image Crostini</translation> +<translation id="8608515571837163082">Vous avez saisi un code PIN erroné trop de fois. Saisissez le code de déblocage (clé PUK) à huit chiffres fourni par votre opérateur.</translation> <translation id="8609695766746872526">Islandais</translation> <translation id="863903787380594467">Code PIN incorrect. Il vous reste <ph name="RETRIES" /> tentatives.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb index a706cbb..d9db66a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Protexida</translation> <translation id="2638942478653899953">Non se puido acceder a Google Drive. <ph name="BEGIN_LINK" />Pecha sesión<ph name="END_LINK" /> e volve iniciala.</translation> <translation id="2649120831653069427">Peixe arco iris</translation> +<translation id="2653059201992392941">Quédanche <ph name="RETRIES" /> intentos.</translation> <translation id="2663066752008346276">Birmano (Myanmar) con teclado myansan</translation> <translation id="2664412712123763093">Localización do ficheiro</translation> <translation id="2718540689505416944">Instalar aplicación con Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Letón</translation> <translation id="5489965683297092283">Desactivouse o filtro <ph name="FILTER_NAME" />.</translation> <translation id="5494920125229734069">Seleccionar todo</translation> +<translation id="5500104704744051184">Non poderás usar esta rede mentres non metas o PUK</translation> <translation id="5500122897333236901">Islandés</translation> <translation id="5508696409934741614">Puntos</translation> <translation id="5522908512596376669">A lista de ficheiros cambiou á vista de lista.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> elementos</translation> <translation id="642282551015776456">Non se pode utilizar este nome como nome de ficheiro de cartafol</translation> <translation id="6423031066725912715">Vietnamita con teclado TCVN</translation> +<translation id="6430271654280079150">Quédache 1 intento.</translation> <translation id="6485131920355264772">Non se puido recuperar a información sobre o espazo</translation> <translation id="6495925982925244349">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /> %, xestionada polo teu administrador, detalles</translation> <translation id="649877868557234318">Extraendo <ph name="FILE_NAME" /> en <ph name="FOLDER_NAME" /></translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> elementos...</translation> <translation id="8600173386174225982">A lista de ficheiros cambiou á vista de miniatura.</translation> <translation id="8601932370724196034">Ficheiro de imaxe de Crostini</translation> +<translation id="8608515571837163082">Meteuse un PIN incorrecto demasiadas veces. Escribe a clave de desbloqueo persoal (PUK) de 8 díxitos que che facilitou o operador.</translation> <translation id="8609695766746872526">Islandés</translation> <translation id="863903787380594467">O PIN é incorrecto. Quédanche <ph name="RETRIES" /> intentos.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" />: porto</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb index 6c816f0..0fc74cb1b 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">सुरक्षित</translation> <translation id="2638942478653899953">Google डिस्क तक नहीं पहुंचा जा सका. कृपया <ph name="BEGIN_LINK" />लॉग आउट करें<ph name="END_LINK" /> और वापस प्रवेश करें.</translation> <translation id="2649120831653069427">रेनबोफ़िश</translation> +<translation id="2653059201992392941">आपके पास <ph name="RETRIES" /> मौके बचे हैं.</translation> <translation id="2663066752008346276">मयन्सन कीबोर्ड के साथ बर्मीज़/म्यांमार</translation> <translation id="2664412712123763093">फ़ाइल की जगह</translation> <translation id="2718540689505416944">Linux पर ऐप्लिकेशन की मदद से इंस्टॉल करें</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">लातवियन</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" /> फ़िल्टर बंद है.</translation> <translation id="5494920125229734069">सभी को चुनें</translation> +<translation id="5500104704744051184">जब तक PUK नहीं डाला जाता, तब तक इस नेटवर्क का इस्तेमाल नहीं किया जा सकेगा</translation> <translation id="5500122897333236901">आइसलैंडिक</translation> <translation id="5508696409934741614">बिंदु</translation> <translation id="5522908512596376669">फ़ाइल की सूची को अब सूची की तरह दिखाया जा रहा है.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> आइटम</translation> <translation id="642282551015776456">यह नाम किसी फ़ाइल या फ़ोल्डर के लिए उपयोग नहीं किया जा सकता</translation> <translation id="6423031066725912715">टीसीवीएन कीबोर्ड के साथ वियतनामीज़</translation> +<translation id="6430271654280079150">आपके पास 1 मौका बचा है.</translation> <translation id="6485131920355264772">स्थान जानकारी पाने में विफल रहा</translation> <translation id="6495925982925244349"><ph name="NETWORK_COUNT" /> में से <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%, आपका एडमिन प्रबंधित करता है, जानकारी</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> को <ph name="FOLDER_NAME" /> में एक्सट्रैक्ट किया जा रहा है</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> आइटम समन्वयित कर रहा है...</translation> <translation id="8600173386174225982">फ़ाइल की सूची अब थंबनेल की तरह दिखाई जा रही है.</translation> <translation id="8601932370724196034">Crostini इमेज फ़ाइल</translation> +<translation id="8608515571837163082">कई बार गलत पिन डाला गया. मोबाइल और इंटरनेट सेवा देने वाली कंपनी से मिली आठ अंकों वाली निजी अनब्लॉकिंग कुंजी (PUK) डालें.</translation> <translation id="8609695766746872526">आइसलैंडिक</translation> <translation id="863903787380594467">आपने गलत पिन डाला है. आप <ph name="RETRIES" /> बार और कोशिश कर सकते हैं.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - पोर्ट</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb index efd441d1..65e25abd 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Danas</translation> <translation id="2163152940313951844">Nevažeći znak: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">portugalski s američkom međunarodnom tipkovnicom za PC</translation> +<translation id="2193661397560634290">Iskorišteno: <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">pojednostavnjeni kineski</translation> <translation id="22085916256174561">korejski</translation> <translation id="2208919847696382164">Instaliranje uz Linux</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">turski s F tipkovnicom</translation> <translation id="2732839045120506979">vijetnamski VNI</translation> <translation id="2735623501230989521">Dajte Parallels Desktopu dopuštenje za pristup datotekama u mapi <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Iskoristili ste svu svoju privatnu pohranu na Google Workspaceu.</translation> <translation id="2771816809568414714">Sir</translation> <translation id="2781645665747935084">belgijska</translation> <translation id="2782104745158847185">Pogreška pri instaliranju Linux aplikacije</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Upotrijebite kraći naziv</translation> <translation id="2949781154072577687">Formatiranje diska <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Meduza</translation> +<translation id="2958458230122209142">Preostalo je malo pohrane, još <ph name="REMAINING_PERCENTAGE" />% od ukupno <ph name="TOTAL_SPACE" /> u vašoj privatnoj pohrani.</translation> <translation id="2977940621473452797">Ta je datoteka predviđena za računalo sa softverom Mac OS. Nije kompatibilna s vašim uređajem na kojem se izvodi Chrome OS. Potražite odgovarajuću zamjensku aplikaciju u Chrome web-trgovini.</translation> <translation id="2984337792991268709">Danas u <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Vraćanje stavki (ukupno <ph name="COUNT" />)...</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">Sve datoteke spremljene u ovoj mapi automatski se sigurnosno kopiraju online.</translation> <translation id="6825883775269213504">Ruski</translation> <translation id="6847101934483209767">Stavka <ph name="ENTRY_NAME" /> uklonjena je iz odabira.</translation> +<translation id="6848194403851638089">Organizacija <ph name="ORGANIZATION_NAME" /> iskoristila je svu svoju pohranu na Google Workspaceu.</translation> <translation id="6856459657722366306">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, pojedinosti</translation> <translation id="6861394552169064235">perzijski</translation> <translation id="6862635236584086457">Za sve datoteke spremljene u ovoj mapi automatski se izrađuje sigurnosna kopija na mreži</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">švedski</translation> <translation id="6990081529015358884">Ponestalo vam je prostora</translation> <translation id="6998711733709403587">Broj odabranih mapa: <ph name="SELCTED_FOLDERS_COUNT" /></translation> +<translation id="7008426324576352165">Vaša organizacija treba imati više pohrane da bi se prijenos dovršio.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalacija nije uspjela.</translation> <translation id="7031639531908619281">turski</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">Danski</translation> <translation id="8965697826696209160">Nema dovoljno prostora.</translation> <translation id="8997962250644902079">kineski (tradicionalni) pinyin</translation> +<translation id="8998871447376656508">Nema dovoljno slobodnog prostora na Google disku da biste dovršili prijenos.</translation> <translation id="9003940392834790328">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja administrator, pojedinosti</translation> <translation id="9017798300203431059">ruska (fonetska)</translation> <translation id="9034924485347205037">Linux datoteke</translation> <translation id="9035012421917565900">Te se stavke ne mogu vratiti na odredište "<ph name="DESTINATION_NAME" />", tako da nećete moći poništiti tu radnju.</translation> <translation id="9035689366572880647">Unesite trenutačni PIN</translation> +<translation id="9037777873893411148">*Pohrana organizacije je puna</translation> <translation id="9038620279323455325">Datoteka s nazivom "<ph name="FILE_NAME" />" već postoji. Odaberite drugi naziv.</translation> <translation id="9046895021617826162">Neuspjelo povezivanje</translation> <translation id="9065512565307033593">Ako potvrda nije bila uspješna, nećete imati pristup mreži.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb index 5013fa23..bc56e57 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Læst</translation> <translation id="2638942478653899953">Ekki náðist í Google Drive. <ph name="BEGIN_LINK" />Skráðu þig út<ph name="END_LINK" /> og svo aftur inn.</translation> <translation id="2649120831653069427">Regnbogafiskur</translation> +<translation id="2653059201992392941">Þú átt <ph name="RETRIES" /> tilraunir eftir.</translation> <translation id="2663066752008346276">Búrmanska/Myanmar með Myansan-lyklaborði</translation> <translation id="2664412712123763093">Staðsetning skráar</translation> <translation id="2718540689505416944">Setja upp forrit með Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Lettneska</translation> <translation id="5489965683297092283">Slökkt er á síunni <ph name="FILTER_NAME" />.</translation> <translation id="5494920125229734069">Velja allt</translation> +<translation id="5500104704744051184">Þú munt ekki geta notað þetta net þar til þú hefur slegið inn PUK-númerið</translation> <translation id="5500122897333236901">Íslenskt</translation> <translation id="5508696409934741614">Punktar</translation> <translation id="5522908512596376669">Skráalista var breytt í listayfirlit.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> atriði</translation> <translation id="642282551015776456">Ekki er hægt að nota þetta heiti sem skráar- eða möppuheiti</translation> <translation id="6423031066725912715">Víetnamska með TCVN-lyklaborði</translation> +<translation id="6430271654280079150">Þú átt 1 tilraun eftir.</translation> <translation id="6485131920355264772">Mistókst að sækja upplýsingar um pláss</translation> <translation id="6495925982925244349">Netkerfi <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, <ph name="SIGNAL_STRENGTH" />% sendistyrkur, stjórnað af kerfisstjóra, upplýsingar</translation> <translation id="649877868557234318">Draga út <ph name="FILE_NAME" /> í <ph name="FOLDER_NAME" /></translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Samstillir <ph name="NUMBER_OF_FILES" /> atriði...</translation> <translation id="8600173386174225982">Skráalista var breytt í smámyndayfirlit.</translation> <translation id="8601932370724196034">Crostini-myndskrá</translation> +<translation id="8608515571837163082">Rangt PIN-númer var slegið inn of oft. Sláðu inn 8 talna PUK-númerið frá símafyrirtækinu.</translation> <translation id="8609695766746872526">Íslenska</translation> <translation id="863903787380594467">Rangt PIN-númer. <ph name="RETRIES" /> tilraunir eru eftir.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – gátt</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_it.xtb b/ui/chromeos/translations/ui_chromeos_strings_it.xtb index 77424715..0d35fb6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_it.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Protetta</translation> <translation id="2638942478653899953">Impossibile raggiungere Google Drive. <ph name="BEGIN_LINK" />Esci<ph name="END_LINK" /> e accedi di nuovo.</translation> <translation id="2649120831653069427">Pesce arcobaleno</translation> +<translation id="2653059201992392941">Hai ancora <ph name="RETRIES" /> tentativi a disposizione.</translation> <translation id="2663066752008346276">Birmano/Myanmar con tastiera Myansan</translation> <translation id="2664412712123763093">Posizione file</translation> <translation id="2718540689505416944">Installa app con Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Lettone</translation> <translation id="5489965683297092283">Il filtro <ph name="FILTER_NAME" /> non è attivo.</translation> <translation id="5494920125229734069">Seleziona tutto</translation> +<translation id="5500104704744051184">Non potrai utilizzare questa rete finché non inserisci il PUK</translation> <translation id="5500122897333236901">Islandese</translation> <translation id="5508696409934741614">Punti</translation> <translation id="5522908512596376669">L'elenco dei file è stato modificato in visualizzazione elenco.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> elementi</translation> <translation id="642282551015776456">Questo nome non può essere utilizzato per un file o una cartella</translation> <translation id="6423031066725912715">Vietnamita con tastiera TCVN</translation> +<translation id="6430271654280079150">Hai ancora 1 tentativo a disposizione.</translation> <translation id="6485131920355264772">Impossibile recuperare le informazioni sullo spazio</translation> <translation id="6495925982925244349">Rete <ph name="NETWORK_INDEX" /> di <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, intensità del segnale <ph name="SIGNAL_STRENGTH" />%, gestita dall'amministratore, dettagli</translation> <translation id="649877868557234318">Estrazione del file <ph name="FILE_NAME" /> nella cartella <ph name="FOLDER_NAME" /> in corso…</translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Sincronizzazione di <ph name="NUMBER_OF_FILES" /> elementi...</translation> <translation id="8600173386174225982">L'elenco dei file è stato modificato in visualizzazione miniatura.</translation> <translation id="8601932370724196034">File immagine Crostini</translation> +<translation id="8608515571837163082">Hai inserito troppe volte un PIN non corretto. Inserisci il PUK (codice personale di sblocco) di 8 cifre fornito dall'operatore.</translation> <translation id="8609695766746872526">Islandese</translation> <translation id="863903787380594467">PIN errato. Hai ancora <ph name="RETRIES" /> tentativi a disposizione.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Porta</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb index 7669360..6161db5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">מאובטחת</translation> <translation id="2638942478653899953">לא ניתן היה להגיע אל Google Drive. <ph name="BEGIN_LINK" />יש לצאת<ph name="END_LINK" /> ואז להתחבר שוב.</translation> <translation id="2649120831653069427">דג</translation> +<translation id="2653059201992392941">נותרו לך עוד <ph name="RETRIES" /> ניסיונות.</translation> <translation id="2663066752008346276">בורמזית/מיאנמר עם מקלדת Myansan</translation> <translation id="2664412712123763093">מיקום הקובץ</translation> <translation id="2718540689505416944">התקנת אפליקציה עם Linux</translation> @@ -529,6 +530,7 @@ <translation id="5489067830765222292">לטבית</translation> <translation id="5489965683297092283">המסנן <ph name="FILTER_NAME" /> מושבת.</translation> <translation id="5494920125229734069">בחירת הכול</translation> +<translation id="5500104704744051184">לא תהיה לך אפשרות להשתמש ברשת הזו עד להזנת PUK</translation> <translation id="5500122897333236901">איסלנדית</translation> <translation id="5508696409934741614">נקודות</translation> <translation id="5522908512596376669">רשימת הקבצים מוצגת עכשיו בתצוגת רשימה.</translation> @@ -634,6 +636,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> פריטים</translation> <translation id="642282551015776456">ייתכן שלא ניתן להשתמש בשם זה כשם קובץ או תיקייה</translation> <translation id="6423031066725912715">וייטנאמית עם מקלדת TCVN</translation> +<translation id="6430271654280079150">נותר לך עוד ניסיון אחד.</translation> <translation id="6485131920355264772">נכשל בקבלת מידע על שטח האחסון</translation> <translation id="6495925982925244349">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />%, הרשת מנוהלת על ידי מנהל המערכת שלך, פרטים</translation> <translation id="649877868557234318">מתבצע חילוץ של הקובץ <ph name="FILE_NAME" /> אל <ph name="FOLDER_NAME" /></translation> @@ -900,6 +903,7 @@ <translation id="8579285237314169903">מתבצע סנכרון ל-<ph name="NUMBER_OF_FILES" /> פריטים...</translation> <translation id="8600173386174225982">רשימת הקבצים מוצגת עכשיו בתצוגת תמונות ממוזערות.</translation> <translation id="8601932370724196034">קובץ תמונה Crostini</translation> +<translation id="8608515571837163082">הוזן קוד אימות שגוי יותר מדי פעמים. צריך להזין את המפתח האישי לביטול החסימה (PUK) בן 8 הספרות שקיבלת מהספק.</translation> <translation id="8609695766746872526">איסלנדית</translation> <translation id="863903787380594467">קוד האימות שגוי. נותרו לך עוד <ph name="RETRIES" /> ניסיונות.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – יציאה</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_km.xtb b/ui/chromeos/translations/ui_chromeos_strings_km.xtb index cc462e0..894d71a2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_km.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">មានសុវត្ថិភាព</translation> <translation id="2638942478653899953">មិនអាចទៅកាន់ Google Drive ទេ។ សូម <ph name="BEGIN_LINK" />ចាកចេញ<ph name="END_LINK" /> ហើយចូលត្រលប់វិញ។</translation> <translation id="2649120831653069427">ត្រីឥន្ធនូ</translation> +<translation id="2653059201992392941">អ្នកអាចព្យាយាមបាន <ph name="RETRIES" /> ដងទៀត។</translation> <translation id="2663066752008346276">ភាសាភូមា/មីយ៉ាន់ម៉ាដែលប្រើក្ដារចុចមីយ៉ានសាន</translation> <translation id="2664412712123763093">ទីតាំងឯកសារ</translation> <translation id="2718540689505416944">ដំឡើងកម្មវិធីតាមរយៈ Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">ភាសាឡាតវី</translation> <translation id="5489965683297092283">តម្រង<ph name="FILTER_NAME" />ត្រូវបានបិទ។</translation> <translation id="5494920125229734069">ជ្រើសរើសទាំងអស់</translation> +<translation id="5500104704744051184">អ្នកនឹងមិនអាចប្រើបណ្ដាញនេះបានទេរហូតទាល់តែអ្នកបញ្ចូល PUK</translation> <translation id="5500122897333236901">ភាសាអាយឡែន</translation> <translation id="5508696409934741614">ចំណុច</translation> <translation id="5522908512596376669">បញ្ជីឯកសារបានប្ដូរទៅទិដ្ឋភាពបញ្ជី។</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044">ធាតុ <ph name="NUMBER_OF_FILES" /></translation> <translation id="642282551015776456">ឈ្មោះនេះមិនគួរប្រើជាឯកសារនៃឈ្មោះថតឯកសារទេ</translation> <translation id="6423031066725912715">ភាសាវៀតណាមដែលប្រើក្ដារចុច TCVN</translation> +<translation id="6430271654280079150">អ្នកអាចព្យាយាមបាន 1 ដងទៀត។</translation> <translation id="6485131920355264772">បានបរាជ័យក្នុងការទាញត្រលប់ព័ត៌មានចន្លោះផ្ទុក</translation> <translation id="6495925982925244349">បណ្ដាញ <ph name="NETWORK_INDEX" /> នៃ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" />%, គ្រប់គ្រងដោយអ្នកគ្រប់គ្រងរបស់អ្នក, ព័ត៌មានលម្អិត</translation> <translation id="649877868557234318">កំពុងស្រង់ <ph name="FILE_NAME" /> ទៅ <ph name="FOLDER_NAME" /></translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">កំពុងធ្វើសមកម្មធាតុ <ph name="NUMBER_OF_FILES" />...</translation> <translation id="8600173386174225982">បញ្ជីឯកសារបានប្ដូរទៅទិដ្ឋភាពរូបភាពតូចៗ។</translation> <translation id="8601932370724196034">ឯកសាររូបភាព Crostini</translation> +<translation id="8608515571837163082">បានបញ្ចូលកូដ PIN មិនត្រឹមត្រូវច្រើនដងពេក។ បញ្ចូលកូដឈប់ទប់ស្កាត់ផ្ទាល់ខ្លួន (PUK) ចំនួន 8 ខ្ទង់ដែលផ្តល់ដោយក្រុមហ៊ុនសេវាទូរសព្ទ។</translation> <translation id="8609695766746872526">ភាសាអ៊ីស្លង់</translation> <translation id="863903787380594467">កូដ PIN មិនត្រឹមត្រូវទេ។ អ្នកអាចព្យាយាមបាន <ph name="RETRIES" /> ដងទៀត។</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - រន្ធ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb index 6e2b671..efde65c3 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -125,7 +125,7 @@ <translation id="2046702855113914483">Рамён</translation> <translation id="2070909990982335904">Чекит менен башталган аталыштар тутумга арналган. Башка ат тандаңыз.</translation> <translation id="2079545284768500474">Кайтаруу</translation> -<translation id="2084108471225856927">Түзмөктүн жөндөөлөрү</translation> +<translation id="2084108471225856927">Түзмөктү тууралоо</translation> <translation id="2084809735218147718">"Рахмат" деп жазып жаткан адам</translation> <translation id="2085470240340828803">"<ph name="FILENAME" />" деген файл мурунтан эле бар. Эмне кыласыз?</translation> <translation id="2088690981887365033">VPN тармагы</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb index f0d4542d..6458e4c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Apsaugota</translation> <translation id="2638942478653899953">Nepavyko pasiekti „Google“ disko. <ph name="BEGIN_LINK" />Atsijunkite<ph name="END_LINK" /> ir vėl prisijunkite.</translation> <translation id="2649120831653069427">Vaivorykštinė žuvis</translation> +<translation id="2653059201992392941">Liko bandymų: <ph name="RETRIES" />.</translation> <translation id="2663066752008346276">Birmiečių k. (Mianmaro) su „Myansan“ klaviatūra</translation> <translation id="2664412712123763093">Failo vieta</translation> <translation id="2718540689505416944">Programos diegimas naudojant „Linux“</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Latvių k.</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" /> filtras išjungtas.</translation> <translation id="5494920125229734069">Pasirinkti viską</translation> +<translation id="5500104704744051184">Negalėsite naudoti šio tinklo, kol įvesite PUK kodą</translation> <translation id="5500122897333236901">Islandų</translation> <translation id="5508696409934741614">Taškai</translation> <translation id="5522908512596376669">Failų sąrašas pakeistas į sąrašo rodinį.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044">Elementų: <ph name="NUMBER_OF_FILES" /></translation> <translation id="642282551015776456">Šio pavadinimo negalima naudoti kaip aplanko pavadinimo</translation> <translation id="6423031066725912715">Vietnamiečių k. su TCVN klaviatūra</translation> +<translation id="6430271654280079150">Liko vienas bandymas.</translation> <translation id="6485131920355264772">Nepavyko nuskaityti vietos informacijos</translation> <translation id="6495925982925244349"><ph name="NETWORK_INDEX" /> tinklas iš <ph name="NETWORK_COUNT" />, „<ph name="NETWORK_NAME" />“, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, signalo stiprumas <ph name="SIGNAL_STRENGTH" /> %, tvarko administratorius, išsami informacija</translation> <translation id="649877868557234318">Failas <ph name="FILE_NAME" /> išarchyvuojamas į aplanką „<ph name="FOLDER_NAME" />“</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Sinchronizuojama elementų: <ph name="NUMBER_OF_FILES" />…</translation> <translation id="8600173386174225982">Failų sąrašas pakeistas į miniatiūrų rodinį.</translation> <translation id="8601932370724196034">„Crostini“ vaizdo failas</translation> +<translation id="8608515571837163082">Per daug kartų įvestas netinkamas PIN kodas. Įveskite operatoriaus pateiktą aštuonių skaitmenų asmeninį blokavimo panaikinimo raktą (PUK kodą).</translation> <translation id="8609695766746872526">Islandų k.</translation> <translation id="863903787380594467">Netinkamas PIN kodas. Liko bandymų: <ph name="RETRIES" />.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – prievadas</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb index 5b8655e9..68c44465 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Šodien</translation> <translation id="2163152940313951844">Nederīga rakstzīme: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">Portugāļu, ar ASV starptautisko datora tastatūru</translation> +<translation id="2193661397560634290">Izmantots: <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">Ķīniešu (vienkāršotā)</translation> <translation id="22085916256174561">Korejiešu</translation> <translation id="2208919847696382164">Instalēt operētājsistēmā Linux</translation> @@ -193,6 +194,7 @@ <translation id="2621713457727696555">Aizsargāts</translation> <translation id="2638942478653899953">Nevarēja piekļūt Google diskam. Lūdzu, <ph name="BEGIN_LINK" />atsakieties<ph name="END_LINK" /> un atkārtoti piesakieties.</translation> <translation id="2649120831653069427">Varavīksnes zivs</translation> +<translation id="2653059201992392941">Atlikuši <ph name="RETRIES" /> mēģinājumi.</translation> <translation id="2663066752008346276">Birmiešu (Mjanma), ar Myansan tastatūru</translation> <translation id="2664412712123763093">Faila atrašanās vieta</translation> <translation id="2718540689505416944">Instalēt lietotni operētājsistēmā Linux</translation> @@ -200,6 +202,7 @@ <translation id="2724954091494693138">Turku, ar F tastatūru</translation> <translation id="2732839045120506979">Vjetnamiešu, VNI</translation> <translation id="2735623501230989521">Parallels Desktop saņems atļauju piekļūt failiem mapē <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Jūs esat izmantojis visu savu individuālo Google Workspace krātuvi.</translation> <translation id="2771816809568414714">Siers</translation> <translation id="2781645665747935084">Beļģu</translation> <translation id="2782104745158847185">Instalējot Linux lietojumprogrammu, radās kļūda</translation> @@ -220,6 +223,7 @@ <translation id="2943503720238418293">Izmantojiet īsāku nosaukumu.</translation> <translation id="2949781154072577687">Notiek diska “<ph name="DRIVE_NAME" />” formatēšana...</translation> <translation id="2951236788251446349">Medūza</translation> +<translation id="2958458230122209142">Jūsu individuālajā <ph name="TOTAL_SPACE" /> krātuvē ir atlicis maz vietas (<ph name="REMAINING_PERCENTAGE" />%).</translation> <translation id="2977940621473452797">Šis fails ir paredzēts datoram ar Macintosh programmatūru. Tas nav saderīgs ar jūsu ierīci, kurā darbojas operētājsistēma Chrome OS. Lūdzu, meklējiet Chrome interneta veikalā atbilstošu aizstājošo lietotni.</translation> <translation id="2984337792991268709">Šodien plkst. <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Notiek vienumu atjaunošana (skaits: <ph name="COUNT" />)…</translation> @@ -528,6 +532,7 @@ <translation id="5489067830765222292">Latviešu</translation> <translation id="5489965683297092283">Filtrs “<ph name="FILTER_NAME" />” ir izslēgts.</translation> <translation id="5494920125229734069">Atlasīt visu</translation> +<translation id="5500104704744051184">Nevarēsiet lietot šo tīklu, kamēr nebūsiet ievadījis PUK.</translation> <translation id="5500122897333236901">Īslandiešu valoda</translation> <translation id="5508696409934741614">Punkti</translation> <translation id="5522908512596376669">Failu saraksts ir mainīts uz saraksta skatu.</translation> @@ -633,6 +638,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> vienumi</translation> <translation id="642282551015776456">Šo nosaukumu nedrīkst izmantot kā mapes nosaukuma failu</translation> <translation id="6423031066725912715">Vjetnamiešu, ar TCVN tastatūru</translation> +<translation id="6430271654280079150">Atlicis viens mēģinājums.</translation> <translation id="6485131920355264772">Neizdevās izgūt informāciju par brīvo vietu</translation> <translation id="6495925982925244349"><ph name="NETWORK_INDEX" />. tīkls no <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, signāla stiprums<ph name="SIGNAL_STRENGTH" />%, pārvalda jūsu administrators, informācija</translation> <translation id="649877868557234318">Faila “<ph name="FILE_NAME" />” izvilkšana mapē “<ph name="FOLDER_NAME" />”</translation> @@ -667,6 +673,7 @@ <translation id="6823166707458800069">Visi faili, kas saglabāti šajā mapē, tiek automātiski dublēti tiešsaistē.</translation> <translation id="6825883775269213504">Krievu valoda</translation> <translation id="6847101934483209767">Vienums “<ph name="ENTRY_NAME" />” ir noņemts no atlases.</translation> +<translation id="6848194403851638089">Organizācijas <ph name="ORGANIZATION_NAME" /> Google Workspace krātuve ir pilna.</translation> <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />. tīkls no <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, signāla stiprums procentos: <ph name="SIGNAL_STRENGTH" />, informācija</translation> <translation id="6861394552169064235">Persiešu</translation> <translation id="6862635236584086457">Visi faili, kas saglabāti šajā mapē, tiek automātiski dublēti tiešsaistē.</translation> @@ -698,6 +705,7 @@ <translation id="6989942356279143254">Zviedru</translation> <translation id="6990081529015358884">Jums trūkst vietas</translation> <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> mapes atlasītas</translation> +<translation id="7008426324576352165">Jūsu organizācijai ir nepieciešama lielāka krātuve, lai pabeigtu augšupielādi.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalēšana neizdevās.</translation> <translation id="7031639531908619281">Turku</translation> @@ -899,6 +907,7 @@ <translation id="8579285237314169903">Notiek <ph name="NUMBER_OF_FILES" /> vienumu sinhronizēšana...</translation> <translation id="8600173386174225982">Failu saraksts ir mainīts uz sīktēlu skatu.</translation> <translation id="8601932370724196034">Crostini attēla fails</translation> +<translation id="8608515571837163082">Pārāk daudz reižu tika ievadīts nepareizs PIN. Ievadiet astoņu ciparu personisko atbloķēšanas atslēgu (PUK), ko nodrošina mobilo sakaru operators.</translation> <translation id="8609695766746872526">Islandiešu</translation> <translation id="863903787380594467">Nepareizs PIN. Atlikuši <ph name="RETRIES" /> mēģinājumi.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> — ports</translation> @@ -930,11 +939,13 @@ <translation id="8919081441417203123">Dāņu valoda</translation> <translation id="8965697826696209160">Nepietiek vietas.</translation> <translation id="8997962250644902079">Ķīniešu (tradicionālā), piņjiņs</translation> +<translation id="8998871447376656508">Jūsu Google diskā nepietiek vietas, lai pabeigtu augšupielādi.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />. tīkls no <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, signāla stiprums: <ph name="SIGNAL_STRENGTH" />%, pārvalda jūsu administrators, informācija</translation> <translation id="9017798300203431059">Krievu fonētiskā</translation> <translation id="9034924485347205037">Linux faili</translation> <translation id="9035012421917565900">Vienumus nevar pārvietot atpakaļ uz “<ph name="DESTINATION_NAME" />”, tādēļ nevarēsiet atsaukt šo darbību.</translation> <translation id="9035689366572880647">Ievadiet pašreizējo PIN</translation> +<translation id="9037777873893411148">Org. krātuve ir pilna</translation> <translation id="9038620279323455325">Fails ar nosaukumu “<ph name="FILE_NAME" />” jau pastāv. Lūdzu, izvēlieties citu nosaukumu.</translation> <translation id="9046895021617826162">Savienojums neizdevās</translation> <translation id="9065512565307033593">Ja verifikācija neizdosies, jūsu piekļuve tīklam tiks atspējota.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb index 3adda06..71dd3753 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Денес</translation> <translation id="2163152940313951844">Неважечки знак: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">португалски со американска меѓународна компјутерска тастатура</translation> +<translation id="2193661397560634290">Искористено: <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">поедноставен кинески</translation> <translation id="22085916256174561">корејски</translation> <translation id="2208919847696382164">Инсталирај со Linux</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">турски со F-тастатура</translation> <translation id="2732839045120506979">виетнамски VNI</translation> <translation id="2735623501230989521">Дајте ѝ дозвола на Parallels Desktop да пристапува до датотеките во папката „<ph name="FOLDER_NAME" />“</translation> +<translation id="2764206540577097904">Го искористивте целиот ваш индивидуален капацитет на Google Workspace.</translation> <translation id="2771816809568414714">Сирење</translation> <translation id="2781645665747935084">Белгиски</translation> <translation id="2782104745158847185">Грешка при инсталирањето на апликацијата за Linux</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Користете пократко име</translation> <translation id="2949781154072577687">Се форматира <ph name="DRIVE_NAME" />…</translation> <translation id="2951236788251446349">Медуза</translation> +<translation id="2958458230122209142">Мал капацитет. Преостануваат <ph name="REMAINING_PERCENTAGE" /> % од вашиот индивидуален капацитет на <ph name="TOTAL_SPACE" />.</translation> <translation id="2977940621473452797">Датотекава е создадена за компјутер што користи софтвер на Macintosh. Таа не е компатибилна со вашиот уред што извршува Chrome OS. Пребарајте ја „Веб-продавницата на Chrome“ за да најдете соодветна апликација за замена.</translation> <translation id="2984337792991268709">Денес <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Се враќаат <ph name="COUNT" /> ставки…</translation> @@ -669,6 +672,7 @@ <translation id="6823166707458800069">Автоматски се прави резервна копија онлајн од сите датотеки зачувани во папкава.</translation> <translation id="6825883775269213504">руски</translation> <translation id="6847101934483209767">Го отстранивте <ph name="ENTRY_NAME" /> од изборот.</translation> +<translation id="6848194403851638089"><ph name="ORGANIZATION_NAME" /> го искористи целиот свој капацитет на Google Workspace.</translation> <translation id="6856459657722366306">Мрежа <ph name="NETWORK_INDEX" /> од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /> %, детали</translation> <translation id="6861394552169064235">персиски</translation> <translation id="6862635236584086457">Од сите датотеки зачувани во оваа папка автоматски се прави резервна копија онлајн</translation> @@ -700,6 +704,7 @@ <translation id="6989942356279143254">шведски</translation> <translation id="6990081529015358884">Немате веќе простор</translation> <translation id="6998711733709403587">Избрани се <ph name="SELCTED_FOLDERS_COUNT" /> папки</translation> +<translation id="7008426324576352165">Вашата организација има потреба од повеќе капацитет за да го заврши прикачувањево.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Инсталацијата не успеа.</translation> <translation id="7031639531908619281">турски</translation> @@ -933,11 +938,13 @@ <translation id="8919081441417203123">дански</translation> <translation id="8965697826696209160">Нема доволно простор.</translation> <translation id="8997962250644902079">кинески (традиционален) пинјин</translation> +<translation id="8998871447376656508">Нема доволно слободен простор на вашиот Google Drive за да се заврши прикачувањево.</translation> <translation id="9003940392834790328">Мрежа <ph name="NETWORK_INDEX" /> од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /> %, управувана од администраторот, детали</translation> <translation id="9017798300203431059">фонетски руски</translation> <translation id="9034924485347205037">Датотеки на Linux</translation> <translation id="9035012421917565900">Ставките не може да се преместат назад во „<ph name="DESTINATION_NAME" />“, па нема да може да го вратите дејствово.</translation> <translation id="9035689366572880647">Внесете го тековниот PIN-код</translation> +<translation id="9037777873893411148">*Капацитетот на организацијата е полн</translation> <translation id="9038620279323455325">Веќе постои датотека со име „<ph name="FILE_NAME" />“. Одберете друго име.</translation> <translation id="9046895021617826162">Поврзувањето не успеа</translation> <translation id="9065512565307033593">Ако не успеете да потврдите, пристапот до мрежата ќе ви биде оневозможен.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb index c56988a..c51f679 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">सुरक्षित</translation> <translation id="2638942478653899953">Google ड्राइव्ह पर्यंत पोहोचणे शक्य नाही. कृपया <ph name="BEGIN_LINK" />लॉग आउट करा<ph name="END_LINK" /> आणि परत लॉग इन करा.</translation> <translation id="2649120831653069427">रेनबोफिश</translation> +<translation id="2653059201992392941">तुमच्याकडे <ph name="RETRIES" /> प्रयत्न शिल्लक आहेत.</translation> <translation id="2663066752008346276">म्यानसान कीबोर्डसह बर्मीज/म्यानमार</translation> <translation id="2664412712123763093">फाइलचे स्थान</translation> <translation id="2718540689505416944">Linux सह अॅप इंस्टॉल करा</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">लाटवियन</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" /> फिल्टर बंद आहे.</translation> <translation id="5494920125229734069">सर्व निवडा</translation> +<translation id="5500104704744051184">तुम्ही PUK एंटर करेपर्यंत तुम्हाला हे नेटवर्क वापरता येणार नाही</translation> <translation id="5500122897333236901">आइसलँडिक</translation> <translation id="5508696409934741614">बिंदू</translation> <translation id="5522908512596376669">फाइल सूची सूची दृश्यमध्ये बदलली गेली आहे.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> आयटम</translation> <translation id="642282551015776456">हे नाव एखाद्या फाइल किंवा फोल्डरचे नाव म्हणून वापरले जाऊ शकत नाही</translation> <translation id="6423031066725912715">TCVN कीबोर्डसह व्हिएतनामी</translation> +<translation id="6430271654280079150">तुमच्याकडे एक प्रयत्न शिल्लक आहे.</translation> <translation id="6485131920355264772">स्थान माहिती पुनर्प्राप्त करण्यात अयशस्वी</translation> <translation id="6495925982925244349"><ph name="NETWORK_COUNT" /> पैकी <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%, तुमच्या अॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले, तपशील</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> ही <ph name="FOLDER_NAME" /> मध्ये एक्स्ट्रॅक्ट करत आहे</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> आयटम संकालित करीत आहे...</translation> <translation id="8600173386174225982">फाइल सूची थंबनेल व्ह्यूमध्ये बदलली गेली आहे.</translation> <translation id="8601932370724196034">Crostini इमेज फाइल</translation> +<translation id="8608515571837163082">बऱ्याच वेळा चुकीचा पिन एंटर केला होता. वाहकाद्वारे पुरवलेली आठ अंकी वैयक्तिक अनब्लॉक करण्याची की (PUK) एंटर करा.</translation> <translation id="8609695766746872526">आइसलँडिक</translation> <translation id="863903787380594467">चुकीचा पिन. तुमच्याकडे <ph name="RETRIES" /> प्रयत्न शिल्लक आहेत.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - पोर्ट</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb index 65f8a9f1..38595ad 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Dzisiaj</translation> <translation id="2163152940313951844">Nieprawidłowy znak: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">Portugalski z klawiaturą amerykańską międzynarodową (PC)</translation> +<translation id="2193661397560634290">Wykorzystano <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">chiński uproszczony</translation> <translation id="22085916256174561">Koreański</translation> <translation id="2208919847696382164">Zainstaluj za pomocą Linuksa</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">Turecki z klawiaturą F</translation> <translation id="2732839045120506979">Wietnamski VNI</translation> <translation id="2735623501230989521">Przyznaj aplikacji Parallels Desktop uprawnienia dostępu do plików w folderze <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Wykorzystujesz całe swoje indywidualne miejsce na dane w Google Workspace.</translation> <translation id="2771816809568414714">Ser</translation> <translation id="2781645665747935084">belgijska klawiatura</translation> <translation id="2782104745158847185">Błąd podczas instalowania aplikacji na Linuksa</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Użyj krótszej nazwy</translation> <translation id="2949781154072577687">Formatuję: <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Meduza</translation> +<translation id="2958458230122209142">Mało miejsca na dane – pozostało <ph name="REMAINING_PERCENTAGE" />% z <ph name="TOTAL_SPACE" /> indywidualnego miejsca na dane.</translation> <translation id="2977940621473452797">Ten plik został opracowany z myślą o komputerach Mac. Jest on niezgodny z Twoim urządzeniem z Chrome OS. Poszukaj odpowiedniej aplikacji zastępczej w Chrome Web Store.</translation> <translation id="2984337792991268709">Dzisiaj, <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Przywracam elementy (<ph name="COUNT" />)…</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">Wszystkie pliki przechowywane w tym folderze są automatycznie zapisywane online.</translation> <translation id="6825883775269213504">Rosyjski</translation> <translation id="6847101934483209767">Usunięto z zaznaczenia element <ph name="ENTRY_NAME" />.</translation> +<translation id="6848194403851638089">Organizacja <ph name="ORGANIZATION_NAME" /> wykorzystuje całe swoje miejsce na dane w Google Workspace.</translation> <translation id="6856459657722366306">Sieć <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, siła sygnału: <ph name="SIGNAL_STRENGTH" />%, szczegóły</translation> <translation id="6861394552169064235">Perski</translation> <translation id="6862635236584086457">Wszystkie pliki przechowywane w tym folderze są automatycznie zapisywane online</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">Szwedzki</translation> <translation id="6990081529015358884">Nie masz już miejsca</translation> <translation id="6998711733709403587">Wybrano <ph name="SELCTED_FOLDERS_COUNT" /> foldery(ów)</translation> +<translation id="7008426324576352165">Aby ukończyć przesyłanie, Twoja organizacja potrzebuje więcej miejsca na dane.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalacja nie powiodła się.</translation> <translation id="7031639531908619281">Turecki</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">Duński</translation> <translation id="8965697826696209160">Nie ma wystarczającej ilości miejsca.</translation> <translation id="8997962250644902079">Chiński (tradycyjny) pinyin</translation> +<translation id="8998871447376656508">Na Dysku Google jest za mało wolnego miejsca, aby można było przesłać pliki.</translation> <translation id="9003940392834790328">Sieć <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, siła sygnału: <ph name="SIGNAL_STRENGTH" />%, zarządzana przez administratora, szczegóły</translation> <translation id="9017798300203431059">rosyjska klawiatura fonetyczna</translation> <translation id="9034924485347205037">Pliki Linuksa</translation> <translation id="9035012421917565900">Nie można przenieść elementów z powrotem do: „<ph name="DESTINATION_NAME" />”, więc tej czynności nie da się cofnąć.</translation> <translation id="9035689366572880647">Podaj bieżący kod PIN</translation> +<translation id="9037777873893411148">* Brak miejsca na dane w organizacji</translation> <translation id="9038620279323455325">Istnieje już plik o nazwie „<ph name="FILE_NAME" />”. Wybierz inną nazwę.</translation> <translation id="9046895021617826162">Łączenie nie powiodło się</translation> <translation id="9065512565307033593">Jeśli nie uda Ci się dokonać weryfikacji, dostęp do sieci zostanie wyłączony.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb index b5f9ca7b..30c9bde3 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Hoje</translation> <translation id="2163152940313951844">Caráter inválido: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">Português com teclado de PC americano internacional</translation> +<translation id="2193661397560634290"><ph name="SPACE_USED" /> usado(s)</translation> <translation id="2198315389084035571">Chinês Simplificado</translation> <translation id="22085916256174561">Coreano</translation> <translation id="2208919847696382164">Instalar com o Linux</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">Turco com teclado F</translation> <translation id="2732839045120506979">VNI vietnamita</translation> <translation id="2735623501230989521">Conceda autorização ao Parallels Desktop para aceder a ficheiros na pasta <ph name="FOLDER_NAME" />.</translation> +<translation id="2764206540577097904">Usou todo o seu armazenamento individual do Google Workspace.</translation> <translation id="2771816809568414714">Queijo</translation> <translation id="2781645665747935084">Belga</translation> <translation id="2782104745158847185">Ocorreu um erro ao instalar a aplicação para Linux.</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Utilize um nome mais curto.</translation> <translation id="2949781154072577687">A formatar <ph name="DRIVE_NAME" />…</translation> <translation id="2951236788251446349">Medusa</translation> +<translation id="2958458230122209142">Armazenamento quase cheio. Restam<ph name="REMAINING_PERCENTAGE" />% do seu armazenamento individual de <ph name="TOTAL_SPACE" />.</translation> <translation id="2977940621473452797">Este ficheiro foi concebido para computadores com software Macintosh. Não é compatível com o seu dispositivo, pois este tem o ChromeOS instalado. Procure uma app alternativa adequada na Web Store do Chrome.</translation> <translation id="2984337792991268709">Hoje <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">A restaurar <ph name="COUNT" /> itens…</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">Será feita automaticamente uma cópia de segurança online de todos os ficheiros guardados nesta pasta.</translation> <translation id="6825883775269213504">Russo</translation> <translation id="6847101934483209767"><ph name="ENTRY_NAME" /> foi removido da seleção.</translation> +<translation id="6848194403851638089">A organização <ph name="ORGANIZATION_NAME" /> usou todo o respetivo armazenamento do Google Workspace.</translation> <translation id="6856459657722366306">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" />%, detalhes</translation> <translation id="6861394552169064235">Persa</translation> <translation id="6862635236584086457">Será efetuada automaticamente uma cópia de segurança online de todos os ficheiros guardados nesta pasta</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">Sueco</translation> <translation id="6990081529015358884">Já não tem espaço</translation> <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> pastas selecionadas</translation> +<translation id="7008426324576352165">A sua organização requer mais armazenamento para concluir o carregamento.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">A instalação falhou.</translation> <translation id="7031639531908619281">Turco</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">Dinamarquês</translation> <translation id="8965697826696209160">Não existe espaço suficiente.</translation> <translation id="8997962250644902079">Pinyin chinês (tradicional)</translation> +<translation id="8998871447376656508">Não existe espaço livre suficiente no Google Drive para concluir o carregamento.</translation> <translation id="9003940392834790328">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" />%, gerida pelo administrador, detalhes</translation> <translation id="9017798300203431059">Fonético russo</translation> <translation id="9034924485347205037">Ficheiros Linux</translation> <translation id="9035012421917565900">Não é possível mover os itens novamente para "<ph name="DESTINATION_NAME" />", pelo que não pode anular esta ação.</translation> <translation id="9035689366572880647">Introduza o PIN atual</translation> +<translation id="9037777873893411148">* Armazenamento da organização cheio</translation> <translation id="9038620279323455325">O ficheiro com o nome "<ph name="FILE_NAME" />" já existe. Escolha um nome diferente.</translation> <translation id="9046895021617826162">A ligação falhou</translation> <translation id="9065512565307033593">Se não validar, o seu acesso à rede será desativado.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb index a2e49c1..4d5ba56 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">I siguruar</translation> <translation id="2638942478653899953">"Disku i Google" është i paarritshëm. <ph name="BEGIN_LINK" />Dil<ph name="END_LINK" /> dhe identifikohu përsëri.</translation> <translation id="2649120831653069427">Peshku</translation> +<translation id="2653059201992392941">Ke <ph name="RETRIES" /> përpjekje të mbetura.</translation> <translation id="2663066752008346276">Birmanisht/Mianmar me tastierë Myansan</translation> <translation id="2664412712123763093">Vendndodhja e skedarit</translation> <translation id="2718540689505416944">Instalo aplikacionin me Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Letonisht</translation> <translation id="5489965683297092283">Filtri <ph name="FILTER_NAME" /> është joaktiv.</translation> <translation id="5494920125229734069">Zgjidh të gjitha</translation> +<translation id="5500104704744051184">Nuk do të mund ta përdorësh këtë rrjet derisa të futësh kodin PUK</translation> <translation id="5500122897333236901">Islandisht</translation> <translation id="5508696409934741614">Pika</translation> <translation id="5522908512596376669">Lista e skedarëve ka ndryshuar në pamjen e listës.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> artikuj</translation> <translation id="642282551015776456">Ky emër nuk mund të përdoret si emër skedari ose dosjeje</translation> <translation id="6423031066725912715">Vietnamisht me tastierë TCVN</translation> +<translation id="6430271654280079150">Ke 1 përpjekje të mbetur.</translation> <translation id="6485131920355264772">Dështoi në marrjen e informacionit të hapësirës</translation> <translation id="6495925982925244349">Rrjeti <ph name="NETWORK_INDEX" /> nga <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />%, menaxhuar nga administratori yt, detaje</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> po nxirret te "<ph name="FOLDER_NAME" />"</translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Po sinkronizohen <ph name="NUMBER_OF_FILES" /> artikuj...</translation> <translation id="8600173386174225982">Lista e skedarëve ka ndryshuar në pamjen e miniaturës.</translation> <translation id="8601932370724196034">Skedar imazhi Crostini</translation> +<translation id="8608515571837163082">Është futur shumë herë një kod PIN i gabuar. Fut "Çelësin personal të zhbllokimit" (PUK) me 8 shifra të dhënë nga operatori celular.</translation> <translation id="8609695766746872526">Islandisht</translation> <translation id="863903787380594467">Kodi PIN është i pasaktë. Të kanë mbetur edhe <ph name="RETRIES" /> përpjekje.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - porta</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb index 73e1502..f8ccd4a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Danas</translation> <translation id="2163152940313951844">Nevažeći znak: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">portugalski sa američkom internacionalnom tastaturom za računar</translation> +<translation id="2193661397560634290">Iskorišćeno je <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">kineski (pojednostavljeni)</translation> <translation id="22085916256174561">korejski</translation> <translation id="2208919847696382164">Instalirajte pomoću Linux-a</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">turski sa tastaturom F</translation> <translation id="2732839045120506979">vijetnamski VNI</translation> <translation id="2735623501230989521">Dozvolite da Parallels Desktop pristupa fajlovima u folderu <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Iskoristili ste sav pojedinačni Google Workspace memorijski prostor.</translation> <translation id="2771816809568414714">Sir</translation> <translation id="2781645665747935084">belgijska</translation> <translation id="2782104745158847185">Greška pri instaliranju Linux aplikacije</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Koristite kraći naziv</translation> <translation id="2949781154072577687">Formatira se <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Meduza</translation> +<translation id="2958458230122209142">Ostalo vam je još samo <ph name="REMAINING_PERCENTAGE" />% od <ph name="TOTAL_SPACE" /> pojedinačnog memorijskog prostora.</translation> <translation id="2977940621473452797">Ovaj fajl je osmišljen za računar koji koristi Macintosh softver. Nije kompatibilan sa uređajem, koji koristi Chrome OS. Pretražite Chrome veb-prodavnicu da biste našli odgovarajuću zamenu za aplikaciju.</translation> <translation id="2984337792991268709">Danas u <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Vraćaju se stavke (<ph name="COUNT" />)...</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">Za sve datoteke sačuvane u ovom direktorijumu automatski se pravi onlajn rezervna kopija.</translation> <translation id="6825883775269213504">ruski</translation> <translation id="6847101934483209767">Uklonili ste <ph name="ENTRY_NAME" /> iz izbora.</translation> +<translation id="6848194403851638089">Organizacija <ph name="ORGANIZATION_NAME" /> je iskoristila sav Google Workspace memorijski prostor.</translation> <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />. mreža od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, detalji</translation> <translation id="6861394552169064235">persijski</translation> <translation id="6862635236584086457">Za sve datoteke sačuvane u ovom direktorijumu automatski se pravi rezervna kopija na mreži</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">švedski</translation> <translation id="6990081529015358884">Ponestalo vam je prostora</translation> <translation id="6998711733709403587">Izabranih direktorijuma: <ph name="SELCTED_FOLDERS_COUNT" /></translation> +<translation id="7008426324576352165">Organizaciji treba više memorijskog prostora da bi završila otpremanje.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Instalacija nije uspela.</translation> <translation id="7031639531908619281">turski</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">danski</translation> <translation id="8965697826696209160">Nema dovoljno prostora.</translation> <translation id="8997962250644902079">kineski (tradicionalni) pinjin</translation> +<translation id="8998871447376656508">Nema dovoljno slobodnog prostora na Google disku da bi se otpremanje dovršilo.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />. mreža od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja administrator, detalji</translation> <translation id="9017798300203431059">ruska fonetska</translation> <translation id="9034924485347205037">Linux datoteke</translation> <translation id="9035012421917565900">Stavke ne mogu da se vrate u „<ph name="DESTINATION_NAME" />“, pa nećete moći da opozovete ovu radnju.</translation> <translation id="9035689366572880647">Unesite aktuelni PIN</translation> +<translation id="9037777873893411148">*Memorijski prostor organizacije je popunjen</translation> <translation id="9038620279323455325">Datoteka „<ph name="FILE_NAME" />“ već postoji. Odaberite drugi naziv.</translation> <translation id="9046895021617826162">Povezivanje nije uspelo</translation> <translation id="9065512565307033593">Ako verifikacija ne uspe, pristup mreži će biti onemogućen.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb index 277432a..ea23075 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
@@ -138,6 +138,7 @@ <translation id="2148716181193084225">Данас</translation> <translation id="2163152940313951844">Неважећи знак: <ph name="CHARACTER_NAME" /></translation> <translation id="2184934335987813305">португалски са америчком интернационалном тастатуром за рачунар</translation> +<translation id="2193661397560634290">Искоришћено је <ph name="SPACE_USED" /></translation> <translation id="2198315389084035571">кинески (поједностављени)</translation> <translation id="22085916256174561">корејски</translation> <translation id="2208919847696382164">Инсталирајте помоћу Linux-а</translation> @@ -201,6 +202,7 @@ <translation id="2724954091494693138">турски са тастатуром F</translation> <translation id="2732839045120506979">вијетнамски VNI</translation> <translation id="2735623501230989521">Дозволите да Parallels Desktop приступа фајловима у фолдеру <ph name="FOLDER_NAME" /></translation> +<translation id="2764206540577097904">Искористили сте сав појединачни Google Workspace меморијски простор.</translation> <translation id="2771816809568414714">Сир</translation> <translation id="2781645665747935084">белгијска</translation> <translation id="2782104745158847185">Грешка при инсталирању Linux апликације</translation> @@ -221,6 +223,7 @@ <translation id="2943503720238418293">Користите краћи назив</translation> <translation id="2949781154072577687">Форматира се <ph name="DRIVE_NAME" />...</translation> <translation id="2951236788251446349">Медуза</translation> +<translation id="2958458230122209142">Остало вам је још само <ph name="REMAINING_PERCENTAGE" />% од <ph name="TOTAL_SPACE" /> појединачног меморијског простора.</translation> <translation id="2977940621473452797">Овај фајл је осмишљен за рачунар који користи Macintosh софтвер. Није компатибилан са уређајем, који користи Chrome ОС. Претражите Chrome веб-продавницу да бисте нашли одговарајућу замену за апликацију.</translation> <translation id="2984337792991268709">Данас у <ph name="TODAY_DAYTIME" /></translation> <translation id="2994320653639462337">Враћају се ставке (<ph name="COUNT" />)...</translation> @@ -670,6 +673,7 @@ <translation id="6823166707458800069">За све датотеке сачуване у овом директоријуму аутоматски се прави онлајн резервна копија.</translation> <translation id="6825883775269213504">руски</translation> <translation id="6847101934483209767">Уклонили сте <ph name="ENTRY_NAME" /> из избора.</translation> +<translation id="6848194403851638089">Организација <ph name="ORGANIZATION_NAME" /> је искористила сав Google Workspace меморијски простор.</translation> <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />. мрежа од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, јачина сигнала <ph name="SIGNAL_STRENGTH" />%, детаљи</translation> <translation id="6861394552169064235">персијски</translation> <translation id="6862635236584086457">За све датотеке сачуване у овом директоријуму аутоматски се прави резервна копија на мрежи</translation> @@ -701,6 +705,7 @@ <translation id="6989942356279143254">шведски</translation> <translation id="6990081529015358884">Понестало вам је простора</translation> <translation id="6998711733709403587">Изабраних директоријума: <ph name="SELCTED_FOLDERS_COUNT" /></translation> +<translation id="7008426324576352165">Организацији треба више меморијског простора да би завршила отпремање.</translation> <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation> <translation id="7014174261166285193">Инсталација није успела.</translation> <translation id="7031639531908619281">турски</translation> @@ -934,11 +939,13 @@ <translation id="8919081441417203123">дански</translation> <translation id="8965697826696209160">Нема довољно простора.</translation> <translation id="8997962250644902079">кинески (традиционални) пинјин</translation> +<translation id="8998871447376656508">Нема довољно слободног простора на Google диску да би се отпремање довршило.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />. мрежа од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, јачина сигнала <ph name="SIGNAL_STRENGTH" />%, управља администратор, детаљи</translation> <translation id="9017798300203431059">руска фонетска</translation> <translation id="9034924485347205037">Linux датотеке</translation> <translation id="9035012421917565900">Ставке не могу да се врате у „<ph name="DESTINATION_NAME" />“, па нећете моћи да опозовете ову радњу.</translation> <translation id="9035689366572880647">Унесите актуелни PIN</translation> +<translation id="9037777873893411148">*Меморијски простор организације је попуњен</translation> <translation id="9038620279323455325">Датотека „<ph name="FILE_NAME" />“ већ постоји. Одаберите други назив.</translation> <translation id="9046895021617826162">Повезивање није успело</translation> <translation id="9065512565307033593">Ако верификација не успе, приступ мрежи ће бити онемогућен.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb index 4543b54..37d3321 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Skyddat</translation> <translation id="2638942478653899953">Det gick inte att nå Google Drive. <ph name="BEGIN_LINK" />Logga ut<ph name="END_LINK" /> och sedan in igen.</translation> <translation id="2649120831653069427">Regnbågsfisk</translation> +<translation id="2653059201992392941">Du har <ph name="RETRIES" /> försök kvar.</translation> <translation id="2663066752008346276">burmesiska/Myanmar med myansan-tangentbord</translation> <translation id="2664412712123763093">Filens plats</translation> <translation id="2718540689505416944">Installera appen med Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">lettiska</translation> <translation id="5489965683297092283">Filtret <ph name="FILTER_NAME" /> är av.</translation> <translation id="5494920125229734069">Markera alla</translation> +<translation id="5500104704744051184">Du kan inte använda det här nätverket förrän du anger PUK-koden</translation> <translation id="5500122897333236901">isländska</translation> <translation id="5508696409934741614">Punkter</translation> <translation id="5522908512596376669">Fillistan har ändrats till listvy.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> objekt</translation> <translation id="642282551015776456">Det här namnet får inte användas som namn på en fil eller mapp</translation> <translation id="6423031066725912715">vietnamesiskt tangentbord (TCVN)</translation> +<translation id="6430271654280079150">Du har 1 försök kvar.</translation> <translation id="6485131920355264772">Det gick inte att hämta information om lagringsutrymme</translation> <translation id="6495925982925244349">Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> %, hanteras av administratören, information</translation> <translation id="649877868557234318">Extraherar <ph name="FILE_NAME" /> till <ph name="FOLDER_NAME" /></translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Synkroniserar <ph name="NUMBER_OF_FILES" /> objekt ...</translation> <translation id="8600173386174225982">Fillistan har ändrats till miniatyrvy.</translation> <translation id="8601932370724196034">Bildfil för Crostini</translation> +<translation id="8608515571837163082">Fel pinkod har angetts för många gånger. Ange den åttasiffriga PUK-koden (Personal Unblocking Key) som du har fått från operatören.</translation> <translation id="8609695766746872526">isländska</translation> <translation id="863903787380594467">Fel pinkod. Du har <ph name="RETRIES" /> försök kvar.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Port</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb index 795dbd9..81cfb30 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Unalindwa</translation> <translation id="2638942478653899953">Hifadhi ya Google haikuweza kupatikana. Tafadhali <ph name="BEGIN_LINK" />ondoka<ph name="END_LINK" /> na uingie tena.</translation> <translation id="2649120831653069427">Samakiupinde</translation> +<translation id="2653059201992392941">Umebakisha majaribio <ph name="RETRIES" />.</translation> <translation id="2663066752008346276">Kibama (Myama) kwenye kibodi ya Myansan</translation> <translation id="2664412712123763093">Mahali faili ilipo</translation> <translation id="2718540689505416944">Sakinisha programu ukitumia Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Kilativia</translation> <translation id="5489965683297092283">Kichujio cha <ph name="FILTER_NAME" /> kimezimwa.</translation> <translation id="5494920125229734069">Chagua zote</translation> +<translation id="5500104704744051184">Hutaweza kutumia mtandao huu hadi utakapoweka PUK</translation> <translation id="5500122897333236901">Kiaislandi</translation> <translation id="5508696409934741614">Nukta</translation> <translation id="5522908512596376669">Umebadilisha orodha ya faili kuwa mwonekano wa orodha.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044">Faili <ph name="NUMBER_OF_FILES" /></translation> <translation id="642282551015776456">Jina hili halifai kutumiwe kama faili ya jina la folda</translation> <translation id="6423031066725912715">Kivietinamu kwenye kibodi ya TCVN</translation> +<translation id="6430271654280079150">Umebakisha jaribio 1.</translation> <translation id="6485131920355264772">Imeshindwa kupata maelezo ya nafasi</translation> <translation id="6495925982925244349">Mtandao wa <ph name="NETWORK_INDEX" /> kati ya <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />%, Unadhibitiwa na Msimamizi wako, Maelezo</translation> <translation id="649877868557234318">Inachukua <ph name="FILE_NAME" /> iweke kwenye <ph name="FOLDER_NAME" /></translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Inasasisha vipengee <ph name="NUMBER_OF_FILES" />...</translation> <translation id="8600173386174225982">Orodha ya faili imebadilishwa kuwa mwonekano wa kijipicha.</translation> <translation id="8601932370724196034">Picha ya faili ya Crostini</translation> +<translation id="8608515571837163082">Umeweka PIN isiyo sahihi mara nyingi mno. Weka Nambari Binafsi ya Kufungua (PUK) yenye tarakimu 8 uliyopewa na mtoa huduma.</translation> <translation id="8609695766746872526">Kiaislandi</translation> <translation id="863903787380594467">PIN si sahihi. Umebakisha majaribio <ph name="RETRIES" />.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Mlango</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb index 4eeef38f2..32acb69 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -486,7 +486,7 @@ <ph name="LINE_BREAKS" /> మీ పరికరం వినియోగంలో ఉన్నప్పుడు తీసివేస్తే డేటా నష్టం కలగవచ్చు. దయచేసి చర్య పూర్తయ్యే వరకు వేచి ఉండి ఆపై 'ఫైళ్లు' యాప్ను ఉపయోగించి పరికరాన్ని తీసివేయండి.</translation> <translation id="5159560892333415631">ట్రాష్ను ఖాళీ చేయి</translation> -<translation id="5163869187418756376">షేర్ చేయడం విఫలమైంది. మీ కనెక్షన్ను తనిఖీ చేసి, తర్వాత మళ్లీ ప్రయత్నించండి.</translation> +<translation id="5163869187418756376">షేర్ చేయడం విఫలమైంది. మీ కనెక్షన్ను చెక్ చేసి, తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="516592729076796170">US ప్రోగ్రామర్ డ్వోరక్</translation> <translation id="5177526793333269655">సూక్ష్మచిత్ర వీక్షణ</translation> <translation id="5194713942430106590">నిలువు వరుసను ఆరోహణ క్రమంలో వర్గీకరించడానికి క్లిక్ చేయండి.</translation> @@ -570,7 +570,7 @@ <translation id="5818003990515275822">కొరియన్</translation> <translation id="5819442873484330149">హాంగుల్ 3 సెట్ (తుది)</translation> <translation id="5832976493438355584">లాక్ చేయబడింది</translation> -<translation id="5833610766403489739">ఈ ఫైల్ ఉన్న స్థలం తెలియదు. దయచేసి మీ డౌన్లోడ్ స్థానం సెట్టింగ్ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation> +<translation id="5833610766403489739">ఈ ఫైల్ ఉన్న స్థలం తెలియదు. దయచేసి మీ డౌన్లోడ్ స్థానం సెట్టింగ్ను చెక్ చేసి, మళ్లీ ప్రయత్నించండి.</translation> <translation id="5838451609423551646">అన్ని నమోదుల ఎంపిక తీసివేయబడింది.</translation> <translation id="5838825566232597749">US వర్క్మాన్ అంతర్జాతీయం</translation> <translation id="5845721951356578987">నర్స్</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb index 2001345..8e905b5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Güvenlik sağlandı</translation> <translation id="2638942478653899953">Google Drive'a erişilemedi. Lütfen <ph name="BEGIN_LINK" />çıkıp<ph name="END_LINK" /> tekrar giriş yapın.</translation> <translation id="2649120831653069427">Gökkuşağı Balığı</translation> +<translation id="2653059201992392941"><ph name="RETRIES" /> deneme hakkınız kaldı.</translation> <translation id="2663066752008346276">Myansan klavye ile Burmaca/Myanmar</translation> <translation id="2664412712123763093">Dosya konumu</translation> <translation id="2718540689505416944">Uygulamayı Linux ile yükle</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Letonca</translation> <translation id="5489965683297092283"><ph name="FILTER_NAME" /> filtresi kapalı.</translation> <translation id="5494920125229734069">Tümünü seç</translation> +<translation id="5500104704744051184">PUK'u girmeden bu ağı kullanamazsınız</translation> <translation id="5500122897333236901">İzlanda dili</translation> <translation id="5508696409934741614">Noktalar</translation> <translation id="5522908512596376669">Dosya listesi, liste görünümü olarak değiştirildi.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> öğe</translation> <translation id="642282551015776456">Bu ad, dosya veya klasör adı olarak kullanılamaz</translation> <translation id="6423031066725912715">TCVN klavye ile Vietnamca</translation> +<translation id="6430271654280079150">1 deneme hakkınız kaldı.</translation> <translation id="6485131920355264772">Alan bilgileri alınamadı</translation> <translation id="6495925982925244349">Ağ <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, %<ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, Yöneticiniz tarafından yönetiliyor, Ayrıntılar</translation> <translation id="649877868557234318"><ph name="FILE_NAME" /> dosyası <ph name="FOLDER_NAME" /> klasörüne çıkarılıyor</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> öğe senkronize ediliyor...</translation> <translation id="8600173386174225982">Dosya listesi, küçük resim görünümü olarak değiştirildi.</translation> <translation id="8601932370724196034">Crostini resim dosyası</translation> +<translation id="8608515571837163082">Çok sayıda yanlış PIN girildi. Operatörünüz tarafından sağlanan 8 basamaklı Kişisel Engelleme Anahtarınızı (PUK) girin.</translation> <translation id="8609695766746872526">İzlandaca</translation> <translation id="863903787380594467">Yanlış PIN. <ph name="RETRIES" /> deneme hakkınız kaldı.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Bağlantı noktası</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb index 2fbdb6c..ce3af1a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Захищено</translation> <translation id="2638942478653899953">Диск Google недоступний. <ph name="BEGIN_LINK" />Вийдіть<ph name="END_LINK" /> і ввійдіть знову.</translation> <translation id="2649120831653069427">Золота рибка</translation> +<translation id="2653059201992392941">Залишилося спроб: <ph name="RETRIES" />.</translation> <translation id="2663066752008346276">Бірманська/м'янмська, розкладка м'янсан</translation> <translation id="2664412712123763093">Місце розташування файлу</translation> <translation id="2718540689505416944">Установити додаток для Linux</translation> @@ -528,6 +529,7 @@ <translation id="5489067830765222292">Латвійська</translation> <translation id="5489965683297092283">Фільтр "<ph name="FILTER_NAME" />" вимкнено.</translation> <translation id="5494920125229734069">Вибрати все</translation> +<translation id="5500104704744051184">Ви не зможете користуватися цією мережею, доки не введете PUK-код</translation> <translation id="5500122897333236901">Ісландська</translation> <translation id="5508696409934741614">Крапки</translation> <translation id="5522908512596376669">Список файлів тепер відображається у вигляді списку.</translation> @@ -633,6 +635,7 @@ <translation id="6395575651121294044">Елементів: <ph name="NUMBER_OF_FILES" /></translation> <translation id="642282551015776456">Не може використовуватися як ім’я файлу чи назва папки</translation> <translation id="6423031066725912715">В'єтнамська, розкладка TCVN</translation> +<translation id="6430271654280079150">Залишилась 1 спроба.</translation> <translation id="6485131920355264772">Не вдалось отримати дані про вільне місце</translation> <translation id="6495925982925244349">Мережа <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, рівень сигналу – <ph name="SIGNAL_STRENGTH" />%. Мережею керує адміністратор. Докладніше</translation> <translation id="649877868557234318">Видобування файлу "<ph name="FILE_NAME" />" у папку "<ph name="FOLDER_NAME" />"</translation> @@ -899,6 +902,7 @@ <translation id="8579285237314169903">Синхронізація стількох елементів: <ph name="NUMBER_OF_FILES" />…</translation> <translation id="8600173386174225982">Список файлів тепер відображається у вигляді ескізів.</translation> <translation id="8601932370724196034">Файл зображення Crostini</translation> +<translation id="8608515571837163082">Ви ввели неправильний PIN-код забагато разів. Введіть 8-значний PUK-код, який надав оператор.</translation> <translation id="8609695766746872526">Ісландська</translation> <translation id="863903787380594467">Неправильний PIN-код. Залишилося спроб: <ph name="RETRIES" />.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – Порт</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb index ea791dc..71836c2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -193,6 +193,7 @@ <translation id="2621713457727696555">Kuvikelwe</translation> <translation id="2638942478653899953">I-Google Drayivu ayikwazanga ukufinyelelwa. Sicela <ph name="BEGIN_LINK" />uphume ngemvume<ph name="END_LINK" /> uphinde ungene ngemvume.</translation> <translation id="2649120831653069427">I-Rainbowfish</translation> +<translation id="2653059201992392941">Unemizamo engu-<ph name="RETRIES" /> esele.</translation> <translation id="2663066752008346276">Isi-Burmese/Myanmar ngekhibhodi ye-Myansan</translation> <translation id="2664412712123763093">Indawo yefayela</translation> <translation id="2718540689505416944">Faka uhlelo lokusebenza nge-Linux</translation> @@ -527,6 +528,7 @@ <translation id="5489067830765222292">Latvian</translation> <translation id="5489965683297092283">Isihlungi esithi <ph name="FILTER_NAME" /> sivaliwe.</translation> <translation id="5494920125229734069">Khetha konke</translation> +<translation id="5500104704744051184">Ngeke ukwazi ukusebenzisa le nethiwekhi uze ufake i-PUK</translation> <translation id="5500122897333236901">Icelandic</translation> <translation id="5508696409934741614">Amachashazi</translation> <translation id="5522908512596376669">Uhlu lwefayela lushintshele kuhlu lokubuka.</translation> @@ -632,6 +634,7 @@ <translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> izinto</translation> <translation id="642282551015776456">Leli gama akumele lisetshenziswe njengefayela noma igama lefayela</translation> <translation id="6423031066725912715">Isi-Vietnamese esinekhibhodi ye-TCVN</translation> +<translation id="6430271654280079150">Unokuzama oku-1 okusele.</translation> <translation id="6485131920355264772">Yehlulekile ukuthola ulwazi lesikhala</translation> <translation id="6495925982925244349">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, imininingwane</translation> <translation id="649877868557234318">Ikhipha i-<ph name="FILE_NAME" /> ku-<ph name="FOLDER_NAME" /></translation> @@ -898,6 +901,7 @@ <translation id="8579285237314169903">Ivumelanisa izinto ezingu-<ph name="NUMBER_OF_FILES" />...</translation> <translation id="8600173386174225982">Uhlu lwefayela lushintshele ekubukeni kwesithonjana.</translation> <translation id="8601932370724196034">Ifayela lesithombe se-Crostini</translation> +<translation id="8608515571837163082">Iphinikhodi engalungile ifakwe izikhathi eziningi kakhulu. Faka ukhiye we-Personal Unblocking Key (PUK) onamadijithi ayi-8 onikezwe inkampani yenethiwekhi.</translation> <translation id="8609695766746872526">Icelandic</translation> <translation id="863903787380594467">Iphinikhodi engalungile. Unemizamo engu-<ph name="RETRIES" /> esele.</translation> <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Imbobo</translation>
diff --git a/ui/strings/translations/ax_strings_te.xtb b/ui/strings/translations/ax_strings_te.xtb index 7437716..90f9031 100644 --- a/ui/strings/translations/ax_strings_te.xtb +++ b/ui/strings/translations/ax_strings_te.xtb
@@ -127,7 +127,7 @@ <translation id="8105797009065549151">గమనిక సూచన</translation> <translation id="8208673686607688524">స్థానిక తేదీ మరియు సమయం ఎంపిక</translation> <translation id="8346634859695247203">విభాగం</translation> -<translation id="838869780401515933">తనిఖీ చేయి</translation> +<translation id="838869780401515933">చెక్ చేయండి</translation> <translation id="8415319359811155763">భాగం</translation> <translation id="8433900881053900389">సాధన పట్టీ</translation> <translation id="8461852803063341183">రేడియో బటన్</translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb index eaa4fdc6..67df286e 100644 --- a/ui/strings/translations/ui_strings_te.xtb +++ b/ui/strings/translations/ui_strings_te.xtb
@@ -45,7 +45,7 @@ <translation id="2289052229480071835">మీ స్క్రీన్పై ఉన్న స్పర్శ లక్ష్యాలను నొక్కండి.</translation> <translation id="2295140143284145483">సర్వే</translation> <translation id="2297836609126180313"><ph name="QUANTITY" /> TB/s</translation> -<translation id="2353636109065292463">మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేస్తోంది</translation> +<translation id="2353636109065292463">మీ ఇంటర్నెట్ కనెక్షన్ను చెక్ చేస్తోంది</translation> <translation id="2388990488038464401">మీ ఫోన్ నుండి ఈ నంబర్కు కాల్ చేయాలా?</translation> <translation id="2435457462613246316">పాస్వర్డ్ను చూపించు</translation> <translation id="24452542372838207">నోటిఫికేషన్ను విస్తరించు</translation>
diff --git a/ui/views/view_targeter_unittest.cc b/ui/views/view_targeter_unittest.cc index 6fadf289..70c6046c 100644 --- a/ui/views/view_targeter_unittest.cc +++ b/ui/views/view_targeter_unittest.cc
@@ -16,6 +16,7 @@ #include "ui/views/test/views_test_base.h" #include "ui/views/view_targeter_delegate.h" #include "ui/views/widget/root_view.h" +#include "ui/views/widget/unique_widget_ptr.h" namespace views { @@ -113,25 +114,21 @@ // and ViewTargeter::FindNextBestTarget() are implemented correctly // for key events. TEST_F(ViewTargeterTest, ViewTargeterForKeyEvents) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - widget.Init(std::move(init_params)); - widget.Show(); + widget->Init(std::move(init_params)); + widget->Show(); - View* child = new View; - View* grandchild = new View; - - View* content = widget.SetContentsView(std::make_unique<View>()); - content->AddChildView(child); - child->AddChildView(grandchild); + View* content = widget->SetContentsView(std::make_unique<View>()); + View* child = content->AddChildView(std::make_unique<View>()); + View* grandchild = child->AddChildView(std::make_unique<View>()); grandchild->SetFocusBehavior(View::FocusBehavior::ALWAYS); grandchild->RequestFocus(); internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); ui::KeyEvent key_event('a', ui::VKEY_A, ui::DomCode::NONE, ui::EF_NONE); @@ -148,9 +145,9 @@ current_target = targeter->FindNextBestTarget(child, &key_event); EXPECT_EQ(content, static_cast<View*>(current_target)); current_target = targeter->FindNextBestTarget(content, &key_event); - EXPECT_EQ(widget.GetRootView(), static_cast<View*>(current_target)); + EXPECT_EQ(widget->GetRootView(), static_cast<View*>(current_target)); current_target = - targeter->FindNextBestTarget(widget.GetRootView(), &key_event); + targeter->FindNextBestTarget(widget->GetRootView(), &key_event); EXPECT_EQ(nullptr, static_cast<View*>(current_target)); } @@ -158,26 +155,24 @@ // and ViewTargeter::FindNextBestTarget() are implemented correctly // for scroll events. TEST_F(ViewTargeterTest, ViewTargeterForScrollEvents) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_POPUP); init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; init_params.bounds = gfx::Rect(0, 0, 200, 200); - widget.Init(std::move(init_params)); + widget->Init(std::move(init_params)); // The coordinates used for SetBounds() are in the parent coordinate space. auto owning_content = std::make_unique<View>(); owning_content->SetBounds(0, 0, 100, 100); - View* child = new View; + + View* content = widget->SetContentsView(std::move(owning_content)); + View* child = content->AddChildView(std::make_unique<View>()); child->SetBounds(50, 50, 20, 20); - View* grandchild = new View; + View* grandchild = child->AddChildView(std::make_unique<View>()); grandchild->SetBounds(0, 0, 5, 5); - View* content = widget.SetContentsView(std::move(owning_content)); - content->AddChildView(child); - child->AddChildView(grandchild); - internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); // The event falls within the bounds of |child| and |content| but not @@ -193,8 +188,8 @@ current_target = targeter->FindNextBestTarget(child, &scroll); EXPECT_EQ(content, static_cast<View*>(current_target)); current_target = targeter->FindNextBestTarget(content, &scroll); - EXPECT_EQ(widget.GetRootView(), static_cast<View*>(current_target)); - current_target = targeter->FindNextBestTarget(widget.GetRootView(), &scroll); + EXPECT_EQ(widget->GetRootView(), static_cast<View*>(current_target)); + current_target = targeter->FindNextBestTarget(widget->GetRootView(), &scroll); EXPECT_EQ(nullptr, static_cast<View*>(current_target)); // The event falls outside of the original specified bounds of |content|, @@ -229,25 +224,21 @@ // and ViewTargeter::FindNextBestTarget() are implemented correctly // for gesture events. TEST_F(ViewTargeterTest, ViewTargeterForGestureEvents) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_POPUP); - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; init_params.bounds = gfx::Rect(0, 0, 200, 200); - widget.Init(std::move(init_params)); + widget->Init(std::move(init_params)); + View* content = widget->SetContentsView(std::make_unique<View>()); + content->SetBounds(0, 0, 100, 100); // The coordinates used for SetBounds() are in the parent coordinate space. - View* child = new View; + View* child = content->AddChildView(std::make_unique<View>()); child->SetBounds(50, 50, 20, 20); - View* grandchild = new View; + View* grandchild = child->AddChildView(std::make_unique<View>()); grandchild->SetBounds(0, 0, 5, 5); - View* content = widget.SetContentsView(std::make_unique<View>()); - content->SetBounds(0, 0, 100, 100); - content->AddChildView(child); - child->AddChildView(grandchild); - internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); // Define some gesture events for testing. @@ -338,19 +329,18 @@ // tests that the root view is targeted for gesture events which should // not be targeted to any other view in the views tree. TEST_F(ViewTargeterTest, TargetContentsAndRootView) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_POPUP); - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; init_params.bounds = gfx::Rect(0, 0, 200, 200); - widget.Init(std::move(init_params)); + widget->Init(std::move(init_params)); // The coordinates used for SetBounds() are in the parent coordinate space. auto owning_content = std::make_unique<View>(); owning_content->SetBounds(0, 0, 100, 100); - View* content = widget.SetContentsView(std::move(owning_content)); + View* content = widget->SetContentsView(std::move(owning_content)); internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); // A gesture event located entirely within the contents view should @@ -387,7 +377,7 @@ details.set_bounding_box(bounding_box); tap = GestureEventForTest(details); - EXPECT_EQ(widget.GetRootView(), + EXPECT_EQ(widget->GetRootView(), targeter->FindTargetForEvent(root_view, &tap)); // A gesture event completely outside the contents view should be targeted @@ -396,7 +386,7 @@ details.set_bounding_box(bounding_box); tap = GestureEventForTest(details); - EXPECT_EQ(widget.GetRootView(), + EXPECT_EQ(widget->GetRootView(), targeter->FindTargetForEvent(root_view, &tap)); // A gesture event with dimensions 1x1 located entirely within the @@ -413,35 +403,30 @@ details.set_bounding_box(bounding_box); tap = GestureEventForTest(details); - EXPECT_EQ(widget.GetRootView(), + EXPECT_EQ(widget->GetRootView(), targeter->FindTargetForEvent(root_view, &tap)); } // Tests that calls to FindTargetForEvent() and FindNextBestTarget() change // the location of a gesture event to be in the correct coordinate space. TEST_F(ViewTargeterTest, GestureEventCoordinateConversion) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_POPUP); - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; init_params.bounds = gfx::Rect(0, 0, 200, 200); - widget.Init(std::move(init_params)); + widget->Init(std::move(init_params)); // The coordinates used for SetBounds() are in the parent coordinate space. - View* child = new View; + View* content = widget->SetContentsView(std::make_unique<View>()); + content->SetBounds(0, 0, 100, 100); + View* child = content->AddChildView(std::make_unique<View>()); child->SetBounds(50, 50, 20, 20); - View* grandchild = new View; + View* grandchild = child->AddChildView(std::make_unique<View>()); grandchild->SetBounds(5, 5, 10, 10); - View* great_grandchild = new View; + View* great_grandchild = grandchild->AddChildView(std::make_unique<View>()); great_grandchild->SetBounds(3, 3, 4, 4); - View* content = widget.SetContentsView(std::make_unique<View>()); - content->SetBounds(0, 0, 100, 100); - content->AddChildView(child); - child->AddChildView(grandchild); - grandchild->AddChildView(great_grandchild); - internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); // Define a GESTURE_TAP event with a bounding box centered at (60, 60) @@ -498,13 +483,13 @@ // The next target should be |root_view| and the location of // the event should be changed into the coordinate space of the target. - EXPECT_EQ(widget.GetRootView(), targeter->FindNextBestTarget(content, &tap)); + EXPECT_EQ(widget->GetRootView(), targeter->FindNextBestTarget(content, &tap)); EXPECT_EQ(location_in_root, tap.location()); - SetGestureHandler(root_view, widget.GetRootView()); + SetGestureHandler(root_view, widget->GetRootView()); // The next target should be NULL and the location of the event should // remain unchanged. - EXPECT_EQ(nullptr, targeter->FindNextBestTarget(widget.GetRootView(), &tap)); + EXPECT_EQ(nullptr, targeter->FindNextBestTarget(widget->GetRootView(), &tap)); EXPECT_EQ(location_in_root, tap.location()); } @@ -514,49 +499,46 @@ // Also verifies that ViewTargeterDelegate::DoesIntersectRect() can // be called from the ViewTargeter installed on RootView. TEST_F(ViewTargeterTest, DoesIntersectRect) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(0, 0, 650, 650); - widget.Init(std::move(params)); + widget->Init(std::move(params)); internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ViewTargeter* view_targeter = root_view->targeter(); // The coordinates used for SetBounds() are in the parent coordinate space. - TestingView v2; - TestMaskedView v1, v3; - v1.SetBounds(0, 0, 200, 200); - v2.SetBounds(300, 0, 300, 300); - v3.SetBounds(0, 0, 100, 100); - root_view->AddChildView(&v1); - root_view->AddChildView(&v2); - v2.AddChildView(&v3); + auto* v1 = root_view->AddChildView(std::make_unique<TestMaskedView>()); + v1->SetBounds(0, 0, 200, 200); + auto* v2 = root_view->AddChildView(std::make_unique<TestingView>()); + v2->SetBounds(300, 0, 300, 300); + auto* v3 = v2->AddChildView(std::make_unique<TestMaskedView>()); + v3->SetBounds(0, 0, 100, 100); // The coordinates used below are in the local coordinate space of the // view that is passed in as an argument. // Hit tests against |v1|, which has a hit test mask. - EXPECT_TRUE(v1.TestDoesIntersectRect(&v1, gfx::Rect(0, 0, 200, 200))); - EXPECT_TRUE(v1.TestDoesIntersectRect(&v1, gfx::Rect(-10, -10, 110, 12))); - EXPECT_TRUE(v1.TestDoesIntersectRect(&v1, gfx::Rect(112, 142, 1, 1))); - EXPECT_FALSE(v1.TestDoesIntersectRect(&v1, gfx::Rect(0, 0, 20, 20))); - EXPECT_FALSE(v1.TestDoesIntersectRect(&v1, gfx::Rect(-10, -10, 90, 12))); - EXPECT_FALSE(v1.TestDoesIntersectRect(&v1, gfx::Rect(150, 49, 1, 1))); + EXPECT_TRUE(v1->TestDoesIntersectRect(v1, gfx::Rect(0, 0, 200, 200))); + EXPECT_TRUE(v1->TestDoesIntersectRect(v1, gfx::Rect(-10, -10, 110, 12))); + EXPECT_TRUE(v1->TestDoesIntersectRect(v1, gfx::Rect(112, 142, 1, 1))); + EXPECT_FALSE(v1->TestDoesIntersectRect(v1, gfx::Rect(0, 0, 20, 20))); + EXPECT_FALSE(v1->TestDoesIntersectRect(v1, gfx::Rect(-10, -10, 90, 12))); + EXPECT_FALSE(v1->TestDoesIntersectRect(v1, gfx::Rect(150, 49, 1, 1))); // Hit tests against |v2|, which does not have a hit test mask. - EXPECT_TRUE(v2.TestDoesIntersectRect(&v2, gfx::Rect(0, 0, 200, 200))); - EXPECT_TRUE(v2.TestDoesIntersectRect(&v2, gfx::Rect(-10, 250, 60, 60))); - EXPECT_TRUE(v2.TestDoesIntersectRect(&v2, gfx::Rect(250, 250, 1, 1))); - EXPECT_FALSE(v2.TestDoesIntersectRect(&v2, gfx::Rect(-10, 250, 7, 7))); - EXPECT_FALSE(v2.TestDoesIntersectRect(&v2, gfx::Rect(-1, -1, 1, 1))); + EXPECT_TRUE(v2->TestDoesIntersectRect(v2, gfx::Rect(0, 0, 200, 200))); + EXPECT_TRUE(v2->TestDoesIntersectRect(v2, gfx::Rect(-10, 250, 60, 60))); + EXPECT_TRUE(v2->TestDoesIntersectRect(v2, gfx::Rect(250, 250, 1, 1))); + EXPECT_FALSE(v2->TestDoesIntersectRect(v2, gfx::Rect(-10, 250, 7, 7))); + EXPECT_FALSE(v2->TestDoesIntersectRect(v2, gfx::Rect(-1, -1, 1, 1))); // Hit tests against |v3|, which has a hit test mask and is a child of |v2|. - EXPECT_TRUE(v3.TestDoesIntersectRect(&v3, gfx::Rect(0, 0, 50, 50))); - EXPECT_TRUE(v3.TestDoesIntersectRect(&v3, gfx::Rect(90, 90, 1, 1))); - EXPECT_FALSE(v3.TestDoesIntersectRect(&v3, gfx::Rect(10, 125, 50, 50))); - EXPECT_FALSE(v3.TestDoesIntersectRect(&v3, gfx::Rect(110, 110, 1, 1))); + EXPECT_TRUE(v3->TestDoesIntersectRect(v3, gfx::Rect(0, 0, 50, 50))); + EXPECT_TRUE(v3->TestDoesIntersectRect(v3, gfx::Rect(90, 90, 1, 1))); + EXPECT_FALSE(v3->TestDoesIntersectRect(v3, gfx::Rect(10, 125, 50, 50))); + EXPECT_FALSE(v3->TestDoesIntersectRect(v3, gfx::Rect(110, 110, 1, 1))); // Verify that hit-testing is performed correctly when using the // call-through function ViewTargeter::DoesIntersectRect(). @@ -570,7 +552,7 @@ // (HitTestPoint(), HitTestRect(), etc.) return the correct values. TEST_F(ViewTargeterTest, HitTestCallsOnView) { // The coordinates in this test are in the coordinate space of the root view. - Widget* widget = new Widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); widget->Init(std::move(params)); View* root_view = widget->GetRootView(); @@ -580,18 +562,16 @@ // means that View::HitTestRect() will call into the targeter installed on // the root view instead when we hit test against |v1|. gfx::Rect v1_bounds = gfx::Rect(0, 0, 100, 100); - TestingView* v1 = new TestingView(); + TestingView* v1 = root_view->AddChildView(std::make_unique<TestingView>()); v1->SetBoundsRect(v1_bounds); - root_view->AddChildView(v1); // |v2| has a triangular hit test mask. Install a ViewTargeter on |v2| which // will be called into by View::HitTestRect(). gfx::Rect v2_bounds = gfx::Rect(105, 0, 100, 100); - TestMaskedView* v2 = new TestMaskedView(); + TestMaskedView* v2 = + root_view->AddChildView(std::make_unique<TestMaskedView>()); v2->SetBoundsRect(v2_bounds); - root_view->AddChildView(v2); - ViewTargeter* view_targeter = new ViewTargeter(v2); - v2->SetEventTargeter(base::WrapUnique(view_targeter)); + v2->SetEventTargeter(std::make_unique<ViewTargeter>(v2)); gfx::Point v1_centerpoint = v1_bounds.CenterPoint(); gfx::Point v2_centerpoint = v2_bounds.CenterPoint(); @@ -639,24 +619,21 @@ EXPECT_EQ(root_view, root_view->GetTooltipHandlerForPoint(v2_origin)); EXPECT_FALSE(v1->GetTooltipHandlerForPoint(v2_origin)); - - widget->CloseNow(); } TEST_F(ViewTargeterTest, FavorChildContainingHitBounds) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams init_params = CreateParams(Widget::InitParams::TYPE_POPUP); - init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; init_params.bounds = gfx::Rect(0, 0, 200, 200); - widget.Init(std::move(init_params)); + widget->Init(std::move(init_params)); - View* content = widget.SetContentsView(std::make_unique<View>()); + View* content = widget->SetContentsView(std::make_unique<View>()); content->SetBounds(0, 0, 50, 50); View* child = content->AddChildView(std::make_unique<View>()); child->SetBounds(2, 2, 50, 50); internal::RootView* root_view = - static_cast<internal::RootView*>(widget.GetRootView()); + static_cast<internal::RootView*>(widget->GetRootView()); ui::EventTargeter* targeter = root_view->targeter(); gfx::RectF bounding_box(gfx::PointF(4.f, 4.f), gfx::SizeF(42.f, 42.f));
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc index 7fd4777..f36564f 100644 --- a/ui/views/view_unittest.cc +++ b/ui/views/view_unittest.cc
@@ -59,10 +59,13 @@ #include "ui/views/paint_info.h" #include "ui/views/test/view_metadata_test_utils.h" #include "ui/views/test/views_test_base.h" +#include "ui/views/test/widget_test.h" #include "ui/views/view_observer.h" +#include "ui/views/view_utils.h" #include "ui/views/views_features.h" #include "ui/views/widget/native_widget.h" #include "ui/views/widget/root_view.h" +#include "ui/views/widget/unique_widget_ptr.h" #include "ui/views/window/dialog_delegate.h" using testing::ElementsAre; @@ -445,22 +448,20 @@ } TEST_F(ViewTest, MouseEvent) { - TestView* v1 = new TestView(); - v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); + auto view1 = std::make_unique<TestView>(); + view1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); - TestView* v2 = new TestView(); - v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); + auto view2 = std::make_unique<TestView>(); + view2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget(std::make_unique<Widget>()); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); - internal::RootView* root = - static_cast<internal::RootView*>(widget->GetRootView()); + auto* root = AsViewClass<internal::RootView>(widget->GetRootView()); - root->AddChildView(v1); - v1->AddChildView(v2); + TestView* v1 = root->AddChildView(std::move(view1)); + TestView* v2 = v1->AddChildView(std::move(view2)); v1->Reset(); v2->Reset(); @@ -499,30 +500,27 @@ EXPECT_EQ(v2->location_.y(), -100); // Make sure v1 did not receive the event EXPECT_EQ(v1->last_mouse_event_type_, 0); - - widget->CloseNow(); } // Confirm that a view can be deleted as part of processing a mouse press. TEST_F(ViewTest, DeleteOnPressed) { - TestView* v1 = new TestView(); - v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); + auto view1 = std::make_unique<TestView>(); + view1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); - TestView* v2 = new TestView(); - v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); + auto view2 = std::make_unique<TestView>(); + view2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); - v1->Reset(); - v2->Reset(); + view1->Reset(); + view2->Reset(); - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget(std::make_unique<Widget>()); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); View* root = widget->GetRootView(); - root->AddChildView(v1); - v1->AddChildView(v2); + TestView* v1 = root->AddChildView(std::move(view1)); + TestView* v2 = v1->AddChildView(std::move(view2)); v2->delete_on_pressed_ = true; gfx::Point point(110, 120); @@ -531,8 +529,6 @@ ui::EF_LEFT_MOUSE_BUTTON); root->OnMousePressed(pressed); EXPECT_TRUE(v1->children().empty()); - - widget->CloseNow(); } //////////////////////////////////////////////////////////////////////////////// @@ -2178,38 +2174,38 @@ public: TestViewWidget(Widget::InitParams create_params, ui::Accelerator* initial_accelerator, - bool show_after_init = true) - : view_(new TestView) { - view_->Reset(); + bool show_after_init = true) { + auto view = std::make_unique<TestView>(); + view->Reset(); // Register a keyboard accelerator before the view is added to a window. if (initial_accelerator) { - view_->AddAccelerator(*initial_accelerator); - EXPECT_EQ(view_->accelerator_count_map_[*initial_accelerator], 0); + view->AddAccelerator(*initial_accelerator); + EXPECT_EQ(view->accelerator_count_map_[*initial_accelerator], 0); } + widget_ = std::make_unique<Widget>(); // Create a window and add the view as its child. Widget::InitParams params = std::move(create_params); - params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(0, 0, 100, 100); - widget_.Init(std::move(params)); - View* root = widget_.GetRootView(); - root->AddChildView(view_.get()); + widget_->Init(std::move(params)); + View* root = widget_->GetRootView(); + view_ = root->AddChildView(std::move(view)); if (show_after_init) - widget_.Show(); + widget_->Show(); - EXPECT_TRUE(widget_.GetFocusManager()); + EXPECT_TRUE(widget_->GetFocusManager()); } TestViewWidget(const TestViewWidget&) = delete; TestViewWidget& operator=(const TestViewWidget&) = delete; TestView* view() { return view_; } - Widget* widget() { return &widget_; } + Widget* widget() { return widget_.get(); } private: raw_ptr<TestView> view_; - Widget widget_; + UniqueWidgetPtr widget_; }; } // namespace @@ -2450,19 +2446,17 @@ // View::ViewHierarchyChanged() and View::NativeViewHierarchyChanged(). // b) a widget has the correct parent after reparenting. TEST_F(ViewTest, NativeViewHierarchyChanged) { - std::unique_ptr<Widget> toplevel1(new Widget); + UniqueWidgetPtr toplevel1 = std::make_unique<Widget>(); Widget::InitParams toplevel1_params = CreateParams(Widget::InitParams::TYPE_POPUP); - toplevel1_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; toplevel1->Init(std::move(toplevel1_params)); - std::unique_ptr<Widget> toplevel2(new Widget); + UniqueWidgetPtr toplevel2 = std::make_unique<Widget>(); Widget::InitParams toplevel2_params = CreateParams(Widget::InitParams::TYPE_POPUP); - toplevel2_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; toplevel2->Init(std::move(toplevel2_params)); - Widget* child = new Widget; + UniqueWidgetPtr child = std::make_unique<Widget>(); Widget::InitParams child_params(Widget::InitParams::TYPE_CONTROL); child_params.parent = toplevel1->GetNativeView(); child->Init(std::move(child_params)); @@ -2517,21 +2511,21 @@ }; TEST_F(ViewTest, TransformPaint) { - TransformPaintView* v1 = new TransformPaintView(); - v1->SetBoundsRect(gfx::Rect(0, 0, 500, 300)); + auto view1 = std::make_unique<TransformPaintView>(); + view1->SetBoundsRect(gfx::Rect(0, 0, 500, 300)); - TestView* v2 = new TestView(); - v2->SetBoundsRect(gfx::Rect(100, 100, 200, 100)); + auto view2 = std::make_unique<TestView>(); + view2->SetBoundsRect(gfx::Rect(100, 100, 200, 100)); - Widget* widget = new Widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); widget->Show(); View* root = widget->GetRootView(); - root->AddChildView(v1); - v1->AddChildView(v2); + TransformPaintView* v1 = root->AddChildView(std::move(view1)); + TestView* v2 = v1->AddChildView(std::move(view2)); // At this moment, |v2| occupies (100, 100) to (300, 200) in |root|. v1->ClearScheduledPaintRect(); @@ -2551,25 +2545,23 @@ v2->SchedulePaint(); EXPECT_EQ(gfx::Rect(100, 200, 100, 200), v1->scheduled_paint_rect()); - - widget->CloseNow(); } TEST_F(ViewTest, TransformEvent) { - TestView* v1 = new TestView(); - v1->SetBoundsRect(gfx::Rect(0, 0, 500, 300)); + auto view1 = std::make_unique<TestView>(); + view1->SetBoundsRect(gfx::Rect(0, 0, 500, 300)); - TestView* v2 = new TestView(); - v2->SetBoundsRect(gfx::Rect(100, 100, 200, 100)); + auto view2 = std::make_unique<TestView>(); + view2->SetBoundsRect(gfx::Rect(100, 100, 200, 100)); - Widget* widget = new Widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); View* root = widget->GetRootView(); - root->AddChildView(v1); - v1->AddChildView(v2); + TestView* v1 = root->AddChildView(std::move(view1)); + TestView* v2 = v1->AddChildView(std::move(view2)); // At this moment, |v2| occupies (100, 100) to (300, 200) in |root|. @@ -2622,9 +2614,9 @@ v1->SetTransform(gfx::Transform()); v2->SetTransform(gfx::Transform()); - TestView* v3 = new TestView(); - v3->SetBoundsRect(gfx::Rect(10, 10, 20, 30)); - v2->AddChildView(v3); + auto view3 = std::make_unique<TestView>(); + view3->SetBoundsRect(gfx::Rect(10, 10, 20, 30)); + TestView* v3 = v2->AddChildView(std::move(view3)); // Rotate |v3| clockwise with respect to |v2|. transform = v1->GetTransform(); @@ -2693,16 +2685,13 @@ EXPECT_EQ(25, v3->location_.y()); root->OnMouseReleased(released); - - widget->CloseNow(); } TEST_F(ViewTest, TransformVisibleBound) { gfx::Rect viewport_bounds(0, 0, 100, 100); - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = viewport_bounds; widget->Init(std::move(params)); widget->GetRootView()->SetBoundsRect(viewport_bounds); @@ -2722,8 +2711,6 @@ transform.matrix().setRC(1, 3, 50.f); child->SetTransform(transform); EXPECT_EQ(gfx::Rect(40, 0, 10, 50), child->GetVisibleBounds()); - - widget->CloseNow(); } //////////////////////////////////////////////////////////////////////////////// @@ -2756,9 +2743,8 @@ TEST_F(ViewTest, OnVisibleBoundsChanged) { gfx::Rect viewport_bounds(0, 0, 100, 100); - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = viewport_bounds; widget->Init(std::move(params)); widget->GetRootView()->SetBoundsRect(viewport_bounds); @@ -2792,62 +2778,60 @@ EXPECT_TRUE(child->received_notification()); EXPECT_EQ(1, child->GetVisibleBounds().height()); child->set_received_notification(false); - - widget->CloseNow(); } TEST_F(ViewTest, SetBoundsPaint) { - TestView top_view; - TestView* child_view = new TestView; + auto top_view = std::make_unique<TestView>(); + auto child = std::make_unique<TestView>(); - top_view.SetBoundsRect(gfx::Rect(0, 0, 100, 100)); - top_view.scheduled_paint_rects_.clear(); - child_view->SetBoundsRect(gfx::Rect(10, 10, 20, 20)); - top_view.AddChildView(child_view); + top_view->SetBoundsRect(gfx::Rect(0, 0, 100, 100)); + top_view->scheduled_paint_rects_.clear(); + child->SetBoundsRect(gfx::Rect(10, 10, 20, 20)); + TestView* child_view = top_view->AddChildView(std::move(child)); - top_view.scheduled_paint_rects_.clear(); + top_view->scheduled_paint_rects_.clear(); child_view->SetBoundsRect(gfx::Rect(30, 30, 20, 20)); - EXPECT_EQ(2U, top_view.scheduled_paint_rects_.size()); + EXPECT_EQ(2U, top_view->scheduled_paint_rects_.size()); // There should be 2 rects, spanning from (10, 10) to (50, 50). - gfx::Rect paint_rect = top_view.scheduled_paint_rects_[0]; - paint_rect.Union(top_view.scheduled_paint_rects_[1]); + gfx::Rect paint_rect = top_view->scheduled_paint_rects_[0]; + paint_rect.Union(top_view->scheduled_paint_rects_[1]); EXPECT_EQ(gfx::Rect(10, 10, 40, 40), paint_rect); } // Assertions around painting and focus gain/lost. TEST_F(ViewTest, FocusBlurPaints) { - TestView parent_view; - TestView* child_view1 = new TestView; // Owned by |parent_view|. + auto parent_view = std::make_unique<TestView>(); + auto child = std::make_unique<TestView>(); // Owned by |parent_view|. - parent_view.SetBoundsRect(gfx::Rect(0, 0, 100, 100)); + parent_view->SetBoundsRect(gfx::Rect(0, 0, 100, 100)); - child_view1->SetBoundsRect(gfx::Rect(0, 0, 20, 20)); - parent_view.AddChildView(child_view1); + child->SetBoundsRect(gfx::Rect(0, 0, 20, 20)); + TestView* child_view = parent_view->AddChildView(std::move(child)); - parent_view.scheduled_paint_rects_.clear(); - child_view1->scheduled_paint_rects_.clear(); + parent_view->scheduled_paint_rects_.clear(); + child_view->scheduled_paint_rects_.clear(); // Focus change shouldn't trigger paints. - child_view1->DoFocus(); + child_view->DoFocus(); - EXPECT_TRUE(parent_view.scheduled_paint_rects_.empty()); - EXPECT_TRUE(child_view1->scheduled_paint_rects_.empty()); + EXPECT_TRUE(parent_view->scheduled_paint_rects_.empty()); + EXPECT_TRUE(child_view->scheduled_paint_rects_.empty()); - child_view1->DoBlur(); - EXPECT_TRUE(parent_view.scheduled_paint_rects_.empty()); - EXPECT_TRUE(child_view1->scheduled_paint_rects_.empty()); + child_view->DoBlur(); + EXPECT_TRUE(parent_view->scheduled_paint_rects_.empty()); + EXPECT_TRUE(child_view->scheduled_paint_rects_.empty()); } // Verifies SetBounds(same bounds) doesn't trigger a SchedulePaint(). TEST_F(ViewTest, SetBoundsSameBoundsDoesntSchedulePaint) { - TestView view; + auto view = std::make_unique<TestView>(); - view.SetBoundsRect(gfx::Rect(0, 0, 100, 100)); - view.InvalidateLayout(); - view.scheduled_paint_rects_.clear(); - view.SetBoundsRect(gfx::Rect(0, 0, 100, 100)); - EXPECT_TRUE(view.scheduled_paint_rects_.empty()); + view->SetBoundsRect(gfx::Rect(0, 0, 100, 100)); + view->InvalidateLayout(); + view->scheduled_paint_rects_.clear(); + view->SetBoundsRect(gfx::Rect(0, 0, 100, 100)); + EXPECT_TRUE(view->scheduled_paint_rects_.empty()); } // Verifies AddChildView() and RemoveChildView() schedule appropriate paints. @@ -2856,9 +2840,8 @@ // We have to put the View hierarchy into a Widget or no paints will be // scheduled. - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = viewport_bounds; widget->Init(std::move(params)); widget->GetRootView()->SetBoundsRect(viewport_bounds); @@ -2878,8 +2861,6 @@ std::unique_ptr<View> child_deleter(child_view); ASSERT_EQ(1U, parent_view->scheduled_paint_rects_.size()); EXPECT_EQ(child_view->bounds(), parent_view->scheduled_paint_rects_.front()); - - widget->CloseNow(); } // Tests conversion methods with a transform. @@ -3073,14 +3054,12 @@ // Tests conversion methods to and from screen coordinates. TEST_F(ViewTest, ConversionsToFromScreen) { - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); - View* child = new View; - widget->GetRootView()->AddChildView(child); + View* child = widget->GetRootView()->AddChildView(std::make_unique<View>()); child->SetBounds(10, 10, 100, 200); gfx::Transform t; t.Scale(0.5, 0.5); @@ -3105,17 +3084,14 @@ // Tests conversion methods for rectangles. TEST_F(ViewTest, ConvertRectWithTransform) { - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 650, 650); widget->Init(std::move(params)); View* root = widget->GetRootView(); - TestView* v1 = new TestView; - TestView* v2 = new TestView; - root->AddChildView(v1); - v1->AddChildView(v2); + TestView* v1 = root->AddChildView(std::make_unique<TestView>()); + TestView* v2 = v1->AddChildView(std::make_unique<TestView>()); v1->SetBoundsRect(gfx::Rect(10, 10, 500, 500)); v2->SetBoundsRect(gfx::Rect(20, 20, 100, 200)); @@ -3146,8 +3122,6 @@ // |v2| now occupies (20, 20) to (120, 70) in |widget| EXPECT_EQ(gfx::Rect(22, 60, 21, 8).ToString(), v2->ConvertRectToWidget(rect).ToString()); - - widget->CloseNow(); } class ObserverView : public View { @@ -3210,133 +3184,131 @@ // down). // The tree looks like this: // v1 -// +-- v2 +// +-- v2(view2) // +-- v3 // +-- v4 (starts here, then get reparented to v1) TEST_F(ViewTest, ViewHierarchyChanged) { - ObserverView v1; + auto view1 = std::make_unique<ObserverView>(); + ObserverView* v1 = view1.get(); - ObserverView* v3 = new ObserverView(); + auto view3 = std::make_unique<ObserverView>(); - // Add |v3| to |v2|. - std::unique_ptr<ObserverView> v2(new ObserverView()); - v2->AddChildView(v3); + auto view2 = std::make_unique<ObserverView>(); + ObserverView* v3 = view2->AddChildView(std::move(view3)); - // Make sure both |v2| and |v3| receive the ViewHierarchyChanged() + // Make sure both |view2| and |v3| receive the ViewHierarchyChanged() // notification. - EXPECT_TRUE(v2->has_add_details()); - EXPECT_FALSE(v2->has_remove_details()); - EXPECT_EQ(v2.get(), v2->add_details().parent); - EXPECT_EQ(v3, v2->add_details().child); - EXPECT_EQ(nullptr, v2->add_details().move_view); + EXPECT_TRUE(view2->has_add_details()); + EXPECT_FALSE(view2->has_remove_details()); + EXPECT_EQ(view2.get(), view2->add_details().parent); + EXPECT_EQ(v3, view2->add_details().child); + EXPECT_EQ(nullptr, view2->add_details().move_view); EXPECT_TRUE(v3->has_add_details()); EXPECT_FALSE(v3->has_remove_details()); - EXPECT_EQ(v2.get(), v3->add_details().parent); + EXPECT_EQ(view2.get(), v3->add_details().parent); EXPECT_EQ(v3, v3->add_details().child); EXPECT_EQ(nullptr, v3->add_details().move_view); // Reset everything to the initial state. - v2->ResetTestState(); + view2->ResetTestState(); v3->ResetTestState(); - // Add |v2| to v1. - v1.AddChildView(v2.get()); + // Add |view2| to |view1|. + ObserverView* v2 = view1->AddChildView(std::move(view2)); - // Verifies that |v2| is the child view *added* and the parent view is |v1|. - // Make sure all the views (v1, v2, v3) received _that_ information. - EXPECT_TRUE(v1.has_add_details()); - EXPECT_FALSE(v1.has_remove_details()); - EXPECT_EQ(&v1, v1.add_details().parent); - EXPECT_EQ(v2.get(), v1.add_details().child); - EXPECT_EQ(nullptr, v1.add_details().move_view); + // Verifies that |v2| is the child view *added* and the parent view is + // |v1|. Make sure all the views (v1, v2, v3) received _that_ information. + EXPECT_TRUE(v1->has_add_details()); + EXPECT_FALSE(v1->has_remove_details()); + EXPECT_EQ(v1, view1->add_details().parent); + EXPECT_EQ(v2, view1->add_details().child); + EXPECT_EQ(nullptr, view1->add_details().move_view); EXPECT_TRUE(v2->has_add_details()); EXPECT_FALSE(v2->has_remove_details()); - EXPECT_EQ(&v1, v2->add_details().parent); - EXPECT_EQ(v2.get(), v2->add_details().child); + EXPECT_EQ(v1, v2->add_details().parent); + EXPECT_EQ(v2, v2->add_details().child); EXPECT_EQ(nullptr, v2->add_details().move_view); EXPECT_TRUE(v3->has_add_details()); EXPECT_FALSE(v3->has_remove_details()); - EXPECT_EQ(&v1, v3->add_details().parent); - EXPECT_EQ(v2.get(), v3->add_details().child); + EXPECT_EQ(v1, v3->add_details().parent); + EXPECT_EQ(v2, v3->add_details().child); EXPECT_EQ(nullptr, v3->add_details().move_view); - // Reset everything to the initial state. - v1.ResetTestState(); + v1->ResetTestState(); v2->ResetTestState(); v3->ResetTestState(); - // Remove |v2| from |v1|. - v1.RemoveChildView(v2.get()); + view2 = view1->RemoveChildViewT(v2); - // Verifies that |v2| is the child view *removed* and the parent view is |v1|. - // Make sure all the views (v1, v2, v3) received _that_ information. - EXPECT_FALSE(v1.has_add_details()); - EXPECT_TRUE(v1.has_remove_details()); - EXPECT_EQ(&v1, v1.remove_details().parent); - EXPECT_EQ(v2.get(), v1.remove_details().child); - EXPECT_EQ(nullptr, v1.remove_details().move_view); + // view2 now owns v2 from here. + // Verifies that |view2| is the child view *removed* and the parent view is + // |v1|. Make sure all the views (v1, v2, v3) received _that_ information. + EXPECT_FALSE(v1->has_add_details()); + EXPECT_TRUE(v1->has_remove_details()); + EXPECT_EQ(v1, v1->remove_details().parent); + EXPECT_EQ(v2, v1->remove_details().child); + EXPECT_EQ(nullptr, v1->remove_details().move_view); EXPECT_FALSE(v2->has_add_details()); EXPECT_TRUE(v2->has_remove_details()); - EXPECT_EQ(&v1, v2->remove_details().parent); - EXPECT_EQ(v2.get(), v2->remove_details().child); - EXPECT_EQ(nullptr, v2->remove_details().move_view); + EXPECT_EQ(v1, view2->remove_details().parent); + EXPECT_EQ(v2, view2->remove_details().child); + EXPECT_EQ(nullptr, view2->remove_details().move_view); EXPECT_FALSE(v3->has_add_details()); EXPECT_TRUE(v3->has_remove_details()); - EXPECT_EQ(&v1, v3->remove_details().parent); + EXPECT_EQ(v1, v3->remove_details().parent); EXPECT_EQ(v3, v3->remove_details().child); EXPECT_EQ(nullptr, v3->remove_details().move_view); // Verifies notifications when reparenting a view. - ObserverView* v4 = new ObserverView(); - // Add |v4| to |v2|. - v2->AddChildView(v4); + // Add |v4| to |view2|. + auto* v4 = view2->AddChildView(std::make_unique<ObserverView>()); // Reset everything to the initial state. - v1.ResetTestState(); + v1->ResetTestState(); v2->ResetTestState(); v3->ResetTestState(); v4->ResetTestState(); - // Reparent |v4| to |v1|. - v1.AddChildView(v4); + // Reparent |v4| to |view1|. + v1->AddChildView(v4); // Verifies that all views receive the correct information for all the child, // parent and move views. // |v1| is the new parent, |v4| is the child for add, |v2| is the old parent. - EXPECT_TRUE(v1.has_add_details()); - EXPECT_FALSE(v1.has_remove_details()); - EXPECT_EQ(&v1, v1.add_details().parent); - EXPECT_EQ(v4, v1.add_details().child); - EXPECT_EQ(v2.get(), v1.add_details().move_view); + EXPECT_TRUE(v1->has_add_details()); + EXPECT_FALSE(v1->has_remove_details()); + EXPECT_EQ(v1, view1->add_details().parent); + EXPECT_EQ(v4, view1->add_details().child); + EXPECT_EQ(v2, view1->add_details().move_view); // |v2| is the old parent, |v4| is the child for remove, |v1| is the new // parent. EXPECT_FALSE(v2->has_add_details()); EXPECT_TRUE(v2->has_remove_details()); - EXPECT_EQ(v2.get(), v2->remove_details().parent); - EXPECT_EQ(v4, v2->remove_details().child); - EXPECT_EQ(&v1, v2->remove_details().move_view); + EXPECT_EQ(v2, view2->remove_details().parent); + EXPECT_EQ(v4, view2->remove_details().child); + EXPECT_EQ(v1, view2->remove_details().move_view); // |v3| is not impacted by this operation, and hence receives no notification. EXPECT_FALSE(v3->has_add_details()); EXPECT_FALSE(v3->has_remove_details()); // |v4| is the reparented child, so it receives notifications for the remove - // and then the add. |v2| is its old parent, |v1| is its new parent. + // and then the add. |view2| is its old parent, |v1| is its new parent. EXPECT_TRUE(v4->has_remove_details()); EXPECT_TRUE(v4->has_add_details()); - EXPECT_EQ(v2.get(), v4->remove_details().parent); - EXPECT_EQ(&v1, v4->add_details().parent); + EXPECT_EQ(v2, v4->remove_details().parent); + EXPECT_EQ(v1, v4->add_details().parent); EXPECT_EQ(v4, v4->add_details().child); EXPECT_EQ(v4, v4->remove_details().child); - EXPECT_EQ(&v1, v4->remove_details().move_view); - EXPECT_EQ(v2.get(), v4->add_details().move_view); + EXPECT_EQ(v1, v4->remove_details().move_view); + EXPECT_EQ(v2, v4->add_details().move_view); } class WidgetObserverView : public View { @@ -3393,23 +3365,22 @@ // // finally v1 is removed from root. TEST_F(ViewTest, AddedToRemovedFromWidget) { - Widget widget; + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 650, 650); - widget.Init(std::move(params)); + widget->Init(std::move(params)); - View* root = widget.GetRootView(); + View* root = widget->GetRootView(); auto v1 = std::make_unique<WidgetObserverView>(); auto v2 = std::make_unique<WidgetObserverView>(); auto v3 = std::make_unique<WidgetObserverView>(); - auto* v2_ptr = v1->AddChildView(std::move(v2)); + WidgetObserverView* v2_ptr = v1->AddChildView(std::move(v2)); EXPECT_EQ(0, v2_ptr->added_to_widget_count()); EXPECT_EQ(0, v2_ptr->removed_from_widget_count()); - auto* v1_ptr = root->AddChildView(std::move(v1)); + WidgetObserverView* v1_ptr = root->AddChildView(std::move(v1)); EXPECT_EQ(1, v1_ptr->added_to_widget_count()); EXPECT_EQ(0, v1_ptr->removed_from_widget_count()); EXPECT_EQ(1, v2_ptr->added_to_widget_count()); @@ -3418,7 +3389,7 @@ v1_ptr->ResetTestState(); v2_ptr->ResetTestState(); - auto* v3_ptr = v2_ptr->AddChildView(std::move(v3)); + WidgetObserverView* v3_ptr = v2_ptr->AddChildView(std::move(v3)); EXPECT_EQ(0, v1_ptr->added_to_widget_count()); EXPECT_EQ(0, v1_ptr->removed_from_widget_count()); EXPECT_EQ(0, v2_ptr->added_to_widget_count()); @@ -3460,11 +3431,12 @@ EXPECT_EQ(0, v3_ptr->removed_from_widget_count()); // Test move between widgets. - Widget second_widget; + UniqueWidgetPtr second_widget = std::make_unique<Widget>(); + params = CreateParams(Widget::InitParams::TYPE_POPUP); params.bounds = gfx::Rect(150, 150, 650, 650); - second_widget.Init(std::move(params)); + second_widget->Init(std::move(params)); - View* second_root = second_widget.GetRootView(); + View* second_root = second_widget->GetRootView(); v1_ptr->ResetTestState(); v2_ptr->ResetTestState(); @@ -3492,12 +3464,12 @@ // +-- child2 // +-- child3 TEST_F(ViewTest, RemoveAllChildViews) { - View root; + auto root = std::make_unique<View>(); - View* child1 = root.AddChildView(std::make_unique<View>()); + View* child1 = root->AddChildView(std::make_unique<View>()); for (size_t i = 0; i < 2; ++i) - root.AddChildView(std::make_unique<View>()); + root->AddChildView(std::make_unique<View>()); View* foo = child1->AddChildView(std::make_unique<View>()); @@ -3505,14 +3477,14 @@ for (size_t i = 0; i < 3; ++i) foo->AddChildView(std::make_unique<View>()); - EXPECT_EQ(3u, root.children().size()); + EXPECT_EQ(3u, root->children().size()); EXPECT_EQ(1u, child1->children().size()); EXPECT_EQ(3u, foo->children().size()); // Now remove all child views from root. - root.RemoveAllChildViews(); + root->RemoveAllChildViews(); - EXPECT_TRUE(root.children().empty()); + EXPECT_TRUE(root->children().empty()); } TEST_F(ViewTest, Contains) { @@ -3579,8 +3551,8 @@ auto* child = root->AddChildView(std::make_unique<View>()); auto* foo1 = child->AddChildView(std::make_unique<View>()); - View* foo2 = child->AddChildView(std::make_unique<View>()); - View* foo3 = child->AddChildView(std::make_unique<View>()); + auto* foo2 = child->AddChildView(std::make_unique<View>()); + auto* foo3 = child->AddChildView(std::make_unique<View>()); foo1->SetFocusBehavior(View::FocusBehavior::ALWAYS); foo2->SetFocusBehavior(View::FocusBehavior::ALWAYS); foo3->SetFocusBehavior(View::FocusBehavior::ALWAYS); @@ -3672,36 +3644,36 @@ } TEST_F(ViewTest, AddExistingChild) { - View v1, v2, v3; + auto v1 = std::make_unique<View>(); - v1.AddChildView(&v2); - v1.AddChildView(&v3); - EXPECT_EQ(0, v1.GetIndexOf(&v2)); - EXPECT_EQ(1, v1.GetIndexOf(&v3)); + auto* v2 = v1->AddChildView(std::make_unique<View>()); + auto* v3 = v1->AddChildView(std::make_unique<View>()); + EXPECT_EQ(0, v1->GetIndexOf(v2)); + EXPECT_EQ(1, v1->GetIndexOf(v3)); // Check that there's no change in order when adding at same index. - v1.AddChildViewAt(&v2, 0); - EXPECT_EQ(0, v1.GetIndexOf(&v2)); - EXPECT_EQ(1, v1.GetIndexOf(&v3)); - v1.AddChildViewAt(&v3, 1); - EXPECT_EQ(0, v1.GetIndexOf(&v2)); - EXPECT_EQ(1, v1.GetIndexOf(&v3)); + v1->AddChildViewAt(v2, 0); + EXPECT_EQ(0, v1->GetIndexOf(v2)); + EXPECT_EQ(1, v1->GetIndexOf(v3)); + v1->AddChildViewAt(v3, 1); + EXPECT_EQ(0, v1->GetIndexOf(v2)); + EXPECT_EQ(1, v1->GetIndexOf(v3)); // Add it at a different index and check for change in order. - v1.AddChildViewAt(&v2, 1); - EXPECT_EQ(1, v1.GetIndexOf(&v2)); - EXPECT_EQ(0, v1.GetIndexOf(&v3)); - v1.AddChildViewAt(&v2, 0); - EXPECT_EQ(0, v1.GetIndexOf(&v2)); - EXPECT_EQ(1, v1.GetIndexOf(&v3)); + v1->AddChildViewAt(v2, 1); + EXPECT_EQ(1, v1->GetIndexOf(v2)); + EXPECT_EQ(0, v1->GetIndexOf(v3)); + v1->AddChildViewAt(v2, 0); + EXPECT_EQ(0, v1->GetIndexOf(v2)); + EXPECT_EQ(1, v1->GetIndexOf(v3)); // Check that calling AddChildView() moves to the end. - v1.AddChildView(&v2); - EXPECT_EQ(1, v1.GetIndexOf(&v2)); - EXPECT_EQ(0, v1.GetIndexOf(&v3)); - v1.AddChildView(&v3); - EXPECT_EQ(0, v1.GetIndexOf(&v2)); - EXPECT_EQ(1, v1.GetIndexOf(&v3)); + v1->AddChildView(v2); + EXPECT_EQ(1, v1->GetIndexOf(v2)); + EXPECT_EQ(0, v1->GetIndexOf(v3)); + v1->AddChildView(v3); + EXPECT_EQ(0, v1->GetIndexOf(v2)); + EXPECT_EQ(1, v1->GetIndexOf(v3)); } TEST_F(ViewTest, UseMirroredLayoutDisableMirroring) { @@ -3780,18 +3752,17 @@ TEST_F(ViewTest, AdvanceFocusIfNecessaryForUnfocusableView) { // Create a widget with two views and give the first one focus. - ActiveWidget widget; + UniqueWidgetPtr widget = std::make_unique<ActiveWidget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - widget.Init(std::move(params)); + widget->Init(std::move(params)); - View* view1 = widget.GetRootView()->AddChildView(std::make_unique<View>()); + View* view1 = widget->GetRootView()->AddChildView(std::make_unique<View>()); view1->SetFocusBehavior(View::FocusBehavior::ALWAYS); - View* view2 = widget.GetRootView()->AddChildView(std::make_unique<View>()); + View* view2 = widget->GetRootView()->AddChildView(std::make_unique<View>()); view2->SetFocusBehavior(View::FocusBehavior::ALWAYS); - FocusManager* focus_manager = widget.GetFocusManager(); + FocusManager* focus_manager = widget->GetFocusManager(); ASSERT_TRUE(focus_manager); focus_manager->SetFocusedView(view1); @@ -5123,7 +5094,7 @@ } TEST_F(ViewTest, OnThemeChanged) { - TestView* test_view = new TestView(); + auto test_view = std::make_unique<TestView>(); EXPECT_FALSE(test_view->native_theme_); // Child view added before the widget hierarchy exists should get the @@ -5132,25 +5103,23 @@ test_view->AddChildView(std::make_unique<TestView>()); EXPECT_FALSE(test_view_child->native_theme_); - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; widget->Init(std::move(params)); - widget->GetRootView()->AddChildView(test_view); - EXPECT_TRUE(test_view->native_theme_); - EXPECT_EQ(widget->GetNativeTheme(), test_view->native_theme_); + TestView* test_view_ptr = + widget->GetRootView()->AddChildView(std::move(test_view)); + EXPECT_TRUE(test_view_ptr->native_theme_); + EXPECT_EQ(widget->GetNativeTheme(), test_view_ptr->native_theme_); EXPECT_TRUE(test_view_child->native_theme_); EXPECT_EQ(widget->GetNativeTheme(), test_view_child->native_theme_); // Child view added after the widget hierarchy exists should also get the // notification. TestView* test_view_child_2 = - test_view->AddChildView(std::make_unique<TestView>()); + test_view_ptr->AddChildView(std::make_unique<TestView>()); EXPECT_TRUE(test_view_child_2->native_theme_); EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); - - widget->CloseNow(); } class TestEventHandler : public ui::EventHandler { @@ -5170,9 +5139,8 @@ }; TEST_F(ViewTest, ScopedTargetHandlerReceivesEvents) { - std::unique_ptr<Widget> widget(new Widget); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 350, 350); widget->Init(std::move(params)); View* root = widget->GetRootView(); @@ -5208,7 +5176,7 @@ // See comment above test for details. class WidgetWithCustomTheme : public Widget { public: - explicit WidgetWithCustomTheme(ui::NativeTheme* theme) : theme_(theme) {} + explicit WidgetWithCustomTheme(ui::TestNativeTheme* theme) : theme_(theme) {} WidgetWithCustomTheme(const WidgetWithCustomTheme&) = delete; WidgetWithCustomTheme& operator=(const WidgetWithCustomTheme&) = delete; @@ -5219,7 +5187,7 @@ const ui::NativeTheme* GetNativeTheme() const override { return theme_; } private: - raw_ptr<ui::NativeTheme> theme_; + ui::TestNativeTheme* theme_; }; // See comment above test for details. @@ -5264,16 +5232,20 @@ // called after the layer hierarchy matches the view hierarchy. TEST_F(ViewTest, CrashOnAddFromFromOnThemeChanged) { ui::TestNativeTheme theme; - WidgetWithCustomTheme widget(&theme); + UniqueWidgetPtr widget = std::make_unique<WidgetWithCustomTheme>(&theme); + test::WidgetDestroyedWaiter waiter(widget.get()); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(50, 50, 350, 350); - widget.Init(std::move(params)); + widget->Init(std::move(params)); - AddViewWithChildLayer(widget.GetRootView()); - ViewThatAddsViewInOnThemeChanged* v = widget.GetRootView()->AddChildView( + AddViewWithChildLayer(widget->GetRootView()); + ViewThatAddsViewInOnThemeChanged* v = widget->GetRootView()->AddChildView( std::make_unique<ViewThatAddsViewInOnThemeChanged>()); EXPECT_TRUE(v->on_native_theme_changed_called()); + // Initiate an explicit close and wait to ensure the |theme| outlives the + // |widget|. + widget->Close(); + waiter.Wait(); } // A View that removes its Layer when hidden. @@ -5312,7 +5284,7 @@ // Test that Views can safely manipulate Layers during Widget closure. TEST_F(ViewTest, DestroyLayerInClose) { bool removed_from_widget = false; - auto widget = std::make_unique<Widget>(); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); widget->Init(std::move(params)); widget->SetBounds(gfx::Rect(0, 0, 100, 100)); @@ -5327,7 +5299,7 @@ EXPECT_FALSE(view->was_hidden()); // Release and close the widget. It will be destroyed once it closes. - widget.release()->Close(); + widget.reset(); EXPECT_FALSE(view->layer()); // Ensure the layer went away via VisibilityChanged(). EXPECT_TRUE(view->was_hidden()); @@ -5416,7 +5388,7 @@ // Attach parent_view to grand_parent_view. children layers of parent_view // should not change. - auto* parent_view_ptr = + OrderableView* parent_view_ptr = grand_parent_view->AddChildView(std::move(parent_view)); const std::vector<ui::Layer*>& layers_after_attached = parent_view_ptr->layer()->children(); @@ -5478,9 +5450,8 @@ } TEST_F(ViewTest, TooltipShowsForDisabledView) { - auto widget = std::make_unique<Widget>(); + UniqueWidgetPtr widget = std::make_unique<Widget>(); Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; widget->Init(std::move(params)); widget->SetBounds(gfx::Rect(0, 0, 100, 100));