diff --git a/DEPS b/DEPS index f0f3e70557eb67..b4721d9f22a27c 100644 --- a/DEPS +++ b/DEPS @@ -239,7 +239,7 @@ vars = { # 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': '68e240d9cdb3f09fc0c9de834aaef04aa3b3f579', + 'skia_revision': 'd337cf94a077c9ddec8f1c7d99c04e2ed14cd553', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -247,7 +247,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'fefd7ae66ad94d8fcb16ef9f5f7304c1b4b9fbf8', + 'angle_revision': '36fcf80b1f2a99fdaa46d044994dfe96a08d7362', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -314,7 +314,7 @@ vars = { # 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': '5fec567a800a98035a5c7aa02eebf93d3690e484', + 'devtools_frontend_revision': '895afdf921d39c15ec8b6c072e08d12961f797b1', # 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. @@ -354,7 +354,7 @@ vars = { # 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': 'f296710f64b6625d204262c09463401def70cea6', + 'dawn_revision': '5397f9f9d0fa2d4adb03553f60d3fc4d4db5936c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -799,7 +799,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': 'Cd5XvW44KjLwajSIYoTsODMnpNKBR--BNLPfpIDKGeAC', + 'version': '51KZuMRReilT3sNyF1-vaB_9ciuTsRJxv8kUH1eLbDgC', }, ], 'condition': 'checkout_android', @@ -964,7 +964,7 @@ deps = { }, 'src/third_party/breakpad/breakpad': - Var('chromium_git') + '/breakpad/breakpad.git' + '@' + '647aa17a7aa8ec0b99ffd005908b8a4ab1995a30', + Var('chromium_git') + '/breakpad/breakpad.git' + '@' + '3846f6d297339c17663d7a797ba481b3411f13ad', 'src/third_party/byte_buddy': { 'packages': [ @@ -1038,7 +1038,7 @@ deps = { }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '2777fd9c6a0ae1d00b9ea5de5fab0a5324e2dd5d', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '9e5809e98f33a5f9f9d3b69a5bd826ce8a7a5a81', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1639,7 +1639,7 @@ deps = { Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'b1f3776e4913637221733a4da09f3339e783b771', 'src/third_party/webgpu-cts/src': - Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '216e2ff413d3ed5e7695626bb55ae41575818352', + Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'c843f8d63c8c17acfbb7d48e09059a581ba779b9', 'src/third_party/webrtc': Var('webrtc_git') + '/src.git' + '@' + '63b97de330fe3d4775b9b4df8ad15c7593d58fc0', @@ -1700,7 +1700,7 @@ deps = { Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@c258c12674403e7c685e3462d136b29560e6b4d8', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@41781a31dda1a0a56f41d036cb5333fe84c40645', 'condition': 'checkout_src_internal', }, diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 89bb1c1d3b74f1..0812dd74f0e1b9 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn @@ -212,6 +212,7 @@ component("ash") { "autotest_private_api_utils.cc", "bluetooth_devices_observer.cc", "bluetooth_devices_observer.h", + "bubble/bubble_constants.h", "bubble/bubble_utils.cc", "bubble/bubble_utils.h", "bubble/simple_grid_layout.cc", diff --git a/ash/app_list/views/app_list_bubble_view.cc b/ash/app_list/views/app_list_bubble_view.cc index 936b2b03709cca..84216d2b8b1c9f 100644 --- a/ash/app_list/views/app_list_bubble_view.cc +++ b/ash/app_list/views/app_list_bubble_view.cc @@ -22,6 +22,7 @@ #include "ash/app_list/views/scrollable_apps_grid_view.h" #include "ash/app_list/views/search_box_view.h" #include "ash/app_list/views/search_result_page_dialog_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/keyboard/ui/keyboard_ui_controller.h" #include "ash/public/cpp/app_list/app_list_config_provider.h" #include "ash/public/cpp/metrics_util.h" @@ -29,7 +30,6 @@ #include "ash/public/cpp/shelf_types.h" #include "ash/search_box/search_box_constants.h" #include "ash/style/ash_color_provider.h" -#include "ash/system/tray/tray_constants.h" #include "base/bind.h" #include "base/check.h" #include "base/check_op.h" @@ -111,8 +111,7 @@ AppListBubbleView::AppListBubbleView( // Set up rounded corners and background blur, similar to TrayBubbleView. // Layer color is set in OnThemeChanged(). SetPaintToLayer(ui::LAYER_SOLID_COLOR); - layer()->SetRoundedCornerRadius( - gfx::RoundedCornersF{kUnifiedTrayCornerRadius}); + layer()->SetRoundedCornerRadius(gfx::RoundedCornersF{kBubbleCornerRadius}); layer()->SetFillsBoundsOpaquely(false); layer()->SetIsFastRoundedCorner(true); layer()->SetBackgroundBlur(ColorProvider::kBackgroundBlurSigma); diff --git a/ash/assistant/ui/main_stage/suggestion_chip_view.cc b/ash/assistant/ui/main_stage/suggestion_chip_view.cc index 533423f6e99119..32c7410dcdcaa1 100644 --- a/ash/assistant/ui/main_stage/suggestion_chip_view.cc +++ b/ash/assistant/ui/main_stage/suggestion_chip_view.cc @@ -24,6 +24,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_palette.h" +#include "ui/gfx/font_list.h" #include "ui/views/background.h" #include "ui/views/border.h" #include "ui/views/controls/button/button.h" @@ -153,8 +154,9 @@ void SuggestionChipView::InitLayout(const AssistantSuggestion& suggestion) { text_view_->SetID(kSuggestionChipViewLabel); text_view_->SetAutoColorReadabilityEnabled(false); text_view_->SetSubpixelRenderingEnabled(false); - text_view_->SetFontList( - assistant::ui::GetDefaultFontList().DeriveWithSizeDelta(1)); + const gfx::FontList& font_list = assistant::ui::GetDefaultFontList(); + text_view_->SetFontList(font_list.Derive( + /*size_delta=*/1, font_list.GetFontStyle(), gfx::Font::Weight::MEDIUM)); SetText(text); if (!use_dark_light_mode_colors_) { diff --git a/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc b/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc index 3b590ac1047790..a9b54801aeb20f 100644 --- a/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc +++ b/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc @@ -228,4 +228,18 @@ TEST_F(SuggestionChipViewTest, DarkAndLightModeFlagOff) { SkColorSetA(gfx::kGoogleGrey900, 0x14)); } +TEST_F(SuggestionChipViewTest, FontWeight) { + auto widget = CreateFramelessTestWidget(); + auto* suggestion_chip_view = + widget->SetContentsView(std::make_unique( + /*delegate=*/nullptr, + CreateSuggestionWithIconUrl( + "googleassistant://resource?type=icon&name=assistant"))); + + views::Label* label = static_cast( + suggestion_chip_view->GetViewByID(kSuggestionChipViewLabel)); + + EXPECT_EQ(label->font_list().GetFontWeight(), gfx::Font::Weight::MEDIUM); +} + } // namespace ash diff --git a/ash/bubble/bubble_constants.h b/ash/bubble/bubble_constants.h new file mode 100644 index 00000000000000..f99747a13693b9 --- /dev/null +++ b/ash/bubble/bubble_constants.h @@ -0,0 +1,20 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_BUBBLE_BUBBLE_CONSTANTS_H_ +#define ASH_BUBBLE_BUBBLE_CONSTANTS_H_ + +namespace ash { + +// The corner radius of a bubble, like the system tray bubble or the +// productivity launcher bubble. +constexpr int kBubbleCornerRadius = 16; + +// Padding used for bubbles that represent a menu of options, like the system +// tray bubble or the switch access menu. +constexpr int kBubbleMenuPadding = 8; + +} // namespace ash + +#endif // ASH_BUBBLE_BUBBLE_CONSTANTS_H_ diff --git a/ash/components/disks/disk_mount_manager.cc b/ash/components/disks/disk_mount_manager.cc index 62638059a5a9a2..92fffe4881b90a 100644 --- a/ash/components/disks/disk_mount_manager.cc +++ b/ash/components/disks/disk_mount_manager.cc @@ -101,14 +101,13 @@ class DiskMountManagerImpl : public DiskMountManager, MountType type, MountAccessMode access_mode, MountPathCallback callback) override { - auto insert_result = - mount_callbacks_.insert({source_path, std::move(callback)}); - if (!insert_result.second) { + if (mount_callbacks_.find(source_path) != mount_callbacks_.end()) { std::move(callback).Run( MOUNT_ERROR_PATH_ALREADY_MOUNTED, MountPointInfo(source_path, "", type, MOUNT_CONDITION_NONE)); return; } + mount_callbacks_.insert({source_path, std::move(callback)}); // Hidden and non-existent devices should not be mounted. if (type == MOUNT_TYPE_DEVICE) { DiskMap::const_iterator it = disks_.find(source_path); diff --git a/ash/components/disks/disk_mount_manager_unittest.cc b/ash/components/disks/disk_mount_manager_unittest.cc index 1e0a418e393677..40ef94055c2036 100644 --- a/ash/components/disks/disk_mount_manager_unittest.cc +++ b/ash/components/disks/disk_mount_manager_unittest.cc @@ -28,6 +28,7 @@ #include "testing/gtest/include/gtest/gtest.h" using base::StringPrintf; +using testing::_; using testing::Field; namespace ash { @@ -1097,6 +1098,82 @@ TEST_F(DiskMountManagerTest, MountPath_ReadOnlyDevice) { EXPECT_TRUE(disks.find(kReadOnlyDeviceSourcePath)->second->is_read_only()); } +TEST_F(DiskMountManagerTest, MountPath_DoubleCall) { + DiskMountManager* manager = DiskMountManager::GetInstance(); + const std::string kMountPath1 = "/media/foo"; + + base::MockCallback mock_callback1; + + manager->MountPath( + kDevice1SourcePath, "", "", {}, chromeos::MOUNT_TYPE_DEVICE, + chromeos::MOUNT_ACCESS_MODE_READ_WRITE, mock_callback1.Get()); + + { + // While the first mount is occurring, queue up a second mount for the same + // source. It should immediately fail. + base::MockCallback mock_callback2; + EXPECT_CALL(mock_callback2, + Run(chromeos::MOUNT_ERROR_PATH_ALREADY_MOUNTED, _)); + + manager->MountPath( + kDevice1SourcePath, "", "", {}, chromeos::MOUNT_TYPE_DEVICE, + chromeos::MOUNT_ACCESS_MODE_READ_WRITE, mock_callback2.Get()); + } + + // Verify the first mount can complete as expected. + EXPECT_CALL( + mock_callback1, + Run(chromeos::MOUNT_ERROR_NONE, + Field(&DiskMountManager::MountPointInfo::mount_path, kMountPath1))); + fake_cros_disks_client_->NotifyMountCompleted( + chromeos::MOUNT_ERROR_NONE, kDevice1SourcePath, + chromeos::MOUNT_TYPE_DEVICE, kMountPath1); +} + +TEST_F(DiskMountManagerTest, MountPath_CallbackCallsMount) { + DiskMountManager* manager = DiskMountManager::GetInstance(); + const std::string kMountPath1 = "/media/foo"; + const std::string kMountPath2 = "/media/bar"; + + base::MockCallback mock_callback1; + + // Try call MountPath() again in the complete callback of a MountPath() call. + EXPECT_CALL( + mock_callback1, + Run(chromeos::MOUNT_ERROR_NONE, + Field(&DiskMountManager::MountPointInfo::mount_path, kMountPath1))) + .WillOnce([=](chromeos::MountError error, + const DiskMountManager::MountPointInfo& mount_info) { + // Try remount the same path and verify it fails. + base::MockCallback mock_callback2; + EXPECT_CALL(mock_callback2, + Run(chromeos::MOUNT_ERROR_PATH_ALREADY_MOUNTED, _)); + manager->MountPath( + kDevice1SourcePath, "", "", {}, chromeos::MOUNT_TYPE_DEVICE, + chromeos::MOUNT_ACCESS_MODE_READ_WRITE, mock_callback2.Get()); + + // Try mount a different path and verify it succeeds. + base::MockCallback mock_callback3; + EXPECT_CALL(mock_callback3, + Run(chromeos::MOUNT_ERROR_NONE, + Field(&DiskMountManager::MountPointInfo::mount_path, + kMountPath2))); + manager->MountPath( + kDevice2SourcePath, "", "", {}, chromeos::MOUNT_TYPE_DEVICE, + chromeos::MOUNT_ACCESS_MODE_READ_WRITE, mock_callback3.Get()); + fake_cros_disks_client_->NotifyMountCompleted( + chromeos::MOUNT_ERROR_NONE, kDevice2SourcePath, + chromeos::MOUNT_TYPE_DEVICE, kMountPath2); + }); + + manager->MountPath( + kDevice1SourcePath, "", "", {}, chromeos::MOUNT_TYPE_DEVICE, + chromeos::MOUNT_ACCESS_MODE_READ_WRITE, mock_callback1.Get()); + fake_cros_disks_client_->NotifyMountCompleted( + chromeos::MOUNT_ERROR_NONE, kDevice1SourcePath, + chromeos::MOUNT_TYPE_DEVICE, kMountPath1); +} + TEST_F(DiskMountManagerTest, RemountRemovableDrives) { DiskMountManager* manager = DiskMountManager::GetInstance(); // Initially we have 2 mounted devices. diff --git a/ash/components/tether/active_host.cc b/ash/components/tether/active_host.cc index a88e430a8aa888..9137bb49bee56d 100644 --- a/ash/components/tether/active_host.cc +++ b/ash/components/tether/active_host.cc @@ -14,7 +14,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -namespace chromeos { +namespace ash { namespace tether { @@ -261,4 +261,4 @@ void ActiveHost::SendActiveHostChangedUpdate( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/active_host.h b/ash/components/tether/active_host.h index 407efd38580b43..1fc436973ed9be 100644 --- a/ash/components/tether/active_host.h +++ b/ash/components/tether/active_host.h @@ -16,7 +16,7 @@ class PrefRegistrySimple; class PrefService; -namespace chromeos { +namespace ash { namespace tether { @@ -163,6 +163,6 @@ class ActiveHost { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_ACTIVE_HOST_H_ diff --git a/ash/components/tether/active_host_network_state_updater.cc b/ash/components/tether/active_host_network_state_updater.cc index 58394db72bd908..7f676d1bd55735 100644 --- a/ash/components/tether/active_host_network_state_updater.cc +++ b/ash/components/tether/active_host_network_state_updater.cc @@ -10,7 +10,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -80,4 +80,4 @@ void ActiveHostNetworkStateUpdater::OnActiveHostChanged( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/active_host_network_state_updater.h b/ash/components/tether/active_host_network_state_updater.h index 123ee9934bb311..44f6ecacb2e79f 100644 --- a/ash/components/tether/active_host_network_state_updater.h +++ b/ash/components/tether/active_host_network_state_updater.h @@ -7,10 +7,10 @@ #include "ash/components/tether/active_host.h" #include "base/memory/weak_ptr.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -38,6 +38,6 @@ class ActiveHostNetworkStateUpdater final : public ActiveHost::Observer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_ACTIVE_HOST_NETWORK_STATE_UPDATER_H_ diff --git a/ash/components/tether/active_host_network_state_updater_unittest.cc b/ash/components/tether/active_host_network_state_updater_unittest.cc index eccefcaaca9476..2340217aad9d89 100644 --- a/ash/components/tether/active_host_network_state_updater_unittest.cc +++ b/ash/components/tether/active_host_network_state_updater_unittest.cc @@ -17,7 +17,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -129,4 +129,4 @@ TEST_F(ActiveHostNetworkStateUpdaterTest, TestActiveHostUpdates) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/active_host_unittest.cc b/ash/components/tether/active_host_unittest.cc index 55d6ca54e14e9d..eef9239dd7a155 100644 --- a/ash/components/tether/active_host_unittest.cc +++ b/ash/components/tether/active_host_unittest.cc @@ -15,7 +15,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { @@ -219,4 +219,4 @@ TEST_F(ActiveHostTest, TestObserverCalls) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/asynchronous_shutdown_object_container.h b/ash/components/tether/asynchronous_shutdown_object_container.h index fff0e28c79fdbb..adfb26a33d7477 100644 --- a/ash/components/tether/asynchronous_shutdown_object_container.h +++ b/ash/components/tether/asynchronous_shutdown_object_container.h @@ -7,7 +7,7 @@ #include "base/callback_forward.h" -namespace chromeos { +namespace ash { namespace tether { @@ -45,6 +45,6 @@ class AsynchronousShutdownObjectContainer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_ASYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ diff --git a/ash/components/tether/asynchronous_shutdown_object_container_impl.cc b/ash/components/tether/asynchronous_shutdown_object_container_impl.cc index f27f4efda0a8be..1b2a734fc964a9 100644 --- a/ash/components/tether/asynchronous_shutdown_object_container_impl.cc +++ b/ash/components/tether/asynchronous_shutdown_object_container_impl.cc @@ -11,7 +11,7 @@ #include "chromeos/services/device_sync/public/cpp/device_sync_client.h" #include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { +namespace ash { namespace tether { @@ -148,4 +148,4 @@ void AsynchronousShutdownObjectContainerImpl::SetTestDoubles( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/asynchronous_shutdown_object_container_impl.h b/ash/components/tether/asynchronous_shutdown_object_container_impl.h index a4ee59b10af1da..42ac40116d5303 100644 --- a/ash/components/tether/asynchronous_shutdown_object_container_impl.h +++ b/ash/components/tether/asynchronous_shutdown_object_container_impl.h @@ -11,22 +11,20 @@ #include "ash/components/tether/disconnect_tethering_request_sender.h" #include "base/callback.h" #include "base/memory/ref_counted.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/managed_network_configuration_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" class PrefService; -namespace chromeos { - -class ManagedNetworkConfigurationHandler; -class NetworkConnectionHandler; -class NetworkStateHandler; - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -118,6 +116,6 @@ class AsynchronousShutdownObjectContainerImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_ASYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_IMPL_H_ diff --git a/ash/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc b/ash/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc index d260a66bd1a1e8..a57d8be68e1463 100644 --- a/ash/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc +++ b/ash/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc @@ -25,7 +25,7 @@ using testing::Invoke; using testing::NiceMock; using testing::Return; -namespace chromeos { +namespace ash { namespace tether { @@ -167,4 +167,4 @@ TEST_F(AsynchronousShutdownObjectContainerImplTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/connect_tethering_operation.cc b/ash/components/tether/connect_tethering_operation.cc index fa849d5cd34a20..6aa17c7f79037c 100644 --- a/ash/components/tether/connect_tethering_operation.cc +++ b/ash/components/tether/connect_tethering_operation.cc @@ -12,7 +12,7 @@ #include "base/time/default_clock.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -248,4 +248,4 @@ void ConnectTetheringOperation::SetClockForTest(base::Clock* clock_for_test) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/connect_tethering_operation.h b/ash/components/tether/connect_tethering_operation.h index 9b48c9e11892ab..25b6a087bda267 100644 --- a/ash/components/tether/connect_tethering_operation.h +++ b/ash/components/tether/connect_tethering_operation.h @@ -16,16 +16,12 @@ #include "base/time/clock.h" #include "base/time/time.h" #include "chromeos/components/multidevice/remote_device_ref.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -166,6 +162,6 @@ class ConnectTetheringOperation : public MessageTransferOperation { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_CONNECT_TETHERING_OPERATION_H_ diff --git a/ash/components/tether/connect_tethering_operation_unittest.cc b/ash/components/tether/connect_tethering_operation_unittest.cc index 19c941d069e924..60f83220e066f4 100644 --- a/ash/components/tether/connect_tethering_operation_unittest.cc +++ b/ash/components/tether/connect_tethering_operation_unittest.cc @@ -30,7 +30,7 @@ using testing::_; using testing::StrictMock; -namespace chromeos { +namespace ash { namespace tether { @@ -309,4 +309,4 @@ TEST_F(ConnectTetheringOperationTest, ConnectRequestSentOnceAuthenticated) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/connection_preserver.cc b/ash/components/tether/connection_preserver.cc index 556c1ee8f3641e..79787cfff7bc71 100644 --- a/ash/components/tether/connection_preserver.cc +++ b/ash/components/tether/connection_preserver.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/connection_preserver.h" -namespace chromeos { +namespace ash { namespace tether { @@ -14,4 +14,4 @@ ConnectionPreserver::~ConnectionPreserver() = default; } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/connection_preserver.h b/ash/components/tether/connection_preserver.h index fd0d9abd4ca307..0c54583f674545 100644 --- a/ash/components/tether/connection_preserver.h +++ b/ash/components/tether/connection_preserver.h @@ -7,7 +7,7 @@ #include -namespace chromeos { +namespace ash { namespace tether { @@ -32,6 +32,6 @@ class ConnectionPreserver { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_CONNECTION_PRESERVER_H_ diff --git a/ash/components/tether/connection_preserver_impl.cc b/ash/components/tether/connection_preserver_impl.cc index 4c9fe991783bda..7f2c129d6e37dc 100644 --- a/ash/components/tether/connection_preserver_impl.cc +++ b/ash/components/tether/connection_preserver_impl.cc @@ -13,12 +13,15 @@ #include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_type_pattern.h" -namespace chromeos { +namespace ash { namespace tether { namespace { +// TODO(https://crbug.com/1164001): remove when secure_channel moved to ash +namespace secure_channel = ::chromeos::secure_channel; + const char kTetherFeature[] = "magic_tether"; } // namespace @@ -227,4 +230,4 @@ void ConnectionPreserverImpl::SetTimerForTesting( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/connection_preserver_impl.h b/ash/components/tether/connection_preserver_impl.h index 914b575ccf4395..5340772b0de66b 100644 --- a/ash/components/tether/connection_preserver_impl.h +++ b/ash/components/tether/connection_preserver_impl.h @@ -11,6 +11,8 @@ #include "ash/components/tether/connection_preserver.h" #include "base/timer/timer.h" #include "base/unguessable_token.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "chromeos/services/device_sync/public/cpp/device_sync_client.h" #include "chromeos/services/secure_channel/public/cpp/client/client_channel.h" #include "chromeos/services/secure_channel/public/cpp/client/connection_attempt.h" @@ -18,9 +20,7 @@ #include "chromeos/services/secure_channel/public/cpp/shared/connection_priority.h" #include "chromeos/services/secure_channel/public/mojom/secure_channel.mojom.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -59,7 +59,8 @@ class ConnectionPreserverImpl protected: // secure_channel::ConnectionAttempt::Delegate: void OnConnectionAttemptFailure( - secure_channel::mojom::ConnectionAttemptFailureReason reason) override; + chromeos::secure_channel::mojom::ConnectionAttemptFailureReason reason) + override; void OnConnection( std::unique_ptr channel) override; @@ -104,6 +105,6 @@ class ConnectionPreserverImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_CONNECTION_PRESERVER_IMPL_H_ diff --git a/ash/components/tether/connection_preserver_impl_unittest.cc b/ash/components/tether/connection_preserver_impl_unittest.cc index ea4cd1eb472d57..ed94b493db6575 100644 --- a/ash/components/tether/connection_preserver_impl_unittest.cc +++ b/ash/components/tether/connection_preserver_impl_unittest.cc @@ -31,7 +31,7 @@ using testing::_; using testing::NiceMock; using testing::Return; -namespace chromeos { +namespace ash { namespace tether { @@ -306,4 +306,4 @@ TEST_F( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/crash_recovery_manager.h b/ash/components/tether/crash_recovery_manager.h index 33e1e3e6e833ec..fc51acfba6313b 100644 --- a/ash/components/tether/crash_recovery_manager.h +++ b/ash/components/tether/crash_recovery_manager.h @@ -7,7 +7,7 @@ #include "base/callback.h" -namespace chromeos { +namespace ash { namespace tether { @@ -34,6 +34,6 @@ class CrashRecoveryManager { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_CRASH_RECOVERY_MANAGER_H_ diff --git a/ash/components/tether/crash_recovery_manager_impl.cc b/ash/components/tether/crash_recovery_manager_impl.cc index da154c66f563be..2a5b725ffad60b 100644 --- a/ash/components/tether/crash_recovery_manager_impl.cc +++ b/ash/components/tether/crash_recovery_manager_impl.cc @@ -15,7 +15,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -178,4 +178,4 @@ void CrashRecoveryManagerImpl::OnActiveHostFetched( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/crash_recovery_manager_impl.h b/ash/components/tether/crash_recovery_manager_impl.h index 74adcc9e54d970..de343ed48ecb40 100644 --- a/ash/components/tether/crash_recovery_manager_impl.h +++ b/ash/components/tether/crash_recovery_manager_impl.h @@ -10,11 +10,11 @@ #include "ash/components/tether/active_host.h" #include "ash/components/tether/crash_recovery_manager.h" #include "base/callback.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -78,6 +78,6 @@ class CrashRecoveryManagerImpl : public CrashRecoveryManager { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_CRASH_RECOVERY_MANAGER_IMPL_H_ diff --git a/ash/components/tether/crash_recovery_manager_impl_unittest.cc b/ash/components/tether/crash_recovery_manager_impl_unittest.cc index a56c7cb2508da6..974d59c91b81c2 100644 --- a/ash/components/tether/crash_recovery_manager_impl_unittest.cc +++ b/ash/components/tether/crash_recovery_manager_impl_unittest.cc @@ -19,7 +19,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -185,4 +185,4 @@ TEST_F(CrashRecoveryManagerImplTest, ActiveHostConnected_RestoreSuccessful) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/device_id_tether_network_guid_map.cc b/ash/components/tether/device_id_tether_network_guid_map.cc index e6ae27297f21dd..344ef3105b63c5 100644 --- a/ash/components/tether/device_id_tether_network_guid_map.cc +++ b/ash/components/tether/device_id_tether_network_guid_map.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/device_id_tether_network_guid_map.h" -namespace chromeos { +namespace ash { namespace tether { @@ -26,4 +26,4 @@ std::string DeviceIdTetherNetworkGuidMap::GetTetherNetworkGuidForDeviceId( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/device_id_tether_network_guid_map.h b/ash/components/tether/device_id_tether_network_guid_map.h index c9091faed1c0e5..7a6ea25c21a832 100644 --- a/ash/components/tether/device_id_tether_network_guid_map.h +++ b/ash/components/tether/device_id_tether_network_guid_map.h @@ -7,7 +7,7 @@ #include -namespace chromeos { +namespace ash { namespace tether { @@ -37,6 +37,6 @@ class DeviceIdTetherNetworkGuidMap { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_DEVICE_ID_TETHER_NETWORK_GUID_MAP_H_ diff --git a/ash/components/tether/device_status_util.cc b/ash/components/tether/device_status_util.cc index 662c05dc0e6c13..9699ce7a28211f 100644 --- a/ash/components/tether/device_status_util.cc +++ b/ash/components/tether/device_status_util.cc @@ -6,7 +6,7 @@ #include "base/cxx17_backports.h" -namespace chromeos { +namespace ash { namespace tether { @@ -50,4 +50,4 @@ void NormalizeDeviceStatus(const DeviceStatus& status, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/device_status_util.h b/ash/components/tether/device_status_util.h index 4f7edfd8c69ca2..08e188120360e8 100644 --- a/ash/components/tether/device_status_util.h +++ b/ash/components/tether/device_status_util.h @@ -7,7 +7,7 @@ #include "ash/components/tether/proto/tether.pb.h" -namespace chromeos { +namespace ash { namespace tether { @@ -34,6 +34,6 @@ void NormalizeDeviceStatus(const DeviceStatus& status, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_DEVICE_STATUS_UTIL_H_ diff --git a/ash/components/tether/device_status_util_unittest.cc b/ash/components/tether/device_status_util_unittest.cc index a5b4042d5692a1..b05932cf96d38b 100644 --- a/ash/components/tether/device_status_util_unittest.cc +++ b/ash/components/tether/device_status_util_unittest.cc @@ -15,7 +15,7 @@ #include "components/prefs/testing_pref_service.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -116,4 +116,4 @@ TEST_F(DeviceStatusUtilTest, TestValidValues) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/disconnect_tethering_operation.cc b/ash/components/tether/disconnect_tethering_operation.cc index 553d48c23e6ecb..93930b9d2eed1b 100644 --- a/ash/components/tether/disconnect_tethering_operation.cc +++ b/ash/components/tether/disconnect_tethering_operation.cc @@ -13,7 +13,7 @@ #include "base/time/default_clock.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -114,4 +114,4 @@ void DisconnectTetheringOperation::SetClockForTest( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/disconnect_tethering_operation.h b/ash/components/tether/disconnect_tethering_operation.h index 0f6d05c915f8c0..1324b96cbc6e51 100644 --- a/ash/components/tether/disconnect_tethering_operation.h +++ b/ash/components/tether/disconnect_tethering_operation.h @@ -9,16 +9,12 @@ #include "base/gtest_prod_util.h" #include "base/observer_list.h" #include "base/time/clock.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -98,6 +94,6 @@ class DisconnectTetheringOperation : public MessageTransferOperation { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_DISCONNECT_TETHERING_OPERATION_H_ diff --git a/ash/components/tether/disconnect_tethering_operation_unittest.cc b/ash/components/tether/disconnect_tethering_operation_unittest.cc index 73193847b03e4c..392288c4465a89 100644 --- a/ash/components/tether/disconnect_tethering_operation_unittest.cc +++ b/ash/components/tether/disconnect_tethering_operation_unittest.cc @@ -24,7 +24,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -183,4 +183,4 @@ TEST_F(DisconnectTetheringOperationTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/disconnect_tethering_request_sender.cc b/ash/components/tether/disconnect_tethering_request_sender.cc index aceed98ad42f37..fefaa10eed5b7a 100644 --- a/ash/components/tether/disconnect_tethering_request_sender.cc +++ b/ash/components/tether/disconnect_tethering_request_sender.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/disconnect_tethering_request_sender.h" -namespace chromeos { +namespace ash { namespace tether { @@ -28,4 +28,4 @@ void DisconnectTetheringRequestSender:: } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/disconnect_tethering_request_sender.h b/ash/components/tether/disconnect_tethering_request_sender.h index 93a839a7a869d4..9bc904183cee03 100644 --- a/ash/components/tether/disconnect_tethering_request_sender.h +++ b/ash/components/tether/disconnect_tethering_request_sender.h @@ -7,7 +7,7 @@ #include "base/observer_list.h" -namespace chromeos { +namespace ash { namespace tether { @@ -51,6 +51,6 @@ class DisconnectTetheringRequestSender { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_DISCONNECT_TETHERING_REQUEST_SENDER_H_ diff --git a/ash/components/tether/disconnect_tethering_request_sender_impl.cc b/ash/components/tether/disconnect_tethering_request_sender_impl.cc index b6fc9e36983d6b..38c21004832dd8 100644 --- a/ash/components/tether/disconnect_tethering_request_sender_impl.cc +++ b/ash/components/tether/disconnect_tethering_request_sender_impl.cc @@ -12,7 +12,7 @@ #include "base/memory/ptr_util.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -140,4 +140,4 @@ void DisconnectTetheringRequestSenderImpl::OnOperationFinished( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/disconnect_tethering_request_sender_impl.h b/ash/components/tether/disconnect_tethering_request_sender_impl.h index cc6742c60c9564..5cbdddc008af00 100644 --- a/ash/components/tether/disconnect_tethering_request_sender_impl.h +++ b/ash/components/tether/disconnect_tethering_request_sender_impl.h @@ -9,17 +9,13 @@ #include "ash/components/tether/disconnect_tethering_operation.h" #include "ash/components/tether/disconnect_tethering_request_sender.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -88,6 +84,6 @@ class DisconnectTetheringRequestSenderImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_DISCONNECT_TETHERING_REQUEST_SENDER_IMPL_H_ diff --git a/ash/components/tether/disconnect_tethering_request_sender_impl_unittest.cc b/ash/components/tether/disconnect_tethering_request_sender_impl_unittest.cc index edfcdfa13997cb..06f44acd69fd71 100644 --- a/ash/components/tether/disconnect_tethering_request_sender_impl_unittest.cc +++ b/ash/components/tether/disconnect_tethering_request_sender_impl_unittest.cc @@ -17,7 +17,7 @@ #include "chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -322,4 +322,4 @@ TEST_F(DisconnectTetheringRequestSenderTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_active_host.cc b/ash/components/tether/fake_active_host.cc index cdcd0fe9520eed..65c0681169ef86 100644 --- a/ash/components/tether/fake_active_host.cc +++ b/ash/components/tether/fake_active_host.cc @@ -13,7 +13,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { @@ -109,4 +109,4 @@ void FakeActiveHost::SetActiveHost(ActiveHostStatus active_host_status, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_active_host.h b/ash/components/tether/fake_active_host.h index 6fb69aded779db..0cf73360a049af 100644 --- a/ash/components/tether/fake_active_host.h +++ b/ash/components/tether/fake_active_host.h @@ -11,7 +11,7 @@ #include "base/callback.h" #include "base/memory/weak_ptr.h" -namespace chromeos { +namespace ash { namespace tether { @@ -53,6 +53,6 @@ class FakeActiveHost : public ActiveHost { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_ACTIVE_HOST_H_ diff --git a/ash/components/tether/fake_asynchronous_shutdown_object_container.cc b/ash/components/tether/fake_asynchronous_shutdown_object_container.cc index 6048c6fc63c613..39bd5e600d0c6a 100644 --- a/ash/components/tether/fake_asynchronous_shutdown_object_container.cc +++ b/ash/components/tether/fake_asynchronous_shutdown_object_container.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_asynchronous_shutdown_object_container.h" -namespace chromeos { +namespace ash { namespace tether { @@ -44,4 +44,4 @@ FakeAsynchronousShutdownObjectContainer::wifi_hotspot_disconnector() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_asynchronous_shutdown_object_container.h b/ash/components/tether/fake_asynchronous_shutdown_object_container.h index 5fa253cdc690ba..1b3c2d6b4d26c0 100644 --- a/ash/components/tether/fake_asynchronous_shutdown_object_container.h +++ b/ash/components/tether/fake_asynchronous_shutdown_object_container.h @@ -10,7 +10,7 @@ #include "base/callback.h" #include "base/callback_helpers.h" -namespace chromeos { +namespace ash { namespace tether { @@ -73,6 +73,6 @@ class FakeAsynchronousShutdownObjectContainer } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_ASYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ diff --git a/ash/components/tether/fake_connection_preserver.cc b/ash/components/tether/fake_connection_preserver.cc index 15bc8b2a5ecb3c..af0bb3471cd796 100644 --- a/ash/components/tether/fake_connection_preserver.cc +++ b/ash/components/tether/fake_connection_preserver.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_connection_preserver.h" -namespace chromeos { +namespace ash { namespace tether { @@ -19,4 +19,4 @@ void FakeConnectionPreserver::HandleSuccessfulTetherAvailabilityResponse( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_connection_preserver.h b/ash/components/tether/fake_connection_preserver.h index 667f3bda38266e..07a11346290c80 100644 --- a/ash/components/tether/fake_connection_preserver.h +++ b/ash/components/tether/fake_connection_preserver.h @@ -9,7 +9,7 @@ #include "ash/components/tether/connection_preserver.h" -namespace chromeos { +namespace ash { namespace tether { @@ -36,6 +36,6 @@ class FakeConnectionPreserver : public ConnectionPreserver { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_CONNECTION_PRESERVER_H_ diff --git a/ash/components/tether/fake_crash_recovery_manager.cc b/ash/components/tether/fake_crash_recovery_manager.cc index 414403a4628ba8..34075ab4d24461 100644 --- a/ash/components/tether/fake_crash_recovery_manager.cc +++ b/ash/components/tether/fake_crash_recovery_manager.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_crash_recovery_manager.h" -namespace chromeos { +namespace ash { namespace tether { @@ -19,4 +19,4 @@ void FakeCrashRecoveryManager::RestorePreCrashStateIfNecessary( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_crash_recovery_manager.h b/ash/components/tether/fake_crash_recovery_manager.h index e22c0f9533b241..ddd503a2b93b32 100644 --- a/ash/components/tether/fake_crash_recovery_manager.h +++ b/ash/components/tether/fake_crash_recovery_manager.h @@ -8,7 +8,7 @@ #include "ash/components/tether/crash_recovery_manager.h" #include "base/callback.h" -namespace chromeos { +namespace ash { namespace tether { @@ -36,6 +36,6 @@ class FakeCrashRecoveryManager : public CrashRecoveryManager { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_CRASH_RECOVERY_MANAGER_H_ diff --git a/ash/components/tether/fake_disconnect_tethering_request_sender.cc b/ash/components/tether/fake_disconnect_tethering_request_sender.cc index 4de05f9cf508ca..717b8af0e44498 100644 --- a/ash/components/tether/fake_disconnect_tethering_request_sender.cc +++ b/ash/components/tether/fake_disconnect_tethering_request_sender.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_disconnect_tethering_request_sender.h" -namespace chromeos { +namespace ash { namespace tether { @@ -30,4 +30,4 @@ void FakeDisconnectTetheringRequestSender:: } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_disconnect_tethering_request_sender.h b/ash/components/tether/fake_disconnect_tethering_request_sender.h index 4663526b47401c..d837c46b24a2da 100644 --- a/ash/components/tether/fake_disconnect_tethering_request_sender.h +++ b/ash/components/tether/fake_disconnect_tethering_request_sender.h @@ -10,7 +10,7 @@ #include "ash/components/tether/disconnect_tethering_request_sender.h" -namespace chromeos { +namespace ash { namespace tether { @@ -48,6 +48,6 @@ class FakeDisconnectTetheringRequestSender } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_DISCONNECT_TETHERING_REQUEST_SENDER_H_ diff --git a/ash/components/tether/fake_gms_core_notifications_state_tracker.cc b/ash/components/tether/fake_gms_core_notifications_state_tracker.cc index c01b05bc4b8500..76be291c9e9080 100644 --- a/ash/components/tether/fake_gms_core_notifications_state_tracker.cc +++ b/ash/components/tether/fake_gms_core_notifications_state_tracker.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_gms_core_notifications_state_tracker.h" -namespace chromeos { +namespace ash { namespace tether { @@ -26,4 +26,4 @@ std::vector FakeGmsCoreNotificationsStateTracker:: } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_gms_core_notifications_state_tracker.h b/ash/components/tether/fake_gms_core_notifications_state_tracker.h index 1bcb5102d81b18..0d7254265b97e8 100644 --- a/ash/components/tether/fake_gms_core_notifications_state_tracker.h +++ b/ash/components/tether/fake_gms_core_notifications_state_tracker.h @@ -10,7 +10,7 @@ #include "ash/components/tether/gms_core_notifications_state_tracker.h" -namespace chromeos { +namespace ash { namespace tether { @@ -43,6 +43,13 @@ class FakeGmsCoreNotificationsStateTracker } // namespace tether +} // namespace ash + +// TODO(https://crbug.com/1164001): remove when the migration is finished. +namespace chromeos { +namespace tether { +using ::ash::tether::FakeGmsCoreNotificationsStateTracker; +} // namespace tether } // namespace chromeos #endif // ASH_COMPONENTS_TETHER_FAKE_GMS_CORE_NOTIFICATIONS_STATE_TRACKER_H_ diff --git a/ash/components/tether/fake_host_scan_cache.cc b/ash/components/tether/fake_host_scan_cache.cc index 424d9b00eff095..2eb502aafb29ed 100644 --- a/ash/components/tether/fake_host_scan_cache.cc +++ b/ash/components/tether/fake_host_scan_cache.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_host_scan_cache.h" -namespace chromeos { +namespace ash { namespace tether { @@ -57,4 +57,4 @@ bool FakeHostScanCache::DoesHostRequireSetup( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_host_scan_cache.h b/ash/components/tether/fake_host_scan_cache.h index 1a66d976559141..0219eee0f45bcd 100644 --- a/ash/components/tether/fake_host_scan_cache.h +++ b/ash/components/tether/fake_host_scan_cache.h @@ -11,7 +11,7 @@ #include "ash/components/tether/host_scan_cache.h" -namespace chromeos { +namespace ash { namespace tether { @@ -50,6 +50,6 @@ class FakeHostScanCache : virtual public HostScanCache { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_HOST_SCAN_CACHE_H_ diff --git a/ash/components/tether/fake_host_scan_scheduler.cc b/ash/components/tether/fake_host_scan_scheduler.cc index a0af063915dd3e..a354d99e160001 100644 --- a/ash/components/tether/fake_host_scan_scheduler.cc +++ b/ash/components/tether/fake_host_scan_scheduler.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_host_scan_scheduler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -18,4 +18,4 @@ void FakeHostScanScheduler::AttemptScanIfOffline() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_host_scan_scheduler.h b/ash/components/tether/fake_host_scan_scheduler.h index aa581eca1664fa..8a110a175e2498 100644 --- a/ash/components/tether/fake_host_scan_scheduler.h +++ b/ash/components/tether/fake_host_scan_scheduler.h @@ -7,7 +7,7 @@ #include "ash/components/tether/host_scan_scheduler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -32,6 +32,6 @@ class FakeHostScanScheduler : public HostScanScheduler { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H_ diff --git a/ash/components/tether/fake_host_scanner.cc b/ash/components/tether/fake_host_scanner.cc index c8977bbd2989e6..9860ca4b9247f1 100644 --- a/ash/components/tether/fake_host_scanner.cc +++ b/ash/components/tether/fake_host_scanner.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_host_scanner.h" -namespace chromeos { +namespace ash { namespace tether { @@ -35,4 +35,4 @@ void FakeHostScanner::StartScan() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_host_scanner.h b/ash/components/tether/fake_host_scanner.h index b012efc0d4104a..37f1ecb848d1e7 100644 --- a/ash/components/tether/fake_host_scanner.h +++ b/ash/components/tether/fake_host_scanner.h @@ -7,7 +7,7 @@ #include "ash/components/tether/host_scanner.h" -namespace chromeos { +namespace ash { namespace tether { @@ -37,6 +37,6 @@ class FakeHostScanner : public HostScanner { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_HOST_SCANNER_H_ diff --git a/ash/components/tether/fake_network_configuration_remover.cc b/ash/components/tether/fake_network_configuration_remover.cc index 0a67404111f94c..25d487b029a521 100644 --- a/ash/components/tether/fake_network_configuration_remover.cc +++ b/ash/components/tether/fake_network_configuration_remover.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_network_configuration_remover.h" -namespace chromeos { +namespace ash { namespace tether { @@ -21,4 +21,4 @@ void FakeNetworkConfigurationRemover::RemoveNetworkConfigurationByPath( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_network_configuration_remover.h b/ash/components/tether/fake_network_configuration_remover.h index bd3bbdbc700977..77574ec5731ece 100644 --- a/ash/components/tether/fake_network_configuration_remover.h +++ b/ash/components/tether/fake_network_configuration_remover.h @@ -9,7 +9,7 @@ #include "ash/components/tether/network_configuration_remover.h" -namespace chromeos { +namespace ash { namespace tether { @@ -39,6 +39,6 @@ class FakeNetworkConfigurationRemover : public NetworkConfigurationRemover { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_NETWORK_CONFIGURATION_REMOVER_H_ diff --git a/ash/components/tether/fake_notification_presenter.cc b/ash/components/tether/fake_notification_presenter.cc index 6267b763c98600..e027dd88a5ad05 100644 --- a/ash/components/tether/fake_notification_presenter.cc +++ b/ash/components/tether/fake_notification_presenter.cc @@ -8,7 +8,7 @@ #include "base/memory/ptr_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -73,4 +73,4 @@ void FakeNotificationPresenter::RemoveConnectionToHostFailedNotification() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_notification_presenter.h b/ash/components/tether/fake_notification_presenter.h index 8f5efe36b90b76..20793b07b73910 100644 --- a/ash/components/tether/fake_notification_presenter.h +++ b/ash/components/tether/fake_notification_presenter.h @@ -11,7 +11,7 @@ #include "ash/components/tether/notification_presenter.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { @@ -60,6 +60,6 @@ class FakeNotificationPresenter : public NotificationPresenter { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_NOTIFICATION_PRESENTER_H_ diff --git a/ash/components/tether/fake_synchronous_shutdown_object_container.cc b/ash/components/tether/fake_synchronous_shutdown_object_container.cc index 4a4757e0002632..e1f36b39383d30 100644 --- a/ash/components/tether/fake_synchronous_shutdown_object_container.cc +++ b/ash/components/tether/fake_synchronous_shutdown_object_container.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_synchronous_shutdown_object_container.h" -namespace chromeos { +namespace ash { namespace tether { @@ -37,4 +37,4 @@ FakeSynchronousShutdownObjectContainer::tether_disconnector() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_synchronous_shutdown_object_container.h b/ash/components/tether/fake_synchronous_shutdown_object_container.h index 53cf969e060fdf..6c9afc996b45a7 100644 --- a/ash/components/tether/fake_synchronous_shutdown_object_container.h +++ b/ash/components/tether/fake_synchronous_shutdown_object_container.h @@ -10,7 +10,7 @@ #include "base/callback.h" #include "base/callback_helpers.h" -namespace chromeos { +namespace ash { namespace tether { @@ -60,6 +60,6 @@ class FakeSynchronousShutdownObjectContainer } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_SYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ diff --git a/ash/components/tether/fake_tether_component.cc b/ash/components/tether/fake_tether_component.cc index 10e83cd358413e..2955db343533e6 100644 --- a/ash/components/tether/fake_tether_component.cc +++ b/ash/components/tether/fake_tether_component.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_tether_component.h" -namespace chromeos { +namespace ash { namespace tether { @@ -31,4 +31,4 @@ void FakeTetherComponent::RequestShutdown( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_tether_component.h b/ash/components/tether/fake_tether_component.h index c664f12c580e69..eb743c08a38732 100644 --- a/ash/components/tether/fake_tether_component.h +++ b/ash/components/tether/fake_tether_component.h @@ -8,7 +8,7 @@ #include "ash/components/tether/tether_component.h" #include "ash/components/tether/tether_disconnector.h" -namespace chromeos { +namespace ash { namespace tether { @@ -41,6 +41,6 @@ class FakeTetherComponent : public TetherComponent { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_TETHER_COMPONENT_H_ diff --git a/ash/components/tether/fake_tether_connector.cc b/ash/components/tether/fake_tether_connector.cc index 2838be9a7ff38e..c3c703154fb2f6 100644 --- a/ash/components/tether/fake_tether_connector.cc +++ b/ash/components/tether/fake_tether_connector.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_tether_connector.h" -namespace chromeos { +namespace ash { namespace tether { @@ -32,4 +32,4 @@ bool FakeTetherConnector::CancelConnectionAttempt( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_tether_connector.h b/ash/components/tether/fake_tether_connector.h index 746f4cfdfb44b5..93a00faa38274e 100644 --- a/ash/components/tether/fake_tether_connector.h +++ b/ash/components/tether/fake_tether_connector.h @@ -9,7 +9,7 @@ #include "base/callback_forward.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -55,6 +55,6 @@ class FakeTetherConnector : public TetherConnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_TETHER_CONNECTOR_H_ diff --git a/ash/components/tether/fake_tether_disconnector.cc b/ash/components/tether/fake_tether_disconnector.cc index fb4bc795767d40..ced276375f0224 100644 --- a/ash/components/tether/fake_tether_disconnector.cc +++ b/ash/components/tether/fake_tether_disconnector.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_tether_disconnector.h" -namespace chromeos { +namespace ash { namespace tether { @@ -31,4 +31,4 @@ void FakeTetherDisconnector::DisconnectFromNetwork( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_tether_disconnector.h b/ash/components/tether/fake_tether_disconnector.h index b4033d577af33c..448340155c1f15 100644 --- a/ash/components/tether/fake_tether_disconnector.h +++ b/ash/components/tether/fake_tether_disconnector.h @@ -10,7 +10,7 @@ #include "base/callback_forward.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -55,6 +55,6 @@ class FakeTetherDisconnector : public TetherDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_TETHER_DISCONNECTOR_H_ diff --git a/ash/components/tether/fake_tether_host_fetcher.cc b/ash/components/tether/fake_tether_host_fetcher.cc index 86b62af115b636..2d599020f2d4d0 100644 --- a/ash/components/tether/fake_tether_host_fetcher.cc +++ b/ash/components/tether/fake_tether_host_fetcher.cc @@ -6,7 +6,7 @@ #include "base/memory/ptr_util.h" -namespace chromeos { +namespace ash { namespace tether { @@ -41,4 +41,4 @@ void FakeTetherHostFetcher::FetchTetherHost( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_tether_host_fetcher.h b/ash/components/tether/fake_tether_host_fetcher.h index bb3745e3ae1415..1328e221e5ae2e 100644 --- a/ash/components/tether/fake_tether_host_fetcher.h +++ b/ash/components/tether/fake_tether_host_fetcher.h @@ -10,7 +10,7 @@ #include "ash/components/tether/tether_host_fetcher.h" #include "chromeos/components/multidevice/remote_device_ref.h" -namespace chromeos { +namespace ash { namespace tether { @@ -45,6 +45,6 @@ class FakeTetherHostFetcher : public TetherHostFetcher { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_TETHER_HOST_FETCHER_H_ diff --git a/ash/components/tether/fake_tether_session_completion_logger.cc b/ash/components/tether/fake_tether_session_completion_logger.cc index 4c4f8af9238533..d799c4c54bc5ea 100644 --- a/ash/components/tether/fake_tether_session_completion_logger.cc +++ b/ash/components/tether/fake_tether_session_completion_logger.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_tether_session_completion_logger.h" -namespace chromeos { +namespace ash { namespace tether { @@ -22,4 +22,4 @@ void FakeTetherSessionCompletionLogger::RecordTetherSessionCompletion( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_tether_session_completion_logger.h b/ash/components/tether/fake_tether_session_completion_logger.h index cba4c1cfa4d9cb..517d55790f6e5d 100644 --- a/ash/components/tether/fake_tether_session_completion_logger.h +++ b/ash/components/tether/fake_tether_session_completion_logger.h @@ -9,7 +9,7 @@ #include "ash/components/tether/tether_session_completion_logger.h" -namespace chromeos { +namespace ash { namespace tether { @@ -41,6 +41,6 @@ class FakeTetherSessionCompletionLogger : public TetherSessionCompletionLogger { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_TETHER_SESSION_COMPLETION_LOGGER_H_ diff --git a/ash/components/tether/fake_wifi_hotspot_connector.cc b/ash/components/tether/fake_wifi_hotspot_connector.cc index f35b37388bbe3d..4f3067409a7e5c 100644 --- a/ash/components/tether/fake_wifi_hotspot_connector.cc +++ b/ash/components/tether/fake_wifi_hotspot_connector.cc @@ -8,7 +8,7 @@ #include "chromeos/network/network_state_handler.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -38,4 +38,4 @@ void FakeWifiHotspotConnector::ConnectToWifiHotspot( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_wifi_hotspot_connector.h b/ash/components/tether/fake_wifi_hotspot_connector.h index a2b9b864478274..c70895ab4617a7 100644 --- a/ash/components/tether/fake_wifi_hotspot_connector.h +++ b/ash/components/tether/fake_wifi_hotspot_connector.h @@ -9,7 +9,7 @@ #include "ash/components/tether/wifi_hotspot_connector.h" -namespace chromeos { +namespace ash { namespace tether { @@ -50,6 +50,6 @@ class FakeWifiHotspotConnector : public WifiHotspotConnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_WIFI_HOTSPOT_CONNECTOR_H_ diff --git a/ash/components/tether/fake_wifi_hotspot_disconnector.cc b/ash/components/tether/fake_wifi_hotspot_disconnector.cc index 29673c0e37320a..65ba7a17d50d79 100644 --- a/ash/components/tether/fake_wifi_hotspot_disconnector.cc +++ b/ash/components/tether/fake_wifi_hotspot_disconnector.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/fake_wifi_hotspot_disconnector.h" -namespace chromeos { +namespace ash { namespace tether { @@ -26,4 +26,4 @@ void FakeWifiHotspotDisconnector::DisconnectFromWifiHotspot( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/fake_wifi_hotspot_disconnector.h b/ash/components/tether/fake_wifi_hotspot_disconnector.h index e1c1fd3f22af17..52659254769a57 100644 --- a/ash/components/tether/fake_wifi_hotspot_disconnector.h +++ b/ash/components/tether/fake_wifi_hotspot_disconnector.h @@ -8,7 +8,7 @@ #include "ash/components/tether/wifi_hotspot_disconnector.h" #include "base/callback.h" -namespace chromeos { +namespace ash { namespace tether { @@ -44,6 +44,6 @@ class FakeWifiHotspotDisconnector : public WifiHotspotDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_FAKE_WIFI_HOTSPOT_DISCONNECTOR_H_ diff --git a/ash/components/tether/gms_core_notifications_state_tracker.cc b/ash/components/tether/gms_core_notifications_state_tracker.cc index 5606b6b905057e..e2b3fa7827205c 100644 --- a/ash/components/tether/gms_core_notifications_state_tracker.cc +++ b/ash/components/tether/gms_core_notifications_state_tracker.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/gms_core_notifications_state_tracker.h" -namespace chromeos { +namespace ash { namespace tether { @@ -27,4 +27,4 @@ void GmsCoreNotificationsStateTracker::NotifyGmsCoreNotificationStateChanged() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/gms_core_notifications_state_tracker.h b/ash/components/tether/gms_core_notifications_state_tracker.h index 2bc67453d1e445..375ee95b3fb9b8 100644 --- a/ash/components/tether/gms_core_notifications_state_tracker.h +++ b/ash/components/tether/gms_core_notifications_state_tracker.h @@ -10,7 +10,7 @@ #include "base/observer_list.h" -namespace chromeos { +namespace ash { namespace tether { @@ -51,6 +51,13 @@ class GmsCoreNotificationsStateTracker { } // namespace tether +} // namespace ash + +// TODO(https://crbug.com/1164001): remove when the migration is finished. +namespace chromeos { +namespace tether { +using ::ash::tether::GmsCoreNotificationsStateTracker; +} // namespace tether } // namespace chromeos #endif // ASH_COMPONENTS_TETHER_GMS_CORE_NOTIFICATIONS_STATE_TRACKER_H_ diff --git a/ash/components/tether/gms_core_notifications_state_tracker_impl.cc b/ash/components/tether/gms_core_notifications_state_tracker_impl.cc index f3f32be8ae2643..4aa8b7db3449c4 100644 --- a/ash/components/tether/gms_core_notifications_state_tracker_impl.cc +++ b/ash/components/tether/gms_core_notifications_state_tracker_impl.cc @@ -8,7 +8,7 @@ #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -125,4 +125,4 @@ void GmsCoreNotificationsStateTrackerImpl::SendDeviceNamesChangeEvent() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/gms_core_notifications_state_tracker_impl.h b/ash/components/tether/gms_core_notifications_state_tracker_impl.h index 3bf25b949e5615..024c8d3c3bbd27 100644 --- a/ash/components/tether/gms_core_notifications_state_tracker_impl.h +++ b/ash/components/tether/gms_core_notifications_state_tracker_impl.h @@ -13,7 +13,7 @@ #include "ash/components/tether/host_scanner_operation.h" #include "chromeos/components/multidevice/remote_device_ref.h" -namespace chromeos { +namespace ash { namespace tether { @@ -54,6 +54,6 @@ class GmsCoreNotificationsStateTrackerImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_GMS_CORE_NOTIFICATIONS_STATE_TRACKER_IMPL_H_ diff --git a/ash/components/tether/gms_core_notifications_state_tracker_impl_unittest.cc b/ash/components/tether/gms_core_notifications_state_tracker_impl_unittest.cc index 6d94fe4cd4dff2..9eb802012c66ae 100644 --- a/ash/components/tether/gms_core_notifications_state_tracker_impl_unittest.cc +++ b/ash/components/tether/gms_core_notifications_state_tracker_impl_unittest.cc @@ -14,7 +14,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -236,4 +236,4 @@ TEST_F(GmsCoreNotificationsStateTrackerImplTest, TestTracking_SameName) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_connection_metrics_logger.cc b/ash/components/tether/host_connection_metrics_logger.cc index f9994e395a7885..bc8819b079d01c 100644 --- a/ash/components/tether/host_connection_metrics_logger.cc +++ b/ash/components/tether/host_connection_metrics_logger.cc @@ -7,7 +7,7 @@ #include "base/metrics/histogram_macros.h" #include "base/time/default_clock.h" -namespace chromeos { +namespace ash { namespace tether { @@ -200,4 +200,4 @@ void HostConnectionMetricsLogger::SetClockForTesting(base::Clock* test_clock) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_connection_metrics_logger.h b/ash/components/tether/host_connection_metrics_logger.h index 6506387cc3a578..73d1541364c584 100644 --- a/ash/components/tether/host_connection_metrics_logger.h +++ b/ash/components/tether/host_connection_metrics_logger.h @@ -13,9 +13,9 @@ namespace base { class Clock; -} +} // namespace base -namespace chromeos { +namespace ash { namespace tether { @@ -210,6 +210,6 @@ class HostConnectionMetricsLogger : public ActiveHost::Observer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_CONNECTION_METRICS_LOGGER_H_ diff --git a/ash/components/tether/host_connection_metrics_logger_unittest.cc b/ash/components/tether/host_connection_metrics_logger_unittest.cc index 7900606ca259ef..34bb7830726cef 100644 --- a/ash/components/tether/host_connection_metrics_logger_unittest.cc +++ b/ash/components/tether/host_connection_metrics_logger_unittest.cc @@ -13,7 +13,7 @@ #include "chromeos/components/multidevice/remote_device_test_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -408,4 +408,4 @@ TEST_F(HostConnectionMetricsLoggerTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_cache.cc b/ash/components/tether/host_scan_cache.cc index 925633ed96da30..5d9252e80be4ff 100644 --- a/ash/components/tether/host_scan_cache.cc +++ b/ash/components/tether/host_scan_cache.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/host_scan_cache.h" -namespace chromeos { +namespace ash { namespace tether { @@ -34,4 +34,4 @@ bool HostScanCache::RemoveHostScanResult( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_cache.h b/ash/components/tether/host_scan_cache.h index 0af3073b16c0db..ebe3b13c730ca4 100644 --- a/ash/components/tether/host_scan_cache.h +++ b/ash/components/tether/host_scan_cache.h @@ -11,7 +11,7 @@ #include "ash/components/tether/host_scan_cache_entry.h" #include "base/observer_list.h" -namespace chromeos { +namespace ash { namespace tether { @@ -66,6 +66,6 @@ class HostScanCache { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_CACHE_H_ diff --git a/ash/components/tether/host_scan_cache_entry.cc b/ash/components/tether/host_scan_cache_entry.cc index 6f1fab2f05ecc1..eef5141bf4c489 100644 --- a/ash/components/tether/host_scan_cache_entry.cc +++ b/ash/components/tether/host_scan_cache_entry.cc @@ -7,7 +7,7 @@ #include "base/check_op.h" #include "base/memory/ptr_util.h" -namespace chromeos { +namespace ash { namespace tether { @@ -87,4 +87,4 @@ bool HostScanCacheEntry::operator==(const HostScanCacheEntry& other) const { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_cache_entry.h b/ash/components/tether/host_scan_cache_entry.h index 479ce599ceb47b..1321a8dbf9d0ad 100644 --- a/ash/components/tether/host_scan_cache_entry.h +++ b/ash/components/tether/host_scan_cache_entry.h @@ -8,7 +8,7 @@ #include #include -namespace chromeos { +namespace ash { namespace tether { @@ -75,6 +75,6 @@ class HostScanCacheEntry { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_CACHE_ENTRY_H_ diff --git a/ash/components/tether/host_scan_cache_unittest.cc b/ash/components/tether/host_scan_cache_unittest.cc index b595dca2ca73a6..789e858315d7cd 100644 --- a/ash/components/tether/host_scan_cache_unittest.cc +++ b/ash/components/tether/host_scan_cache_unittest.cc @@ -11,7 +11,7 @@ #include "ash/components/tether/host_scan_test_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -92,4 +92,4 @@ TEST_F(HostScanCacheTest, TestSetAndRemove) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_device_prioritizer.h b/ash/components/tether/host_scan_device_prioritizer.h index bf76fb08b6cf9f..7525eeeda9bc82 100644 --- a/ash/components/tether/host_scan_device_prioritizer.h +++ b/ash/components/tether/host_scan_device_prioritizer.h @@ -7,7 +7,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" -namespace chromeos { +namespace ash { namespace tether { @@ -36,6 +36,6 @@ class HostScanDevicePrioritizer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_DEVICE_PRIORITIZER_H_ diff --git a/ash/components/tether/host_scan_device_prioritizer_impl.cc b/ash/components/tether/host_scan_device_prioritizer_impl.cc index 8cce097a29db78..06cea5717ae4e8 100644 --- a/ash/components/tether/host_scan_device_prioritizer_impl.cc +++ b/ash/components/tether/host_scan_device_prioritizer_impl.cc @@ -13,7 +13,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -namespace chromeos { +namespace ash { namespace tether { @@ -81,4 +81,4 @@ void HostScanDevicePrioritizerImpl::SortByHostScanOrder( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_device_prioritizer_impl.h b/ash/components/tether/host_scan_device_prioritizer_impl.h index 2aaf368f4f4f3e..b3c39fab288cb5 100644 --- a/ash/components/tether/host_scan_device_prioritizer_impl.h +++ b/ash/components/tether/host_scan_device_prioritizer_impl.h @@ -8,7 +8,7 @@ #include "ash/components/tether/host_scan_device_prioritizer.h" #include "chromeos/components/multidevice/remote_device_ref.h" -namespace chromeos { +namespace ash { namespace tether { @@ -36,6 +36,6 @@ class HostScanDevicePrioritizerImpl : public HostScanDevicePrioritizer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_DEVICE_PRIORITIZER_IMPL_H_ diff --git a/ash/components/tether/host_scan_device_prioritizer_impl_unittest.cc b/ash/components/tether/host_scan_device_prioritizer_impl_unittest.cc index 7523bb09e7b3cf..e0b72305f8885e 100644 --- a/ash/components/tether/host_scan_device_prioritizer_impl_unittest.cc +++ b/ash/components/tether/host_scan_device_prioritizer_impl_unittest.cc @@ -12,7 +12,7 @@ #include "components/sync_preferences/testing_pref_service_syncable.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -205,4 +205,4 @@ TEST_F(HostScanDevicePrioritizerImplTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_scheduler.h b/ash/components/tether/host_scan_scheduler.h index 1ed297894aac59..f3c83babe2c5d5 100644 --- a/ash/components/tether/host_scan_scheduler.h +++ b/ash/components/tether/host_scan_scheduler.h @@ -5,7 +5,7 @@ #ifndef ASH_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_ #define ASH_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_ -namespace chromeos { +namespace ash { namespace tether { @@ -27,6 +27,6 @@ class HostScanScheduler { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_ diff --git a/ash/components/tether/host_scan_scheduler_impl.cc b/ash/components/tether/host_scan_scheduler_impl.cc index 184bda64be11b7..5a18c23eb27f43 100644 --- a/ash/components/tether/host_scan_scheduler_impl.cc +++ b/ash/components/tether/host_scan_scheduler_impl.cc @@ -19,7 +19,7 @@ #include "chromeos/network/network_type_pattern.h" #include "components/session_manager/core/session_manager.h" -namespace chromeos { +namespace ash { namespace tether { @@ -211,4 +211,4 @@ void HostScanSchedulerImpl::LogHostScanBatchMetric() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_scheduler_impl.h b/ash/components/tether/host_scan_scheduler_impl.h index c302e2e6db7089..97aae121e5a21b 100644 --- a/ash/components/tether/host_scan_scheduler_impl.h +++ b/ash/components/tether/host_scan_scheduler_impl.h @@ -14,7 +14,11 @@ #include "base/time/clock.h" #include "base/time/time.h" #include "base/timer/timer.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_state_handler_observer.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_type_pattern.h" #include "components/session_manager/core/session_manager_observer.h" namespace base { @@ -25,10 +29,7 @@ namespace session_manager { class SessionManager; } // namespace session_manager -namespace chromeos { - -class NetworkStateHandler; -class NetworkTypePattern; +namespace ash { namespace tether { @@ -95,6 +96,6 @@ class HostScanSchedulerImpl : public HostScanScheduler, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_IMPL_H_ diff --git a/ash/components/tether/host_scan_scheduler_impl_unittest.cc b/ash/components/tether/host_scan_scheduler_impl_unittest.cc index 0a4e984b54038a..372746f1a28c91 100644 --- a/ash/components/tether/host_scan_scheduler_impl_unittest.cc +++ b/ash/components/tether/host_scan_scheduler_impl_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -435,4 +435,4 @@ TEST_F(HostScanSchedulerImplTest, DefaultNetworkChanged) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_test_util.cc b/ash/components/tether/host_scan_test_util.cc index f9720be6da39c8..6c216985dcdddc 100644 --- a/ash/components/tether/host_scan_test_util.cc +++ b/ash/components/tether/host_scan_test_util.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/host_scan_test_util.h" -namespace chromeos { +namespace ash { namespace tether { @@ -60,4 +60,4 @@ std::unordered_map CreateTestEntries() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scan_test_util.h b/ash/components/tether/host_scan_test_util.h index af7c07bbdfaa45..6555ad1ea54a50 100644 --- a/ash/components/tether/host_scan_test_util.h +++ b/ash/components/tether/host_scan_test_util.h @@ -10,7 +10,7 @@ #include "ash/components/tether/host_scan_cache_entry.h" -namespace chromeos { +namespace ash { namespace tether { @@ -55,6 +55,6 @@ std::unordered_map CreateTestEntries(); } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCAN_TEST_UTIL_H_ diff --git a/ash/components/tether/host_scanner.cc b/ash/components/tether/host_scanner.cc index a34b516435e472..fa3f1f301a6efb 100644 --- a/ash/components/tether/host_scanner.cc +++ b/ash/components/tether/host_scanner.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/host_scanner.h" -namespace chromeos { +namespace ash { namespace tether { @@ -27,4 +27,4 @@ void HostScanner::NotifyScanFinished() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scanner.h b/ash/components/tether/host_scanner.h index 972c171ce9ffbb..3e78b0ca3e61bb 100644 --- a/ash/components/tether/host_scanner.h +++ b/ash/components/tether/host_scanner.h @@ -7,7 +7,7 @@ #include "base/observer_list.h" -namespace chromeos { +namespace ash { namespace tether { @@ -52,6 +52,6 @@ class HostScanner { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCANNER_H_ diff --git a/ash/components/tether/host_scanner_impl.cc b/ash/components/tether/host_scanner_impl.cc index 7b8eea066bd1d1..45017e31428196 100644 --- a/ash/components/tether/host_scanner_impl.cc +++ b/ash/components/tether/host_scanner_impl.cc @@ -20,7 +20,7 @@ #include "chromeos/network/network_state.h" #include "components/session_manager/core/session_manager.h" -namespace chromeos { +namespace ash { namespace tether { @@ -311,4 +311,4 @@ bool HostScannerImpl::CanAvailableHostNotificationBeShown() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scanner_impl.h b/ash/components/tether/host_scanner_impl.h index 2d0e460420604b..e1109e3f67a580 100644 --- a/ash/components/tether/host_scanner_impl.h +++ b/ash/components/tether/host_scanner_impl.h @@ -18,21 +18,17 @@ #include "base/time/clock.h" #include "chromeos/components/multidevice/remote_device_ref.h" #include "chromeos/network/network_state_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "components/session_manager/core/session_manager_observer.h" namespace session_manager { class SessionManager; } // namespace session_manager -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -146,6 +142,6 @@ class HostScannerImpl : public HostScanner, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCANNER_IMPL_H_ diff --git a/ash/components/tether/host_scanner_impl_unittest.cc b/ash/components/tether/host_scanner_impl_unittest.cc index 70e97a58cc5107..acbb530c901a78 100644 --- a/ash/components/tether/host_scanner_impl_unittest.cc +++ b/ash/components/tether/host_scanner_impl_unittest.cc @@ -33,7 +33,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -823,4 +823,4 @@ TEST_F(HostScannerImplTest, DISABLED_TestScan_MultipleCompleteScanSessions) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scanner_operation.cc b/ash/components/tether/host_scanner_operation.cc index 930c423fba4f5b..9ff716e58ee7ab 100644 --- a/ash/components/tether/host_scanner_operation.cc +++ b/ash/components/tether/host_scanner_operation.cc @@ -18,7 +18,7 @@ #include "base/time/default_clock.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -283,4 +283,4 @@ void HostScannerOperation::RecordTetherAvailabilityResponseDuration( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/host_scanner_operation.h b/ash/components/tether/host_scanner_operation.h index 925ccaf3e9d003..3b398900449b06 100644 --- a/ash/components/tether/host_scanner_operation.h +++ b/ash/components/tether/host_scanner_operation.h @@ -13,16 +13,12 @@ #include "base/observer_list.h" #include "base/time/clock.h" #include "chromeos/components/multidevice/remote_device_ref.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -155,6 +151,6 @@ class HostScannerOperation : public MessageTransferOperation { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOST_SCANNER_OPERATION_H_ diff --git a/ash/components/tether/host_scanner_operation_unittest.cc b/ash/components/tether/host_scanner_operation_unittest.cc index 935daf5d3e2771..968911a23fa3b6 100644 --- a/ash/components/tether/host_scanner_operation_unittest.cc +++ b/ash/components/tether/host_scanner_operation_unittest.cc @@ -29,7 +29,7 @@ using testing::_; using testing::StrictMock; -namespace chromeos { +namespace ash { namespace tether { @@ -360,4 +360,4 @@ TEST_F(HostScannerOperationTest, SetupRequired) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/hotspot_usage_duration_tracker.cc b/ash/components/tether/hotspot_usage_duration_tracker.cc index 44ed8dbd26e734..c77bc17684a13c 100644 --- a/ash/components/tether/hotspot_usage_duration_tracker.cc +++ b/ash/components/tether/hotspot_usage_duration_tracker.cc @@ -8,7 +8,7 @@ #include "base/time/clock.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -97,4 +97,4 @@ void HotspotUsageDurationTracker::HandleUnexpectedCurrentSession( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/hotspot_usage_duration_tracker.h b/ash/components/tether/hotspot_usage_duration_tracker.h index 0ee707d947aac8..bc2ab99e277688 100644 --- a/ash/components/tether/hotspot_usage_duration_tracker.h +++ b/ash/components/tether/hotspot_usage_duration_tracker.h @@ -12,7 +12,7 @@ namespace base { class Clock; } // namespace base -namespace chromeos { +namespace ash { namespace tether { @@ -46,6 +46,6 @@ class HotspotUsageDurationTracker : public ActiveHost::Observer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_HOTSPOT_USAGE_DURATION_TRACKER_H_ diff --git a/ash/components/tether/hotspot_usage_duration_tracker_unittest.cc b/ash/components/tether/hotspot_usage_duration_tracker_unittest.cc index d7155e1be161de..b49734ff70a947 100644 --- a/ash/components/tether/hotspot_usage_duration_tracker_unittest.cc +++ b/ash/components/tether/hotspot_usage_duration_tracker_unittest.cc @@ -12,7 +12,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -120,4 +120,4 @@ TEST_F(HotspotUsageDurationTrackerTest, TestErrorCondition) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/keep_alive_operation.cc b/ash/components/tether/keep_alive_operation.cc index 989ad994839c7a..d6f56db2916508 100644 --- a/ash/components/tether/keep_alive_operation.cc +++ b/ash/components/tether/keep_alive_operation.cc @@ -11,7 +11,7 @@ #include "base/time/default_clock.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -118,4 +118,4 @@ void KeepAliveOperation::SetClockForTest(base::Clock* clock_for_test) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/keep_alive_operation.h b/ash/components/tether/keep_alive_operation.h index 8d69de8c3fae61..fe4beb7410e01b 100644 --- a/ash/components/tether/keep_alive_operation.h +++ b/ash/components/tether/keep_alive_operation.h @@ -9,16 +9,12 @@ #include "base/gtest_prod_util.h" #include "base/observer_list.h" #include "base/time/clock.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -97,6 +93,6 @@ class KeepAliveOperation : public MessageTransferOperation { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_KEEP_ALIVE_OPERATION_H_ diff --git a/ash/components/tether/keep_alive_operation_unittest.cc b/ash/components/tether/keep_alive_operation_unittest.cc index 3ebacf1799c930..c50b09a75e2ea0 100644 --- a/ash/components/tether/keep_alive_operation_unittest.cc +++ b/ash/components/tether/keep_alive_operation_unittest.cc @@ -26,7 +26,7 @@ using testing::_; using testing::Invoke; using testing::NotNull; -namespace chromeos { +namespace ash { namespace tether { @@ -188,4 +188,4 @@ TEST_F(KeepAliveOperationTest, RecordsResponseDuration) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/keep_alive_scheduler.cc b/ash/components/tether/keep_alive_scheduler.cc index de392a5fe9f26b..82be7cda43d5b2 100644 --- a/ash/components/tether/keep_alive_scheduler.cc +++ b/ash/components/tether/keep_alive_scheduler.cc @@ -10,7 +10,7 @@ #include "base/metrics/histogram_functions.h" #include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" -namespace chromeos { +namespace ash { namespace tether { @@ -125,4 +125,4 @@ void KeepAliveScheduler::SendKeepAliveTickle() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/keep_alive_scheduler.h b/ash/components/tether/keep_alive_scheduler.h index 262a5099427d97..3b5d44e602143a 100644 --- a/ash/components/tether/keep_alive_scheduler.h +++ b/ash/components/tether/keep_alive_scheduler.h @@ -12,17 +12,13 @@ #include "ash/components/tether/keep_alive_operation.h" #include "base/memory/weak_ptr.h" #include "base/timer/timer.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -87,6 +83,6 @@ class KeepAliveScheduler : public ActiveHost::Observer, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_KEEP_ALIVE_SCHEDULER_H_ diff --git a/ash/components/tether/keep_alive_scheduler_unittest.cc b/ash/components/tether/keep_alive_scheduler_unittest.cc index fb393f55e644a6..e8ba56e8abff8c 100644 --- a/ash/components/tether/keep_alive_scheduler_unittest.cc +++ b/ash/components/tether/keep_alive_scheduler_unittest.cc @@ -18,7 +18,7 @@ #include "chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -310,4 +310,4 @@ TEST_F(KeepAliveSchedulerTest, DISABLED_TestSendTickle_MultipleActiveHosts) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/message_transfer_operation.cc b/ash/components/tether/message_transfer_operation.cc index 99c33a34d2e9dd..253a994a2e8d5c 100644 --- a/ash/components/tether/message_transfer_operation.cc +++ b/ash/components/tether/message_transfer_operation.cc @@ -13,12 +13,15 @@ #include "base/containers/contains.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { namespace { +// TODO(https://crbug.com/1164001): remove when secure_channel moved to ash +namespace secure_channel = ::chromeos::secure_channel; + const char kTetherFeature[] = "magic_tether"; multidevice::RemoteDeviceRefList RemoveDuplicatesFromVector( @@ -305,4 +308,4 @@ void MessageTransferOperation::SetTimerFactoryForTest( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/message_transfer_operation.h b/ash/components/tether/message_transfer_operation.h index 3dee39f44d0c8b..39e80e70de63e3 100644 --- a/ash/components/tether/message_transfer_operation.h +++ b/ash/components/tether/message_transfer_operation.h @@ -20,7 +20,7 @@ #include "chromeos/services/secure_channel/public/mojom/secure_channel.mojom.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { @@ -114,7 +114,8 @@ class MessageTransferOperation { // secure_channel::ConnectionAttempt::Delegate: void OnConnectionAttemptFailure( - secure_channel::mojom::ConnectionAttemptFailureReason reason) override; + chromeos::secure_channel::mojom::ConnectionAttemptFailureReason reason) + override; void OnConnection( std::unique_ptr channel) override; @@ -157,7 +158,7 @@ class MessageTransferOperation { void OnConnectionAttemptFailure( multidevice::RemoteDeviceRef remote_device, - secure_channel::mojom::ConnectionAttemptFailureReason reason); + chromeos::secure_channel::mojom::ConnectionAttemptFailureReason reason); void OnConnection(multidevice::RemoteDeviceRef remote_device, std::unique_ptr channel); void OnDisconnected(multidevice::RemoteDeviceRef remote_device); @@ -208,6 +209,6 @@ class MessageTransferOperation { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_MESSAGE_TRANSFER_OPERATION_H_ diff --git a/ash/components/tether/message_transfer_operation_unittest.cc b/ash/components/tether/message_transfer_operation_unittest.cc index 2da49b1060f849..4cc567262a86a0 100644 --- a/ash/components/tether/message_transfer_operation_unittest.cc +++ b/ash/components/tether/message_transfer_operation_unittest.cc @@ -19,12 +19,15 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { namespace { +// TODO(https://crbug.com/1164001): remove when secure_channel moved to ash +namespace secure_channel = ::chromeos::secure_channel; + // Arbitrarily chosen value. The MessageType used in this test does not matter // except that it must be consistent throughout the test. const MessageType kTestMessageType = MessageType::TETHER_AVAILABILITY_REQUEST; @@ -405,4 +408,4 @@ TEST_F(MessageTransferOperationTest, MultipleDevices) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/message_wrapper.cc b/ash/components/tether/message_wrapper.cc index 4a3af06e967eed..f4fc97c8ebd083 100644 --- a/ash/components/tether/message_wrapper.cc +++ b/ash/components/tether/message_wrapper.cc @@ -12,7 +12,7 @@ #include "base/memory/ptr_util.h" #include "base/values.h" -namespace chromeos { +namespace ash { namespace tether { @@ -176,4 +176,4 @@ std::string MessageWrapper::ToRawMessage() const { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/message_wrapper.h b/ash/components/tether/message_wrapper.h index 207a8c8b85b1da..627b26176f6578 100644 --- a/ash/components/tether/message_wrapper.h +++ b/ash/components/tether/message_wrapper.h @@ -10,7 +10,7 @@ #include "ash/components/tether/proto/tether.pb.h" -namespace chromeos { +namespace ash { namespace tether { @@ -60,6 +60,6 @@ class MessageWrapper { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_MESSAGE_WRAPPER_H_ diff --git a/ash/components/tether/message_wrapper_unittest.cc b/ash/components/tether/message_wrapper_unittest.cc index 01468e3a864a5c..1e8245fd1ceb0a 100644 --- a/ash/components/tether/message_wrapper_unittest.cc +++ b/ash/components/tether/message_wrapper_unittest.cc @@ -12,7 +12,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -190,4 +190,4 @@ TEST_F(MessageWrapperTest, TestFromRawMessage_ExtraJsonKeyValuePair) { } // namespace tether -} // namespace cryptauth +} // namespace ash diff --git a/ash/components/tether/mock_host_connection_metrics_logger.cc b/ash/components/tether/mock_host_connection_metrics_logger.cc index 981fb9cf1ef787..68950a3e57a11a 100644 --- a/ash/components/tether/mock_host_connection_metrics_logger.cc +++ b/ash/components/tether/mock_host_connection_metrics_logger.cc @@ -6,7 +6,7 @@ #include "ash/components/tether/active_host.h" -namespace chromeos { +namespace ash { namespace tether { @@ -18,4 +18,4 @@ MockHostConnectionMetricsLogger::~MockHostConnectionMetricsLogger() = default; } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/mock_host_connection_metrics_logger.h b/ash/components/tether/mock_host_connection_metrics_logger.h index 41d141e7a54530..0772f079c81fb4 100644 --- a/ash/components/tether/mock_host_connection_metrics_logger.h +++ b/ash/components/tether/mock_host_connection_metrics_logger.h @@ -10,7 +10,7 @@ #include "ash/components/tether/host_connection_metrics_logger.h" #include "testing/gmock/include/gmock/gmock.h" -namespace chromeos { +namespace ash { namespace tether { @@ -34,6 +34,6 @@ class MockHostConnectionMetricsLogger : public HostConnectionMetricsLogger { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_MOCK_HOST_CONNECTION_METRICS_LOGGER_H_ diff --git a/ash/components/tether/mock_tether_host_response_recorder.cc b/ash/components/tether/mock_tether_host_response_recorder.cc index e3986bc7bafd0c..6c1f4302fde395 100644 --- a/ash/components/tether/mock_tether_host_response_recorder.cc +++ b/ash/components/tether/mock_tether_host_response_recorder.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/mock_tether_host_response_recorder.h" -namespace chromeos { +namespace ash { namespace tether { @@ -15,4 +15,4 @@ MockTetherHostResponseRecorder::~MockTetherHostResponseRecorder() = default; } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/mock_tether_host_response_recorder.h b/ash/components/tether/mock_tether_host_response_recorder.h index 75a307ab3dc7ec..b64114dc70daf8 100644 --- a/ash/components/tether/mock_tether_host_response_recorder.h +++ b/ash/components/tether/mock_tether_host_response_recorder.h @@ -11,7 +11,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" #include "testing/gmock/include/gmock/gmock.h" -namespace chromeos { +namespace ash { namespace tether { @@ -37,6 +37,6 @@ class MockTetherHostResponseRecorder : public TetherHostResponseRecorder { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_MOCK_TETHER_HOST_RESPONSE_RECORDER_H_ diff --git a/ash/components/tether/network_configuration_remover.cc b/ash/components/tether/network_configuration_remover.cc index de302b94313691..e1139be1757aa6 100644 --- a/ash/components/tether/network_configuration_remover.cc +++ b/ash/components/tether/network_configuration_remover.cc @@ -26,7 +26,7 @@ void RemoveConfigurationFailureCallback( } // namespace -namespace chromeos { +namespace ash { namespace tether { @@ -47,4 +47,4 @@ void NetworkConfigurationRemover::RemoveNetworkConfigurationByPath( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_configuration_remover.h b/ash/components/tether/network_configuration_remover.h index daa3c7e22553b0..b8bf2340806dcf 100644 --- a/ash/components/tether/network_configuration_remover.h +++ b/ash/components/tether/network_configuration_remover.h @@ -7,9 +7,10 @@ #include -namespace chromeos { +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/managed_network_configuration_handler.h" -class ManagedNetworkConfigurationHandler; +namespace ash { namespace tether { @@ -38,6 +39,6 @@ class NetworkConfigurationRemover { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_NETWORK_CONFIGURATION_REMOVER_H_ diff --git a/ash/components/tether/network_configuration_remover_unittest.cc b/ash/components/tether/network_configuration_remover_unittest.cc index bf5efe771abb12..ea0a3e9b55fc29 100644 --- a/ash/components/tether/network_configuration_remover_unittest.cc +++ b/ash/components/tether/network_configuration_remover_unittest.cc @@ -14,7 +14,7 @@ using testing::_; using testing::NiceMock; -namespace chromeos { +namespace ash { namespace tether { @@ -61,4 +61,4 @@ TEST_F(NetworkConfigurationRemoverTest, TestRemoveNetworkConfiguration) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_connection_handler_tether_delegate.cc b/ash/components/tether/network_connection_handler_tether_delegate.cc index 45c5e8c031bb9e..7ca8680edc5424 100644 --- a/ash/components/tether/network_connection_handler_tether_delegate.cc +++ b/ash/components/tether/network_connection_handler_tether_delegate.cc @@ -12,7 +12,7 @@ #include "base/containers/contains.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -136,4 +136,4 @@ void NetworkConnectionHandlerTetherDelegate::OnRequestError( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_connection_handler_tether_delegate.h b/ash/components/tether/network_connection_handler_tether_delegate.h index 7dbe71b904b639..136d81a8b7e4dd 100644 --- a/ash/components/tether/network_connection_handler_tether_delegate.h +++ b/ash/components/tether/network_connection_handler_tether_delegate.h @@ -10,9 +10,7 @@ #include "base/memory/weak_ptr.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { - -class NetworkConnectionHandler; +namespace ash { namespace tether { @@ -76,6 +74,6 @@ class NetworkConnectionHandlerTetherDelegate } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_NETWORK_CONNECTION_HANDLER_TETHER_DELEGATE_H_ diff --git a/ash/components/tether/network_connection_handler_tether_delegate_unittest.cc b/ash/components/tether/network_connection_handler_tether_delegate_unittest.cc index 3cd7020f301c3a..164d69b3f9b4b6 100644 --- a/ash/components/tether/network_connection_handler_tether_delegate_unittest.cc +++ b/ash/components/tether/network_connection_handler_tether_delegate_unittest.cc @@ -16,7 +16,7 @@ #include "chromeos/network/network_connection_handler.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -231,4 +231,4 @@ TEST_F(NetworkConnectionHandlerTetherDelegateTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_host_scan_cache.cc b/ash/components/tether/network_host_scan_cache.cc index 9785c0daa34050..6061ec8d236204 100644 --- a/ash/components/tether/network_host_scan_cache.cc +++ b/ash/components/tether/network_host_scan_cache.cc @@ -11,7 +11,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -124,4 +124,4 @@ bool NetworkHostScanCache::HasConnectedToHost( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_host_scan_cache.h b/ash/components/tether/network_host_scan_cache.h index e14709aad18dc8..780548672145b7 100644 --- a/ash/components/tether/network_host_scan_cache.h +++ b/ash/components/tether/network_host_scan_cache.h @@ -12,10 +12,10 @@ #include "ash/components/tether/host_scan_cache.h" #include "ash/components/tether/tether_host_response_recorder.h" #include "base/memory/weak_ptr.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -62,6 +62,6 @@ class NetworkHostScanCache : public HostScanCache, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_NETWORK_HOST_SCAN_CACHE_H_ diff --git a/ash/components/tether/network_host_scan_cache_unittest.cc b/ash/components/tether/network_host_scan_cache_unittest.cc index b23d5023b9ce5a..0b21fcdc613119 100644 --- a/ash/components/tether/network_host_scan_cache_unittest.cc +++ b/ash/components/tether/network_host_scan_cache_unittest.cc @@ -22,7 +22,7 @@ using testing::NiceMock; using testing::Invoke; -namespace chromeos { +namespace ash { namespace tether { @@ -200,4 +200,4 @@ TEST_F(NetworkHostScanCacheTest, TestHasConnectedToHost) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_list_sorter.cc b/ash/components/tether/network_list_sorter.cc index 61e6bc2de0cbe4..d9ee2d9ce70a39 100644 --- a/ash/components/tether/network_list_sorter.cc +++ b/ash/components/tether/network_list_sorter.cc @@ -10,7 +10,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_type_pattern.h" -namespace chromeos { +namespace ash { namespace tether { @@ -72,4 +72,4 @@ void NetworkListSorter::SortTetherNetworkList( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/network_list_sorter.h b/ash/components/tether/network_list_sorter.h index 1d4066e73d4f03..d105e398ee97b0 100644 --- a/ash/components/tether/network_list_sorter.h +++ b/ash/components/tether/network_list_sorter.h @@ -8,9 +8,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -34,6 +32,6 @@ class NetworkListSorter : public NetworkStateHandler::TetherSortDelegate { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_NETWORK_LIST_SORTER_H_ diff --git a/ash/components/tether/network_list_sorter_unittest.cc b/ash/components/tether/network_list_sorter_unittest.cc index 5f75ff997dba81..40f7c1c1d17c3c 100644 --- a/ash/components/tether/network_list_sorter_unittest.cc +++ b/ash/components/tether/network_list_sorter_unittest.cc @@ -12,7 +12,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/service_constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -131,4 +131,4 @@ TEST_F(NetworkListSorterTest, Guid) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/notification_presenter.h b/ash/components/tether/notification_presenter.h index 9973e34887cbec..34218622669f70 100644 --- a/ash/components/tether/notification_presenter.h +++ b/ash/components/tether/notification_presenter.h @@ -8,7 +8,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" #include "chromeos/network/network_state.h" -namespace chromeos { +namespace ash { namespace tether { @@ -65,6 +65,13 @@ class NotificationPresenter { } // namespace tether +} // namespace ash + +// TODO(https://crbug.com/1164001): remove when the migration is finished. +namespace chromeos { +namespace tether { +using ::ash::tether::NotificationPresenter; +} // namespace tether } // namespace chromeos #endif // ASH_COMPONENTS_TETHER_NOTIFICATION_PRESENTER_H_ diff --git a/ash/components/tether/notification_remover.cc b/ash/components/tether/notification_remover.cc index 6adc84bc5ff7fa..f511dd2f9b7778 100644 --- a/ash/components/tether/notification_remover.cc +++ b/ash/components/tether/notification_remover.cc @@ -7,7 +7,7 @@ #include "ash/components/tether/notification_presenter.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -64,4 +64,4 @@ void NotificationRemover::OnActiveHostChanged( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/notification_remover.h b/ash/components/tether/notification_remover.h index 0cbbc4d0fef3e6..55d6ecb2c8ca53 100644 --- a/ash/components/tether/notification_remover.h +++ b/ash/components/tether/notification_remover.h @@ -7,11 +7,11 @@ #include "ash/components/tether/active_host.h" #include "ash/components/tether/host_scan_cache.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_state_handler_observer.h" -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -55,6 +55,6 @@ class NotificationRemover : public HostScanCache::Observer, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_NOTIFICATION_REMOVER_H_ diff --git a/ash/components/tether/notification_remover_unittest.cc b/ash/components/tether/notification_remover_unittest.cc index a39c46659193ae..e47742d8c6ac18 100644 --- a/ash/components/tether/notification_remover_unittest.cc +++ b/ash/components/tether/notification_remover_unittest.cc @@ -17,7 +17,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -139,4 +139,4 @@ TEST_F(NotificationRemoverTest, TestActiveHostConnecting) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/persistent_host_scan_cache.h b/ash/components/tether/persistent_host_scan_cache.h index 5fcb761d17ffb2..243f75c25ff0d8 100644 --- a/ash/components/tether/persistent_host_scan_cache.h +++ b/ash/components/tether/persistent_host_scan_cache.h @@ -7,7 +7,7 @@ #include "ash/components/tether/host_scan_cache.h" -namespace chromeos { +namespace ash { namespace tether { @@ -30,6 +30,6 @@ class PersistentHostScanCache : virtual public HostScanCache { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_PERSISTENT_HOST_SCAN_CACHE_H_ diff --git a/ash/components/tether/persistent_host_scan_cache_impl.cc b/ash/components/tether/persistent_host_scan_cache_impl.cc index a2c5dfe18964b2..f3ef0daed84177 100644 --- a/ash/components/tether/persistent_host_scan_cache_impl.cc +++ b/ash/components/tether/persistent_host_scan_cache_impl.cc @@ -13,7 +13,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -namespace chromeos { +namespace ash { namespace tether { @@ -209,4 +209,4 @@ void PersistentHostScanCacheImpl::StoreCacheEntriesToPrefs( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/persistent_host_scan_cache_impl.h b/ash/components/tether/persistent_host_scan_cache_impl.h index 007b9d417098d3..f730eefb3bd596 100644 --- a/ash/components/tether/persistent_host_scan_cache_impl.h +++ b/ash/components/tether/persistent_host_scan_cache_impl.h @@ -14,7 +14,7 @@ class PrefRegistrySimple; class PrefService; -namespace chromeos { +namespace ash { namespace tether { @@ -56,6 +56,6 @@ class PersistentHostScanCacheImpl : public PersistentHostScanCache { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_PERSISTENT_HOST_SCAN_CACHE_IMPL_H_ diff --git a/ash/components/tether/persistent_host_scan_cache_impl_unittest.cc b/ash/components/tether/persistent_host_scan_cache_impl_unittest.cc index 5c7f0572c9d985..0b3e00e29216ae 100644 --- a/ash/components/tether/persistent_host_scan_cache_impl_unittest.cc +++ b/ash/components/tether/persistent_host_scan_cache_impl_unittest.cc @@ -12,7 +12,7 @@ #include "components/sync_preferences/testing_pref_service_syncable.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -166,4 +166,4 @@ TEST_F(PersistentHostScanCacheImplTest, TestStoredPersistently) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/pref_names.cc b/ash/components/tether/pref_names.cc index a47535f3facfb3..a1c854ce5ff68d 100644 --- a/ash/components/tether/pref_names.cc +++ b/ash/components/tether/pref_names.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/pref_names.h" -namespace chromeos { +namespace ash { namespace tether { @@ -33,4 +33,4 @@ const char kHostScanCache[] = "tether.host_scan_cache"; } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/pref_names.h b/ash/components/tether/pref_names.h index 8fde66c85b7eef..21508a627f4e25 100644 --- a/ash/components/tether/pref_names.h +++ b/ash/components/tether/pref_names.h @@ -5,7 +5,7 @@ #ifndef ASH_COMPONENTS_TETHER_PREF_NAMES_H_ #define ASH_COMPONENTS_TETHER_PREF_NAMES_H_ -namespace chromeos { +namespace ash { namespace tether { @@ -59,6 +59,6 @@ extern const char kHostScanCache[]; } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_PREF_NAMES_H_ diff --git a/ash/components/tether/proto/tether.proto b/ash/components/tether/proto/tether.proto index ce8a74e3794650..4ee49e62b00e01 100644 --- a/ash/components/tether/proto/tether.proto +++ b/ash/components/tether/proto/tether.proto @@ -6,7 +6,7 @@ syntax = "proto2"; -package chromeos.tether; +package ash.tether; option optimize_for = LITE_RUNTIME; diff --git a/ash/components/tether/proto_test_util.cc b/ash/components/tether/proto_test_util.cc index ba27f9a043c644..0bf8bac17b2766 100644 --- a/ash/components/tether/proto_test_util.cc +++ b/ash/components/tether/proto_test_util.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/proto_test_util.h" -namespace chromeos { +namespace ash { namespace tether { @@ -41,4 +41,4 @@ DeviceStatus CreateDeviceStatusWithFakeFields() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/proto_test_util.h b/ash/components/tether/proto_test_util.h index 06f3250b349167..c66e02ed521951 100644 --- a/ash/components/tether/proto_test_util.h +++ b/ash/components/tether/proto_test_util.h @@ -7,7 +7,7 @@ #include "ash/components/tether/proto/tether.pb.h" -namespace chromeos { +namespace ash { namespace tether { @@ -32,6 +32,6 @@ DeviceStatus CreateDeviceStatusWithFakeFields(); } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_PROTO_TEST_UTIL_H_ diff --git a/ash/components/tether/synchronous_shutdown_object_container.h b/ash/components/tether/synchronous_shutdown_object_container.h index b6e5cd0bbc3a57..f4e9793f5be2f0 100644 --- a/ash/components/tether/synchronous_shutdown_object_container.h +++ b/ash/components/tether/synchronous_shutdown_object_container.h @@ -5,7 +5,7 @@ #ifndef ASH_COMPONENTS_TETHER_SYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ #define ASH_COMPONENTS_TETHER_SYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ -namespace chromeos { +namespace ash { namespace tether { @@ -37,6 +37,6 @@ class SynchronousShutdownObjectContainer { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_SYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_H_ diff --git a/ash/components/tether/synchronous_shutdown_object_container_impl.cc b/ash/components/tether/synchronous_shutdown_object_container_impl.cc index c941323d23f6f4..e447ef4be80e03 100644 --- a/ash/components/tether/synchronous_shutdown_object_container_impl.cc +++ b/ash/components/tether/synchronous_shutdown_object_container_impl.cc @@ -33,7 +33,7 @@ #include "base/memory/ptr_util.h" #include "base/time/default_clock.h" -namespace chromeos { +namespace ash { namespace tether { @@ -224,4 +224,4 @@ SynchronousShutdownObjectContainerImpl::tether_disconnector() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/synchronous_shutdown_object_container_impl.h b/ash/components/tether/synchronous_shutdown_object_container_impl.h index 2d50aeadeb281d..438cc8f2be77e0 100644 --- a/ash/components/tether/synchronous_shutdown_object_container_impl.h +++ b/ash/components/tether/synchronous_shutdown_object_container_impl.h @@ -8,6 +8,16 @@ #include #include "ash/components/tether/synchronous_shutdown_object_container.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connect.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" class PrefService; @@ -15,19 +25,7 @@ namespace session_manager { class SessionManager; } // namespace session_manager -namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel - -class NetworkStateHandler; -class NetworkConnect; -class NetworkConnectionHandler; +namespace ash { namespace tether { @@ -157,6 +155,6 @@ class SynchronousShutdownObjectContainerImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_SYNCHRONOUS_SHUTDOWN_OBJECT_CONTAINER_IMPL_H_ diff --git a/ash/components/tether/test_timer_factory.cc b/ash/components/tether/test_timer_factory.cc index d40030bb1d3575..7b296629b16074 100644 --- a/ash/components/tether/test_timer_factory.cc +++ b/ash/components/tether/test_timer_factory.cc @@ -6,7 +6,7 @@ #include "base/check.h" -namespace chromeos { +namespace ash { namespace tether { TestTimerFactory::TestTimerFactory() = default; @@ -20,4 +20,4 @@ std::unique_ptr TestTimerFactory::CreateOneShotTimer() { } } // namespace tether -} // namespace chromeos \ No newline at end of file +} // namespace ash diff --git a/ash/components/tether/test_timer_factory.h b/ash/components/tether/test_timer_factory.h index 7ba731af02663f..eaeaa8fdf87246 100644 --- a/ash/components/tether/test_timer_factory.h +++ b/ash/components/tether/test_timer_factory.h @@ -13,7 +13,7 @@ #include "base/timer/mock_timer.h" #include "base/timer/timer.h" -namespace chromeos { +namespace ash { namespace tether { class TestTimerFactory : public TimerFactory { @@ -43,6 +43,6 @@ class TestTimerFactory : public TimerFactory { }; } // namespace tether -} // namespace chromeos +} // namespace ash -#endif // ASH_COMPONENTS_TETHER_TEST_TIMER_FACTORY_H_ \ No newline at end of file +#endif // ASH_COMPONENTS_TETHER_TEST_TIMER_FACTORY_H_ diff --git a/ash/components/tether/tether_component.cc b/ash/components/tether/tether_component.cc index 1f6b9d96b741c9..283f50b1842385 100644 --- a/ash/components/tether/tether_component.cc +++ b/ash/components/tether/tether_component.cc @@ -4,7 +4,7 @@ #include "ash/components/tether/tether_component.h" -namespace chromeos { +namespace ash { namespace tether { @@ -35,4 +35,4 @@ void TetherComponent::TransitionToStatus(Status new_status) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_component.h b/ash/components/tether/tether_component.h index 12828fe90e1f09..d92c569bb22345 100644 --- a/ash/components/tether/tether_component.h +++ b/ash/components/tether/tether_component.h @@ -7,7 +7,7 @@ #include "base/observer_list.h" -namespace chromeos { +namespace ash { namespace tether { @@ -64,6 +64,6 @@ class TetherComponent { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_COMPONENT_H_ diff --git a/ash/components/tether/tether_component_impl.cc b/ash/components/tether/tether_component_impl.cc index 60f13c93f977f5..b429414f68898e 100644 --- a/ash/components/tether/tether_component_impl.cc +++ b/ash/components/tether/tether_component_impl.cc @@ -24,7 +24,7 @@ #include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "components/pref_registry/pref_registry_syncable.h" -namespace chromeos { +namespace ash { namespace tether { @@ -245,4 +245,4 @@ void TetherComponentImpl::OnShutdownComplete() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_component_impl.h b/ash/components/tether/tether_component_impl.h index 867d1fecaba38f..3fd30d57ea489a 100644 --- a/ash/components/tether/tether_component_impl.h +++ b/ash/components/tether/tether_component_impl.h @@ -10,6 +10,18 @@ #include "ash/components/tether/tether_component.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/managed_network_configuration_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connect.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "components/prefs/pref_registry_simple.h" #include "device/bluetooth/bluetooth_adapter.h" @@ -23,20 +35,7 @@ namespace user_prefs { class PrefRegistrySyncable; } // namespace user_prefs -namespace chromeos { - -class ManagedNetworkConfigurationHandler; -class NetworkConnect; -class NetworkConnectionHandler; -class NetworkStateHandler; - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -136,6 +135,6 @@ class TetherComponentImpl : public TetherComponent { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_COMPONENT_IMPL_H_ diff --git a/ash/components/tether/tether_component_impl_unittest.cc b/ash/components/tether/tether_component_impl_unittest.cc index 305297f7944b3c..6a95408dd79766 100644 --- a/ash/components/tether/tether_component_impl_unittest.cc +++ b/ash/components/tether/tether_component_impl_unittest.cc @@ -20,7 +20,7 @@ #include "base/memory/ptr_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -310,4 +310,4 @@ TEST_F(TetherComponentImplTest, TestShutdown_BeforeCrashRecoveryComplete) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_connector.h b/ash/components/tether/tether_connector.h index d1efd131751f13..1bae2092b7b3e2 100644 --- a/ash/components/tether/tether_connector.h +++ b/ash/components/tether/tether_connector.h @@ -8,7 +8,7 @@ #include "base/callback_forward.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -40,6 +40,6 @@ class TetherConnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_CONNECTOR_H_ diff --git a/ash/components/tether/tether_connector_impl.cc b/ash/components/tether/tether_connector_impl.cc index d86d3ff87480d1..084971fd7c7c6c 100644 --- a/ash/components/tether/tether_connector_impl.cc +++ b/ash/components/tether/tether_connector_impl.cc @@ -21,7 +21,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -450,4 +450,4 @@ TetherConnectorImpl::GetConnectionToHostResultFromErrorCode( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_connector_impl.h b/ash/components/tether/tether_connector_impl.h index d8cba93898e0c5..4d3f65320b37fc 100644 --- a/ash/components/tether/tether_connector_impl.h +++ b/ash/components/tether/tether_connector_impl.h @@ -10,19 +10,15 @@ #include "ash/components/tether/tether_connector.h" #include "base/memory/weak_ptr.h" #include "chromeos/network/network_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { - -class NetworkStateHandler; - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace secure_channel { -class SecureChannelClient; -} // namespace secure_channel +namespace ash { namespace tether { @@ -127,6 +123,6 @@ class TetherConnectorImpl : public TetherConnector, } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_CONNECTOR_IMPL_H_ diff --git a/ash/components/tether/tether_connector_impl_unittest.cc b/ash/components/tether/tether_connector_impl_unittest.cc index 8e545b9b2f660f..48b1c306a46ab2 100644 --- a/ash/components/tether/tether_connector_impl_unittest.cc +++ b/ash/components/tether/tether_connector_impl_unittest.cc @@ -36,7 +36,7 @@ using testing::StrictMock; -namespace chromeos { +namespace ash { namespace tether { @@ -836,4 +836,4 @@ TEST_F(TetherConnectorImplTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_disconnector.h b/ash/components/tether/tether_disconnector.h index 34de2c88ab60e7..dbd9c727df2d17 100644 --- a/ash/components/tether/tether_disconnector.h +++ b/ash/components/tether/tether_disconnector.h @@ -13,7 +13,7 @@ #include "base/memory/weak_ptr.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -44,6 +44,6 @@ class TetherDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_DISCONNECTOR_H_ diff --git a/ash/components/tether/tether_disconnector_impl.cc b/ash/components/tether/tether_disconnector_impl.cc index f8c1dc5d3e7c8a..2e0027011a0ef0 100644 --- a/ash/components/tether/tether_disconnector_impl.cc +++ b/ash/components/tether/tether_disconnector_impl.cc @@ -17,7 +17,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -119,4 +119,4 @@ void TetherDisconnectorImpl::DisconnectActiveWifiConnection( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_disconnector_impl.h b/ash/components/tether/tether_disconnector_impl.h index 6dca7a0ed27aa1..3daa6919576e95 100644 --- a/ash/components/tether/tether_disconnector_impl.h +++ b/ash/components/tether/tether_disconnector_impl.h @@ -13,7 +13,7 @@ #include "base/callback_forward.h" #include "base/memory/weak_ptr.h" -namespace chromeos { +namespace ash { namespace tether { @@ -65,6 +65,6 @@ class TetherDisconnectorImpl : public TetherDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_DISCONNECTOR_IMPL_H_ diff --git a/ash/components/tether/tether_disconnector_impl_unittest.cc b/ash/components/tether/tether_disconnector_impl_unittest.cc index 92d62a8cb0f90e..f942d8bf9e98e3 100644 --- a/ash/components/tether/tether_disconnector_impl_unittest.cc +++ b/ash/components/tether/tether_disconnector_impl_unittest.cc @@ -18,7 +18,7 @@ #include "chromeos/components/multidevice/remote_device_test_util.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -261,4 +261,4 @@ TEST_F(TetherDisconnectorImplTest, DisconnectWhenConnected_Success) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_host_fetcher.cc b/ash/components/tether/tether_host_fetcher.cc index 718a8f757484e3..e98af797ac1c7c 100644 --- a/ash/components/tether/tether_host_fetcher.cc +++ b/ash/components/tether/tether_host_fetcher.cc @@ -9,7 +9,7 @@ #include "base/callback.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -53,4 +53,4 @@ void TetherHostFetcher::NotifyTetherHostsUpdated() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_host_fetcher.h b/ash/components/tether/tether_host_fetcher.h index bef12061f134f6..d0de5e6ff0a1ec 100644 --- a/ash/components/tether/tether_host_fetcher.h +++ b/ash/components/tether/tether_host_fetcher.h @@ -12,7 +12,7 @@ #include "chromeos/components/multidevice/remote_device_ref.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { @@ -69,6 +69,6 @@ class TetherHostFetcher { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_HOST_FETCHER_H_ diff --git a/ash/components/tether/tether_host_fetcher_impl.cc b/ash/components/tether/tether_host_fetcher_impl.cc index 8641fecb64c8c7..fffd7e579384c1 100644 --- a/ash/components/tether/tether_host_fetcher_impl.cc +++ b/ash/components/tether/tether_host_fetcher_impl.cc @@ -9,7 +9,7 @@ #include "base/memory/ptr_util.h" #include "chromeos/components/multidevice/remote_device.h" -namespace chromeos { +namespace ash { namespace tether { @@ -113,4 +113,4 @@ TetherHostFetcherImpl::GenerateHostDeviceList() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_host_fetcher_impl.h b/ash/components/tether/tether_host_fetcher_impl.h index b0dd3fcaaca60c..3e3a465638fbe2 100644 --- a/ash/components/tether/tether_host_fetcher_impl.h +++ b/ash/components/tether/tether_host_fetcher_impl.h @@ -13,7 +13,7 @@ #include "chromeos/services/device_sync/public/cpp/device_sync_client.h" #include "chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h" -namespace chromeos { +namespace ash { namespace tether { @@ -91,6 +91,6 @@ class TetherHostFetcherImpl } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_HOST_FETCHER_IMPL_H_ diff --git a/ash/components/tether/tether_host_fetcher_impl_unittest.cc b/ash/components/tether/tether_host_fetcher_impl_unittest.cc index af8f76933230cc..c0af18f21389d3 100644 --- a/ash/components/tether/tether_host_fetcher_impl_unittest.cc +++ b/ash/components/tether/tether_host_fetcher_impl_unittest.cc @@ -20,12 +20,15 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" -namespace chromeos { +namespace ash { namespace tether { namespace { +// TODO(https://crbug.com/1164001): remove when multidevice_setup moved to ash +namespace multidevice_setup = ::chromeos::multidevice_setup; + const size_t kNumTestDevices = 5; class TestObserver : public TetherHostFetcher::Observer { @@ -308,4 +311,4 @@ TEST_F(TetherHostFetcherImplTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_host_response_recorder.cc b/ash/components/tether/tether_host_response_recorder.cc index 8efcf07f7a7fd6..f91e114daa2c27 100644 --- a/ash/components/tether/tether_host_response_recorder.cc +++ b/ash/components/tether/tether_host_response_recorder.cc @@ -11,7 +11,7 @@ #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_service.h" -namespace chromeos { +namespace ash { namespace tether { @@ -126,4 +126,4 @@ std::vector TetherHostResponseRecorder::GetDeviceIdsForPref( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_host_response_recorder.h b/ash/components/tether/tether_host_response_recorder.h index 326637dc463779..4857bcc23d98a9 100644 --- a/ash/components/tether/tether_host_response_recorder.h +++ b/ash/components/tether/tether_host_response_recorder.h @@ -17,7 +17,7 @@ namespace user_prefs { class PrefRegistrySyncable; } // namespace user_prefs -namespace chromeos { +namespace ash { namespace tether { @@ -92,6 +92,6 @@ class TetherHostResponseRecorder { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_HOST_RESPONSE_RECORDER_H_ diff --git a/ash/components/tether/tether_host_response_recorder_unittest.cc b/ash/components/tether/tether_host_response_recorder_unittest.cc index b118e1d2a91786..44086edcb16e9e 100644 --- a/ash/components/tether/tether_host_response_recorder_unittest.cc +++ b/ash/components/tether/tether_host_response_recorder_unittest.cc @@ -12,7 +12,7 @@ #include "components/sync_preferences/testing_pref_service_syncable.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -176,4 +176,4 @@ TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_network_disconnection_handler.cc b/ash/components/tether/tether_network_disconnection_handler.cc index 85b7e823d68435..2dd23c1565ff46 100644 --- a/ash/components/tether/tether_network_disconnection_handler.cc +++ b/ash/components/tether/tether_network_disconnection_handler.cc @@ -19,7 +19,7 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -96,4 +96,4 @@ void TetherNetworkDisconnectionHandler::SetTaskRunnerForTesting( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_network_disconnection_handler.h b/ash/components/tether/tether_network_disconnection_handler.h index 76f137d4569157..5a82e62a319649 100644 --- a/ash/components/tether/tether_network_disconnection_handler.h +++ b/ash/components/tether/tether_network_disconnection_handler.h @@ -7,15 +7,15 @@ #include "ash/components/tether/active_host.h" #include "base/memory/weak_ptr.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_state_handler_observer.h" namespace base { class TaskRunner; } // namespace base -namespace chromeos { - -class NetworkStateHandler; +namespace ash { namespace tether { @@ -70,6 +70,6 @@ class TetherNetworkDisconnectionHandler : public NetworkStateHandlerObserver { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_NETWORK_DISCONNECTION_HANDLER_H_ diff --git a/ash/components/tether/tether_network_disconnection_handler_unittest.cc b/ash/components/tether/tether_network_disconnection_handler_unittest.cc index e1e61275c55077..fc0b29f58dfa8c 100644 --- a/ash/components/tether/tether_network_disconnection_handler_unittest.cc +++ b/ash/components/tether/tether_network_disconnection_handler_unittest.cc @@ -22,7 +22,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -187,4 +187,4 @@ TEST_F(TetherNetworkDisconnectionHandlerTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_session_completion_logger.cc b/ash/components/tether/tether_session_completion_logger.cc index 644bb6fb2f7325..d0ee42f3b430ea 100644 --- a/ash/components/tether/tether_session_completion_logger.cc +++ b/ash/components/tether/tether_session_completion_logger.cc @@ -6,7 +6,7 @@ #include "base/metrics/histogram_macros.h" -namespace chromeos { +namespace ash { namespace tether { @@ -23,4 +23,4 @@ void TetherSessionCompletionLogger::RecordTetherSessionCompletion( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/tether_session_completion_logger.h b/ash/components/tether/tether_session_completion_logger.h index 12ac14af01e43b..e25132a9be8c53 100644 --- a/ash/components/tether/tether_session_completion_logger.h +++ b/ash/components/tether/tether_session_completion_logger.h @@ -5,7 +5,7 @@ #ifndef ASH_COMPONENTS_TETHER_TETHER_SESSION_COMPLETION_LOGGER_H_ #define ASH_COMPONENTS_TETHER_TETHER_SESSION_COMPLETION_LOGGER_H_ -namespace chromeos { +namespace ash { namespace tether { @@ -45,6 +45,6 @@ class TetherSessionCompletionLogger { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TETHER_SESSION_COMPLETION_LOGGER_H_ diff --git a/ash/components/tether/tether_session_completion_logger_unittest.cc b/ash/components/tether/tether_session_completion_logger_unittest.cc index 15944993599b5e..4ce010da982d0b 100644 --- a/ash/components/tether/tether_session_completion_logger_unittest.cc +++ b/ash/components/tether/tether_session_completion_logger_unittest.cc @@ -9,7 +9,7 @@ #include "base/test/metrics/histogram_tester.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -106,4 +106,4 @@ TEST_F(TetherSessionCompletionLoggerTest, TestBetterTogetherSuiteDisabled) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/timer_factory.cc b/ash/components/tether/timer_factory.cc index cde748205cfc0f..ea687be8e39dd7 100644 --- a/ash/components/tether/timer_factory.cc +++ b/ash/components/tether/timer_factory.cc @@ -6,7 +6,7 @@ #include -namespace chromeos { +namespace ash { namespace tether { @@ -18,4 +18,4 @@ std::unique_ptr TimerFactory::CreateOneShotTimer() { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/timer_factory.h b/ash/components/tether/timer_factory.h index 443a79a61a4ec3..4388012725c0e1 100644 --- a/ash/components/tether/timer_factory.h +++ b/ash/components/tether/timer_factory.h @@ -10,7 +10,7 @@ #include "base/memory/ptr_util.h" #include "base/timer/timer.h" -namespace chromeos { +namespace ash { namespace tether { @@ -26,6 +26,6 @@ class TimerFactory { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TIMER_FACTORY_H_ diff --git a/ash/components/tether/top_level_host_scan_cache.cc b/ash/components/tether/top_level_host_scan_cache.cc index 8e98f1759c719c..bc405c408d23e4 100644 --- a/ash/components/tether/top_level_host_scan_cache.cc +++ b/ash/components/tether/top_level_host_scan_cache.cc @@ -13,7 +13,7 @@ #include "base/memory/ptr_util.h" #include "chromeos/components/multidevice/logging/logging.h" -namespace chromeos { +namespace ash { namespace tether { @@ -200,4 +200,4 @@ void TopLevelHostScanCache::OnTimerFired( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/top_level_host_scan_cache.h b/ash/components/tether/top_level_host_scan_cache.h index d15eb505c24d66..97320b52b5f95c 100644 --- a/ash/components/tether/top_level_host_scan_cache.h +++ b/ash/components/tether/top_level_host_scan_cache.h @@ -15,7 +15,7 @@ #include "base/memory/weak_ptr.h" #include "base/timer/timer.h" -namespace chromeos { +namespace ash { namespace tether { @@ -86,6 +86,6 @@ class TopLevelHostScanCache : public HostScanCache { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_TOP_LEVEL_HOST_SCAN_CACHE_H_ diff --git a/ash/components/tether/top_level_host_scan_cache_unittest.cc b/ash/components/tether/top_level_host_scan_cache_unittest.cc index 5e78c3c44a5b2f..545b7963244f9b 100644 --- a/ash/components/tether/top_level_host_scan_cache_unittest.cc +++ b/ash/components/tether/top_level_host_scan_cache_unittest.cc @@ -21,7 +21,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -namespace chromeos { +namespace ash { namespace tether { @@ -363,4 +363,4 @@ TEST_F(TopLevelHostScanCacheTest, TestRecoversFromCrashAndCleansUpWhenDeleted) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/wifi_hotspot_connector.cc b/ash/components/tether/wifi_hotspot_connector.cc index 1506cd0566fd27..faa563979b9864 100644 --- a/ash/components/tether/wifi_hotspot_connector.cc +++ b/ash/components/tether/wifi_hotspot_connector.cc @@ -21,7 +21,7 @@ #include "chromeos/network/shill_property_util.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -301,4 +301,4 @@ void WifiHotspotConnector::SetTestDoubles( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/wifi_hotspot_connector.h b/ash/components/tether/wifi_hotspot_connector.h index 7230f0f0a921e2..32631c04cc4f78 100644 --- a/ash/components/tether/wifi_hotspot_connector.h +++ b/ash/components/tether/wifi_hotspot_connector.h @@ -12,17 +12,19 @@ #include "base/time/clock.h" #include "base/timer/timer.h" #include "base/values.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connect.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_state_handler_observer.h" namespace base { class TaskRunner; } // namespace base -namespace chromeos { - -class NetworkConnect; -class NetworkState; -class NetworkStateHandler; +namespace ash { namespace tether { @@ -97,6 +99,6 @@ class WifiHotspotConnector : public NetworkStateHandlerObserver { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_WIFI_HOTSPOT_CONNECTOR_H_ diff --git a/ash/components/tether/wifi_hotspot_connector_unittest.cc b/ash/components/tether/wifi_hotspot_connector_unittest.cc index 338a9d83ee0f06..1160690d14113b 100644 --- a/ash/components/tether/wifi_hotspot_connector_unittest.cc +++ b/ash/components/tether/wifi_hotspot_connector_unittest.cc @@ -25,7 +25,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -824,4 +824,4 @@ TEST_F(WifiHotspotConnectorTest, } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/wifi_hotspot_disconnector.h b/ash/components/tether/wifi_hotspot_disconnector.h index e7fd1278c93d49..2198ec76115703 100644 --- a/ash/components/tether/wifi_hotspot_disconnector.h +++ b/ash/components/tether/wifi_hotspot_disconnector.h @@ -8,7 +8,7 @@ #include "base/callback.h" #include "chromeos/network/network_connection_handler.h" -namespace chromeos { +namespace ash { namespace tether { @@ -36,6 +36,6 @@ class WifiHotspotDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_WIFI_HOTSPOT_DISCONNECTOR_H_ diff --git a/ash/components/tether/wifi_hotspot_disconnector_impl.cc b/ash/components/tether/wifi_hotspot_disconnector_impl.cc index 4fd948fde1607e..a68e6909d2f6a0 100644 --- a/ash/components/tether/wifi_hotspot_disconnector_impl.cc +++ b/ash/components/tether/wifi_hotspot_disconnector_impl.cc @@ -15,7 +15,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -namespace chromeos { +namespace ash { namespace tether { @@ -133,4 +133,4 @@ void WifiHotspotDisconnectorImpl::CleanUpAfterWifiDisconnection( } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/components/tether/wifi_hotspot_disconnector_impl.h b/ash/components/tether/wifi_hotspot_disconnector_impl.h index 620c7e1c4fd8bb..108e41ba87f3de 100644 --- a/ash/components/tether/wifi_hotspot_disconnector_impl.h +++ b/ash/components/tether/wifi_hotspot_disconnector_impl.h @@ -7,14 +7,15 @@ #include "ash/components/tether/wifi_hotspot_disconnector.h" #include "base/memory/weak_ptr.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" class PrefRegistrySimple; class PrefService; -namespace chromeos { - -class NetworkConnectionHandler; -class NetworkStateHandler; +namespace ash { namespace tether { @@ -68,6 +69,6 @@ class WifiHotspotDisconnectorImpl : public WifiHotspotDisconnector { } // namespace tether -} // namespace chromeos +} // namespace ash #endif // ASH_COMPONENTS_TETHER_WIFI_HOTSPOT_DISCONNECTOR_IMPL_H_ diff --git a/ash/components/tether/wifi_hotspot_disconnector_impl_unittest.cc b/ash/components/tether/wifi_hotspot_disconnector_impl_unittest.cc index a3745f6596deb1..ec9acd5bc77227 100644 --- a/ash/components/tether/wifi_hotspot_disconnector_impl_unittest.cc +++ b/ash/components/tether/wifi_hotspot_disconnector_impl_unittest.cc @@ -20,7 +20,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" -namespace chromeos { +namespace ash { namespace tether { @@ -281,4 +281,4 @@ TEST_F(WifiHotspotDisconnectorImplTest, WifiDisconnectionSucceeds) { } // namespace tether -} // namespace chromeos +} // namespace ash diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index fd9722bdf39936..183c851f12b58d 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb @@ -192,6 +192,7 @@ Hier is 'n paar dinge wat jy kan probeer om aan die gang te kom. Lessenaar 7 Skermopname word nie toegelaat wanneer beskermde inhoud sigbaar is nie Skandeer tans vir toestelle … +Kon nie aflaai nie Bluetooth gedeaktiveer Meld almal af 'n Program gebruik tans jou mikrofoon @@ -588,6 +589,7 @@ Alle gebruikers moet afmeld om voort te gaan. Is jy seker jy wil outomatiese klikke afskakel? Lig voorwerp met sleutelbordfokus uit Geen handeling nie (onderbreek) +Gaan jou netwerkverbinding na om af te laai Sal later probeer aflaai. Spraak sal na Google toe gestuur word vir verwerking totdat aflaai voltooi is. geaktiveer Alt+Search of Shift @@ -805,6 +807,7 @@ Alle gebruikers moet afmeld om voort te gaan. Verwerp Taal is verander Brei skerm na uit +Kan nie lêer aflaai nie Volskermvergrootglas USB C-toestel (poort aan regterkant) vereis dat jy hierdie voor die spertyd opdateer @@ -818,6 +821,8 @@ Alle gebruikers moet afmeld om voort te gaan. Seinsterkte , foonbattery Laai af wat tans skandeer Saai tans uit na + +Nuwe installasie Vra administrateur e-SIM-verbinding is nie beskikbaar nie {0,plural, =1{Dateer toestel binne 'n uur op}other{Dateer toestel binne # uur op}} @@ -849,6 +854,7 @@ Alle gebruikers moet afmeld om voort te gaan. Intensiteit Gekoppel, % batterykrag + +GAAN NA INSTELLINGS Afgedwing deur jou administrateur Werkverrigtingnasporing is aangeskakel Lessenaar is verwyder en met lessenaar saamgevoeg @@ -984,6 +990,7 @@ Alle gebruikers moet afmeld om voort te gaan. Tik om op te stel VPN Voeg nuwe selnetwerk by +PROBEER WEER {NUM_NOTIFICATIONS,plural, =1{1 kennisgewing}other{# kennisgewings}} Knip Wys programme op rak @@ -1170,6 +1177,7 @@ Alle gebruikers moet afmeld om voort te gaan. HSPA Gebruik tans Ontsluit toestel as om die kennisgewinghandeling uit te voer +BESTUUR BERGING Voer die Family Link-ouertoegangskode in. volskerm Maak instellings oop vir @@ -1215,6 +1223,7 @@ Alle gebruikers moet afmeld om voort te gaan. Wat is op my kalender? Stuur terugvoer Weier +Nie genoeg spasie vir nie. Maak spasie beskikbaar. Wys tans resultate vir Landskap Venster is gesluit. diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index a75523bd5b4cdc..af0b423ad3c02f 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb @@ -192,6 +192,7 @@ ዴስክ 7 ጥበቃ የሚደረግለት ይዘት በሚታይበት ጊዜ የማያ ገጽ ቀረጻ አይፈቀድም መሣሪያዎችን በመቃኘት ላይ... +ን በማውረድ ላይ ሳለ የሆነ ችግር ተፈጥሯል ብሉቱዝ ተሰናክሏል ሁሉንም ዘግተህ ውጣ አንድ መተግበሪያ ማይክሮፎንዎን እየተጠቀመ ነው @@ -587,6 +588,7 @@ ራስሰር ጠቅ ማድረጎችን ማጥፋት እንደሚፈልጉ እርግጠኛ ነዎት? ነገርየውን ከቁልፍ ሰሌዳ ትኩረት ጋር አድምቅ ምንም እርምጃ የለም (ባለበት አቁም) +ን ለማውረድ የአውታረ መረብ ግንኙነትዎን ያረጋግጡ ማውረድ በኋላ ላይ ይሞከራል። ማውረድ እስኪጠናቀቅ ድረስ ንግግር ለመሰናዳት ወደ Google ይላካል። ገብሯል Alt+Search ወይም Shift @@ -804,6 +806,7 @@ አይቀበሉ ቋንቋ ተለውጧል ማያ ገጽ ወደ በመቀጠል ላይ +ፋይል ማውረድ አልተቻለም የሙሉ ማያ ገጽ ማጉያ USB-C መሣሪያ (የቀኝ ወደብ) የእርስዎን ከቀነገደቡ በፊት እንዲያዘምኑት ይፈልግብዎታል። @@ -817,6 +820,8 @@ የሲግናል ጥንካሬ ፣ የስልክ ባትሪ እየተቃኘ ያለ ያውርዱ ወደ cast በማድረግ ላይ + +አዲስ ጭነት አስተዳዳሪን ይጠይቁ ኢሲም ግንኙነት አይገኝም {0,plural, =1{በአንድ ሰዓት ውስጥ መሣሪያን ያዘምኑ}one{በ# ሰዓታት ውስጥ መሣሪያን ያዘምኑ}other{በ# ሰዓታት ውስጥ መሣሪያን ያዘምኑ}} @@ -848,6 +853,7 @@ ኃይል ተገናኝቷል፣ % ባትሪ + +ወደ ቅንብሮች ሂድ በእርስዎ አስተዳዳሪ ተፈጻሚ የተደረገ የአፈጻጸም ክትትል በርቷል ዴስክ ተወግዶ ከዴስክ ጋር ተዋህዷል @@ -983,6 +989,7 @@ ለማዋቀር መታ ያድርጉ ቪ ፒ ኤን አዲስ የተንቀሳቃሽ ስልክ አውታረ መረብን አክል +እንደገና ይሞክሩ {NUM_NOTIFICATIONS,plural, =1{1 ማሳወቂያ}one{# ማሳወቂያዎች}other{# ማሳወቂያዎች}} ቁረጥ መተግበሪያዎችን በመደርደሪያ አሳይ @@ -1169,6 +1176,7 @@ ኤችኤስፒኤ ን በመጠቀም ላይ የማሳወቅ እርምጃውን ለማከናወን መሣሪያን እንደ ይክፈቱ +ማከማቻን ያቀናብሩ የ Family Link ወላጅ መዳረሻ ኮድ ያስገቡ። ሙሉ ገጽ ማያ ቅንብሮችን ክፈት @@ -1214,6 +1222,7 @@ የቀን መቁጠሪያዬ ላይ ምን አለ? ግብረመልስ ላክ አትቀበል + በቂ ቦታ የለም። ቦታ ያስለቅቁ። ውጤቶችን ለ በማሳየት ላይ በወርድ መስኮት ተዘግቷል። diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index c186a813e19216..8df3742dc6b404 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb @@ -192,6 +192,7 @@ ডেস্ক ৭ সুৰক্ষিত সমল দৃশ্যমান হৈ থকাৰ সময়ত স্ক্ৰীন ৰেকৰ্ডিঙৰ অনুমতি দিয়া নহয় ডিভাইচসমূহৰ বাবে স্কেন কৰি থকা হৈছে... + ডাউনল’ড কৰি থাকোঁতে কিবা ভুল হৈছে ব্লুটুথ অক্ষম কৰা হ’ল সকলো ছাইন আউট কৰক এটা এপ্লিকেশ্বনে আপোনাৰ মাইক্ৰ’ফ’নটো ব্যৱহাৰ কৰি আছে @@ -587,6 +588,7 @@ আপুনি স্বয়ংক্ৰিয়ভাৱে ক্লিক অফ কৰিব বিচাৰে বুলি নিশ্চিতনে? কীব’ৰ্ডৰ ফ’কাছেৰে বস্তু হাইলাইট কৰক কোনো কাৰ্য নাই (পজ) + ডাউনল’ড কৰিবলৈ আপোনাৰ নেটৱৰ্ক সংযোগ পৰীক্ষা কৰক পাছত ডাউনল’ড কৰিবলৈ প্ৰয়াস কৰা হ’ব। ডাউনল’ড সম্পূৰ্ণ নোহোৱা পৰ্যন্ত প্ৰক্ৰিয়াকৰণৰ বাবে Googleলৈ কথন পঠিওৱা হ’ব। সক্ৰিয় কৰা হৈছে Alt+Search বা Shift @@ -804,6 +806,7 @@ প্ৰত্যাখ্যান কৰক ভাষা সলনি কৰা হৈছে স্ক্রীণখন লৈ বিস্তাৰ কৰা হৈছে +ফাইল ডাউনল’ড কৰিব নোৱাৰি সম্পূর্ণ স্ক্ৰীণৰ বিৱৰ্ধক USB-C ডিভাইচ (সোঁফালৰ পর্ট) ৰ বাবে আপুনি নিৰ্ধাৰিত সময়সীমা পাৰ হোৱাৰ পূৰ্বে এই টো আপডে’ট কৰাৰ আৱশ্যক @@ -816,6 +819,8 @@ ইম'জিসমূহ ছিগনেলৰ ক্ষমতা , ফ’নৰ বেটাৰী লৈ কাষ্ট কৰি থকা হৈছে + +নতুনকৈ ইনষ্টল কৰা প্ৰশাসকক সোধক ই-ছিমৰ সংযোগ উপলব্ধ নহয় {0,plural, =1{এঘণ্টাৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}one{# ঘণ্টাৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}other{# ঘণ্টাৰ ভিতৰত ডিভাইচটো আপডে’ট কৰক}} @@ -847,6 +852,7 @@ পাৱাৰ সংযোগ কৰা আছে, % বেটাৰী + টা +ছেটিঙলৈ যাওক আপোনাৰ প্ৰশাসকে বলৱৎ কৰা কাৰ্যদক্ষতাৰ ট্ৰেচিং অন কৰা হৈছে ডেস্কখন আঁতৰোৱা হৈছে আৰু ডেস্কৰ সৈতে একত্ৰিত কৰা হৈছে @@ -982,6 +988,7 @@ কনফিগাৰ কৰিবলৈ টিপক VPN নতুন চেলুলাৰ নেটৱৰ্ক যোগ দিয়ক +পুনৰ চেষ্টা কৰক {NUM_NOTIFICATIONS,plural, =1{১টা জাননী}one{#টা জাননী}other{#টা জাননী}} কাট কৰক শ্বেল্‌ফত এপ্‌সমূহ দেখুৱাওক @@ -1168,6 +1175,7 @@ HSPA ব্যৱহাৰ কৰি জাননী সম্পর্কীয় কার্যসমূহ কৰিবলৈ হিচাপে ডিভাইচটো আনলক কৰক +ষ্ট’ৰেজ পৰিচালনা কৰক Family Linkৰ অভিভাৱকৰ এক্সেছ ক'ডটো দিয়ক। সম্পূৰ্ণ স্ক্ৰীন ৰ বাবে ছেটিংসমূহ খোলক @@ -1213,6 +1221,7 @@ আপোনাৰ কেলেণ্ডাৰত কি আছে? মতামত পঠিয়াওক অস্বীকাৰ কৰক +ৰ বাবে পৰ্যাপ্ত ঠাই নাই। ঠাই খালী কৰক। ৰ বাবে টা ফলাফল দেখুৱাই থকা হৈছে লেণ্ডস্কেইপ ৱিণ্ড’ বন্ধ হৈ আছে৷ diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index 2a7b49eeaec8cd..2e3f651a6af863 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb @@ -623,6 +623,7 @@ Başlamaq üçün aşağıdakıları yoxlaya bilərsiniz. Bağlanmış subtitrləri başladın Yanlış PIN Daha çox Assistent funksiyalarını kiliddən çıxarın. +Fərdiləşdirin Gələn ayı göstərin Fərqli klaviatura qoşuldu Kiliddən çıxarılmış diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index d7dab69a0c7915..004f086346d6db 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb @@ -192,6 +192,7 @@ ডেস্ক ৭ কোনও সুরক্ষিত কন্টেন্ট দেখানোর সময় স্ক্রিন রেকর্ড করার অনুমতি দেওয়া হয় না ডিভাইসগুলির জন্য স্ক্যান করা হচ্ছে... + ডাউনলোড করার সময় কিছু সমস্যা হয়েছে ব্লুটুথ অক্ষমিত সবগুলি থেকে সাইন-আউট কোনও অ্যাপ্লিকেশন আপনার মাইক্রোফোন ব্যবহার করছে @@ -587,6 +588,7 @@ অটোমেটিক ক্লিক বন্ধ করতে চান কিনা সেই বিষয়টি ভাল করে দেখে নিন? কিবোর্ড ফোকাসের মাধ্যমে হাইলাইট করুন কোনও অ্যাকশন নেবেন না (পজ) + ডাউনলোড করার জন্য আপনার নেটওয়ার্ক কানেকশন চেক করুন পরে ডাউনলোড করার চেষ্টা করা হবে। ফাইল সম্পূর্ণভাবে ডাউনলোড হওয়া পর্যন্ত স্পিচ প্রসেসিং করতে Google-এর কাছে পাঠানো হবে। চালু আছে Alt+Search অথবা Shift @@ -804,6 +806,7 @@ প্রত্যাখ্যান ভাষা পরিবর্তন করা হয়েছে স্ক্রিন তে প্রসারিত হচ্ছে +ফাইল ডাউনলোড করা যাচ্ছে না ফুল-স্ক্রিন ম্যাগনিফায়ার USB-C ডিভাইস (ডান পোর্ট) আপনাকে ডেডলাইনের আগে আপডেট করতে বলছে @@ -815,7 +818,10 @@ বিরক্ত করবে না ইমোজি সিগন্যাল: , ফোনের ব্যাটারি +ডাউনলোডের জন্য ফাইল স্ক্যান করা হচ্ছে এ কাস্ট করা হচ্ছে + +নতুন ইনস্টল অ্যাডমিনিস্ট্রেটরকে জিজ্ঞাসা করুন ই-সিম কানেকশন উপলভ্য নেই {0,plural, =1{১ ঘণ্টার মধ্যে ডিভাইস আপডেট করুন}one{# ঘণ্টার মধ্যে ডিভাইস আপডেট করুন}other{# ঘণ্টার মধ্যে ডিভাইস আপডেট করুন}} @@ -847,6 +853,7 @@ পাওয়ার কানেক্ট করা আছে, ব্যাটারিতে % চার্জ আছে +টি +সেটিংসে যান আপনার অ্যাডমিনিস্ট্রেটর প্রয়োগ করেছেন পারফরম্যান্স ট্রেস করার বিকল্প চালু আছে ডেস্ক -কে সরিয়ে দিয়ে -এর সাথে মার্জ করা হয়েছে @@ -982,6 +989,7 @@ কনফিগার করতে ট্যাপ করুন VPN নতুন মোবাইল নেটওয়ার্ক যোগ করুন +আবার চেষ্টা করুন {NUM_NOTIFICATIONS,plural, =1{১টি বিজ্ঞপ্তি}one{#টি বিজ্ঞপ্তি}other{#টি বিজ্ঞপ্তি}} কাটুন শেল্ফে অ্যাপ দেখুন @@ -1168,6 +1176,7 @@ HSPA ব্যবহার করা হচ্ছে বিজ্ঞপ্তি সম্পর্কিত অ্যাকশনের জন্য হিসেবে ডিভাইস আনলক করুন +স্টোরেজ ম্যানেজ করুন Family Link-এর অভিভাবকীয় অ্যাক্সেস কোডটি লিখুন। পূর্ণ স্ক্রিন নেটওয়ার্কের জন্য সেটিংস খুলুন @@ -1213,6 +1222,7 @@ আমার ক্যালেন্ডারে কী কী আছে? মতামত জানান প্রত্যাখ্যান +-এর জন্য পর্যাপ্ত স্টোরেজ নেই। স্টোরেজ খালি করুন। -এর জন্য টি ফলাফল দেখানো হচ্ছে ল্যান্ডস্কেপ উইন্ডো বন্ধ করা আছে। diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index 40f1584bc7b487..1e1f922c5965a2 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb @@ -192,6 +192,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Radna površina 7 Snimanje ekrana nije dozvoljeno kada je prisutan zaštićeni sadržaj Traženje uređaja... +Došlo je do problema prilikom preuzimanja fajla Bluetooth je onemogućen Odjavi sve Aplikacija koristi vaš mikrofon @@ -587,6 +588,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Jeste li sigurni da želite isključiti automatske klikove? Istakni objekat fokusom tastature Nema radnje (pauza) +Provjerite mrežnu vezu da preuzmete fajl Pokušaj preuzimanja će se izvršiti kasnije. Govor će se poslati Googleu na obradu kada se završi preuzimanje. aktivirano Alt + tipka za pretraživanje + Shift @@ -804,6 +806,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Odbij Promijenjen je jezik Proširivanje zaslona na zaslon +Nije moguće preuzeti datoteku Povećalo za cijeli ekran USB-C uređaj (desni priključak) zahtijeva da ažurirate ovaj uređaj prije isteka roka @@ -817,6 +820,8 @@ Možete isprobati ovih nekoliko stvari da započnete. Jačina signala , baterija telefona Preuzimanje fajla koji se skenira Emitiranje na uređaj + +Nova instalacija Pitajte administratora eSIM veza je nedostupna {0,plural, =1{Ažurirajte uređaj u roku od jednog sata}one{Ažurirajte uređaj u roku od # sata}few{Ažurirajte uređaj u roku od # sata}other{Ažurirajte uređaj u roku od # sati}} @@ -848,6 +853,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Napajanje Povezano, % baterije + +IDITE U POSTAVKE Nametnuo vaš administrator Uključeno je praćenje performansi Radna površina je uklonjena i spojena s radnom površinom @@ -983,6 +989,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Dodirnite za konfiguriranje VPN Dodajte novu mobilnu mrežu +POKUŠAJTE PONOVO {NUM_NOTIFICATIONS,plural, =1{1 obavještenje}one{# obavještenje}few{# obavještenja}other{# obavještenja}} Izreži Pregledajte aplikacije na polici @@ -1169,6 +1176,7 @@ Možete isprobati ovih nekoliko stvari da započnete. HSPA Koristi se Otključajte uređaj kao da izvršite radnju obavještenja +UPRAVLJAJTE POHRANOM Unesite kôd za pristup roditelja za Family Link. cijeli zaslon Otvorite postavke za mrežu @@ -1214,6 +1222,7 @@ Možete isprobati ovih nekoliko stvari da započnete. Šta ima u mom kalendaru? Pošaljite povratne informacije Odbij +Nema dovoljno prostora za fajl . Oslobodite prostor. Prikaz rezultata za upit Pejzaž Prozor je zatvoren. diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 34fd567a455cbd..29054ba09a712f 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb @@ -192,6 +192,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Desktop 7 Die Bildschirmaufzeichnung ist blockiert, wenn geschützte Inhalte sichtbar sind Nach Geräten wird gesucht... +Fehler beim Herunterladen von „ Bluetooth deaktiviert Alle abmelden Eine Anwendung verwendet Ihr Mikrofon @@ -587,6 +588,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Möchten Sie automatische Klicks wirklich deaktivieren? Objekt mit Tastaturfokus hervorheben Keine Aktion (Pause) +Prüfen Sie Ihre Netzwerkverbindung, um „“ herunterzuladen Der Download wird später versucht. Sprachaufnahmen werden zur Verarbeitung an Google gesendet, bis der Download abgeschlossen ist. aktiviert Alt+Suchen oder Umschalttaste @@ -804,6 +806,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Ablehnen Die Sprache wurde geändert Bildschirm wird auf erweitert... +Datei kann nicht heruntergeladen werden Vollbildlupe USB-C-Gerät (Port rechts) erfordert, dass Ihr Gerät () vor Ablauf der Frist aktualisiert wird @@ -816,6 +819,8 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Emojis Signalstärke bei , Smartphone-Akku bei Inhalte werden an gestreamt + +Neuinstallation Administrator fragen eSIM-Verbindung nicht verfügbar {0,plural, =1{Gerät innerhalb von einer Stunde neu starten}other{Gerät innerhalb von # Stunden neu starten}} @@ -847,6 +852,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Leistung Verbunden, Akkustand bei  % + +EINSTELLUNGEN ÖFFNEN Von Ihrem Administrator erzwungen Leistungsverfolgung ist aktiviert Desktop wurde entfernt und mit Desktop zusammengeführt @@ -982,6 +988,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Zum Konfigurieren tippen VPN Neues Mobilfunknetz hinzufügen +WIEDERHOLEN {NUM_NOTIFICATIONS,plural, =1{1 Benachrichtigung}other{# Benachrichtigungen}} Ausschneiden Apps in Ablage anzeigen @@ -1168,6 +1175,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. HSPA aktiv Wenn Sie die Benachrichtigungsaktion ausführen möchten, entsperren Sie das Gerät als +SPEICHERPLATZ VERWALTEN Geben Sie Ihren Eltern-Zugangscode für Family Link ein. Vollbild Einstellungen für öffnen @@ -1213,6 +1221,7 @@ Hier sind ein paar Dinge, die du tun kannst, um loszulegen. Welche Termine stehen an? Feedback geben Ablehnen +Nicht genug Speicherplatz für „“. Gib Speicherplatz frei. Suchergebnisse für "" Querformat Fenster "" geschlossen. diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 842a86333fd663..24bd94434dfae3 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb @@ -623,6 +623,7 @@ Έναρξη υποτίτλων Εσφαλμένο PIN Ξεκλειδώστε περισσότερες λειτουργίες του Βοηθού. +Εξατομίκευση Εμφάνιση επόμενου μήνα Συνδέθηκε διαφορετικό πληκτρολόγιο Ξεκλειδώθηκε diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 7f710b0d4cd27d..d8cde01e9a1f14 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb @@ -623,6 +623,7 @@ Here are some things that you can try to get started. Start closed captions Incorrect PIN Unlock more Assistant features. +Personalise Show next month Different keyboard connected Unlocked diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb index b3515729ba28cc..41a05b42449938 100644 --- a/ash/strings/ash_strings_eu.xtb +++ b/ash/strings/ash_strings_eu.xtb @@ -819,6 +819,7 @@ Jarraitu ahal izateko, erabiltzaile guztiek saioa amaitu behar dute.Ez molestatu Emojiak Seinalearen indarra: . Telefonoaren bateria: . + eskaneatzen deskargatu ahal izateko gailura igortzen Berriki instalatu da diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 9410b06723f1e3..189db81741aee2 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb @@ -192,6 +192,7 @@ میزکار ۷ ضبط صفحه‌نمایش هنگامی که محتوای محافظت‌شده نمایان باشد مجاز نیست درحال جستجو برای دستگاه‌ها... +هنگام بارگیری مشکلی پیش آمد بلوتوث غیرفعال است خروج همه از سیستم برنامه‌ای درحال استفاده از میکروفونتان است @@ -587,6 +588,7 @@ مطمئنید می‌خواهید کلیک‌های خودکار را خاموش کنید؟ برجسته کردن شیء با فوکوس صفحه‌کلید بی‌حرکت (مکث) +برای بارگیری ، اتصال شبکه را بررسی کنید ‏بارگیری بعداً انجام خواهد شد. تا وقتی بارگیری کامل شود، گفتار برای پردازش به Google ارسال خواهد شد. فعال شد ‏Alt+جستجو یا Shift @@ -804,6 +806,7 @@ عدم پذیرش زبان تغییر کرد گسترش صفحه به +فایل بارگیری نشد ذره‌بین تمام‌صفحه ‏دستگاه USB-C (درگاه سمت راست) از شما می‌خواهد را تا قبل‌از موعد مقرر به‌روزرسانی کنید @@ -817,6 +820,8 @@ قدرت سیگنال ، باتری تلفن بارگیری درحال اسکن ارسال محتوا به + +نصب جدید سؤال از سرپرست اتصال سیم‌کارت داخلی دردسترس نیست {0,plural, =1{دستگاه را تا یک ساعت دیگر به‌روزرسانی کنید}one{دستگاه را تا # ساعت دیگر به‌روزرسانی کنید}other{دستگاه را تا # ساعت دیگر به‌روزرسانی کنید}} @@ -848,6 +853,7 @@ نیرو متصل، ٪ باتری بیش‌از +رفتن به تنظیمات به‌اجبار اجراشده توسط سرپرست ردیابی عملکرد روشن است میز برداشته شد و با میز ادغام شد @@ -983,6 +989,7 @@ برای پیکربندی ضربه بزنید VPN افزودن شبکه تلفن همراه جدید +امتحان مجدد {NUM_NOTIFICATIONS,plural, =1{۱ اعلان}one{# اعلان}other{# اعلان}} برش نمایش برنامه‌ها در قفسه @@ -1169,6 +1176,7 @@ HSPA درحال استفاده از به‌عنوان ، قفل دستگاه را باز کنید تا کنش اعلان اجرا شود +مدیریت فضای ذخیره‌سازی ‏کد دسترسی ولی Family Link را وارد کنید تمام‌صفحه باز کردن تنظیمات @@ -1214,6 +1222,7 @@ ‏?What's on my calendar (در تقویم من چه رویدادی هست؟) ارسال بازخورد رد کردن +فضای کافی برای وجود ندارد فضا آزاد کنید. نمایش نتیجه برای افقی پنجره بسته شد. diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 456671799712d8..e6340317546489 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb @@ -815,6 +815,7 @@ Pour commencer, voici des exemples de ce que vous pouvez me demander.Ne pas déranger Emoji Force du signal : , batterie du téléphone à +Téléchargement en cours d'analyse : Diffusion vers Se renseigner auprès de l'administrateur Connexion eSIM indisponible diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 5218aa4422f21e..6c9f1854caec41 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb @@ -815,6 +815,7 @@ ખલેલ પાડશો નહિ ઇમોજી સિગ્નલની સશક્તતા , ફોનની બૅટરી +ડાઉનલોડ સ્કૅન કરી રહ્યું છે પર કાસ્ટ કરી રહ્યાં છીએ વ્યવસ્થાપકને પૂછો ઇ-સિમ કનેક્શન ઉપલબ્ધ નથી diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 470767f5fbc9fe..341e54eac9d28a 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb @@ -192,6 +192,7 @@ डेस्क 7 जब सुरक्षित कॉन्टेंट दिख रहा हो, तो स्क्रीन रिकॉर्डिंग की सुविधा काम नहीं करती डिवाइस स्कैन किए जा रहे हैं... + डाउनलोड करते समय कोई गड़बड़ी हुई ब्लूटूथ अक्षम किया गया सभी को साइन आउट करें एक ऐप्लिकेशन आपके माइक्रोफ़ोन का इस्तेमाल कर रहा है @@ -588,6 +589,7 @@ क्या आप वाकई अपने-आप क्लिक होने की सुविधा बंद करना चाहते हैं? कीबोर्ड फ़ोकस वाला ऑब्जेक्ट हाइलाइट करें कोई कार्रवाई नहीं (रोकें) + को डाउनलोड करने के लिए, अपना इंटरनेट कनेक्शन देखें बाद में, डाउनलोड करने की कोशिश की जाएगी. फ़ाइल पूरी डाउनलोड होने तक, स्पीच को प्रोसेसिंग के लिए Google के पास भेजा जाएगा. चालू किया गया Alt+Search या Shift @@ -805,6 +807,7 @@ अस्‍वीकार करें भाषा बदल दी गई है पर स्क्रीन विस्तृत कर रहा है +फ़ाइल डाउनलोड नहीं की जा सकी फ़ुल-स्क्रीन पर सामग्री को बड़ा दिखाने वाला USB-C डिवाइस (दायां पोर्ट) के लिए ज़रूरी है आप अपने को समयसीमा खत्म होने से पहले अपडेट करें @@ -817,6 +820,8 @@ इमोजी सिग्नल की क्षमता , फ़ोन की बैटरी पर कास्ट किया जा रहा है + +अभी इंस्टॉल किया गया है एडमिन से पूछें ई-सिम कनेक्शन मौजूद नहीं है {0,plural, =1{डिवाइस को 1 घंटे के अंदर अपडेट करें}one{डिवाइस को # घंटे के अंदर अपडेट करें}other{डिवाइस को # घंटों के अंदर अपडेट करें}} @@ -848,6 +853,7 @@ पावर कनेक्ट किया गया, % बैटरी बची है + +'सेटिंग' पर जाएं यह सुविधा आपके एडमिन ने लागू की है 'परफ़ॉर्मेंस ट्रेसिंग' चालू कर दी गई है डेस्क को हटा दिया गया है और इसे डेस्क के साथ मिला दिया गया है @@ -983,6 +989,7 @@ कॉन्फ़िगर करने के लिए टैप करें वीपीएन नया मोबाइल नेटवर्क जोड़ें +फिर से कोशिश करें {NUM_NOTIFICATIONS,plural, =1{1 सूचना}one{# सूचना}other{# सूचनाएं}} काटें शेल्फ़ में मौजूद ऐप्लिकेशन दिखाएं @@ -1169,6 +1176,7 @@ HSPA का इस्तेमाल करें सूचना से जुड़ी कार्रवाई करने के लिए डिवाइस को के तौर पर अनलॉक करें +डिवाइस का स्टोरेज मैनेज करें Family Link का अभिभावक ऐक्सेस कोड डालें. फ़ुल स्क्रीन के लिए सेटिंग खोलें @@ -1214,6 +1222,7 @@ मेरे कैलेंडर पर आज के लिए क्या काम हैं? फ़ीडबैक भेजें अस्वीकार करें + को डाउनलोड करने के लिए, डिवाइस में जगह कम है. जगह खाली करें. के लिए नतीजे दिखाए जा रहे हैं लैंडस्केप विंडो बंद है. diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index a5ea3ae210552d..beee6c23e5063a 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb @@ -192,6 +192,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Radna površina 7 Snimanje zaslona nije dopušteno ako je vidljiv povjerljiv sadržaj Pretraživanje uređaja... +Došlo je do pogreške prilikom preuzimanja Bluetooth onemogućen Odjavi sve Aplikacija upotrebljava vaš mikrofon @@ -587,6 +588,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Jeste li sigurni da želite isključiti automatske klikove? Istakni objekt fokusom na tipkovnici Nema radnje (pauza) +Provjerite mrežnu vezu da biste preuzeli datoteku Kasnije ćemo pokušati preuzimanje. Govor će se poslati Googleu na obradu dok se ne dovrši preuzimanje. aktivirano Alt + Pretraživanje ili Shift @@ -804,6 +806,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Odbaci Jezik je promijenjen Proširivanje zaslona na zaslon +Datoteku nije moguće preuzeti Povećalo za cijeli zaslon USB-C uređaj (desni priključak) zahtijeva da ažurirate svoj uređaj prije roka @@ -817,6 +820,8 @@ Evo nekih stvari koje možete pokušati pokrenuti. Jačina signala , baterija telefona Pregled preuzimanja datoteke Emitiranje na uređaj + +Novo instaliranje Pitajte administratora eSIM veza nije dostupna {0,plural, =1{Ažurirajte uređaj u roku od sat vremena}one{Ažurirajte uređaj u roku od # sata}few{Ažurirajte uređaj u roku od # sata}other{Ažurirajte uređaj u roku od # sati}} @@ -848,6 +853,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Napajanje Povezano, baterija % + +OTVORI POSTAVKE Provodi vaš administrator Uključeno je praćenje izvedbe Radna površina uklonjena je i spojena s radnom površinom @@ -983,6 +989,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Dodirnite da biste konfigurirali VPN Dodajte novu mobilnu mrežu +PONOVI {NUM_NOTIFICATIONS,plural, =1{1 obavijest}one{# obavijest}few{# obavijesti}other{# obavijesti}} Izreži Prikaži aplikacije na polici @@ -1169,6 +1176,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. HSPA Upotrebljava se Otključajte uređaj kao za izvršenje radnje obavijesti. +UPRAVLJAJTE POHRANOM Unesite kôd za roditeljski pristup Family Linka. cijeli zaslon Otvorite postavke mreže @@ -1214,6 +1222,7 @@ Evo nekih stvari koje možete pokušati pokrenuti. Što je na mojem kalendaru? Pošaljite povratne informacije Odbijam +Nema dovoljno prostora za datoteku . Oslobodite prostor. Prikazuju se rezultati za upit (njih ) Pejzaž Zatvoren je prozor . diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 99998af934ce2f..718d9a288ca45d 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb @@ -192,6 +192,7 @@ Աշխատասեղան 7 Էկրանի տեսագրում չի թույլատրվում, երբ պաշտպանված բովանդակություն է տեսանելի Սարքերի որոնում… +Ֆայլը () ներբեռնելիս սխալ առաջացավ Bluetooth-ն անջատված է Դուրս գալ բոլորից Ինչ-որ հավելված օգտագործում է ձեր խոսափողը @@ -587,6 +588,7 @@ Իսկապե՞ս ուզում եք անջատել ավտոմատ սեղմումները: Ընդգծել ստեղնաշարի միջոցով ընտրված օբյեկտները Ոչ մի գործողություն (դադար) +Ստուգեք կապը՝ ֆայլը ներբեռնելու համար Ավելի ուշ մենք կփորձենք նորից ներբեռնել ֆայլերը։ Մինչև ներբեռնումը չավարտվի, խոսքի ձայնագրությունները կփոխանցվեն Google-ին՝ մշակման համար։ ակտիվացված է Alt+Search կամ Shift @@ -804,6 +806,7 @@ Մերժել Լեզուն փոխվել է Էկրանի ընդլայնում մինչև +Չհաջողվեց ներբեռնել ֆայլը Լիաէկրան խոշորացույց USB-C սարք (աջ միացք) Կառավարիչը () պահանջում է, որ թարմացնեք ձեր սարքը, քանի դեռ վերջնաժամկետը չի լրացել։ @@ -817,6 +820,8 @@ Ազդանշանի ուժգնությունը՝ , մարտկոցի լիցքը՝ Ներբեռնումը դադարեցված է, ֆայլը ստուգվում է Հեռարձակում «» սարքին + +Նոր տեղադրում Հարցրեք ադմինիստրատորին eSIM կապն անհասանելի է {0,plural, =1{Թարմացրեք սարքը մեկ ժամվա ընթացքում}one{Թարմացրեք սարքը # ժամվա ընթացքում}other{Թարմացրեք սարքը # ժամվա ընթացքում}} @@ -848,6 +853,7 @@ Սնուցում Միացված է, մարտկոցի լիցքը՝ + +ԲԱՑԵԼ ԿԱՐԳԱՎՈՐՈՒՄՆԵՐԸ Պարտադրված է ադմինիստրատորի կողմից Արդյունավետության հետագծումը միացված է Աշխատասեղան -ը հեռացվել է և միացվել է աշխատասեղան -ի հետ @@ -983,6 +989,7 @@ Հպեք՝ կարգավորելու համար VPN Ավելացնել նոր բջջային ցանց +ՆՈՐԻՑ ՓՈՐՁԵԼ {NUM_NOTIFICATIONS,plural, =1{1 ծանուցում}one{# ծանուցում}other{# ծանուցում}} Կտրել Ցուցադրել դարակի հավելվածները @@ -1169,6 +1176,7 @@ HSPA Օգտագործվում է՝ Ծանուցման հետ գործողություն կատարելու համար ապակողպեք սարքը որպես +ԿԱՌԱՎԱՐԵԼ ՏԱՐԱԾՔԸ Մուտքագրեք Family Link-ի ծնողի մուտքի կոդը։ լիաէկրան Բացել «» ցանցի կարգավորումները @@ -1214,6 +1222,7 @@ Ի՞նչ ունեմ պլանավորած։ Կարծիք հայտնել Մերժել +Բավարար տարածք չկա ֆայլը ներբեռնելու համար։ Ազատեք տարածք։ Ցուցադրվում է «»-ի որոնման արդյունք Հորիզոնական պատուհանը փակվեց։ diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index 7e13c63e9359b2..6b26a6237f3e06 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb @@ -35,6 +35,7 @@ Айналдыру Кідірту Өшіру +Қауіпсіздікті күшейту үшін құпия сөзді немесе PIN кодын енгізіңіз. Толық экранды түсіру үшін кез келген жерді басыңыз. Хабарландыру орталығы Құрылғыны алдыңғы нұсқаға қайтару керек @@ -338,6 +339,7 @@ Ноутбук режиміне ауысты. кейінірек те кіре алады. Ата-ана коды дұрыс емес +Скриншот, скриншоттар түсіруге және экран жазуға арналған құралдар Скриншот түсірілді. Скриншот түсіру Экранды трансляциялап жатырсыз. @@ -394,6 +396,7 @@ Брайль дисплейі қосылды. Мобильдік деректерді қоссаңыз, Bluetooth та қосылады. Мәзір экранның жоғарғы оң жақ бұрышына жылжытылды. +Скриншот параметрлері Енгізу Аудио параметрлері Жарықтық @@ -492,6 +495,7 @@ Құрылғының әкімшісі мына әрекеттерді орындай алады: Ctrl + Alt + төменге бағыттауыш перне тіркесімінің функциясы өзгерді. End пернесінің әрекетін орындау үшін пернесі + оң жаққа бағыттауыш перне тіркесімін басыңыз. Экран көшірмесін көрсету +Қауіпсіздікті күшейту үшін құпия сөзді енгізіңіз. Босату Құралдар тақтасының орнын ауыстыру Қайырлы таң, ! @@ -761,6 +765,7 @@ Компьютеріңізді жақын жердегі Bluetooth құрылғылары анықтай алады. мекенжайымен және "" атауымен көрсетіледі Тіл файлдары () жүктеп алынды . + жүктеп алуды растау Google Assistant қонақ сеансында жұмыс істемейді. Құрылғыдан, қолданбалардан, параметрлерден және интернеттен іздеңіз. аккаунтын өшіру диалогтік терезесін ашу diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 034144dccfdd89..fe15e2d7ac7a41 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb @@ -192,6 +192,7 @@ ಡೆಸ್ಕ್ 7 ಸುರಕ್ಷಿತ ವಿಷಯವು ಗೋಚರಿಸಿದಾಗ ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ ಸಾಧನಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ... + ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ ಬ್ಲೂಟೂತ್‌ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಲ್ಲಾ ಸೈನ್ ಔಟ್ ಮಾಡಿ ಆ್ಯಪ್‌ವೊಂದು ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ @@ -587,6 +588,7 @@ ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್‌ಗಳನ್ನು ಖಚಿತವಾಗಿಯೂ ಆಫ್ ಮಾಡಲು ಬಯಸುವಿರಾ? ಕೀಬೋರ್ಡ್‌ ಫೋಕಸ್‌ ಮೂಲಕ ವಿಷಯವನ್ನು ಎದ್ದುಗಾಣಿಸಿ ಯಾವುದೇ ಕ್ರಮ ಕೈಗೊಳ್ಳಬೇಡಿ (ವಿರಾಮಗೊಳಿಸಿ) + ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಕನೆಕ್ಷನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ನಂತರ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಲಾಗುವುದು. ಡೌನ್‌ಲೋಡ್ ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ, ಪ್ರಕ್ರಿಯೆಗಾಗಿ Google ಗೆ ಧ್ವನಿಯನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ Alt+ಹುಡುಕಾಟ ಅಥವಾ Shift @@ -805,6 +807,7 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.ತಿರಸ್ಕರಿಸಿ ಭಾಷೆಯನ್ನು ಬದಲಿಸಲಾಗಿದೆ ಗೆ ಪರದೆಯನ್ನು ವಿಸ್ತರಿಸಲಾಗುತ್ತಿದೆ +ಫೈಲ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಪೂರ್ಣಪರದೆ ವರ್ಧಕ USB-C ಸಾಧನ (ಬಲ ಪೋರ್ಟ್) ಗಡುವಿನ ಮೊದಲು ನಿಮ್ಮ ಅನ್ನು ನೀವು ಅಪ್‌ಡೇಟ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ @@ -817,6 +820,8 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.ಎಮೋಜಿಗಳು ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ , ಫೋನ್ ಬ್ಯಾಟರಿ ಗೆ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ + +ಹೊಸ ಇನ್‌ಸ್ಟಾಲ್ ನಿರ್ವಾಹಕರನ್ನು ಕೇಳಿ eSIM ಕನೆಕ್ಷನ್ ಲಭ್ಯವಿಲ್ಲ {0,plural, =1{ಒಂದು ಗಂಟೆಯೊಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}one{# ಗಂಟೆಗಳೊಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}other{# ಗಂಟೆಗಳೊಳಗೆ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ}} @@ -848,6 +853,7 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.ಪವರ್‌ ಸಂಪರ್ಕಗೊಂಡಿದೆ, % ರಷ್ಟು ಬ್ಯಾಟರಿ ಲಭ್ಯವಿದೆ + +ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಮೂಲಕ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ಟ್ರೇಸಿಂಗ್ ಅನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ ಡೆಸ್ಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಮತ್ತು ಡೆಸ್ಕ್‌ನೊಂದಿಗೆ ವಿಲೀನಗೊಳಿಸಲಾಗಿದೆ @@ -983,6 +989,7 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಟ್ಯಾಪ್‌ ಮಾಡಿ VPN ಹೊಸ ಸೆಲ್ಯುಲಾರ್ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಸೇರಿಸಿ +ಪುನಃ ಪ್ರಯತ್ನಿಸಿ {NUM_NOTIFICATIONS,plural, =1{1 ಅಧಿಸೂಚನೆ}one{# ಅಧಿಸೂಚನೆಗಳು}other{# ಅಧಿಸೂಚನೆಗಳು}} ಕತ್ತರಿಸು ಶೆಲ್ಫ್‌ನಲ್ಲಿ ಆ್ಯಪ್‌ಗಳನ್ನು ತೋರಿಸಿ @@ -1169,6 +1176,7 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.HSPA ಬಳಸಲಾಗುತ್ತಿದೆ ಅಧಿಸೂಚನೆ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧನವನ್ನು ನಂತೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ +ಸಂಗ್ರಹಣೆಯನ್ನು ನಿರ್ವಹಿಸಿ Family Link ಪೋಷಕ ಪ್ರವೇಶದ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ. ಪೂರ್ಣ ಪರದೆ ನ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ @@ -1214,6 +1222,7 @@ Ctrl+ಹುಡುಕಾಟ+H ಅನ್ನು ಒತ್ತಿರಿ.ನನ್ನ ಕ್ಯಾಲೆಂಡರ್‌ನಲ್ಲಿ ಏನಿದೆ? ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ ನಿರಾಕರಿಸಿ + ಗಾಗಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ. ಸ್ಥಳಾವಕಾಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿ. ಕುರಿತಾದ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಲಾಗಿದೆ. diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index c5cdb3e45acfd6..0f992d718fd858 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb @@ -623,6 +623,7 @@ Коштомо жазууларды баштоо Туура эмес PIN Жардамчынын башка функцияларын иштетиңиз. +Жекелештирүү Кийинки айды көрсөтүү Башка баскычтоп туташтырылды Кулпусу ачык diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 2365bb3b5ac075..d32d5ad2c3974d 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb @@ -192,6 +192,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. 7 darbalaukis Negalima įrašyti ekrano vaizdo, jei matomas apsaugotas turinys Ieškoma įrenginių... +Atsisiunčiant „“ įvyko klaida „Bluetooth“ neleidžiama Atjungti visus Programa naudoja mikrofoną @@ -587,6 +588,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. Ar tikrai norite išjungti automatinius paspaudimus? Paryškinti objektą jį suaktyvinus klaviatūra Nesiimti jokių veiksmų (pristabdyti) +Patikrinkite tinklo ryšį, kad atsisiųstumėte failą „ Atsisiųsti bus bandoma vėliau. Kalba bus siunčiama į sistemą „Google“ apdoroti, kol bus atsisiųsta. suaktyvinta „Alt“ + paieškos arba antrojo lygio klavišas @@ -804,6 +806,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. Atmesti Kalba pakeista Ekranas išplečiamas į +Neįmanoma atsiųsti failo Viso ekrano didintuvas USB-C įrenginys (prievadas dešinėje) reikalauja atnaujinti „“ iki termino @@ -816,6 +819,8 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. Jaustukai Signalo stiprumas , telefono akumuliatorius Perduodama į „ + +Naujas įdiegimas Klausti administratoriaus „eSIM“ kortelės ryšys nepasiekiamas {0,plural, =1{Atnaujinkite įrenginį per valandą}one{Atnaujinkite įrenginį per # valandą}few{Atnaujinkite įrenginį per # valandas}many{Atnaujinkite įrenginį per # valandos}other{Atnaujinkite įrenginį per # valandų}} @@ -847,6 +852,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. Maitinimas Prisijungta, akumuliatoriaus įkrovos lygis: proc. Dar +EIKITE Į NUSTATYMUS Įgalino jūsų administratorius Našumo stebėjimas įjungtas Darbalaukis „“ pašalintas ir sujungtas su darbalaukiu „ @@ -982,6 +988,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. Palieskite, kad konfigūruotumėte VPN Pridėti naują mobiliojo ryšio tinklą +BANDYKITE DAR KARTĄ {NUM_NOTIFICATIONS,plural, =1{1 pranešimas}one{# pranešimas}few{# pranešimai}many{# pranešimo}other{# pranešimų}} Iškirpti Rodyti programas lentynoje @@ -1168,6 +1175,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. HSPA Naudojama Atrakinkite įrenginį su , kad galėtumėte įvykdyti pranešimo veiksmą +TVARKYKITE SAUGYKLĄ Įveskite „Family Link“ tėvų prieigos kodą. visas ekranas Atidaryti „“ nustatymus @@ -1213,6 +1221,7 @@ Jei norite pradėti, pabandykite atlikti nurodytus veiksmus. „What's on my calendar?“ (Kas mano kalendoriuje?) Siųsti atsiliepimą Atmesti +Nepakanka vietos failui „“. Atlaisvinkite vietos. Pagal užklausą „“ pateikiama rezultatų: Gulsčias Langas „“ uždarytas. diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 5f2b17a4405edb..503b984bbe92e5 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb @@ -192,6 +192,7 @@ ഡെസ്ക് 7 പരിരക്ഷിത ഉള്ളടക്കം ദൃശ്യമായിരിക്കുമ്പോൾ സ്ക്രീൻ റെക്കോർഡിംഗ് അനുവദനീയമല്ല ഉപകരണങ്ങൾക്കായി സ്‌കാൻ ചെയ്യുന്നു... + ഡൗൺലോഡ് ചെയ്യുന്നതിനിടെ എന്തോ കുഴപ്പം സംഭവിച്ചു Bluetooth അപ്രാപ്‌തമാക്കി എല്ലാം സൈൻ ഔട്ട് ഒരു ആപ്പ് നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കുന്നു @@ -587,6 +588,7 @@ സ്വയമേവയുള്ള ക്ലിക്കുകൾ ഓഫാക്കണമെന്ന് നിങ്ങൾക്ക് തീർച്ചയാണോ? കീബോർഡ് ഫോക്കസ് ഉപയോഗിച്ച് ഒബ്‌ജക്‌റ്റിനെ ഹൈലൈറ്റ് ചെയ്യുക പ്രവർത്തനമൊന്നും വേണ്ട (താൽക്കാലികമായി നിർത്തുക) + ഡൗൺലോഡ് ചെയ്യാൻ നിങ്ങളുടെ കണക്ഷൻ പരിശോധിക്കുക പിന്നീട് ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കും. ഡൗൺലോഡ് പൂർത്തിയാകുന്നത് വരെ സംഭാഷണം പ്രോസസ് ചെയ്യുന്നതിനായി Google-ലേക്ക് അയയ്ക്കും. സജീവമാക്കി Alt+തിരയൽ അല്ലെങ്കിൽ Shift @@ -621,6 +623,7 @@ സബ്‌ടൈറ്റിലുകൾ ആരംഭിക്കുക തെറ്റായ PIN കൂടുതൽ അസിസ്റ്റന്റ് ഫീച്ചറുകൾ അൺലോക്ക് ചെയ്യുക. +വ്യക്തിപരമാക്കുക അടുത്ത മാസം കാണിക്കുക വ്യത്യസ്ത കീബോർഡ് കണക്‌റ്റ് ചെയ്‌തു അൺലോക്ക് ചെയ്തു @@ -804,6 +807,7 @@ നിരസിക്കുക ഭാഷ മാറ്റിയിരിക്കുന്നു സ്‌ക്രീൻ എന്നതിലേക്ക് വികസിപ്പിക്കുന്നു +ഫയൽ ഡൗൺലോഡ് ചെയ്യാനാകുന്നില്ല പൂർണ്ണസ്‌ക്രീൻ മാഗ്‌നിഫയർ USB-C ഉപകരണം (വലത് പോർട്ട്) സമയപരിധി അവസാനിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ അപ്‌ഡേറ്റ് ചെയ്യാൻ ആവശ്യപ്പെടുന്നു. @@ -817,6 +821,8 @@ സിഗ്‌നൽ ശക്തി , ഫോൺ ബാറ്ററി ഡൗൺലോഡ് സ്‌കാൻ ചെയ്യുന്നു ഉപകരണത്തിലേക്ക് കാസ്‌റ്റ് ചെയ്യുന്നു + +പുതിയ ഇൻസ്റ്റാൾ അഡ്‌മിനിസ്‌ട്രേറ്ററോട് ചോദിക്കുക eSIM കണക്ഷൻ ലഭ്യമല്ല {0,plural, =1{ഒരു മണിക്കൂറിനുള്ളിൽ ഉപകരണം അപ്‌ഡേറ്റ് ചെയ്യുക}other{# മണിക്കൂറിനുള്ളിൽ ഉപകരണം അപ്‌ഡേറ്റ് ചെയ്യുക}} @@ -848,6 +854,7 @@ പവർ കണക്റ്റ് ചെയ്‌തു, % ബാറ്ററി + എണ്ണം +ക്രമീകരണത്തിലേക്ക് പോകുക നിങ്ങളുടെ അഡ്‌മിൻ നടപ്പിലാക്കിയതാണ് പ്രകടനം പിന്തുടരൽ ഓണാണ് ഡെസ്‌ക് നീക്കം ചെയ്‌ത്, ഡെസ്‌ക് -മായി ലയിപ്പിച്ചു @@ -983,6 +990,7 @@ കോൺഫിഗർ ചെയ്യുന്നതിന് ടാപ്പ് ചെയ്യുക VPN പുതിയ സെല്ലുലാർ നെറ്റ്‌വർക്ക് ചേർക്കുക +വീണ്ടും ശ്രമിക്കുക {NUM_NOTIFICATIONS,plural, =1{ഒരു അറിയിപ്പ്}other{# അറിയിപ്പുകൾ}} മുറിക്കുക ഷെൽഫിലെ ആപ്പുകൾ കാണിക്കുക @@ -1169,6 +1177,7 @@ HSPA ഉപയോഗിക്കുന്നു അറിയിപ്പ് പ്രവർത്തനം നിർവഹിക്കാൻ, ആയി ഉപകരണം അൺലോക്ക് ചെയ്യുക +സ്‌റ്റോറേജ് മാനേജ് ചെയ്യുക Family Link രക്ഷാകർതൃ ആക്‌സസ് കോഡ് നൽകുക. പൂര്‍ണ്ണ സ്‌ക്രീന്‍ എന്നതിനുള്ള ക്രമീകരണം തുറക്കുക @@ -1214,6 +1223,7 @@ എന്റെ കലണ്ടറിൽ എന്താണുള്ളത്? ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക നിരസിക്കുക + എന്നതിനാവശ്യമായ ഇടം ലഭ്യമല്ല. ഇടം സൃഷ്ടിക്കുക. എന്നതിനുള്ള ഫലങ്ങൾ കാണിക്കുന്നു ലാന്‍ഡ്‌സ്‌കേപ്പ് വിൻഡോ അടച്ചു. diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb index 34b004d7d29184..626c0b58f851a3 100644 --- a/ash/strings/ash_strings_mn.xtb +++ b/ash/strings/ash_strings_mn.xtb @@ -192,6 +192,7 @@ Дэлгэц 7 Хамгаалалттай контент харагдаж байх үед дэлгэцийн үйлдэл бичихийг зөвшөөрөхгүй Төхөөрөмжийг хайж байна... +-г татаж авах явцад алдаа гарлаа Bluetooth-г идэвхгүй болгосон байна Бүгдээс гарах Аппликэйшн таны микрофоныг ашиглаж байна @@ -588,6 +589,7 @@ Автомат даралтыг унтраахдаа итгэлтэй байна уу? Объектыг гарын фокусаар тодруулах Үйлдэл алга (түр зогсоох) + татаж авахын тулд сүлжээний холболтоо шалгана уу Таталтыг дараа оролдоно. Таталт дуусах хүртэл яриаг Google-д боловсруулахаар илгээнэ. идэвхжүүлсэн байна Alt+Search эсвэл Shift @@ -806,6 +808,7 @@ Татгалзах Хэлийг өөрчилсөн Дэлгэцийг руу сунгаж байна +Файлыг татах боломжгүй Бүтэн дэлгэц томруулагч USB-C төхөөрөмж (баруун талын порт) таныг өөрийн -г эцсийн хугацаанаас өмнө шинэчлэхийг шаардаж байна @@ -819,6 +822,8 @@ Дохионы хүч , утасны батарей Татах -г скан хийж байна -д дамжуулж байна + +Шинээр суулгасан Админаас асуух eSIM холболт боломжгүй {0,plural, =1{Төхөөрөмжийг нэг цагийн дотор шинэчилнэ үү}other{Төхөөрөмжийг # цагийн дотор шинэчилнэ үү}} @@ -850,6 +855,7 @@ Эрчим хүч Холбогдсон, батарей % + +ТОХИРГОО РУУ ОЧИХ Таны администратор хэрэгжүүлдэг Гүйцэтгэлийн хяналтыг асаасан дэлгэцийг хасаж, дэлгэцтэй нэгтгэсэн @@ -985,6 +991,7 @@ Тохируулахын тулд товших VPN Үүрэн холбооны шинэ сүлжээ нэмэх +ДАХИН ОРОЛДОХ {NUM_NOTIFICATIONS,plural, =1{1 мэдэгдэл}other{# мэдэгдэл}} Хайчлах Аппуудыг тавиур дээр харуулах @@ -1172,6 +1179,7 @@ HSPA -г ашиглаж байна Мэдэгдлийн үйлдлийг гүйцэтгэхийн тулд төхөөрөмжийн түгжээг -р тайлна уу +ХАДГАЛАХ САНГ УДИРДАХ Family Link-н эцэг эхийн нэвтрэх кодоо оруулна уу. бүтэн дэлгэц -н тохиргоог нээх @@ -1217,6 +1225,7 @@ Миний календарьд юу байна вэ? Санал хүсэлт илгээх Татгалзах +-д хангалттай зай байхгүй байна. Зай гаргана уу. илэрцийг үзүүлж байна Газрын гадаргуун зураг цонх хаалттай байна. diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 031d24d7196323..76f04a44a41f4a 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb @@ -192,6 +192,7 @@ डेस्‍क ७ सुरक्षित आशय दृश्यमान असेल तेव्हा स्क्रीन रेकॉर्डिंगला अनुमती नाही डिव्हाइसेससाठी स्कॅन करत आहे... + डाउनलोड करताना काहीतरी चूक झाली ब्लूटूथ अक्षम सर्व साइन आउट करा अ‍ॅप्लिकेशन तुमचा मायक्रोफोन वापरत आहे @@ -587,6 +588,7 @@ तुम्हाला ऑटोमेटिक क्लिक नक्की बंद करायचे आहे का? कीबोर्ड फोकससह ऑब्जेक्ट हायलाइट करा कृती नाही (थांबवा) + डाउनलोड करण्यासाठी तुमचे नेटवर्क कनेक्शन तपासा नंतर डाउनलोड करण्याचा प्रयत्न केला जाईल. डाउनलोड पूर्ण होईपर्यंत प्रक्रिया करण्यासाठी स्पीच Google ला पाठवली जाईल. अ‍ॅक्टिव्हेट केले आहे Alt+Search किंवा Shift @@ -804,6 +806,7 @@ नाकारा भाषा बदलण्यात आली आहे मध्ये स्क्रीन विस्तृत करत आहे +फाइल डाउनलोड करू शकत नाही फुल-स्क्रीन मॅग्निफायर USB-C डिव्‍हाइस (उजवे पोर्ट) ला तुम्ही तुमचे डिव्हाइस डेडलाइनच्या आधी अपडेट करणे आवश्यक आहे @@ -816,6 +819,8 @@ इमोजी सिग्नल क्षमता , फोन बॅटरी वर कास्ट करत आहे + +नवीन इंस्टॉल केले आहे अ‍ॅडमिनिस्ट्रेटरला विचारा eSIM कनेक्शन उपलब्ध नाही {0,plural, =1{डिव्हाइस एका तासाच्या आत अपडेट करा}other{डिव्हाइस # तासांच्या आत अपडेट करा}} @@ -847,6 +852,7 @@ सामर्थ्य कनेक्ट केले, % बॅटरी + +सेटिंग्जवर जा तुमच्या अ‍ॅडमिनिस्ट्रेटरने अंमलबजावणी केलेले परफॉर्मंस ट्रेसिंग सुरू आहे डेस्क काढून टाकले आणि डेस्क साेबत मर्ज केले @@ -982,6 +988,7 @@ कॉंफिगर करण्यासाठी टॅप करा VPN नवीन मोबाइल नेटवर्क जोडा +पुन्हा प्रयत्न करा {NUM_NOTIFICATIONS,plural, =1{एक सूचना}other{# सूचना}} कट करा शेल्फमधील अ‍ॅप्स दाखवा @@ -1168,6 +1175,7 @@ HSPA वापरत आहे सूचनेशी संबंधित क्रिया पार पाडण्यासाठी डिव्हाइस म्हणून अनलॉक करा +स्टोरेज व्यवस्थापित करा Family Link पालक ॲक्सेस कोड एंटर करा. फुल स्क्रीन साठी सेटिंग्ज उघडा @@ -1214,6 +1222,7 @@ माझ्या कॅलेंडरमधील इव्हेंट काय आहेत? अभिप्राय पाठवा नकार द्या + साठी पुरेशी जागा नाही. जागा मोकळी करा. साठी परिणाम दाखवत आहे लँडस्केप विंडो बंद केली आहे. diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index e822d1ee9b91dd..eee08b30c598da 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb @@ -818,6 +818,7 @@ Hier zijn wat voorbeelden van wat je kunt proberen om aan de slag te gaan.Niet storen Emoji's Signaalsterkte , telefoonbatterij + scannen voor downloaden Er wordt gecast naar Nieuwe installatie diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 7a8a169778b854..f7261e252549fe 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb @@ -192,6 +192,7 @@ Her er noen ting du kan prøve til å begynne med. Skrivebord 7 Skjermopptak tillates ikke når beskyttet innhold er synlig Leter etter enheter ... +Noe gikk galt under nedlasting av Bluetooth er deaktivert Logg alle av Et program bruker mikrofonen din @@ -587,6 +588,7 @@ Her er noen ting du kan prøve til å begynne med. Er du sikker på at du vil slå av automatiske klikk? Fremhev objektet med tastaturfokus Ingen handling (pause) +Kontroller nettverkstilkoblingen din for å laste ned Vi forsøker å laste ned filene senere. Tale blir sendt til Google for behandling frem til nedlastingen er fullført. aktivert Alt + Søk eller Shift @@ -804,6 +806,7 @@ Her er noen ting du kan prøve til å begynne med. Avslå Språket er endret Utvider skjermen til +Kan ikke laste ned filen Lupe for hele skjermen USB-C-enhet (porten på høyre side) krever at du oppdaterer før tidsfristen @@ -817,6 +820,8 @@ Her er noen ting du kan prøve til å begynne med. Signalstyrke – telefonbatterinivå Nedlastingen skannes: Caster til + +Nylig installert Spør administratoren e-SIM-korttilkoblingen er ikke tilgjengelig {0,plural, =1{Oppdater enheten innen en time}other{Oppdater enheten innen # timer}} @@ -848,6 +853,7 @@ Her er noen ting du kan prøve til å begynne med. Strøm Koblet til –  % batteri + +GÅ TIL INNSTILLINGER Påkreves av administratoren din Ytelsessporing er slått på Skrivebord ble fjernet og slått sammen med skrivebord @@ -983,6 +989,7 @@ Her er noen ting du kan prøve til å begynne med. Trykk for å konfigurere VPN Legg til nytt mobilnettverk +PRØV PÅ NYTT {NUM_NOTIFICATIONS,plural, =1{1 varsel}other{# varsler}} Klipp ut Vis apper på hyllen @@ -1169,6 +1176,7 @@ Her er noen ting du kan prøve til å begynne med. HSPA Bruker Lås opp enheten som for å utføre varselhandlingen +ADMINISTRER LAGRING Skriv inn koden for foreldretilgang til Family Link. full skjerm Åpne innstillinger for @@ -1214,6 +1222,7 @@ Her er noen ting du kan prøve til å begynne med. Hva er i kalenderen min? Send tilbakemelding Avvis +Ikke nok plass til . Frigjør plass. Viser resultater for Liggende Vinduet er lukket. diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 50c78107a89b4d..268ed7c148fc24 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb @@ -192,6 +192,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Biurko 7 Gdy widoczne są treści chronione, nagrywanie ekranu jest niedozwolone Skanowanie w poszukiwaniu urządzeń... +Podczas pobierania pliku coś poszło nie tak Bluetooth wyłączony Wyloguj wszystkich Aplikacja używa Twojego mikrofonu @@ -587,6 +588,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Czy na pewno chcesz wyłączyć automatyczne kliknięcia? Podświetlaj obiekt wybrany za pomocą klawiatury Brak działania (wstrzymaj) +Aby pobrać plik , sprawdź połączenie sieciowe Spróbuję je pobrać później. Do momentu ukończenia pobierania mowa będzie wysyłana do Google i tam przetwarzana. aktywna Alt+Szukaj lub Shift @@ -804,6 +806,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Odrzuć Język został zmieniony Rozszerzanie ekranu na +Nie można pobrać pliku Lupa pełnoekranowa Urządzenie USB-C (prawy port) wymaga zaktualizowania tego urządzenia przed podanym terminem @@ -817,6 +820,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Siła sygnału: , bateria telefonu: Skanuję pobierany plik Przesyłam do: + – nowa instalacja Poproś administratora Połączenie eSIM jest niedostępne {0,plural, =1{Aktualizacja urządzenia nastąpi w ciągu godziny}few{Aktualizacja urządzenia nastąpi w ciągu # godzin}many{Aktualizacja urządzenia nastąpi w ciągu # godzin}other{Aktualizacja urządzenia nastąpi w ciągu # godziny}} @@ -848,6 +852,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Zasilanie Połączono, bateria: % + +OTWÓRZ USTAWIENIA Wymusił administrator Śledzenie wydajności jest włączone Biurko  zostało usunięte i połączone z biurkiem  @@ -983,6 +988,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Kliknij, by skonfigurować VPN Dodaj nową sieć komórkową +SPRÓBUJ PONOWNIE {NUM_NOTIFICATIONS,plural, =1{1 powiadomienie}few{# powiadomienia}many{# powiadomień}other{# powiadomienia}} Wytnij Pokaż aplikacje na półce @@ -1169,6 +1175,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. HSPA W użyciu jest Odblokuj urządzenie jako , by zareagować na powiadomienie +ZARZĄDZAJ MIEJSCEM NA DANE Wpisz kod dostępu rodzica w Family Link. pełny ekran Otwórz ustawienia sieci @@ -1214,6 +1221,7 @@ Oto kilka rzeczy, które możesz wypróbować na początek. Co mam w kalendarzu? Prześlij opinię Odrzuć +Za mało miejsca na plik . Zwolnij miejsce. Wyświetlam wyniki () dla zapytania Poziomo Okno zostało zamknięte. diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 71d6734ca79ecd..ad3c7a36b9e319 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb @@ -623,6 +623,7 @@ Veja o que você pode fazer para começar. Iniciar closed captions PIN incorreto Desbloqueie mais recursos do Assistente. +Personalizar Mostrar próximo mês Teclado diferente conectado Desbloqueado diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 761fc9cfbc9a70..758c32cfed05d1 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb @@ -623,6 +623,7 @@ Eis alguns exemplos do que pode experimentar para começar. Iniciar legendas PIN incorreto Desbloqueie mais funcionalidades do Assistente. +Personalizar Mostrar mês seguinte Teclado diferente ligado Desbloqueado diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index f4bcfc191f77ca..2127982c27e223 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb @@ -192,6 +192,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Desktop 7 Înregistrarea ecranului nu este permisă atunci când se afișează conținut protejat Se caută gadgeturi... +A apărut o eroare în timpul descărcării Bluetooth dezactivat Deconectează tot O aplicație folosește microfonul @@ -587,6 +588,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Sigur vrei să dezactivezi clicurile automate? Evidențiază obiectul focalizat de la tastatură Nicio acțiune (pauză) +Verifică starea conexiunii la rețea pentru a descărca Se va încerca descărcarea mai târziu. Fișierele de redare în scris a vorbirii vor fi trimise la Google pentru procesare până la finalizarea descărcării. activată Alt+Căutare sau Shift @@ -804,6 +806,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Respingeți Limba a fost schimbată Se extinde ecranul pe +Nu s-a putut descărca fișierul Lupă de ecran complet Dispozitiv USB-C (portul din dreapta) solicită să actualizezi dispozitivul înainte de termenul limită @@ -816,6 +819,8 @@ Iată câteva lucruri pe care le poți încerca pentru început. Emoji Puterea semnalului: , bateria telefonului: Se proiectează conținut la + +Instalare nouă Întreabă administratorul Nu este disponibilă o conexiune eSIM {0,plural, =1{Actualizează dispozitivul într-o oră}few{Actualizează dispozitivul în # ore}other{Actualizează dispozitivul în # de ore}} @@ -847,6 +852,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Alimentare Conectat, nivelul bateriei: % + +ACCESEAZĂ SETĂRILE Impusă de administrator Urmărirea performanțelor este activată Desktopul a fost eliminat și îmbinat cu desktopul @@ -982,6 +988,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Atinge pentru a configura VPN Adaugă o nouă rețea de date mobile +ÎNCEARCĂ DIN NOU {NUM_NOTIFICATIONS,plural, =1{O notificare}few{# notificări}other{# de notificări}} Decupează Afișează aplicațiile în raft @@ -1168,6 +1175,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. HSPA Se folosește Deblochează dispozitivul ca pentru efectuarea acțiunii de notificare +GESTIONEAZĂ SPAȚIUL DE STOCARE Introdu codul de acces parental pentru Family Link. ecran complet Deschide setările pentru @@ -1213,6 +1221,7 @@ Iată câteva lucruri pe care le poți încerca pentru început. Ce am în calendar? Trimite feedback Refuză +Nu există suficient spațiu pentru . Eliberează spațiu. Se afișează rezultate pentru Peisaj Fereastra s-a închis. diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 2fac5b1e388bb8..5b486a3b275177 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb @@ -192,6 +192,7 @@ Рабочий стол 7 Запись экрана запрещена, так как на нем есть защищенный контент. Поиск устройств… +При скачивании файла произошла ошибка. Bluetooth отключен Выйти для всех Приложение использует ваш микрофон @@ -587,6 +588,7 @@ Вы уверены, что хотите отключить функцию автоматического нажатия? Выделять элементы, выбранные с помощью клавиатуры Отсутствие действий (пауза) +Чтобы скачать файл , проверьте подключение к сети. Повторная попытка будет выполнена позже. Пока скачивание не завершится, записи с речью будут передаваться для обработки в Google. включила Alt + Search или Shift @@ -804,6 +806,7 @@ Отклонить Язык изменен Расширение экрана на +Не удалось скачать файл Полноэкранная лупа Устройство USB-C (порт справа) Согласно требованиям вам нужно обновить устройство до истечения срока. @@ -816,6 +819,8 @@ Эмодзи Уровень сигнала – , заряд батареи – Трансляция на устройство "" +"" +Новое приложение Обратитесь к администратору Подключение eSIM недоступно {0,plural, =1{Перезагрузите устройство в течение 1 часа}one{Перезагрузите устройство в течение # часа}few{Перезагрузите устройство в течение # часов}many{Перезагрузите устройство в течение # часов}other{Перезагрузите устройство в течение # часа}} @@ -847,6 +852,7 @@ Питание Подключено, батарея заряжена на % ещё +ОТКРЫТЬ НАСТРОЙКИ Функция принудительно включена администратором Отслеживание эффективности включено. Рабочий стол "" удален и объединен с рабочим столом "". @@ -982,6 +988,7 @@ Нажмите, чтобы настроить. VPN Добавить мобильную сеть +ПОВТОРИТЬ {NUM_NOTIFICATIONS,plural, =1{1 уведомление}one{# уведомление}few{# уведомления}many{# уведомлений}other{# уведомления}} Вырезать Показать приложения на панели запуска @@ -1168,6 +1175,7 @@ HSPA Используется Чтобы выполнить действие, предложенное в уведомлении, разблокируйте устройство с помощью аккаунта . +ОЧИСТИТЬ ХРАНИЛИЩЕ Введите родительский код доступа Family Link. полноэкранный режим Открыть настройки сети "" @@ -1213,6 +1221,7 @@ Что у меня запланировано? Отправить отзыв Отклонить +Недостаточно свободного места для скачивания файла . Освободите пространство. Показано результатов поиска по запросу "": Альбомная Окно "" закрыто. diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 113b76c2e631f0..e8716a8693fd18 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb @@ -192,6 +192,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. 7. plocha Nahrávanie obrazovky nie je povolené, keď je viditeľný chránený obsah Hľadajú sa zariadenia... +Pri sťahovaní súboru sa vyskytol problém Rozhranie Bluetooth je deaktivované Odhlásiť všetkých Nejaká aplikácia používa váš mikrofón @@ -587,6 +588,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Naozaj chcete vypnúť automatické kliknutia? Zvýrazniť objekt so zameraním klávesnice Žiadna akcia (pozastaviť) +Ak chcete stiahnuť , skontrolujte pripojenie k sieti K pokusu o stiahnutie dôjde neskôr. Než sa sťahovanie dokončí, reč bude odosielaná na spracovanie Googlu. aktivované Alt + Hľadať alebo Shift @@ -621,6 +623,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Spustiť skryté titulky Nesprávny kód PIN Odblokujte ďalšie funkcie Asistenta. +Prispôsobiť Zobraziť ďalší mesiac Bola pripojená iná klávesnica Odomknutý @@ -804,6 +807,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Odmietnuť Bol zmenený jazyk. Rozšírenie obrazovky na displej +Súbor sa nedá stiahnuť Lupa na celú obrazovku Zariadenie USB-C (port vpravo) vyžaduje, aby ste zariadenie aktualizovali do stanoveného termínu @@ -817,6 +821,8 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Sila signálu , batéria telefónu Kontroluje sa stiahnutý súbor Prebieha prenášanie do zariadenia + +Nová inštalácia Požiadajte o to správcu Pripojenie eSIM nie je k dispozícii {0,plural, =1{Aktualizujte zariadenie do hodiny}few{Aktualizujte zariadenie do # hodín}many{Aktualizujte zariadenie do # hodiny}other{Aktualizujte zariadenie do # hodín}} @@ -848,6 +854,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Napájanie Pripojené,  % batérie + +PREJSŤ DO NASTAVENÍ Presadzuje váš správca Trasovanie výkonnosti je zapnuté Plocha bola odstránená a zlúčená s plochou @@ -983,6 +990,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Klepnutím spustíte konfiguráciu VPN Pridať novú mobilnú sieť +SKÚSIŤ ZNOVA {NUM_NOTIFICATIONS,plural, =1{1 upozornenie}few{# upozornenia}many{# notifications}other{# upozornení}} Vystrihnúť Zobraziť aplikácie na poličke @@ -1169,6 +1177,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. HSPA Práve sa používa Ak chcete vykonať akciu s upozornením, odomknite zariadenie ako +SPRAVOVAŤ PRIESTOR Zadajte prístupový kód rodiča Family Link. celá obrazovka Otvoriť nastavenia siete @@ -1214,6 +1223,7 @@ Na začiatok môžete vyskúšať niektoré z týchto vecí. Čo mám v kalendári? Odoslať spätnú väzbu Odmietnuť +Nie je dostatok priestoru na súbor . Uvoľnite miesto. Zobrazujú sa výsledky () pre Na šírku Okno bolo zatvorené. diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 5ca0c5058e28de..08ec21ba69fab7 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb @@ -815,6 +815,7 @@ Tu je nekaj stvari, ki jih lahko poskusite za začetek. Ne moti Emodžiji Moč signala je , stanje baterije telefona je +Pregledovanje prenosa: Predvajanje v napravi Vprašajte skrbnika Povezava prek kartice eSIM ni na voljo diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb index fac0c47219b107..0ddd99da54b595 100644 --- a/ash/strings/ash_strings_sr-Latn.xtb +++ b/ash/strings/ash_strings_sr-Latn.xtb @@ -192,6 +192,7 @@ Evo nekoliko stvari koje možete da probate za početak. Radna površina 7 Snimanje ekrana nije dozvoljeno kada je vidljiv zaštićeni sadržaj Skeniranje uređaja... +Došlo je do problema pri preuzimanju fajla Bluetooth je onemogućen Odjavi sve Aplikacija koristi mikrofon @@ -587,6 +588,7 @@ Evo nekoliko stvari koje možete da probate za početak. Želite li stvarno da isključite automatske klikove? Istakni objekat pomoću fokusa tastature Ništa se ne preduzima (pauziranje) +Proverite mrežnu vezu da biste preuzeli Probaćemo preuzimanje kasnije. Govor će biti poslat Google-u radi obrade dok se preuzimanje ne završi. aktivirano Alt + taster za pretragu ili Shift @@ -804,6 +806,7 @@ Evo nekoliko stvari koje možete da probate za početak. Odbij Jezik je promenjen Proširivanje ekrana u +Preuzimanje fajla nije uspelo Lupa za ceo ekran Uređaj sa USB priključkom tipa C (desni port) traži da ažurirate pre isteka roka @@ -816,6 +819,8 @@ Evo nekoliko stvari koje možete da probate za početak. Emodžiji Jačina signala , baterija telefona Prebacuje se na + +Novo instaliranje Pitajte administratora eSIM veza nije dostupna {0,plural, =1{Ažurirajte uređaj u roku od jednog sata}one{Ažurirajte uređaj u roku od # sata}few{Ažurirajte uređaj u roku od # sata}other{Ažurirajte uređaj u roku od # sati}} @@ -847,6 +852,7 @@ Evo nekoliko stvari koje možete da probate za početak. Energija Povezano, nivo baterije je % + +IDI U PODEŠAVANJA Primenjuje administrator Praćenje učinka je uključeno Radna površina je uklonjena i spojena sa radnom površinom @@ -982,6 +988,7 @@ Evo nekoliko stvari koje možete da probate za početak. Dodirnite da biste konfigurisali VPN Dodajte novu mobilnu mrežu +PROBAJ PONOVO {NUM_NOTIFICATIONS,plural, =1{1 obaveštenje}one{# obaveštenje}few{# obaveštenja}other{# obaveštenja}} Iseci Prikaži aplikacije na polici @@ -1168,6 +1175,7 @@ Evo nekoliko stvari koje možete da probate za početak. HSPA Koristi se Otključajte uređaj pomoću ID-a prijavljivanja da biste dobili obaveštenje +UPRAVLJAJTE MEMORIJSKIM PROSTOROM Unesite pristupni kôd roditelja za Family Link. ceo ekran Otvorite podešavanja za @@ -1213,6 +1221,7 @@ Evo nekoliko stvari koje možete da probate za početak. Šta je u kalendaru? Pošalji povratne informacije Odbij +Nema dovoljno prostora za . Oslobodite prostor. Prikazuju se rezultati () za: Horizontalno Prozor je zatvoren. diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 7243b332c6de9f..13d564e7ffd1d9 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb @@ -192,6 +192,7 @@ Радна површина 7 Снимање екрана није дозвољено када је видљив заштићени садржај Скенирање уређаја... +Дошло је до проблема при преузимању фајла Bluetooth је онемогућен Одјави све Апликација користи микрофон @@ -587,6 +588,7 @@ Желите ли стварно да искључите аутоматске кликове? Истакни објекат помоћу фокуса тастатуре Ништа се не предузима (паузирање) +Проверите мрежну везу да бисте преузели Пробаћемо преузимање касније. Говор ће бити послат Google-у ради обраде док се преузимање не заврши. активирано Alt + тастер за претрагу или Shift @@ -804,6 +806,7 @@ Одбиј Језик је промењен Проширивање екрана у +Преузимање фајла није успело Лупа за цео екран Уређај са USB прикључком типа C (десни порт) тражи да ажурирате пре истека рока @@ -816,6 +819,8 @@ Емоџији Јачина сигнала , батерија телефона Пребацује се на + +Ново инсталирање Питајте администратора eSIM веза није доступна {0,plural, =1{Ажурирајте уређај у року од једног сата}one{Ажурирајте уређај у року од # сата}few{Ажурирајте уређај у року од # сата}other{Ажурирајте уређај у року од # сати}} @@ -847,6 +852,7 @@ Енергија Повезано, ниво батерије је % + +ИДИ У ПОДЕШАВАЊА Примењује администратор Праћење учинка је укључено Радна површина је уклоњена и спојена са радном површином @@ -982,6 +988,7 @@ Додирните да бисте конфигурисали VPN Додајте нову мобилну мрежу +ПРОБАЈ ПОНОВО {NUM_NOTIFICATIONS,plural, =1{1 обавештење}one{# обавештење}few{# обавештења}other{# обавештења}} Исеци Прикажи апликације на полици @@ -1168,6 +1175,7 @@ HSPA Користи се Откључајте уређај помоћу ИД-а пријављивања да бисте добили обавештење +УПРАВЉАЈТЕ МЕМОРИЈСКИМ ПРОСТОРОМ Унесите приступни кôд родитеља за Family Link. цео екран Отворите подешавања за @@ -1213,6 +1221,7 @@ Шта је у календару? Пошаљи повратне информације Одбиј +Нема довољно простора за . Ослободите простор. Приказују се резултати () за: Хоризонтално Прозор је затворен. diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index bb8fa72788c68a..35f01d1f33648a 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb @@ -192,6 +192,7 @@ డెస్క్ 7 గోప్యమైన కంటెంట్ కనిపించినప్పుడు స్క్రీన్ రికార్డింగ్ అనుమతించబడదు పరికరాల కోసం స్కాన్ చేస్తోంది... +‌ను డౌన్‌లోడ్ చేస్తున్నప్పుడు ఏదో తప్పు జరిగింది బ్లూటూత్‌ నిలిపివేయబడింది అన్నీ సైన్అవుట్ చేయి ఒక యాప్ మీ మైక్రోఫోన్‌ను ఉపయోగిస్తోంది @@ -588,6 +589,7 @@ ఆటోమేటిక్ క్లిక్‌లను మీరు ఖచ్చితంగా ఆఫ్ చేయాలనుకుంటున్నారా? కీబోర్డ్ దృష్టి కేంద్రీకరణతో అంశాన్ని హైలైట్ చేయి చర్య వద్దు (పాజ్ చేయి) +‌ను డౌన్‌లోడ్ చేయడానికి మీ నెట్‌వర్క్ కనెక్షన్‌ను చెక్ చేయండి మీ డౌన్‌లోడ్ తర్వాత మళ్లీ ప్రారంభమవుతుంది. డౌన్‌లోడ్ పూర్తయ్యే వరకు, ప్రాసెసింగ్ కోసం స్పీచ్ Googleకు పంపబడుతుంది. యాక్టివేట్ చేయబడింది Alt+Search లేదా Shift @@ -805,6 +807,7 @@ తిరస్కరించు భాష మార్చబడింది కు స్క్రీన్‌ను విస్తరిస్తోంది +ఫైల్‌ను డౌన్‌లోడ్ చేయలేకపోయింది పూర్తి స్క్రీన్‌ మాగ్నిఫైయర్ USB-C పరికరం (కుడి పోర్ట్) గడువుకు ముందే ఈ ను అప్‌డేట్ చేయమని మిమ్మల్ని కోరుతోంది @@ -816,7 +819,10 @@ అంతరాయం వద్దు ఎమోజిలు సిగ్నల్ సామర్థ్యం , ఫోన్ బ్యాటరీ +డౌన్‌లోడ్ చేయడానికి ను స్కాన్ చేస్తోంది కు ప్రసారం చేస్తున్నారు + +కొత్తగా ఇన్‌స్టాల్ చేయబడింది నిర్వాహకుడిని అడగండి eSIM కనెక్షన్ అందుబాటులో లేదు {0,plural, =1{ఒక గంట లోపు పరికరాన్ని అప్‌డేట్ చేయండి}other{# గంటల లోపు పరికరాన్ని అప్‌డేట్ చేయండి}} @@ -848,6 +854,7 @@ పవర్ కనెక్ట్ చేయబడింది, % బ్యాటరీ ఉంది + +సెట్టింగ్‌లకు వెళ్లండి మీ నిర్వాహకుని ద్వారా అమలు చేయబడింది పనితీరు స్థితిగతి కనుగొనడం ఆన్‌లో ఉంది "" డెస్క్ తీసివేసి, "" డెస్క్‌తో విలీనం చేయబడింది @@ -983,6 +990,7 @@ కాన్ఫిగర్ చేయడానికి నొక్కండి VPN కొత్త సెల్యులర్ నెట్‌వర్క్‌ను జోడించు +మళ్లీ ట్రై చేయండి {NUM_NOTIFICATIONS,plural, =1{1 నోటిఫికేషన్‌}other{# నోటిఫికేషన్‌లు}} కత్తిరించు యాప్‌లను షెల్ఫ్‌లో చూపించు @@ -1169,6 +1177,7 @@ HSPA ఉపయోగిస్తోంది నోటిఫికేషన్ చర్యను నిర్వహించడానికి గా పరికరాన్ని అన్‌లాక్ చేయండి +స్టోరేజ్‌ను మేనేజ్ చేయండి Family Link తల్లిదండ్రుల యాక్సెస్ కోడ్‌ను నమోదు చేయండి. పూర్తి స్క్రీన్ సెట్టింగ్‌లను తెరవండి @@ -1214,6 +1223,7 @@ నా క్యాలెండర్‌లో ఏమి ఉన్నాయి? ఫీడ్‌బ్యాక్ పంపండి తిరస్కరించు + కోసం తగినంత స్పేస్ లేదు. స్పేస్‌ను ఖాళీ చేయండి. కోసం ఫలితాలను ప్రదర్శిస్తోంది సమతలదిశ విండో మూసివేయబడింది. diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index 7cbccb76dcb56e..e44212e77434cb 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb @@ -192,6 +192,7 @@ Робочий стіл 7 Запис екрана заборонено, якщо видно захищений контент Пошук пристроїв... +Під час завантаження файлу "" сталася помилка Bluetooth вимкнено Вийти з усіх Додаток використовує ваш мікрофон @@ -587,6 +588,7 @@ Вимкнути автоматичні кліки? Підсвічувати об’єкт, вибраний на клавіатурі Нічого не робити (призупинити) +Щоб завантажити файл "", перевірте з’єднання з мережею Спроба завантаження повториться пізніше. Доки завантаження не завершиться, мовлення надсилатиметься на сервери Google для обробки. активовано Alt+клавіша пошуку або Shift @@ -804,6 +806,7 @@ Відхилити Мову змінено Розширення екрана на +Не вдалося завантажити файл Лупа для всього екрана Пристрій із портом USB типу C (праворуч) вимагає, щоб ви оновили пристрій до кінцевого терміну @@ -817,6 +820,8 @@ Рівень сигналу – , рівень заряду акумулятора – Сканування завантаженого файлу "" Трансляція на пристрій "" + +Нове встановлення Зверніться до адміністратора З’єднання з eSIM-картою недоступне {0,plural, =1{Оновіть пристрій протягом години}one{Оновіть пристрій протягом # години}few{Оновіть пристрій протягом # годин}many{Оновіть пристрій протягом # годин}other{Оновіть пристрій протягом # години}} @@ -848,6 +853,7 @@ Заряд Під'єднано, акумулятор заряджено на % + +ПЕРЕЙТИ ДО НАЛАШТУВАНЬ Застосовується адміністратором Відстеження ефективності ввімкнено Робочий стіл "" видалено й об'єднано з робочим столом "" @@ -983,6 +989,7 @@ Торкніться, щоб налаштувати VPN Додати мобільну мережу +ПОВТОРИТИ {NUM_NOTIFICATIONS,plural, =1{1 cповіщення}one{# сповіщення}few{# сповіщення}many{# сповіщень}other{# сповіщення}} Вирізати Показати додатки на полиці @@ -1169,6 +1176,7 @@ HSPA Використовується: Щоб виконати дію зі сповіщенням, розблокуйте пристрій як +КЕРУВАТИ СХОВИЩЕМ Введіть батьківський код доступу Family Link. усього екрана Відкрити налаштування @@ -1214,6 +1222,7 @@ Які події заплановано? Надіслати відгук Відхилити +Недостатньо місця для файлу "". Очистьте пам’ять. Показано результати () для запиту "" Альбомна Вікно закрито. diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb index f7a287ec29953a..4d7d47ae619f7f 100644 --- a/ash/strings/ash_strings_ur.xtb +++ b/ash/strings/ash_strings_ur.xtb @@ -815,6 +815,7 @@ ڈسٹرب نہ کریں ایموجیز سگنل کی مضبوطی ، فون کی بیٹری +اسکین ہونے والی کو ڈاؤن لوڈ کریں پر کاسٹ کیا جا رہا ہے منتظم سے پوچھیں ‏eSIM کنکشن دستیاب نہیں ہے diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 4d15e8b99beb4d..92dcd5739666bd 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb @@ -35,6 +35,7 @@ Dưới đây là một số việc bạn có thể thử để bắt đầu.Cuộn Tạm dừng Xóa +Hãy nhập mật khẩu hoặc mã PIN để tăng cường bảo mật Nhấn vào vị trí bất kỳ để chụp toàn màn hình Trung tâm thông báo Thiết bị cần quay lại phiên bản trước @@ -338,6 +339,7 @@ Dưới đây là một số việc bạn có thể thử để bắt đầu.Đã chuyển sang chế độ máy tính xách tay vẫn có thể đăng nhập vào lúc khác. Mã dành cho cha mẹ không chính xác +Chụp ảnh màn hình, các công cụ để chụp ảnh màn hình và ghi màn hình Đã chụp ảnh màn hình Chụp ảnh màn hình Bạn hiện đang truyền màn hình. @@ -394,6 +396,7 @@ Dưới đây là một số việc bạn có thể thử để bắt đầu.Đã kết nối màn hình Braille. Bật chế độ dữ liệu di động tức là cũng bật Bluetooth Đã di chuyển trình đơn vào góc trên cùng bên phải màn hình. +Cài đặt tính năng Chụp ảnh màn hình Thiết bị vào Cài đặt âm thanh Độ sáng @@ -492,6 +495,7 @@ Dưới đây là một số việc bạn có thể thử để bắt đầu.Quản trị viên của thiết bị này có thể: Phím tắt Ctrl + Alt + Mũi tên xuống đã thay đổi. Để sử dụng phím End, hãy nhấn tổ hợp phím + Mũi tên phải. Đang phản chiếu +Hãy nhập mật khẩu để tăng cường bảo mật Bỏ ghim Bật/tắt vị trí thanh công cụ Xin chào ! @@ -761,6 +765,7 @@ Dưới đây là một số việc bạn có thể thử để bắt đầu.Máy tính của bạn có thể phát hiện thiết bị Bluetooth gần đó và hiện thị dưới tên "" với địa chỉ là Đã tải tệp mã chuyển lời nói thành văn bản xuống . +Xác nhận tải xuống Bạn không thể dùng Trợ lý Google trong phiên khách. Tìm kiếm trong thiết bị, ứng dụng, tùy chọn cài đặt và trên web. Mở hộp thoại xóa tài khoản cho diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index f1da183f5259f8..1b5a8272566ba3 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb @@ -815,6 +815,7 @@ Nazi ezinye zezinto ongazama ukuziqalisa. Ungaphazamisi Ama-emoji Amandla esignali , Ibhethri lefoni +Ukudawuniloda kuskena i- Ukusakaza ku- Buza umlawuli uxhumo lwe-eSIM alutholakali diff --git a/ash/system/accessibility/autoclick_menu_bubble_controller.cc b/ash/system/accessibility/autoclick_menu_bubble_controller.cc index 2e99aa88a7aa6e..28e856e74f79cd 100644 --- a/ash/system/accessibility/autoclick_menu_bubble_controller.cc +++ b/ash/system/accessibility/autoclick_menu_bubble_controller.cc @@ -4,6 +4,7 @@ #include "ash/system/accessibility/autoclick_menu_bubble_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" @@ -155,7 +156,7 @@ void AutoclickMenuBubbleController::ShowBubble(AutoclickEventType type, kCollisionWindowWorkAreaInsetsDp, kCollisionWindowWorkAreaInsetsDp); init_params.preferred_width = kAutoclickMenuWidth; - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; bubble_view_ = new TrayBubbleView(init_params); diff --git a/ash/system/accessibility/autoclick_scroll_bubble_controller.cc b/ash/system/accessibility/autoclick_scroll_bubble_controller.cc index 2bf2d668bfe163..184beb85d10e34 100644 --- a/ash/system/accessibility/autoclick_scroll_bubble_controller.cc +++ b/ash/system/accessibility/autoclick_scroll_bubble_controller.cc @@ -4,6 +4,7 @@ #include "ash/system/accessibility/autoclick_scroll_bubble_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" @@ -39,7 +40,7 @@ bool comparePositions(Position first, Position second) { } } // namespace -AutoclickScrollBubbleController::AutoclickScrollBubbleController() {} +AutoclickScrollBubbleController::AutoclickScrollBubbleController() = default; AutoclickScrollBubbleController::~AutoclickScrollBubbleController() { if (bubble_widget_ && !bubble_widget_->IsClosed()) @@ -67,7 +68,7 @@ void AutoclickScrollBubbleController::SetScrollPosition( // Adjust the insets to be the same on all sides, so that when the bubble // lays out it isn't too close on the top or bottom. bubble_view_->UpdateInsets( - gfx::Insets(kUnifiedMenuPadding, kUnifiedMenuPadding)); + gfx::Insets(kBubbleMenuPadding, kBubbleMenuPadding)); aura::Window* window = Shell::GetPrimaryRootWindow(); gfx::Rect work_area = @@ -153,7 +154,7 @@ void AutoclickScrollBubbleController::SetScrollPosition( set_scroll_rect_ = !positions.empty(); if (!set_scroll_rect_) { bubble_view_->UpdateInsets(gfx::Insets( - 0, kUnifiedMenuPadding, kUnifiedMenuPadding, kUnifiedMenuPadding)); + 0, kBubbleMenuPadding, kBubbleMenuPadding, kBubbleMenuPadding)); UpdateAnchorRect(menu_bubble_rect_, menu_bubble_alignment_); return; } @@ -197,12 +198,12 @@ void AutoclickScrollBubbleController::ShowBubble( // The widget's shadow is drawn below and on the sides of the scroll view. // Do not inset the top, so that when the scroll bubble is shown below the // menu bubble it lays out directly below the menu bubble's shadow, at a - // height of kUnifiedMenuPadding. - init_params.insets = gfx::Insets(0, kUnifiedMenuPadding, kUnifiedMenuPadding, - kUnifiedMenuPadding); + // height of kBubbleMenuPadding. + init_params.insets = gfx::Insets(0, kBubbleMenuPadding, kBubbleMenuPadding, + kBubbleMenuPadding); init_params.preferred_width = kAutoclickScrollMenuSizeDips; init_params.max_height = kAutoclickScrollMenuSizeDips; - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; bubble_view_ = new AutoclickScrollBubbleView(init_params); diff --git a/ash/system/accessibility/floating_accessibility_controller.cc b/ash/system/accessibility/floating_accessibility_controller.cc index 74daa8880075a2..1264efdef7fd82 100644 --- a/ash/system/accessibility/floating_accessibility_controller.cc +++ b/ash/system/accessibility/floating_accessibility_controller.cc @@ -5,6 +5,7 @@ #include "ash/system/accessibility/floating_accessibility_controller.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" @@ -68,7 +69,7 @@ void FloatingAccessibilityController::Show(FloatingMenuPosition position) { init_params.insets = gfx::Insets(0, kCollisionWindowWorkAreaInsetsDp, kCollisionWindowWorkAreaInsetsDp, kCollisionWindowWorkAreaInsetsDp); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.max_height = kFloatingMenuHeight; init_params.translucent = true; diff --git a/ash/system/accessibility/floating_accessibility_detailed_controller.cc b/ash/system/accessibility/floating_accessibility_detailed_controller.cc index 2ab6461c6b3071..6592e5907386d9 100644 --- a/ash/system/accessibility/floating_accessibility_detailed_controller.cc +++ b/ash/system/accessibility/floating_accessibility_detailed_controller.cc @@ -4,6 +4,7 @@ #include "ash/system/accessibility/floating_accessibility_detailed_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" @@ -73,10 +74,10 @@ void FloatingAccessibilityDetailedController::Show( Shell::GetPrimaryRootWindow(), kShellWindowId_SettingBubbleContainer); init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.anchor_rect = anchor_rect; - init_params.insets = gfx::Insets(0, kUnifiedMenuPadding, kUnifiedMenuPadding, - kUnifiedMenuPadding); + init_params.insets = gfx::Insets(0, kBubbleMenuPadding, kBubbleMenuPadding, + kBubbleMenuPadding); init_params.close_on_deactivate = false; - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; diff --git a/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc b/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc index 1dd43ebad93845..bcfb94e3402f02 100644 --- a/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc +++ b/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc @@ -5,6 +5,7 @@ #include "ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" @@ -47,8 +48,8 @@ void SelectToSpeakMenuBubbleController::Show(const gfx::Rect& anchor, kShellWindowId_AccessibilityBubbleContainer); init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.is_anchored_to_status_area = false; - init_params.insets = gfx::Insets(kUnifiedMenuPadding, kUnifiedMenuPadding); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.insets = gfx::Insets(kBubbleMenuPadding, kBubbleMenuPadding); + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; init_params.preferred_width = kPreferredWidth; diff --git a/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc b/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc index 2ec22621ca1aa6..668ed2d1659697 100644 --- a/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc +++ b/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc @@ -5,6 +5,7 @@ #include "ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/accessibility_controller_enums.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" @@ -51,7 +52,7 @@ void SelectToSpeakSpeedBubbleController::Show(views::View* anchor_view, init_params.anchor_view = anchor_view; init_params.is_anchored_to_status_area = false; init_params.margin = gfx::Insets(kBubbleViewMargin, kBubbleViewMargin); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; init_params.close_on_deactivate = false; diff --git a/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc b/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc index dc698d946aa1a7..2095c00c40962b 100644 --- a/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc +++ b/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc @@ -4,6 +4,7 @@ #include "ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" #include "ash/system/accessibility/switch_access/switch_access_back_button_bubble_controller.h" @@ -45,8 +46,8 @@ void SwitchAccessMenuBubbleController::ShowMenu( kShellWindowId_AccessibilityBubbleContainer); init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.is_anchored_to_status_area = false; - init_params.insets = gfx::Insets(kUnifiedMenuPadding, kUnifiedMenuPadding); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.insets = gfx::Insets(kBubbleMenuPadding, kBubbleMenuPadding); + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; bubble_view_ = new TrayBubbleView(init_params); @@ -54,7 +55,7 @@ void SwitchAccessMenuBubbleController::ShowMenu( menu_view_ = new SwitchAccessMenuView(); menu_view_->SetBorder( - views::CreateEmptyBorder(gfx::Insets(kUnifiedMenuPadding))); + views::CreateEmptyBorder(gfx::Insets(kBubbleMenuPadding))); bubble_view_->AddChildView(menu_view_); menu_view_->SetPaintToLayer(); @@ -96,7 +97,7 @@ void SwitchAccessMenuBubbleController::ShowMenu( // The resting bounds includes padding on each side of the menu. // Remove that before passing to the back button controller so the back button // appears in the correct position. - resting_bounds.Inset(kUnifiedMenuPadding, kUnifiedMenuPadding); + resting_bounds.Inset(kBubbleMenuPadding, kBubbleMenuPadding); back_button_controller_->ShowBackButton(resting_bounds, /*show_focus_ring=*/false, /*for_menu=*/true); diff --git a/ash/system/accessibility/switch_access/switch_access_menu_view.cc b/ash/system/accessibility/switch_access/switch_access_menu_view.cc index f23b59a8668c89..16b934ca7591cd 100644 --- a/ash/system/accessibility/switch_access/switch_access_menu_view.cc +++ b/ash/system/accessibility/switch_access/switch_access_menu_view.cc @@ -5,6 +5,7 @@ #include "ash/system/accessibility/switch_access/switch_access_menu_view.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" @@ -238,13 +239,13 @@ void SwitchAccessMenuView::SetActions(std::vector actions) { views::GridLayout* layout = SetLayoutManager(std::make_unique()); views::ColumnSet* columns = layout->AddColumnSet(0); - columns->AddPaddingColumn(0 /* resize_percent */, kUnifiedMenuPadding); + columns->AddPaddingColumn(0 /* resize_percent */, kBubbleMenuPadding); for (int i = 0; i < kMaxColumns; i++) { columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER, 0, /* resize_percent */ views::GridLayout::ColumnSize::kFixed, SwitchAccessMenuButton::kWidthDip, 0); - columns->AddPaddingColumn(0 /* resize_percent */, kUnifiedMenuPadding); + columns->AddPaddingColumn(0 /* resize_percent */, kBubbleMenuPadding); } int button_count = 0; @@ -256,19 +257,19 @@ void SwitchAccessMenuView::SetActions(std::vector actions) { // If this is the first button of a new row, tell the layout to start a // new row. if (button_count % kMaxColumns == 0) - layout->StartRowWithPadding(0, 0, 0, kUnifiedMenuPadding); + layout->StartRowWithPadding(0, 0, 0, kBubbleMenuPadding); layout->AddView(std::make_unique(action, *info.icon, info.label_id)); button_count++; } - layout->AddPaddingRow(0, kUnifiedMenuPadding); + layout->AddPaddingRow(0, kBubbleMenuPadding); InvalidateLayout(); } int SwitchAccessMenuView::GetBubbleWidthDip() const { // In the future this will vary with the number of menu items displayed. return (kMaxColumns * SwitchAccessMenuButton::kWidthDip) + - ((kMaxColumns - 1) * kUnifiedMenuPadding) + + ((kMaxColumns - 1) * kBubbleMenuPadding) + kUnifiedMenuItemPadding.left() + kUnifiedMenuItemPadding.right(); } diff --git a/ash/system/holding_space/holding_space_tray_child_bubble.cc b/ash/system/holding_space/holding_space_tray_child_bubble.cc index 7bb013e52a507d..1e996128fe645b 100644 --- a/ash/system/holding_space/holding_space_tray_child_bubble.cc +++ b/ash/system/holding_space/holding_space_tray_child_bubble.cc @@ -6,13 +6,13 @@ #include +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/holding_space/holding_space_constants.h" #include "ash/public/cpp/style/color_provider.h" #include "ash/style/ash_color_provider.h" #include "ash/system/holding_space/holding_space_item_views_section.h" #include "ash/system/holding_space/holding_space_util.h" #include "ash/system/holding_space/holding_space_view_delegate.h" -#include "ash/system/tray/tray_constants.h" #include "base/bind.h" #include "ui/compositor/callback_layer_animation_observer.h" #include "ui/compositor/layer.h" @@ -135,8 +135,7 @@ void HoldingSpaceTrayChildBubble::Init() { layer()->SetFillsBoundsOpaquely(false); layer()->SetIsFastRoundedCorner(true); layer()->SetOpacity(0.f); - layer()->SetRoundedCornerRadius( - gfx::RoundedCornersF{kUnifiedTrayCornerRadius}); + layer()->SetRoundedCornerRadius(gfx::RoundedCornersF{kBubbleCornerRadius}); // Sections. for (auto& section : CreateSections()) { diff --git a/ash/system/message_center/unified_message_center_bubble.cc b/ash/system/message_center/unified_message_center_bubble.cc index 5224e313ccacfd..f2c1abce90c716 100644 --- a/ash/system/message_center/unified_message_center_bubble.cc +++ b/ash/system/message_center/unified_message_center_bubble.cc @@ -7,6 +7,7 @@ #include #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/constants/ash_features.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" @@ -58,7 +59,7 @@ class UnifiedMessageCenterBubble::Border : public ui::LayerDelegate { flags.setStyle(cc::PaintFlags::kStroke_Style); flags.setStrokeWidth(canvas->image_scale()); flags.setAntiAlias(true); - canvas->DrawRoundRect(bounds, kUnifiedTrayCornerRadius, flags); + canvas->DrawRoundRect(bounds, kBubbleCornerRadius, flags); } void OnDeviceScaleFactorChanged(float old_device_scale_factor, @@ -102,7 +103,7 @@ void UnifiedMessageCenterBubble::ShowBubble() { ui::Layer* widget_layer = bubble_widget_->GetLayer(); if (!features::IsNotificationsRefreshEnabled()) { - float radius = kUnifiedTrayCornerRadius; + float radius = kBubbleCornerRadius; widget_layer->SetRoundedCornerRadius({radius, radius, radius, radius}); widget_layer->SetIsFastRoundedCorner(true); } diff --git a/ash/system/message_center/unified_message_list_view.cc b/ash/system/message_center/unified_message_list_view.cc index 0f5f737463a2a3..35c824c7133480 100644 --- a/ash/system/message_center/unified_message_list_view.cc +++ b/ash/system/message_center/unified_message_list_view.cc @@ -5,6 +5,7 @@ #include "ash/system/message_center/unified_message_list_view.h" #include +#include "ash/bubble/bubble_constants.h" #include "ash/constants/ash_features.h" #include "ash/public/cpp/metrics_util.h" #include "ash/system/message_center/ash_notification_view.h" @@ -138,8 +139,8 @@ class UnifiedMessageListView::MessageViewContainer : views::CreateSolidSidedBorder( 0, 0, kUnifiedNotificationSeparatorThickness, 0, message_center_style::kSeperatorColor)); - const int top_radius = is_top ? kUnifiedTrayCornerRadius : 0; - const int bottom_radius = is_bottom ? kUnifiedTrayCornerRadius : 0; + const int top_radius = is_top ? kBubbleCornerRadius : 0; + const int bottom_radius = is_bottom ? kBubbleCornerRadius : 0; message_view_->UpdateCornerRadius(top_radius, bottom_radius); control_view_->UpdateCornerRadius(top_radius, bottom_radius); } diff --git a/ash/system/message_center/unified_message_list_view_unittest.cc b/ash/system/message_center/unified_message_list_view_unittest.cc index e76121db3b2d69..1cf97e325f69bc 100644 --- a/ash/system/message_center/unified_message_list_view_unittest.cc +++ b/ash/system/message_center/unified_message_list_view_unittest.cc @@ -4,6 +4,7 @@ #include "ash/system/message_center/unified_message_list_view.h" +#include "ash/bubble/bubble_constants.h" #include "ash/constants/ash_features.h" #include "ash/system/message_center/message_center_constants.h" #include "ash/system/tray/tray_constants.h" @@ -305,7 +306,7 @@ TEST_P(ParameterizedUnifiedMessageListViewTest, Open) { // Check rounded corners when the feature is not enabled (when the feature is // enabled we round corners in the scroll view). if (!IsNotificationsRefreshEnabled()) - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(2)->bottom_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(2)->bottom_radius()); EXPECT_LT(0, message_list_view()->GetPreferredSize().height()); } @@ -322,8 +323,8 @@ TEST_P(ParameterizedUnifiedMessageListViewTest, AddNotifications) { // Check rounded corners when the feature is not enabled (when the feature is // enabled we round corners in the scroll view). if (!IsNotificationsRefreshEnabled()) { - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(0)->top_radius()); - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(0)->bottom_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(0)->top_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(0)->bottom_radius()); } int previous_message_list_view_height = @@ -365,7 +366,7 @@ TEST_P(ParameterizedUnifiedMessageListViewTest, AddNotifications) { // Check rounded corners when the feature is not enabled (when the feature is // enabled, we round corners in the scroll view). if (!IsNotificationsRefreshEnabled()) - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(1)->bottom_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(1)->bottom_radius()); } TEST_P(ParameterizedUnifiedMessageListViewTest, RemoveNotification) { @@ -391,8 +392,8 @@ TEST_P(ParameterizedUnifiedMessageListViewTest, RemoveNotification) { // Check rounded corners when the feature is not enabled (when the feature is // enabled, we round corners in the scroll view). if (!IsNotificationsRefreshEnabled()) { - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(0)->top_radius()); - EXPECT_EQ(kUnifiedTrayCornerRadius, GetMessageViewAt(0)->bottom_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(0)->top_radius()); + EXPECT_EQ(kBubbleCornerRadius, GetMessageViewAt(0)->bottom_radius()); } MessageCenter::Get()->RemoveNotification(id1, true /* by_user */); diff --git a/ash/system/privacy_screen/privacy_screen_toast_controller.cc b/ash/system/privacy_screen/privacy_screen_toast_controller.cc index 166e75dc5f0a15..f8096fa5606ed0 100644 --- a/ash/system/privacy_screen/privacy_screen_toast_controller.cc +++ b/ash/system/privacy_screen/privacy_screen_toast_controller.cc @@ -5,6 +5,7 @@ #include "ash/system/privacy_screen/privacy_screen_toast_controller.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" #include "ash/system/status_area_widget.h" @@ -54,7 +55,7 @@ void PrivacyScreenToastController::ShowToast() { // Decrease bottom and right insets to compensate for the adjustment of // the respective edges in Shelf::GetSystemTrayAnchorRect(). init_params.insets = GetTrayBubbleInsets(); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; diff --git a/ash/system/tray/tray_bubble_view.cc b/ash/system/tray/tray_bubble_view.cc index ab5dd5c5250ca3..0aa4834b382695 100644 --- a/ash/system/tray/tray_bubble_view.cc +++ b/ash/system/tray/tray_bubble_view.cc @@ -9,6 +9,7 @@ #include "ash/accelerators/accelerator_controller_impl.h" #include "ash/accessibility/accessibility_controller_impl.h" +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/accelerators.h" #include "ash/public/cpp/style/color_provider.h" #include "ash/shell.h" @@ -273,8 +274,7 @@ TrayBubbleView::TrayBubbleView(const InitParams& init_params) DCHECK(!init_params.has_shadow); SetPaintToLayer(ui::LAYER_SOLID_COLOR); - layer()->SetRoundedCornerRadius( - gfx::RoundedCornersF{kUnifiedTrayCornerRadius}); + layer()->SetRoundedCornerRadius(gfx::RoundedCornersF{kBubbleCornerRadius}); layer()->SetFillsBoundsOpaquely(false); layer()->SetIsFastRoundedCorner(true); layer()->SetBackgroundBlur(ColorProvider::kBackgroundBlurSigma); diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h index 6d0e662c8b71fb..311e82ceee0992 100644 --- a/ash/system/tray/tray_constants.h +++ b/ash/system/tray/tray_constants.h @@ -121,7 +121,6 @@ constexpr int kStackedNotificationBarHeight = 32; constexpr int kStackedNotificationBarCollapsedHeight = 40; constexpr int kNotificationIconStackThreshold = 28; constexpr int kUnifiedSliderViewSpacing = 12; -constexpr int kUnifiedMenuPadding = 8; constexpr int kUnifiedMessageCenterBubbleSpacing = 8; constexpr int kUnifiedNotificationCenterSpacing = 16; constexpr int kUnifiedTrayBatteryIconSize = 20; @@ -133,7 +132,6 @@ constexpr int kUnifiedTrayTimeLeftPadding = 1; constexpr int kUnifiedTraySpacingBetweenIcons = 6; constexpr int kUnifiedTrayBatteryWidth = 12; constexpr int kUnifiedTrayBatteryBottomPadding = 1; -constexpr int kUnifiedTrayCornerRadius = 16; constexpr int kUnifiedTrayContentPadding = 12; constexpr int kUnifiedTopShortcutSpacing = 16; constexpr int kUnifiedNotificationHiddenLineHeight = 20; diff --git a/ash/system/tray/tray_utils.cc b/ash/system/tray/tray_utils.cc index 6dfe54ac740ceb..62ad4bcd9439dc 100644 --- a/ash/system/tray/tray_utils.cc +++ b/ash/system/tray/tray_utils.cc @@ -6,6 +6,7 @@ #include +#include "ash/bubble/bubble_constants.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/shelf_types.h" #include "ash/shelf/shelf.h" @@ -75,8 +76,8 @@ gfx::Insets GetTrayBubbleInsets() { // Decrease bottom and right insets to compensate for the adjustment of // the respective edges in Shelf::GetSystemTrayAnchorRect(). gfx::Insets insets = gfx::Insets( - kUnifiedMenuPadding, kUnifiedMenuPadding, kUnifiedMenuPadding - 1, - kUnifiedMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); + kBubbleMenuPadding, kBubbleMenuPadding, kBubbleMenuPadding - 1, + kBubbleMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); // The work area in tablet mode always uses the in-app shelf height, which is // shorter than the standard shelf height. In this state, we need to add back @@ -127,13 +128,13 @@ gfx::Insets GetSecondaryBubbleInsets() { switch (shelf->alignment()) { case ShelfAlignment::kBottom: case ShelfAlignment::kBottomLocked: - insets.set_bottom(kUnifiedMenuPadding); + insets.set_bottom(kBubbleMenuPadding); break; case ShelfAlignment::kLeft: - insets.set_left(kUnifiedMenuPadding); + insets.set_left(kBubbleMenuPadding); break; case ShelfAlignment::kRight: - insets.set_right(kUnifiedMenuPadding); + insets.set_right(kBubbleMenuPadding); break; } return insets; diff --git a/ash/system/unified/notification_hidden_view.cc b/ash/system/unified/notification_hidden_view.cc index bdf4709b893c79..50eb6a07ce8e96 100644 --- a/ash/system/unified/notification_hidden_view.cc +++ b/ash/system/unified/notification_hidden_view.cc @@ -4,6 +4,7 @@ #include "ash/system/unified/notification_hidden_view.h" +#include "ash/bubble/bubble_constants.h" #include "ash/login/login_screen_controller.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h" @@ -52,7 +53,7 @@ NotificationHiddenView::NotificationHiddenView() views::CreateEmptyBorder(kUnifiedNotificationHiddenPadding)); container_->SetBackground(views::CreateRoundedRectBackground( - GetBackgroundColor(), kUnifiedTrayCornerRadius)); + GetBackgroundColor(), kBubbleCornerRadius)); auto* layout = container_->SetLayoutManager(std::make_unique( diff --git a/ash/system/unified/unified_slider_bubble_controller.cc b/ash/system/unified/unified_slider_bubble_controller.cc index 6aa296f6523418..3c0bf10bc0afae 100644 --- a/ash/system/unified/unified_slider_bubble_controller.cc +++ b/ash/system/unified/unified_slider_bubble_controller.cc @@ -4,6 +4,7 @@ #include "ash/system/unified/unified_slider_bubble_controller.h" +#include "ash/bubble/bubble_constants.h" #include "ash/constants/ash_features.h" #include "ash/root_window_controller.h" #include "ash/session/session_controller_impl.h" @@ -196,7 +197,7 @@ void UnifiedSliderBubbleController::ShowBubble(SliderType slider_type) { // Decrease bottom and right insets to compensate for the adjustment of // the respective edges in Shelf::GetSystemTrayAnchorRect(). init_params.insets = GetTrayBubbleInsets(); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.translucent = true; diff --git a/ash/system/unified/unified_system_tray_bubble.cc b/ash/system/unified/unified_system_tray_bubble.cc index 066d7fd8abbc75..74da71438faf76 100644 --- a/ash/system/unified/unified_system_tray_bubble.cc +++ b/ash/system/unified/unified_system_tray_bubble.cc @@ -4,6 +4,7 @@ #include "ash/system/unified/unified_system_tray_bubble.h" +#include "ash/bubble/bubble_constants.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" #include "ash/system/message_center/unified_message_center_bubble.h" @@ -82,7 +83,7 @@ UnifiedSystemTrayBubble::UnifiedSystemTrayBubble(UnifiedSystemTray* tray) init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.anchor_rect = tray->shelf()->GetSystemTrayAnchorRect(); init_params.insets = GetTrayBubbleInsets(); - init_params.corner_radius = kUnifiedTrayCornerRadius; + init_params.corner_radius = kBubbleCornerRadius; init_params.has_shadow = false; init_params.close_on_deactivate = false; init_params.reroute_event_handler = true; @@ -242,7 +243,7 @@ int UnifiedSystemTrayBubble::CalculateMaxHeight() const { WorkAreaInsets::ForWindow(tray_->shelf()->GetWindow()->GetRootWindow()); int free_space_height_above_anchor = bottom - work_area->user_work_area_bounds().y(); - return free_space_height_above_anchor - kUnifiedMenuPadding * 2; + return free_space_height_above_anchor - kBubbleMenuPadding * 2; } bool UnifiedSystemTrayBubble::FocusOut(bool reverse) { diff --git a/ash/webui/camera_app_ui/camera_app_ui.cc b/ash/webui/camera_app_ui/camera_app_ui.cc index 4a39291e316a59..0689aed502e42a 100644 --- a/ash/webui/camera_app_ui/camera_app_ui.cc +++ b/ash/webui/camera_app_ui/camera_app_ui.cc @@ -206,8 +206,6 @@ CameraAppUI::CameraAppUI(content::WebUI* web_ui, allowlist->RegisterAutoGrantedPermission(host_origin, ContentSettingsType::IDLE_DETECTION); - delegate_->SetLaunchDirectory(); - window()->SetProperty(kMinimizeOnBackKey, false); // Set up the data source. diff --git a/ash/webui/camera_app_ui/camera_app_ui_delegate.h b/ash/webui/camera_app_ui/camera_app_ui_delegate.h index 640e658ac319ee..65ddd3cd241f5f 100644 --- a/ash/webui/camera_app_ui/camera_app_ui_delegate.h +++ b/ash/webui/camera_app_ui/camera_app_ui_delegate.h @@ -33,10 +33,6 @@ class CameraAppUIDelegate { virtual ~CameraAppUIDelegate() = default; - // Sets Downloads folder as launch directory by File Handling API so that we - // can get the handle on the app side. - virtual void SetLaunchDirectory() = 0; - // Takes a WebUIDataSource, and adds load time data into it. virtual void PopulateLoadTimeData(content::WebUIDataSource* source) = 0; diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_kk.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_kk.xtb index e0fe8172d3a7b3..4c373b11a6e75b 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_kk.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_kk.xtb @@ -22,6 +22,7 @@ КІДІРТІЛДІ файлы экспортталмады. Фотосурет ажыратымдылығы +Галереяға өту QR коды Таймер ұзақтығы Портреттік diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb index 58b91d06883e19..82f8411da68f90 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_mk.xtb @@ -66,7 +66,7 @@ Копирај текст Паузирај го снимањето Откриен е документ -Копирај адреса на врска +Копирај ја адресата на линкот Отсликување Префрли на фотографирање во квадратна форма Евиденција за изведба на печатењето diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb index a3884f56f6418b..cfe4861f5bc148 100644 --- a/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb +++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_vi.xtb @@ -22,6 +22,7 @@ ĐÃ TẠM DỪNG Không thể xuất Độ phân giải của ảnh +Truy cập Thư viện Mã QR Thời lượng bộ hẹn giờ Khổ dọc diff --git a/ash/webui/shimless_rma/resources/calibration_component_chip.html b/ash/webui/shimless_rma/resources/calibration_component_chip.html index b52e653cb2b2f2..3e4a5fcf1ce324 100644 --- a/ash/webui/shimless_rma/resources/calibration_component_chip.html +++ b/ash/webui/shimless_rma/resources/calibration_component_chip.html @@ -3,48 +3,51 @@ padding: 1px; } - /* TODO(gavindodd): update colors to CrOS */ - :host([skip]) #containerButton { - background-color: lightgray; + /* TODO(gavinwill): update colors to CrOS */ + :host([checked]) #componentButton { + background-color: lightskyblue; } - :host([completed]) #containerButton { - background-color: yellowgreen; + #componentButton { + align-items: normal; + border-radius: 4px; + box-shadow: var(--cr-card-shadow); + height: 70px; + margin-bottom: 20px; + margin-inline-end: 10px; + width: 190px; } - :host([failed]) #containerButton { - background-color: IndianRed; + #labelDiv { + color: grey; + flex-basis: 155px; + margin-bottom: auto; + margin-top: auto; + padding-inline-start: 20px; } - #containerDiv { - height: 40px; - width: 180px; + :host([checked]) #labelDiv { + color: blue; } - #containerButton { - border-radius: 10px; - box-shadow: 0px 2px 2px 2px #bbb; - height: 40px; - width: 180px; + #checkIcon { + margin-top: 6px; } - .icon-top-right { - height: 15px; - position: relative; - right: 20px; - top: -5px; - width: 15px; + #infoIcon { + fill: red; + margin-inline-end: 5px; } -
- + +
+ [[componentName]] - - - - +
[[componentId]]
+
+ -
+ diff --git a/ash/webui/shimless_rma/resources/calibration_component_chip.js b/ash/webui/shimless_rma/resources/calibration_component_chip.js index 6dd421ae94e87a..547025b9738f11 100644 --- a/ash/webui/shimless_rma/resources/calibration_component_chip.js +++ b/ash/webui/shimless_rma/resources/calibration_component_chip.js @@ -30,13 +30,7 @@ export class CalibrationComponentChipElement extends PolymerElement { static get properties() { return { /** @type {boolean} */ - disabled: { - type: Boolean, - value: false, - }, - - /** @type {boolean} */ - skip: { + checked: { notify: true, reflectToAttribute: true, type: Boolean, @@ -44,32 +38,16 @@ export class CalibrationComponentChipElement extends PolymerElement { }, /** @type {boolean} */ - completed: { - notify: true, - reflectToAttribute: true, - type: Boolean, - value: false, - }, - - /** @type {boolean} */ - failed: { - notify: true, - reflectToAttribute: true, - type: Boolean, - value: false, - }, + failed: {type: Boolean, value: false}, /** @type {string} */ componentName: {type: String, value: ''}, - - /** @type {string} */ - componentStatus: {type: String, value: ''} }; } /** @protected */ onComponentButtonClicked_() { - this.skip = !this.skip; + this.checked = !this.checked; } click() { diff --git a/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.html b/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.html index ef85af925265e5..d08b98a80b139d 100644 --- a/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.html +++ b/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.html @@ -32,7 +32,6 @@

[[i18n('rsuCodePageTitleText')]]

[[i18n('calibrationFailedTitleText')]]
diff --git a/ash/webui/shimless_rma/resources/reimaging_calibration_failed_page.js b/ash/webui/shimless_rma/resources/reimaging_calibration_failed_page.js index 73685624d64456..3330122844d516 100644 --- a/ash/webui/shimless_rma/resources/reimaging_calibration_failed_page.js +++ b/ash/webui/shimless_rma/resources/reimaging_calibration_failed_page.js @@ -31,10 +31,8 @@ import {CalibrationComponentStatus, CalibrationStatus, ComponentType, ShimlessRm * component: !ComponentType, * id: string, * name: string, - * skip: boolean, - * completed: boolean, + * checked: boolean, * failed: boolean, - * disabled: boolean * }} */ let ComponentCheckbox; @@ -93,23 +91,15 @@ export class ReimagingCalibrationFailedPage extends return; } - /** @type {!Array} */ - const componentList = []; - result.components.forEach(item => { - const component = assert(item.component); - - componentList.push({ + this.componentCheckboxes_ = result.components.map(item => { + return { component: item.component, id: ComponentTypeToId[item.component], name: this.i18n(ComponentTypeToId[item.component]), - skip: item.status === CalibrationStatus.kCalibrationSkip, - completed: item.status === CalibrationStatus.kCalibrationComplete, + checked: false, failed: item.status === CalibrationStatus.kCalibrationFailed, - disabled: item.status === CalibrationStatus.kCalibrationComplete || - item.status === CalibrationStatus.kCalibrationInProgress - }); + }; }); - this.componentCheckboxes_ = componentList; }); } @@ -119,16 +109,12 @@ export class ReimagingCalibrationFailedPage extends */ getComponentsList_() { return this.componentCheckboxes_.map(item => { - /** @type {!CalibrationStatus} */ - let status = CalibrationStatus.kCalibrationWaiting; - if (item.skip) { - status = CalibrationStatus.kCalibrationSkip; - } else if (item.completed) { - status = CalibrationStatus.kCalibrationComplete; - } else if (item.disabled) { - status = CalibrationStatus.kCalibrationInProgress; - } - return {component: item.component, status: status, progress: 0.0}; + return { + component: item.component, + status: item.checked ? CalibrationStatus.kCalibrationWaiting : + CalibrationStatus.kCalibrationSkip, + progress: 0.0 + }; }); } diff --git a/ash/webui/shimless_rma/resources/wrapup_finalize_page.html b/ash/webui/shimless_rma/resources/wrapup_finalize_page.html index a5d9a1be22d136..b8c5bbf7bdc75c 100644 --- a/ash/webui/shimless_rma/resources/wrapup_finalize_page.html +++ b/ash/webui/shimless_rma/resources/wrapup_finalize_page.html @@ -1,13 +1,19 @@ - +

[[i18n('finalizePageTitleText')]]

-
-

[[finalizationMessage_]]

+
+ + +
diff --git a/ash/webui/shimless_rma/resources/wrapup_finalize_page.js b/ash/webui/shimless_rma/resources/wrapup_finalize_page.js index 21626a1251d752..f6ea4b98cc7d25 100644 --- a/ash/webui/shimless_rma/resources/wrapup_finalize_page.js +++ b/ash/webui/shimless_rma/resources/wrapup_finalize_page.js @@ -74,12 +74,7 @@ export class WrapupFinalizePage extends WrapupFinalizePageBase { * @param {number} progress */ onFinalizationUpdated(status, progress) { - if (status === FinalizationStatus.kInProgress) { - this.finalizationMessage_ = this.i18n( - finalizationStatusTextKeys[status], Math.round(progress * 100)); - } else { - this.finalizationMessage_ = this.i18n(finalizationStatusTextKeys[status]); - } + this.finalizationMessage_ = this.i18n(finalizationStatusTextKeys[status]); this.finalizationComplete_ = status === FinalizationStatus.kComplete || status === FinalizationStatus.kFailedNonBlocking; this.dispatchEvent(new CustomEvent( diff --git a/ash/wm/desks/templates/desks_templates_grid_view.cc b/ash/wm/desks/templates/desks_templates_grid_view.cc index a591bda9e9f342..cbe579832ef28b 100644 --- a/ash/wm/desks/templates/desks_templates_grid_view.cc +++ b/ash/wm/desks/templates/desks_templates_grid_view.cc @@ -8,9 +8,14 @@ #include #include "ash/public/cpp/shell_window_ids.h" +#include "ash/shell.h" #include "ash/wm/desks/templates/desks_templates_animations.h" #include "ash/wm/desks/templates/desks_templates_item_view.h" +#include "ash/wm/desks/templates/desks_templates_name_view.h" #include "ash/wm/desks/templates/desks_templates_presenter.h" +#include "ash/wm/overview/overview_controller.h" +#include "ash/wm/overview/overview_highlight_controller.h" +#include "ash/wm/overview/overview_session.h" #include "ui/aura/window.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/compositor/layer.h" @@ -101,6 +106,34 @@ DesksTemplatesGridView::CreateDesksTemplatesGridWidget(aura::Window* root) { void DesksTemplatesGridView::UpdateGridUI( const std::vector& desk_templates, const gfx::Rect& grid_bounds) { + // Check if any of the template items or their name views have overview focus + // and notify the highlight controller. This should only be needed when a + // template item is deleted, but currently we call `UpdateGridUI` every time + // the model changes. + // TODO(richui): Remove this when `UpdateGridUI` is not rebuilt every time. + if (!grid_items_.empty()) { + auto* highlight_controller = Shell::Get() + ->overview_controller() + ->overview_session() + ->highlight_controller(); + if (highlight_controller->IsFocusHighlightVisible()) { + // Notify the highlight controller if any of the about to be destroyed + // views have overview focus to prevent use-after-free. + for (DesksTemplatesItemView* template_view : grid_items_) { + if (template_view->IsViewHighlighted()) { + highlight_controller->OnViewDestroyingOrDisabling(template_view); + return; + } + + if (template_view->name_view()->IsViewHighlighted()) { + highlight_controller->OnViewDestroyingOrDisabling( + template_view->name_view()); + return; + } + } + } + } + // Clear the layout manager before removing the child views to avoid // use-after-free bugs due to `Layout()`s being triggered. SetLayoutManager(nullptr); diff --git a/ash/wm/desks/templates/desks_templates_item_view.cc b/ash/wm/desks/templates/desks_templates_item_view.cc index 0444c79d4cabfe..20ab66fb5e8a5a 100644 --- a/ash/wm/desks/templates/desks_templates_item_view.cc +++ b/ash/wm/desks/templates/desks_templates_item_view.cc @@ -416,10 +416,14 @@ views::View* DesksTemplatesItemView::TargetForRect(views::View* root, void DesksTemplatesItemView::OnDeleteTemplate() { // Notify the highlight controller that we're going away. - OverviewSession* overview_session = - Shell::Get()->overview_controller()->overview_session(); - DCHECK(overview_session); - overview_session->highlight_controller()->OnViewDestroyingOrDisabling(this); + OverviewHighlightController* highlight_controller = + Shell::Get() + ->overview_controller() + ->overview_session() + ->highlight_controller(); + DCHECK(highlight_controller); + highlight_controller->OnViewDestroyingOrDisabling(this); + highlight_controller->OnViewDestroyingOrDisabling(name_view_); DesksTemplatesPresenter::Get()->DeleteEntry( desk_template_->uuid().AsLowercaseString()); diff --git a/ash/wm/desks/templates/desks_templates_unittest.cc b/ash/wm/desks/templates/desks_templates_unittest.cc index cb4c752126d013..e2d63e1ed754c9 100644 --- a/ash/wm/desks/templates/desks_templates_unittest.cc +++ b/ash/wm/desks/templates/desks_templates_unittest.cc @@ -1789,4 +1789,29 @@ TEST_F(DesksTemplatesTest, TemplateNameTestSpaces) { EXPECT_EQ(base::UTF8ToUTF16(template_name), name_view->GetText()); } +// Tests that there is no crash after we use the keyboard to change the name of +// a template. Regression test for https://crbug.com/1279649. +TEST_F(DesksTemplatesTest, EditTemplateNameWithKeyboardNoCrash) { + AddEntry(base::GUID::GenerateRandomV4(), "a", base::Time::Now()); + AddEntry(base::GUID::GenerateRandomV4(), "b", base::Time::Now()); + + OpenOverviewAndShowTemplatesGrid(); + DesksTemplatesNameView* name_view = + GetItemViewFromTemplatesGrid(0)->name_view(); + + // Tab until we focus the name view of the first template item. + SendKey(ui::VKEY_TAB); + SendKey(ui::VKEY_TAB); + ASSERT_EQ(name_view, GetHighlightedView()); + + // Rename template "a" to template "d". + SendKey(ui::VKEY_RETURN); + SendKey(ui::VKEY_D); + SendKey(ui::VKEY_RETURN); + WaitForDesksTemplatesUI(); + + // Verify that there is no crash after we tab again. + SendKey(ui::VKEY_TAB); +} + } // namespace ash diff --git a/base/allocator/allocator.gni b/base/allocator/allocator.gni index 7d579d6e2297c0..1f282e04c32dff 100644 --- a/base/allocator/allocator.gni +++ b/base/allocator/allocator.gni @@ -99,7 +99,7 @@ declare_args() { # BRP-pool block list # - enable_backup_ref_ptr_slow_checks: enable additional safety checks that # are too expensive to have on by default. - put_ref_count_in_previous_slot = false + put_ref_count_in_previous_slot = _is_brp_supported never_remove_from_brp_pool_blocklist = _is_brp_supported enable_backup_ref_ptr_slow_checks = false diff --git a/build/check_gn_headers_whitelist.txt b/build/check_gn_headers_whitelist.txt index 8f312f7688fdc2..5e3b602b0f7b2f 100644 --- a/build/check_gn_headers_whitelist.txt +++ b/build/check_gn_headers_whitelist.txt @@ -117,7 +117,6 @@ gpu/command_buffer/service/memory_tracking.h gpu/config/gpu_lists_version.h gpu/gles2_conform_support/gtf/gtf_stubs.h gpu/gpu_export.h -headless/lib/headless_macros.h ipc/ipc_channel_proxy_unittest_messages.h ipc/ipc_message_null_macros.h media/audio/audio_logging.h diff --git a/build/fuchsia/run_ffx_command.py b/build/fuchsia/run_ffx_command.py index d70ace2c6d480e..02f0745907a0a4 100755 --- a/build/fuchsia/run_ffx_command.py +++ b/build/fuchsia/run_ffx_command.py @@ -26,14 +26,23 @@ def main(): required=True, help='FFX command to run. Runtime arguments are handled ' 'using the %%args%% placeholder.') + parser.add_argument('child_args', + nargs='*', + help='Arguments for the command.') AddCommonArgs(parser) AddTargetSpecificArgs(parser) - args, runtime_args = parser.parse_known_args() + args = parser.parse_args() - command_substituted = [ - chunk.replace('%args%', ' '.join(runtime_args)) - for chunk in shlex.split(args.command) - ] + # Prepare the arglist for "ffx". %args% is replaced with all positional + # arguments given to the script. + ffx_args = shlex.split(args.command) + # replace %args% in the command with the given arguments. + try: + args_index = ffx_args.index('%args%') + ffx_args[args_index:args_index + 1] = args.child_args + except ValueError: + # %args% is not present; use the command as-is. + pass with GetDeploymentTargetForArgs(args) as target: target.Start() @@ -43,7 +52,7 @@ def main(): # package can be instantiated after resolution. with target.GetPkgRepo() as pkg_repo: target.InstallPackage(args.package) - process = target.RunFFXCommand(command_substituted) + process = target.RunFFXCommand(ffx_args) # It's possible that components installed by this script may be # instantiated at arbitrary points in the future. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java index 4ef5eeec691f5d..6cee71cc23f772 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java @@ -55,7 +55,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator; import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; import org.chromium.chrome.browser.omnibox.UrlBarData; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.page_info.ChromePageInfoHighlight; import org.chromium.chrome.browser.tab.Tab; @@ -66,6 +65,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.native_page.NativePage; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.TintedDrawable; @@ -976,9 +976,10 @@ private void updateUrlBar() { private void updateUseDarkColors() { updateButtonsTint(); - @OmniboxTheme - int omniboxTheme = mUseDarkColors ? OmniboxTheme.LIGHT_THEME : OmniboxTheme.DARK_THEME; - if (mUrlCoordinator.setOmniboxTheme(omniboxTheme)) { + @BrandedColorScheme + int brandedColorScheme = mUseDarkColors ? BrandedColorScheme.LIGHT_BRANDED_THEME + : BrandedColorScheme.DARK_BRANDED_THEME; + if (mUrlCoordinator.setBrandedColorScheme(brandedColorScheme)) { // Update the URL to make it use the new color scheme. updateUrlBar(); } diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java index e4a8a58341493a..d41f512286788a 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManagerUnitTest.java @@ -26,7 +26,7 @@ import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.Batch; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.omnibox.AutocompleteResult.GroupDetails; import org.chromium.ui.modelutil.ListObservable.ListObserver; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; @@ -89,16 +89,17 @@ private void verifyModelEquals(List expected) { /** * Verify that PropertyModels of all suggestions on managed list reflect the expected values. */ - private void verifyPropertyValues(int layoutDirection, @OmniboxTheme int omniboxTheme) { + private void verifyPropertyValues( + int layoutDirection, @BrandedColorScheme int brandedColorScheme) { for (int index = 0; index < mSuggestionModels.size(); index++) { Assert.assertEquals("Unexpected layout direction for suggestion at position " + index, layoutDirection, mSuggestionModels.get(index).model.get( SuggestionCommonProperties.LAYOUT_DIRECTION)); Assert.assertEquals("Unexpected visual theme for suggestion at position " + index, - omniboxTheme, + brandedColorScheme, mSuggestionModels.get(index).model.get( - SuggestionCommonProperties.OMNIBOX_THEME)); + SuggestionCommonProperties.COLOR_SCHEME)); } } @@ -348,16 +349,16 @@ public void updateSuggestionsList_uiChangesArePropagatedToSuggestions() { mManager.setSourceViewInfoList(list, new SparseArray()); verifyModelEquals(list); - verifyPropertyValues(View.LAYOUT_DIRECTION_INHERIT, OmniboxTheme.LIGHT_THEME); + verifyPropertyValues(View.LAYOUT_DIRECTION_INHERIT, BrandedColorScheme.LIGHT_BRANDED_THEME); mManager.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); - verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, OmniboxTheme.LIGHT_THEME); + verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, BrandedColorScheme.LIGHT_BRANDED_THEME); - mManager.setOmniboxTheme(OmniboxTheme.DARK_THEME); - verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, OmniboxTheme.DARK_THEME); + mManager.setBrandedColorScheme(BrandedColorScheme.DARK_BRANDED_THEME); + verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, BrandedColorScheme.DARK_BRANDED_THEME); - mManager.setOmniboxTheme(OmniboxTheme.INCOGNITO); - verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, OmniboxTheme.INCOGNITO); + mManager.setBrandedColorScheme(BrandedColorScheme.INCOGNITO); + verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, BrandedColorScheme.INCOGNITO); // Finally, set the new list and confirm that the values are still applied. list = Arrays.asList(new DropdownItemViewInfo(mHeaderProcessor, @@ -370,6 +371,6 @@ public void updateSuggestionsList_uiChangesArePropagatedToSuggestions() { new PropertyModel(SuggestionCommonProperties.ALL_KEYS), 2)); mManager.setSourceViewInfoList(list, new SparseArray()); verifyModelEquals(list); - verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, OmniboxTheme.INCOGNITO); + verifyPropertyValues(View.LAYOUT_DIRECTION_RTL, BrandedColorScheme.INCOGNITO); } } diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessorTest.java index 402721ea3940a8..caa35a862c5845 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessorTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessorTest.java @@ -132,7 +132,7 @@ private void createClipboardSuggestion(int type, GURL url, byte[] clipboardImage mModel = mProcessor.createModel(); mProcessor.populateModel(mSuggestion, mModel, 0); SuggestionViewViewBinder.bind(mModel, mRootView, SuggestionViewProperties.TEXT_LINE_1_TEXT); - SuggestionViewViewBinder.bind(mModel, mRootView, SuggestionCommonProperties.OMNIBOX_THEME); + SuggestionViewViewBinder.bind(mModel, mRootView, SuggestionCommonProperties.COLOR_SCHEME); SuggestionViewViewBinder.bind( mModel, mRootView, SuggestionViewProperties.IS_SEARCH_SUGGESTION); SuggestionViewViewBinder.bind(mModel, mRootView, SuggestionViewProperties.TEXT_LINE_2_TEXT); diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn index 1ec0f190614cbe..6710a032286ab8 100644 --- a/chrome/app/BUILD.gn +++ b/chrome/app/BUILD.gn @@ -280,9 +280,8 @@ if (is_fuchsia) { executable = rebase_path("//build/fuchsia/run_ffx_command.py") executable_args = [ "--command", - "session add fuchsia-pkg://fuchsia.com/chrome#meta/chrome_v1.cmx", - - # TODO(bugs.fuchsia.dev/85949): Pass runtime arguments using %args%. + "session add fuchsia-pkg://fuchsia.com/chrome#meta/chrome_v1.cmx -- " + + "%args%", ] include_fuchsia_build_dir = true } diff --git a/chrome/app/access_code_cast_strings.grdp b/chrome/app/access_code_cast_strings.grdp index 5fc13011901908..5f3e2a8da80f72 100644 --- a/chrome/app/access_code_cast_strings.grdp +++ b/chrome/app/access_code_cast_strings.grdp @@ -10,6 +10,21 @@ Cast to a new display + + Access code not recognized + + + Network communication issues + + + You don't have permission to cast to this display + + + You have entered an incorrect access code too many times. Try again later + + + Something went wrong. Try again later + Use the camera to scan QR code diff --git a/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_ACCESS_CODE.png.sha1 b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_ACCESS_CODE.png.sha1 new file mode 100644 index 00000000000000..052083233ba66a --- /dev/null +++ b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_ACCESS_CODE.png.sha1 @@ -0,0 +1 @@ +82fcd737f7ca942388ec8e9e7e1022577b5dcf69 \ No newline at end of file diff --git a/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_NETWORK.png.sha1 b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_NETWORK.png.sha1 new file mode 100644 index 00000000000000..1ec150a8890e24 --- /dev/null +++ b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_NETWORK.png.sha1 @@ -0,0 +1 @@ +c6cb096868098d1e3098dd4224a4affb4ed545c0 \ No newline at end of file diff --git a/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_PERMISSION.png.sha1 b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_PERMISSION.png.sha1 new file mode 100644 index 00000000000000..19b9f1421ab46a --- /dev/null +++ b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_PERMISSION.png.sha1 @@ -0,0 +1 @@ +20d67c01bcb924082fbecdd92b554bf7ce8f9985 \ No newline at end of file diff --git a/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_TOO_MANY_REQUESTS.png.sha1 b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_TOO_MANY_REQUESTS.png.sha1 new file mode 100644 index 00000000000000..6f20bda016149f --- /dev/null +++ b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_TOO_MANY_REQUESTS.png.sha1 @@ -0,0 +1 @@ +21d0f94c812d9ff2b65e2e2da538f7aa44d58a54 \ No newline at end of file diff --git a/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_UNKNOWN.png.sha1 b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_UNKNOWN.png.sha1 new file mode 100644 index 00000000000000..7a0ae2ccaff77b --- /dev/null +++ b/chrome/app/access_code_cast_strings_grdp/IDS_ACCESS_CODE_CAST_ERROR_UNKNOWN.png.sha1 @@ -0,0 +1 @@ +ad365fe72456133e72409b2d18c2fc62074539d2 \ No newline at end of file diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index 6c61f4d19cd5a5..c5ed57cdf4e05e 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp @@ -821,6 +821,9 @@ No devices found nearby + + Bluetooth is turned off. To see available devices, turn Bluetooth on. + Make sure your Bluetooth device is in pairing mode and nearby. Only pair with devices you trust. <a target="_blank" href="$1">Learn more</a> diff --git a/chrome/app/chromeos_strings_grdp/IDS_BLUETOOTH_PAIRING_PAIRING_BLUETOOTH_DISABLED.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_BLUETOOTH_PAIRING_PAIRING_BLUETOOTH_DISABLED.png.sha1 new file mode 100644 index 00000000000000..9980daaf4c7197 --- /dev/null +++ b/chrome/app/chromeos_strings_grdp/IDS_BLUETOOTH_PAIRING_PAIRING_BLUETOOTH_DISABLED.png.sha1 @@ -0,0 +1 @@ +b2f997a99de8e23846769f3e573edff6f883d7fa \ No newline at end of file diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd index d55d30fedfef2d..55dbaf90180058 100644 --- a/chrome/app/chromium_strings.grd +++ b/chrome/app/chromium_strings.grd @@ -582,8 +582,8 @@ Chromium is unable to recover your settings. Chromium isn't your default browser - - Also turn on in Chromium? + + You turned on Enhanced Safe Browsing in your account. Now get it for Chromium. diff --git a/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 b/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 new file mode 100644 index 00000000000000..c86ed46e5f239c --- /dev/null +++ b/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 @@ -0,0 +1 @@ +7154f255ea117494bb55a9f5f1c26cc6c92338a7 \ No newline at end of file diff --git a/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 b/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 deleted file mode 100644 index 72c8b86a25da9a..00000000000000 --- a/chrome/app/chromium_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -9b3d5b4cf2774e7e115290f23cdb1bb025c35787 \ No newline at end of file diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 2039bbe40dfd4e..7675eb1215d0b4 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -6700,8 +6700,8 @@ Keep your key file in a safe place. You will need it to create new versions of y Safe Browsing - - With Enhanced Safe Browsing, you’ll get Chrome’s strongest security + + Turn on enhanced security? @@ -6714,19 +6714,19 @@ Keep your key file in a safe place. You will need it to create new versions of y - Enhanced Safe Browsing is off + Turn off enhanced security? - You’re getting standard protection + You turned off Enhanced Safe Browsing in your account. - - Turn Back On + + Turn Off - - Turn back on + + Turn off @@ -10141,6 +10141,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + + Change this setting in the address bar. + + View and manage saved passwords in your $1Google Account diff --git a/chrome/app/generated_resources_grd/IDS_A11Y_OMNIBOX_CHIP_HINT.png.sha1 b/chrome/app/generated_resources_grd/IDS_A11Y_OMNIBOX_CHIP_HINT.png.sha1 new file mode 100644 index 00000000000000..b010dfcc30ae68 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_A11Y_OMNIBOX_CHIP_HINT.png.sha1 @@ -0,0 +1 @@ +0f50b173e0333bf9bf385130bcd54fae904b7bb9 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_DESCRIPTION.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_DESCRIPTION.png.sha1 index f923e8a289beb1..219c849fa768be 100644 --- a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_DESCRIPTION.png.sha1 +++ b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_DESCRIPTION.png.sha1 @@ -1 +1 @@ -9459d234db9b98018f613d5df8f35a941cba206b \ No newline at end of file +8cf0068b6a0599fcc5048bf3760048e115f7fe98 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TITLE.png.sha1 index f923e8a289beb1..219c849fa768be 100644 --- a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TITLE.png.sha1 +++ b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TITLE.png.sha1 @@ -1 +1 @@ -9459d234db9b98018f613d5df8f35a941cba206b \ No newline at end of file +8cf0068b6a0599fcc5048bf3760048e115f7fe98 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_OFF.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_OFF.png.sha1 new file mode 100644 index 00000000000000..219c849fa768be --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_OFF.png.sha1 @@ -0,0 +1 @@ +8cf0068b6a0599fcc5048bf3760048e115f7fe98 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_ON.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_ON.png.sha1 deleted file mode 100644 index f923e8a289beb1..00000000000000 --- a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_ON.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -9459d234db9b98018f613d5df8f35a941cba206b \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 deleted file mode 100644 index 72c8b86a25da9a..00000000000000 --- a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -9b3d5b4cf2774e7e115290f23cdb1bb025c35787 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 new file mode 100644 index 00000000000000..c86ed46e5f239c --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 @@ -0,0 +1 @@ +7154f255ea117494bb55a9f5f1c26cc6c92338a7 \ No newline at end of file diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd index 707dfb6ead8ddb..365fe6b6ce7e07 100644 --- a/chrome/app/google_chrome_strings.grd +++ b/chrome/app/google_chrome_strings.grd @@ -588,8 +588,8 @@ Google Chrome is unable to recover your settings. Google Chrome isn't your default browser - - Also turn on in Chrome? + + You turned on Enhanced Safe Browsing in your account. Now get it for Chrome. diff --git a/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 new file mode 100644 index 00000000000000..9196c4c4119593 --- /dev/null +++ b/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_DESCRIPTION.png.sha1 @@ -0,0 +1 @@ +f71a99249a6f464ff8a35e9d0244ef36687d441b \ No newline at end of file diff --git a/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 deleted file mode 100644 index 72c8b86a25da9a..00000000000000 --- a/chrome/app/google_chrome_strings_grd/IDS_TAILORED_SECURITY_CONSENTED_ENABLE_NOTIFICATION_TITLE.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -9b3d5b4cf2774e7e115290f23cdb1bb025c35787 \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb index 83fe5655396982..6bd221985284c2 100644 --- a/chrome/app/resources/chromium_strings_ar.xtb +++ b/chrome/app/resources/chromium_strings_ar.xtb @@ -45,7 +45,7 @@ ‏أداة مساعدة Chromium ‏يمكن لمشرف الملف الشخصي للعمل إزالة أي بيانات مرتبطة بمتصفِّح Chromium والتي يتم إنشاؤها أثناء استخدام هذا الملف الشخصي (مثل إنشاء الإشارات المرجعية والسجلّ وكلمات المرور والإعدادات الأخرى). ‏يلزم إعادة تشغيل نظام التشغيل Chromium حتى يتم تطبيق التحديث. -‏تناسب الإعدادات التلقائية معظم الأشخاص، ولكن يمكنك تخصيصها لاستخدام Chromium بالطريقة التي تعجبك. +‏تناسب الإعدادات التلقائية معظم الأشخاص، ويمكنك تخصيصها لاستخدام Chromium بالطريقة التي تعجبك. ‏حدث خطأ في نظام التشغيل أثناء عملية التثبيت. يُرجى إعادة تنزيل Chromium. ‏في حال مشاركة جهاز مع الأصدقاء والعائلة، يمكنهم الحصول على تجربة تصفّح منفصلة وإعداد Chromium على النحو المفضّل لديهم. ‏علامة تبويب Chromium @@ -213,7 +213,7 @@ ‏يحتاج Chromium إلى إذن للوصول إلى الميكروفون من أجل الموقع الإلكتروني هذا. ‏تحديث Chromium ‏في حال لم تتضمن صورة ما وصفًا مفيدًا، سيحاول Chromium توفير وصف لك. لإنشاء الأوصاف، سيتم إرسال الصور إلى Google. -‏تخصيص بعض من أهم خيارات الخصوصية في Chromium +‏تخصيص بعض أهم خيارات الخصوصية في Chromium ‏يحتاج Chromium إلى إذن للوصول إلى الكاميرا من أجل هذا الموقع الإلكتروني. ‏تعذَّر إطلاق Chromium. يُرجى إعادة المحاولة. ‏يتعذّر على Chromium التحقُّق من كلمات المرور. يُرجى إعادة المحاولة بعد 24 ساعة. diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb index cffcb4d21fd20e..ea9f94e34949a8 100644 --- a/chrome/app/resources/chromium_strings_az.xtb +++ b/chrome/app/resources/chromium_strings_az.xtb @@ -109,6 +109,7 @@ Bəzi funksiyalar əlçatmaz ola bilər ki, nəticədə tərcihlərə edilən d Chromium ilə yardım alın Naməlum xəta üzündən quraşdırmaq alınmadı. Əgər Chromium hazırda işləyirsə, lütfən, qapadın və yenidən cəhd edin. Chromium'dan istənilən halda çıxılsın? +Chromium'un ən vacib hesab etdiyi məxfilik seçimlərini fərdiləşdirin. Bu bələdçiyə hər ayar və seçim daxil deyil. Chromium'a Arxa Fonda İşləmək İcazəsi Verin Fərdiləşdirin və Chromium'u kontrol edin Təkmil qoruma ilə fişinq və zərərli proqramların bloklanması üçün daha çox iş görülür @@ -294,5 +295,6 @@ Bəzi funksiyalar əlçatmaz ola bilər. Xüsusi profil direktoriyası göstəri Chromium OS sistemi Chromium düzgün işləməyə bilər, çünki daha Windows XP və ya Windows Vista'da dəstəklənmir Chromium'u kim istifadə edir? +Chromium’un ən güclü güvənlik sistemini əldə edin Chromium Müəllifləri \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb index 92bc8f491fde57..96db43f9dd7271 100644 --- a/chrome/app/resources/chromium_strings_bn.xtb +++ b/chrome/app/resources/chromium_strings_bn.xtb @@ -225,6 +225,7 @@ Chromium আপনার সেটিংস পুনরুদ্ধার ক নতুন উইন্ডো আপনার ওয়েব, বুকমার্ক এবং Chromium-এর অন্যান্য জিনিস এখানে রয়েছে৷ অ্যাক্সেস করতে ব্যবহার করার জন্য আপনার সিস্টেম অ্যাডমিনিস্ট্রেটর Chromium কনফিগার করেছে। +এছাড়া, Chromium-এ চালু করতে চান? Chromium প্রোফাইল থেকে আপনার সব Chromium-এ থাকা ডেটা আলাদা করতে পারবেন। এর ফলে সহজেই অফিস এবং বিনোদনের প্রোফাইল আলাদা করা যায়। Chromium OS রিস্টার্ট করুন - Chromium Dev diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb index cec12decec6a8d..260f01eac9c094 100644 --- a/chrome/app/resources/chromium_strings_el.xtb +++ b/chrome/app/resources/chromium_strings_el.xtb @@ -109,6 +109,7 @@ Λήψη βοήθειας σχετικά με το Chromium Η εγκατάσταση απέτυχε λόγω απροσδιόριστου σφάλματος. Εάν το Chromium εκτελείται αυτήν τη στιγμή, κλείστε το και δοκιμάστε ξανά. Να γίνει έξοδος από το Chromium ούτως ή άλλως; +Προσαρμογή των επιλογών απορρήτου που το Chromium θεωρεί πιο σημαντικές. Αυτός ο οδηγός δεν περιλαμβάνει όλες τις ρυθμίσεις και επιλογές. Να επιτρέπεται στο Chromium να εκτελείται στο παρασκήνιο Προσαρμογή και έλεγχος του Chromium Η βελτιωμένη προστασία κάνει περισσότερα για τον αποκλεισμό ηλεκτρονικού ψαρέματος (phishing) και κακόβουλων προγραμμάτων @@ -297,5 +298,6 @@ Σύστημα Chromium OS Το Chromium μπορεί να μην λειτουργεί σωστά, επειδή δεν υποστηρίζεται πια σε Windows XP και Windows Vista Ποιος χρησιμοποιεί το Chromium; +Λάβετε την ισχυρότερη προστασία του Chromium Οι συντάκτες του Chromium \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb index 6c631c16c083fc..5a6daf2895ce88 100644 --- a/chrome/app/resources/chromium_strings_en-GB.xtb +++ b/chrome/app/resources/chromium_strings_en-GB.xtb @@ -111,6 +111,7 @@ Some features may be unavailable and changes to preferences won't be saved.Get help with Chromium Installation failed due to unspecified error. If Google Chrome is currently running, please close it and try again. Exit Chromium anyway? +Customise the privacy choices that Chromium considers most important. This guide doesn't include every setting and option. Let Chromium Run in the Background Customise and control Chromium Enhanced protection does more to block phishing and malware @@ -298,5 +299,6 @@ Google Chrome is unable to recover your settings. Chromium OS system Chromium may not function correctly because it is no longer supported on Windows XP or Windows Vista Who's using Chromium? +Get Chromium's strongest security The Chromium Authors \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_eu.xtb b/chrome/app/resources/chromium_strings_eu.xtb index 2f4f01a0c8c51e..080642a1e54992 100644 --- a/chrome/app/resources/chromium_strings_eu.xtb +++ b/chrome/app/resources/chromium_strings_eu.xtb @@ -228,6 +228,7 @@ Chromium-ek ezin ditu ezarpenak berreskuratu. Leiho berria Webguneak, laster-markak eta Chromium-eko beste gauzak hemen daude. Sistemaren administratzailearen konfigurazioaren arabera, Chromium-ek arakatzailea ireki behar du helbidera joateko. +Chromium-en ere aktibatu nahi duzu? Chromium-eko profilekin, Chromium-en dituzun gauza guztiak bereiz ditzakezu. Hala, errazago edukiko dituzu bananduta gauza pertsonalak eta lanekoak. Berrabiarazi Chromium OS - Chromium Dev diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb index 2540b49f942424..f5eca70b2fbb02 100644 --- a/chrome/app/resources/chromium_strings_fr.xtb +++ b/chrome/app/resources/chromium_strings_fr.xtb @@ -228,6 +228,7 @@ Chromium ne peut pas récupérer vos paramètres. Nouvelle fenêtre Votre contenu Web, vos favoris et toutes vos données Chromium sont conservés ici. Votre administrateur système a configuré Chromium de sorte que s'ouvre pour accéder à . +Activer aussi dans Chromium ? Utilisez les profils Chromium pour dissocier toutes vos données Chromium. Vous pouvez ainsi faire plus facilement la distinction entre vos contenus personnels et professionnels. Redémarrer Chromium OS  – Chromium pour les développeurs diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index a54a54744eca82..a392197b68f5c4 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb @@ -229,6 +229,7 @@ Chromium તમારા સેટિંગને રિકવર શકતુ નવી વિંડો તમારું વેબ, બુકમાર્ક અને અન્ય Chromium સામગ્રી અહીં હોય છે. તમારા સિસ્ટમ વ્યવસ્થાપકે ને ઍક્સેસ કરવા Chromiumને ખોલવા માટે ગોઠવેલું છે. +Chromiumમાં પણ ચાલુ કરીએ? Chromium પ્રોફાઇલ વડે તમે તમારી બધી વસ્તુઓ Chromium પર અલગ-અલગ રાખી શકો છો. આનાથી ઑફિસ અને મનોરંજન વચ્ચે વિભાજન કરવાનું સરળ બને છે. Chromium OS ફરી શરૂ કરો - Chromium Dev diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb index 01683ac7952572..3c16785dbed60d 100644 --- a/chrome/app/resources/chromium_strings_ky.xtb +++ b/chrome/app/resources/chromium_strings_ky.xtb @@ -111,6 +111,7 @@ Chromium'дан жардам алыңыз Белгисиз катадан улам, орнотулбай калды. Учурда Chromium иштеп жаткан болсо, аны жаап туруп, дагы аракет кылып көрүңүз. Баары бир Chromium'дан чыгасызбы? +Chromium эң маанилүү деп эсептеген купуялык тандоолорун ыңгайлаштырыңыз. Жетектемеде айрым жөндөөлөр жана параметрлер камтылган эмес. Chromium'га фондук режимде иштөөгө уруксат берүү Chromium'ду өзгөчөлөштүрүү жана көзөмөлдөө Өркүндөтүлгөн коргоо параметри фишинг жана кесепеттүү программалардан жакшыраак коргойт @@ -299,5 +300,6 @@ Chromium жөндөөлөрүңүздү калыбына келтире алба Chromium OS тутуму Chromium туура эмес иштеши мүмкүн, себеби ал Windows XP же Windows Vista'да мындан ары колдоого алынбайт. Chromium'ду ким колдонуп жатат? +Chromium'дун эң күчтүү коопсуздук тутумун орнотуп алыңыз Chromium'дун авторлору \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb index 9bf637d364de08..2867228d33de72 100644 --- a/chrome/app/resources/chromium_strings_ml.xtb +++ b/chrome/app/resources/chromium_strings_ml.xtb @@ -111,6 +111,7 @@ Chromium ഉപയോഗിക്കുന്നതിനുള്ള സഹായം തേടുക അവ്യക്തമായ പിശകിനാൽ ഇൻസ്റ്റാൾ ചെയ്യൽ പരാജയപ്പെട്ടു. Chromium നിലവിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, അത് അടച്ചതിനുശേഷം വീണ്ടും ശ്രമിക്കുക. എന്തായാലും Chromium-ത്തിൽ നിന്ന് പുറത്തുകടക്കണോ? +ഏറ്റവും പ്രധാനപ്പെട്ടതായി Chromium കരുതുന്ന സ്വകാര്യതാ തിരഞ്ഞെടുപ്പുകൾ ഇഷ്ടാനുസൃതമാക്കുക. ഈ ഗൈഡിൽ എല്ലാ ക്രമീകരണവും ഓപ്ഷനും ഉൾപ്പെടുന്നില്ല. Chromium-ത്തെ പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കാൻ അനുവദിക്കുക Chromium ഇഷ്‌ടാനുസൃതമാക്കുക, നിയന്ത്രിക്കുക ഫിഷിംഗും മാല്‍വെയറും ബ്ലോക്ക് ചെയ്യുന്നതിന് മെച്ചപ്പെടുത്തിയ പരിരക്ഷ കൂടുതൽ കാര്യങ്ങൾ ചെയ്യുന്നു @@ -299,5 +300,6 @@ Chromium OS സിസ്‌റ്റം ഇനിയങ്ങോട്ട് Windows XP-യും Windows Vista-യും പിന്തുണയ്‌ക്കാത്തതിനാൽ Chromium ശരിയായി പ്രവർത്തിച്ചേക്കില്ല ആരൊക്കെയാണ് Chromium ഉപയോഗിക്കുന്നത്? +Chromium-ന്റെ ഏറ്റവും ശക്തമായ സുരക്ഷ നേടുക Chromium രചയിതാക്കൾ \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb index e721b13121e8f9..8674355ac8963a 100644 --- a/chrome/app/resources/chromium_strings_nl.xtb +++ b/chrome/app/resources/chromium_strings_nl.xtb @@ -228,6 +228,7 @@ Chromium kan je instellingen niet herstellen. Nieuw venster Hier vind je internet, bookmarks en andere Chromium-instellingen. Je systeembeheerder heeft Chromium geconfigureerd om te openen voor toegang tot . +Ook aanzetten in Chromium? Met Chromium-profielen kun je alle Chromium-gegevens gescheiden houden. Zo kun je makkelijker onderscheid maken tussen werk en privé. Chromium OS opnieuw opstarten - Chromium voor ontwikkelaars diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb index 90c6315dcd703b..682d15a4a0cb44 100644 --- a/chrome/app/resources/chromium_strings_pt-BR.xtb +++ b/chrome/app/resources/chromium_strings_pt-BR.xtb @@ -107,6 +107,7 @@ Ajuda com o Chromium Ocorreu uma falha na instalação devido a um erro não especificado. Se o Chromium estiver sendo executado, feche-o e tente novamente. Sair do Chromium mesmo assim? +Personalize as opções de privacidade mais importantes para o Chromium. Este guia não inclui todas as configurações e opções. Permitir a execução do Chromium em segundo plano Personalizar e controlar o Chromium A Proteção reforçada é mais eficiente no combate a golpes de phishing e malware @@ -290,5 +291,6 @@ Sistema Chromium OS É possível que o Chromium não funcione corretamente, porque ele não é mais compatível com o Windows XP ou Windows Vista Quem está usando o Chromium? +Use o nível mais alto de segurança do Chromium Autores do Chromium \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb index b7b0edaab65585..e0540b61d86b3c 100644 --- a/chrome/app/resources/chromium_strings_pt-PT.xtb +++ b/chrome/app/resources/chromium_strings_pt-PT.xtb @@ -109,6 +109,7 @@ Obter ajuda relacionada com o Chromium A instalação falhou devido a um erro não especificado. Se o Chromium estiver em execução, feche-o e tente de novo. Pretende sair do Chromium mesmo assim? +Personalize as escolhas de privacidade que o Chromium considera serem mais importantes. Este guia não inclui todas as definições e opções. Permitir que o Chromium seja executado em segundo plano Personalizar e controlar o Chromium A proteção melhorada vai mais além para bloquear o phishing e o software malicioso. @@ -296,5 +297,6 @@ O Chromium não consegue recuperar as suas definições. Sistema Chromium OS O Chromium pode não funcionar corretamente, uma vez que já não é suportado no Windows XP ou no Windows Vista. Quem está a utilizar o Chromium? +Obtenha a segurança mais avançada do Chromium Os Autores do Chromium \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb index f63767f92887f4..9f675c6945be1b 100644 --- a/chrome/app/resources/chromium_strings_sk.xtb +++ b/chrome/app/resources/chromium_strings_sk.xtb @@ -111,6 +111,7 @@ Niektoré funkcie nemusia byť k dispozícii a zmeny vykonané v predvoľbách s Pomoc s prehliadačom Chromium Inštalácia zlyhala kvôli neurčenej chybe. Ak je prehliadač Chromium momentálne spustený, zatvorte ho a skúste znova. Chcete Chromium napriek tomu ukončiť? +Prispôsobte si možnosti ochrany súkromia, ktoré prehliadač Chromium považuje za najdôležitejšie. Tento sprievodca neobsahuje všetky nastavenia a možnosti. Povoliť prehliadaču Chromium spustenie na pozadí Prispôsobiť a spravovať Chromium Rozšírená ochrana efektívnejšie blokuje phishing aj malvér @@ -298,5 +299,6 @@ Prehliadač Chromium nedokáže obnoviť vaše nastavenia. Systém Chromium OS Chromium nemusí fungovať správne, pretože v systémoch Windows XP a Windows Vista už nie je podporovaný Kto používa Chromium? +Získajte najsilnejšie zabezpečenie prehliadača Chromium Autori prehliadača Chromium \ No newline at end of file diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb index 2b9aacda77cdbf..dd2ff935a45461 100644 --- a/chrome/app/resources/chromium_strings_sl.xtb +++ b/chrome/app/resources/chromium_strings_sl.xtb @@ -229,6 +229,7 @@ Chromium ne more obnoviti vaših nastavitev. Novo okno Tu so shranjeni vaš splet, zaznamki in druge stvari v Chromiumu. Skrbnik sistema je Chromium nastavil tako, da za dostop do odpre brskalnik . +Želite vklopiti tudi v Chromiumu? S profili v Chromiumu lahko ločite vse stvari v Chromiumu. Tako laže ločite delo in zabavo. Vnovičen zagon OS-a Chromium – različica Chromiuma za razvijalce diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb index 1ba3b9525ff759..b22e8b1dd03a41 100644 --- a/chrome/app/resources/chromium_strings_te.xtb +++ b/chrome/app/resources/chromium_strings_te.xtb @@ -223,6 +223,7 @@ కొత్త విండో మీ వెబ్, బుక్‌మార్క్‌లు మరియు ఇతర Chromium అంశాలు ఇక్కడ చూపబడతాయి. ను యాక్సెస్ చేయడం కోసం ను తెరిచే విధంగా Chromiumను మీ సిస్టమ్ నిర్వాహకుడు కాన్ఫిగర్ చేశారు. +Chromiumలో కూడా ఆన్ చేయాలా? మీ మొత్తం Chromium అంశాలను, మీరు Chromium ప్రొఫైల్‌లతో వేరు చేయండి. ఇలా చేయడం వలన ఆఫీస్, వినోదాన్ని వేర్వేరుగా ఉంచవచ్చు. Chromium OSని మళ్లీ ప్రారంభించండి - Chromium Dev diff --git a/chrome/app/resources/chromium_strings_ur.xtb b/chrome/app/resources/chromium_strings_ur.xtb index 756db2201b118b..46c51181a13477 100644 --- a/chrome/app/resources/chromium_strings_ur.xtb +++ b/chrome/app/resources/chromium_strings_ur.xtb @@ -228,6 +228,7 @@ Chromium آپ کی ترتیبات کو بازیافت کرنے سے قاصر ہ نئی ونڈو ‏آپ کی ویب، بُک مارکس اور دیگر Chromium مواد یہاں پر لائیو ہے۔ ‏آپ کے سسٹم کے منتظم نے تک رسائی حاصل کرنے کیلئے Chromium کو کھولنے کیلئے کنفیگر کیا ہے۔ +‏Chromium میں بھی آن کرنا چاہتے ہیں؟ ‏Chromium کی پروفائلز کے ساتھ آپ اپنی تمام Chromium چیزوں کو الگ کر سکتے ہیں۔ یہ کام اور تفریح کے درمیان تقسیم کرنا زیادہ آسان بناتا ہے۔ ‏Chromium OS کو ری سٹارٹ کریں - Chromium Dev diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb index b4c4ee66f18245..ded1f325e40c6a 100644 --- a/chrome/app/resources/chromium_strings_zu.xtb +++ b/chrome/app/resources/chromium_strings_zu.xtb @@ -229,6 +229,7 @@ I-Chromium ayikwazi ukubuyisela izilungiselelo zakho. Iwindi elisha Iwebhu yakho, amabhukhimakhi, nezinye izinto ze-Chromium zihlala lapha. Umlawuli wakho wesistimu ulungiselele i-Chromium ukuthi ivule i- ukuze ifinyelele ku-. +Vula futhi ku-Chromium? Ngamaphrofayela we-Chromium ungahlukanisa zonke izinto zakho ze-Chromium. Lokhu kwenza kube lula ukuhlukanisa phakathi komsebenzi nokuzijabulisa. Qalisa kabusha i-Chromium OS - Chromium Dev diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index b82d66323eb47a..1271334bfeb97d 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb @@ -6819,6 +6819,7 @@ Hou jou sleutellêer op 'n veilige plek. Jy gaan dit nodig hê om nuwe weergawes Voer asseblief 'n geldige e-posadres in Beskikbaar vir spesifieke videowerwe USB-sleutelbord gekoppel +Kantsoektog Vervaljaar Rukkerig Ondersoek toestelle diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 341a489527c0e3..85e3a4b2e991b5 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb @@ -6815,6 +6815,7 @@ nil እባክዎ ትክክለኛ የኢሜይል አድራሻ ያስገቡ ለተወሰኑ የቪዲዮ ጣቢያዎች የሚገኝ የUSB ቁልፍ ሰሌዳ ተገናኝቷል +የጎን ፍለጋ ጊዜው የሚያበቃበት ዓመት ይንቀጠቀጣል &መሣሪያዎችን መርምር diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 7b92e98654c278..6406aa0c809f66 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb @@ -6800,6 +6800,7 @@ অনুগ্ৰহ কৰি এক মান্য ইমেইল ঠিকনা দিয়ক নিৰ্দিষ্ট কিছুমান ভিডিঅ’ৰ ছাইটৰ বাবে উপলব্ধ ইউএছবি কীব’ৰ্ড সংযোগ হ’ল +ছাইড ছাৰ্চ ম্যাদ উকলা বছৰ কঁপি থাকে &ডিভাইচ পৰীক্ষা কৰক diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 0daf726ae4ba7d..3732d16ab2283a 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb @@ -2507,6 +2507,7 @@ Cihazda Family Link tətbiqini quraşdırmaqla bu hesabın ayarlarını idarə e Family Link ilə veb sayt məhdudiyyətləri və ekran vaxtı limitləri ayarlaya bilərsiniz. Cihazda qayda quraşdırıla bilmədi. Təxminən qalıb +Ekranın bölünməsi və masaların dəyişdirilməsi kimi əməliyyatlar üçün vibrasiya təsdiqi alın. &Yazı yoxlanışı Bir az səbr edin; Linux konteyneri quraşdırılır. Telefonunuzdan son Chrome tablarına baxın @@ -4903,6 +4904,7 @@ Bu əməliyyata birdən çox keçirici təyin edə bilərsiniz. Telefonunuzu yoxlayın Chrome brauzeri və Başladıcısı üçün defolt axtarış sisteminizi ayarlayın Smart Lock istifadə etmək üçün telefonda əsas istifadəçi profilinə keçin +Bu qeydlər Fayllarımda aşağıdakı kimi saxlanılıb Dil və daxiletmə ayarlarını dəyişdirin... Cihazı adlandırın Ekrana başlamaq üçün bu səhifəni sancın... @@ -5679,6 +5681,7 @@ Bu əməliyyata birdən çox keçirici təyin edə bilərsiniz. Xarici təhlükəsizlik açarı yoxsa daxilə quraşdırılmış sensor {NUM_EXTENSIONS,plural, =1{Artırmadan imtina edilib}other{# artırmadan imtina edilib}} Güncəlləmə tamamlanıb +Kliklənmə gücü Kağız qabı yoxdur Yazı əməliyyatı bu cihazda maksimum atribut sayını keçib: "". 1 yadda saxlanmış printeriniz var. @@ -6810,6 +6813,7 @@ Açar faylınızı güvənli yerdə saxlayın. Qrup - - Bağlantı Dialoqu Google Bulud Printi +Vibro rəy Şəkil kimi çap edin Tətbiq datası kontakt, mesaj və foto kimi data daxil olmaqla, tətbiqin yadda saxladığı (tərtibatçı ayarlarına əsasən) istənilən data ola bilər. Yedək data övladınızın Disk yaddaşı kvotasına təsir etməyəcək. diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 832b30d8426eee..919e1cc93e373b 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb @@ -253,6 +253,7 @@ বর্তমানে Linux ফিরিয়ে আনার কাজ চলছে এক্সটেনশন সমস্যা ইনস্টল করা যায়নি: সমস্যার কোড সহ একটি ছবির URL দেখাচ্ছে। অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। +টির মধ্যে নম্বর ডিভাইস, ট্যাবলেটের নাম প্রত্যাশিত শুরুর সেকেন্ড ব্র্যাকেট: এর ফলে সাইট ও ইনস্টল করা অ্যাপগুলির স্টোর করা ডেটা মুছে যাবে মোবাইল ডেটা নেটওয়ার্কের জন্য স্ক্যান করা হচ্ছে... @@ -439,6 +440,7 @@ টি নির্বাচিত হয়েছে অ্যাক্টিভ Kerberos টিকিট সেট করুন এই সেটিংটি ডিভাইসের মালিকের দ্বারা পরিচালিত হয়৷ +টির মধ্যে নম্বর ডিভাইস, ফোনের নাম থিমের জন্য '' লোড করা যায়নি৷ অ্যাসাইনমেন্ট কনফার্ম করতে, "" আবার প্রেস করুন এবং Webpage, Single File @@ -871,6 +873,7 @@ ক্যামেরা চালু রয়েছে লোকেশন যোগ করুন... সফ্টওয়্যার প্রস্তুতকারকদের শনাক্তকরণের জন্য এই সার্টিফিকেটটিকে বিশ্বাস করুন +টির মধ্যে নম্বর ডিভাইস, অজানা ডিভাইসের নাম ফোল্ডারটি খালি আপনি কি কোনও বিশেষ ভিপিএন, প্রক্সি, ফায়ারওয়াল বা NAS সফ্টওয়্যার ইনস্টল করে রেখেছেন? @@ -1246,6 +1249,7 @@ ফাইল তথ্য Google থেকে ছবির বিবরণ পেতে চান? আপনার সংস্থা এই ডিভাইস ম্যানেজ করে +টির মধ্যে নম্বর ডিভাইস, গেম কন্ট্রোলারের নাম ট্যাবযুক্ত উইন্ডো হিসেবে খুলুন উদাঃ ১-৫, ৮, ১১-১৩ সিস্টেম প্রদর্শকের মাধ্যমে খুলুন @@ -2006,6 +2010,7 @@ ট্যাব ডুপ্লিকেট করুন আপনার -এ Linux টুল, এডিটর ও IDE চালান। আরও জানুন অনুমতি রিসেট করুন +টির মধ্যে নম্বর ডিভাইস, অডিও ডিভাইসের নাম {NUM_DAYS,plural, =1{ আপনাকে আজই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}one{ আপনাকে নির্ধারিত সময়সীমা শেষ হওয়ার আগেই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}other{ আপনাকে নির্ধারিত সময়সীমা শেষ হওয়ার আগেই ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করে আপডেট ডাউনলোড করতে বলছে। অথবা, মিটারযুক্ত ইন্টারনেট কানেকশন ব্যবহার করেও ডাউনলোড করতে পারবেন (এর জন্য চার্জ দিতে হতে পারে)।}} আপনি কি মোবাইল ডেটা পরিষেবা সেট-আপ প্রক্রিয়া বাতিল করার ব্যাপারে নিশ্চিত? সূচিবদ্ধ ডেটাবেস @@ -2311,6 +2316,7 @@ সরানোযোগ্য ডিভাইস শনাক্ত করা হয়েছে ইমোজি সাজেস্ট করা হয়েছে। নেভিগেট করতে ঊর্ধ্বমুখী বা নিম্নমুখী তীরচিহ্ন আঁকা বোতাম প্রেস করুন। ইমোজি যোগ করতে Enter প্রেস করুন। মেমরি ফুটপ্রিন্ট + ডিভাইসের সাথে পেয়ার করা যায়নি; আবার চেষ্টা করতে ডিভাইস বেছে নিন সংযোগ ত্রুটি সম্পূর্ণ সার্টিফিকেট নীতি বাধ্যবাধকতা @@ -3140,6 +3146,7 @@ কাস্টম শব্দগুলি নতুন &ট্যাব সেটিংসে কী সিঙ্ক করা হবে তা আপনি সবসময় বেছে নিতে পারেন। +'উন্নত নিরাপদ ব্রাউজিং' ফিচার ব্যবহার করে, Chrome-এর সবচেয়ে ভাল নিরাপত্তা পান স্ক্রিন সেভার বন্ধ করুন ভিনগ্রহবাসী প্রতিক্রিয়ার প্রতিবেদন @@ -3646,6 +3653,7 @@ ডাউনলোড আপনার মাইক্রোফোন ব্যবহার করুন ডিভাইসের ডিস্কের স্থান আশংকাজনকভাবে কম +টির মধ্যে নম্বর ডিভাইস, কম্পিউটারের নাম আপনি যখন এই পৃষ্ঠাটি দেখেছিলেন তখন নিম্নোক্ত কুকিগুলি সেট হয়েছিল Android Messages-কে আপনার ফোন থেকে Chromebook-এ টেক্সট রিলে করতে অনুমতি দেয় আপনার পরিচয় শনাক্ত করে এমন সংস্থাগুলি থেকে শংসাপত্র আপনার কাছে আছে @@ -3827,6 +3835,7 @@ "" সিরিয়াল পোর্টে কানেক্ট করতে চাইছে -এর মাধ্যমে যাচাইকরণ পরিষেবা হোস্ট করা হয়েছে আঙ্গুলের ছাপ সেট আপ করতে, আপনার সন্তানকে পাওয়ার বোতাম টাচ করতে বলুন। আপনার সন্তানের আঙ্গুলের ছাপ সম্পর্কিত ডেটা নিরাপদে সেভ করা হয় এবং সবসময় -এ থাকে। +আপনি স্ট্যান্ডার্ড সুরক্ষা পাচ্ছেন {COUNT,plural, =1{একটি ফাইল}one{#টি ফাইল}other{#টি ফাইল}} ক্রিয়াসমূহ ডিফল্ট কমলা রঙের অবতার @@ -4410,6 +4419,7 @@ ডেমো রেজিস্টার করার অনুরোধ নিয়ে একটি সমস্যা হয়েছে। আপনার ডিভাইসকে আবার রিসেট করলে তা আপনার Google অ্যাকাউন্টগুলি বা এই অ্যাকাউন্টগুলিতে সিঙ্ক হওয়া যেকোনো ডেটাতে প্রভাব ফেলবে না৷ যদিও, স্থানীয়ভাবে সেভ করা সমস্ত ফাইল মুছে ফেলা হবে৷ অটো সাইন-ইন + ভাষায় অনুবাদ করা হয়ে গেছে Microsoft Windows Hardware Driver Verification ডোমেনে ডিভাইসটি যোগ করা যাচ্ছে না। আবার চেষ্টা করুন অথবা আপনার ডিভাইসের মালিক বা অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। সমস্যার কোড: প্রধান মেনু @@ -5824,6 +5834,7 @@ {NUM_MINS,plural, =1{১ মিনিট আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}one{{NUM_MINS} মিনিট আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}other{{NUM_MINS} মিনিট আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}} অ্যাপ ডেটা পাওয়া যায়নি। যাইহোক, অ্যাপ রান করানোর চেষ্টা করা হচ্ছে... লুকানো নেটওয়ার্ক +টির মধ্যে নম্বর ডিভাইস, মাউসের নাম স্বয়ংক্রিয় লঞ্চ সেট করুন সম্প্রতি বন্ধ করা সাইটগুলিকে ডেটা পাঠানো ও গ্রহণ শেষ করতে অনুমতি দিন (প্রস্তাবিত) শর্টকাটগুলি প্রক্রিয়া করা হচ্ছে... @@ -5987,6 +5998,7 @@ ওয়াই-ফাই নেটওয়ার্কগুলি প্রিন্টিং পরিষেবা আপনি যে ডেটা কপি ও পেস্ট করেন তা পড়ুন +টির মধ্যে নম্বর ডিভাইস, ভিডিও ক্যামেরার নাম পরিবর্তন অ্যাপ্লিকেশনটি কাজ করছে না। অ্যাপটি বন্ধ করতে "জোর করে বন্ধ করুন" বিকল্পটি বেছে নিন। এই সাইন-ইন করা পরিষেবাটি দ্বারা হোস্ট করা হয় @@ -6782,6 +6794,7 @@ সিন্থেসাইজড স্পিচ ব্যবহার করে কথিত সব পাঠ্য পড়ুন জিজ্ঞাসা করুন (ডিফল্ট) ফাইল +টির মধ্যে নম্বর ডিভাইস, কীবোর্ডের নাম প্রতিক্রিয়া পাঠান টেক্সটের অস্বচ্ছতা উত্তর দিচ্ছে না। @@ -6805,6 +6818,7 @@ অনুগ্রহ করে একটি সঠিক ইমেল আইডি লিখুন নির্দিষ্ট ভিডিও সাইটের জন্য উপলভ্য আছে USB কীবোর্ড সংযুক্ত হয়েছে +সাইড সার্চ মেয়াদ শেষের বছর কাঁপতে থাকে এবং ডিভাইসগুলি পরিদর্শন @@ -6920,6 +6934,7 @@ আপনার সব ডিভাইসে বুকমার্ক, পাসওয়ার্ড, ইতিহাস এবং আরও অনেক কিছু সিঙ্ক করা আছে কন্টেন্ট {NUM_TABS,plural, =1{রিডিং তালিকাতে ট্যাব যোগ করুন}one{রিডিং তালিকাতে ট্যাব যোগ করুন}other{রিডিং তালিকাতে ট্যাব যোগ করুন}} +আবার চালু করুন সব কার্ড লুকান ডিভাইস সংক্রান্ত তথ্য Google ড্রাইভে ব্যাক-আপ নিন। যেকোনও সহজেই আপনার ডেটা ফিরিয়ে আনুন বা ডিভাইস পাল্টান। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে। আপনার ব্যাক-আপ ডেটা Google-এ আপলোড করা হবে এবং আপনার সন্তানের Google অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করে সেগুলিকে এনক্রিপ্ট করা হবে। আরও জানুন @@ -6993,6 +7008,7 @@ আপনার ডিভাইসে পাঠান আপনি যে ভাষাতে পড়েন সেই ভাষাতে না থাকা পৃষ্ঠাগুলি অনুবাদ করার প্রস্তাব দিন এখনই রিফ্রেশ করুন +-এর সাথে পেয়ার করা হচ্ছে থাম্বনেল সরানো হয়েছে৷ সবসময় সম্পূর্ণ ইউআরএল দেখুন আপলোড হচ্ছে… @@ -7230,9 +7246,11 @@ ভাষা যোগ করুন প্রবেশ করুন হচ্ছে৷ ঝটপট টিথারিং কানেকশন কাজ করছে না +'উন্নত নিরাপদ ব্রাউজিং' ফিচার বন্ধ করা আছে ওহো! ডোমেনটি যোগ করার সময় কোনও সমস্যা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন। Netscape সার্টিফিকেট পুনর্নবীকরণ ইউআরএল কী প্রেস করার সময় যে শব্দ হয় +আবার চালু করুন না (কেবলমাত্র Http) আপগ্রেড করুন সঠিকভাবে ফর্ম্যাট করা একটি ইউআরএল লিখুন diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index 9d106fe8a67773..fad7a03c09d9b2 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb @@ -6817,6 +6817,7 @@ Fajl ključa: Upišite važeću adresu e-pošte Dostupno za određene web lokacije za videozapise USB tastatura je povezana +Bočno pretraživanje Godina isteka Isprekidano &Pregledaj uređaje diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 9b1b1c59dbfde9..3563085263dadc 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb @@ -6784,6 +6784,7 @@ Speichern Sie Ihre Schlüsseldatei an einem sicheren Ort. Sie benötigen die Dat Geben Sie eine gültige E-Mail-Adresse ein. Für bestimmte Video-Websites verfügbar USB-Tastatur angeschlossen +Suche in Seitenleiste Ablaufjahr Ruckeln &Geräte untersuchen diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index cfa09dc888e967..06194c90598a81 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb @@ -2524,6 +2524,7 @@ Ορίστε περιορισμούς ιστοτόπων και όρια χρόνου χρήσης με το Family Link Αποτυχία εγκατάστασης πολιτικής στη συσκευή. Απομένουν περίπου +Λήψη δόνησης επιβεβαίωσης για ενέργειες όπως ο διαχωρισμός οθόνης και η εναλλαγή γραφείων. &Ορθογραφικός έλεγχος Αυτή η διαδικασία μπορεί να διαρκέσει μερικά λεπτά. Ρύθμιση του κοντέινερ Linux. Δείτε τις πρόσφατες καρτέλες Chrome από το τηλέφωνό σας. @@ -4926,6 +4927,7 @@ Ελέγξτε το τηλέφωνό σας Ρυθμίστε την προεπιλεγμένη μηχανή αναζήτησης για το πρόγραμμα περιήγησης Chrome και την Εφαρμογή εκκίνησης . Για να χρησιμοποιήσετε το Smart Lock, κάντε εναλλαγή στο προφίλ κύριου χρήστη στο τηλέφωνό σας +Αυτά τα αρχεία καταγραφής έχουν αποθηκευτεί στην ενότητα Τα αρχεία μου ως Αλλαγή γλώσσας και ρυθμίσεις εισόδου Ονομασία συσκευής ως Καρφίτσωμα αυτής της σελίδας στην Οθόνη έναρξης… @@ -5702,6 +5704,7 @@ Εξωτερικό κλειδί ασφαλείας ή ενσωματωμένος αισθητήρας {NUM_EXTENSIONS,plural, =1{Απορρίφθηκε μια επέκταση}other{Απορρίφθηκαν # επεκτάσεις}} Η αναβάθμιση ολοκληρώθηκε +Ισχύς κλικ Ο δίσκος χαρτιού λείπει Η λειτουργία εγγραφής υπερβαίνει το μέγιστο μέγεθος του χαρακτηριστικού στη συσκευή: "". Έχετε 1 αποθηκευμένο εκτυπωτή. @@ -6835,6 +6838,7 @@ Ομάδα - - Παράθυρο διαλόγου σύνδεσης Google Cloud Print +Ανάδραση αφής Εκτύπωση ως εικόνα Τα δεδομένα εφαρμογής μπορεί να είναι οποιουδήποτε είδους δεδομένα έχουν αποθηκευτεί από μια εφαρμογή (βάσει των ρυθμίσεων προγραμματιστή σας), συμπεριλαμβανομένων δεδομένων όπως επαφών, μηνυμάτων και φωτογραφιών. Τα δεδομένα αντιγράφων ασφαλείας δεν υπολογίζονται στο όριο του αποθηκευτικού χώρου του παιδιού σας στο Drive. diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index e983e18ad26b9b..dc5a82ee65e2cf 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb @@ -2524,6 +2524,7 @@ and Ctrl+Alt+Brightness down to zoom out. Set website restrictions and screen time limits with Family Link Failed to install policy on the device. About left +Receive vibration confirmation for actions like split-screen and switching desks. &Spell check This process may take a few minutes. Setting up the Linux container. View recent Chrome tabs from your phone @@ -4925,6 +4926,7 @@ You can assign multiple switches to this action. Check your phone Set your default search engine for Chrome browser and Launcher To use Smart Lock, switch to the primary user profile on your phone +These logs have been saved in My Files as Change language and input settings Name device to Pin this page to Start screen... @@ -5701,6 +5703,7 @@ You can assign multiple switches to this action. External security key or built-in sensor {NUM_EXTENSIONS,plural, =1{An extension has been rejected}other{# extensions have been rejected}} Upgrade complete +Click strength A paper tray is missing Write operation exceeds the maximum length of the attribute to: "". You have 1 saved printer. @@ -6834,6 +6837,7 @@ Keep your key file in a safe place. You will need it to create new versions of y Group Connection dialogue Google Cloud Print +Haptic feedback Print as image App data can be any data that an app has saved (based on developer settings), including data such as contacts, messages and photos. Backup data will not count toward your child's Drive storage quota. diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 621d07a1556b33..9b2ba2c565b694 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb @@ -250,6 +250,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Linux-en edukiontzia leheneratzen Luzapenaren errorea Ezin izan da instalatu : irudiaren URLak errore-kodea itzuli du. Jarri administratzailearekin harremanetan. + gailutatik garrena, izeneko tableta Ezkerreko giltza behar da: Webguneek eta instalatutako aplikazioek gordetako datuen garbituko dira Datu-konexio bidezko sareak bilatzen… @@ -436,6 +437,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. hautatu dira Ezarri Kerberos-eko zerbitzu-eskaera aktibo bat Ezarpen hau gailuaren jabeak () kudeatzen du. + gailutatik garrena, izeneko telefonoa Ezin izan da "" kargatu itxura gisa. Esleipena berresteko eta , sakatu "" berriro Webgunea, fitxategi bakarra @@ -859,6 +861,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Aktibatu da kamera Gehitu kokapena… Jo fidagarritzat software-egileak identifikatzeko ziurtagiri hau + gailutatik garrena, identifikatu ezin den izeneko gailua Hutsik dago karpeta Ba al duzu VPN, proxy, suebaki edo NAS software berezirik instalatuta? Ez da aurkitu serieko atakarik @@ -1233,6 +1236,7 @@ Kontu honen ezarpenak kudeatzeko, instalatu Family Link aplikazioa zure gailuan. Fitxategiari buruzko informazioa Google-k irudien azalpenak ematea nahi duzu? Zure erakundeak kudeatzen du gailua + gailutatik garrena, izeneko bideo-jokoen kontrolagailua Ireki leiho fitxadun gisa adibidez: 1-5, 8, 11-13 Ireki sistema-ikustailearen bidez @@ -1990,6 +1994,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Bikoiztu fitxa Abiarazi Linux-erako tresnak, editoreak eta IDEak gailuan. Lortu informazio gehiago Berrezarri baimenak + gailutatik garrena, izeneko audio-gailua {NUM_DAYS,plural, =1{Gaur wifi-sare batera konektatzeko eta eguneratze bat deskargatzeko eskatzen du 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 domeinuak. Bestela, deskargatu eguneratzea neurtutako konexio batetik (baliteke zerbait ordaindu behar izatea).}} Ziur mugikorreko datuen zerbitzua konfiguratzeko prozesua bertan behera utzi nahi duzula? Datu-base indexatuak @@ -2295,6 +2300,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Gailu aldagarria hauteman da Emojiak iradoki dira. Nabigatzeko, sakatu Gora edo Behera gezia; txertatzeko, sakatu Sartu tekla. Memoriaren erabilera +Ezin izan da parekatu gailuarekin; berriro saiatzeko, hautatu gailua Konexio-errorea Osatuta Ziurtagiri-gidalerroaren murriztapenak @@ -3125,6 +3131,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Hitz pertsonalizatuak Fi&txa berria Zer sinkronizatu nahi duzun aukeratzeko, joan Ezarpenak atalera. +Arakatze seguru hobetua aktibatuz gero, Chrome-ren segurtasun-aukerarik sendoena lortuko duzu Desaktibatu pantaila-babeslea Estralurtarra Iritzi-txostena @@ -3630,6 +3637,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. Deskargak Erabili mikrofonoa Oso toki gutxi dago gailuaren diskoan + gailutatik garrena, izeneko ordenagailua Cookie hauek ezarri dira orria ikusi duzunean: Testu-mezuak telefonotik Chromebook gailura bidaltzea baimentzen dio Android Mezuak aplikazioari Identifikatzen zaituzten erakunde hauen ziurtagiriak dituzu @@ -3811,6 +3819,7 @@ Txartel adimenduna sartuta edukitzea eskatzen du domeinuak. "" luzapenak serieko ataka batera konektatu nahi du da autentifikazio-zerbitzuaren ostalaria Hatz-marka konfiguratzeko, eskatu haurrari etengailua sakatzeko. Haurraren hatz-markaren datuak modu seguruan gordeko dira eta ez dira inoiz aterako gailutik. +Babes estandarra ari zara jasotzen {COUNT,plural, =1{fitxategi bat}other{# fitxategi}} Ekintzak Abatar laranja lehenetsia @@ -4394,6 +4403,7 @@ Erabilerraztasun-etengailu bat baino gehiago eslei diezazkiokezu ekintza horri.< Arazo bat izan da demoa erregistratzeko eskaerarekin. Gailua berrezartzeak ez die eragingo zure Google-ko kontuei edo kontu horiekin sinkronizatutako datuei. Hala ere, gailuan bertan gorde dituzun fitxategi guztiak ezabatuko dira. Saio-hasiera automatikoa +Osatu da itzulpena hizkuntzara Microsoft Windows hardware-kontrolatzaileen egiaztapena Ezin da gehitu gailua domeinuan. Saiatu berriro edo jarri harremanetan gailuaren jabearekin edo administratzailearekin. Errore-kodea: . Menu nagusia @@ -5807,6 +5817,7 @@ Inoiz Voice Match erabiltzeari utzi nahi badiozu, ken ezazu Laguntzailea eginbid {NUM_MINS,plural, =1{Duela minutu bat egin da segurtasun-egiaztapena}other{Duela {NUM_MINS} minutu egin da segurtasun-egiaztapena}} Ezin izan dira eskuratu aplikazioko datuak. Hala ere aplikazioa abiarazten saiatzen ari gara… Sare ezkutua + gailutatik garrena, izeneko sagua Ezarri abiarazte automatikoa Baimendu berriki itxitako webguneei datuak bidaltzen eta jasotzen amaitzea (gomendatua) Lasterbideak prozesatzen… @@ -5970,6 +5981,7 @@ Inoiz Voice Match erabiltzeari utzi nahi badiozu, ken ezazu Laguntzailea eginbid Wi-Fi sareak Inprimaketa-zerbitzua Irakurri kopiatzen eta itsasten dituzun datuak + gailutatik garrena, izeneko bideo-kamera Eraldaketak Aplikazioak ez du erantzuten. Ixteko, hautatu "Behartu ixtera". Saioa hasteko zerbitzuaren ostalaria da @@ -6764,6 +6776,7 @@ Gorde gakoen fitxategia leku seguru batean. Zure luzapenaren bertsio berriak sor Irakurri testu idatzi guztiak ahots sintetizatua erabilita Galdetu (lehenetsia) Fitxategia + gailutatik garrena, izeneko teklatua Bidali oharrak Testuaren opakutasuna aplikazioak ez du erantzuten. @@ -6903,6 +6916,7 @@ Gorde gakoen fitxategia leku seguru batean. Zure luzapenaren bertsio berriak sor Laster-markak, pasahitzak, historia eta abar gailu guztietan sinkronizatu dira Edukia {NUM_TABS,plural, =1{Gehitu fitxa irakurketa-zerrendan}other{Gehitu fitxak irakurketa-zerrendan}} +Aktiba ezazu berriro Ezkutatu txartel guztiak Gailuaren informazioa Egin babeskopiak Google Drive-n; horrela, errazagoa izango da datuak leheneratzea edo beste gailu batera eramatea. Aplikazioetako datuak ere sartzen dira babeskopietan. Babeskopiak Google-ra kargatzen dira eta enkriptatu egiten dira haurraren Google-ko kontuko pasahitza erabilita. Lortu informazio gehiago @@ -6976,6 +6990,7 @@ Gorde gakoen fitxategia leku seguru batean. Zure luzapenaren bertsio berriak sor Bidali zure gailuetara Eskaini zeure burua beste hizkuntzetan idatzitako orriak itzultzeko Freskatu + gailuarekin parekatzen Irudi txikia kendu egin da. Erakutsi beti URL osoak Kargatzen… @@ -7213,9 +7228,11 @@ Gorde gakoen fitxategia leku seguru batean. Zure luzapenaren bertsio berriak sor Gehitu hizkuntzak Saioa hasten. Ezin izan da konektatu Konexioa bizkor partekatzeko eginbidearekin +Arakatze seguru hobetua desaktibatuta dago Arazoren bat izan da domeinuan sartzen saiatzean. Saiatu berriro. Netscape ziurtagiria berritzeko URLa Aktibatu soinua teklak sakatzean +Aktiba ezazu berriro Ez (Http soilik) Bertsio-berritu Idatzi formatu egokia duen URL bat diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index bc923cddd5b7bb..298269e2b42286 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb @@ -6816,6 +6816,7 @@ لطفاً یک نشانی ایمیل معتبر وارد کنید دردسترس برای بعضی از سایت‌های ویدیویی ‏صفحه‌کلید USB متصل شد +جستجوی جانبی سال انقضا جریان نامنظم &بازرسی دستگاه‌ها diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 0307f67ced8f5e..598c8651257196 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb @@ -251,6 +251,7 @@ Restauration Linux… Erreur au niveau des extensions. Impossible d'installer , car l'URL de l'image a renvoyé une erreur . Veuillez contacter votre administrateur. +Appareil  sur , tablette nommée "" Accolade ouvrante attendue : Cette action effacera des données stockées par les sites et les applications installées Recherche de réseaux de données mobiles… @@ -437,6 +438,7 @@  sélectionnés Définir un ticket Kerberos actif Ce paramètre est géré par le propriétaire de l'appareil : . +Appareil  sur , téléphone nommé "" Impossible de charger "" pour le thème. Appuyez de nouveau sur pour confirmer cette association et Page Web, un seul fichier @@ -860,6 +862,7 @@ La caméra est allumée Ajouter un emplacement… Considérer ce certificat comme fiable pour identifier les développeurs de logiciels +Appareil  sur , appareil inconnu nommé "" Ce dossier est vide Avez-vous installé un VPN, un proxy, un pare-feu ou un serveur NAS spécifique ? Ports série introuvables @@ -1234,6 +1237,7 @@ Vous pouvez gérer les paramètres de ce compte en installant l'application Fami Informations sur le fichier Obtenir des descriptions d'images de Google ? Cet appareil est géré par votre organisation +Appareil  sur , manette de jeu nommée "" Ouvrir dans une fenêtre à onglets par exemple : 1-5, 8, 11-13 Ouvrir avec le lecteur système @@ -1992,6 +1996,7 @@ et Ctrl+Alt+Diminuer la luminosité pour faire un zoom arrière. Dupliquer l'onglet Exécutez les outils, les éditeurs et les IDE Linux sur votre . En savoir plus Réinitialiser les autorisations +Appareil  sur , appareil audio nommé "" {NUM_DAYS,plural, =1{ 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{ 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{ 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).}} Voulez-vous vraiment annuler la configuration du service Internet mobile ? Bases de données indexées @@ -2297,6 +2302,7 @@ et Ctrl+Alt+Diminuer la luminosité pour faire un zoom arrière. Nouveau matériel détecté Emoji suggérés. Appuyez sur la flèche vers le haut ou vers le bas pour sélectionner un emoji, puis sur Entrée pour l'insérer. Espace mémoire utilisé +Impossible d'associer à l'appareil  ; sélectionnez l'appareil pour réessayer Erreur de connexion Terminé Contraintes des stratégies de certificat @@ -3127,6 +3133,7 @@ Souhaitez-vous lancer  ? Mots personnalisés Nouvel ongle&t Vous avez toujours la possibilité de sélectionner les éléments à synchroniser dans les paramètres. +La navigation sécurisée avec protection renforcée vous offre la sécurité la plus avancée sur Chrome Désactiver l'économiseur d'écran Extraterrestre Rapport de commentaires @@ -3632,6 +3639,7 @@ Souhaitez-vous lancer  ? Téléchargements Utiliser votre micro Très peu d'espace disque disponible sur l'appareil +Appareil  sur , ordinateur nommé "" Les cookies suivants étaient autorisés lorsque vous avez consulté cette page Autorise Android Messages à transmettre les SMS de votre téléphone à votre Chromebook Certains certificats provenant de ces organisations vous identifient. @@ -3813,6 +3821,7 @@ Souhaitez-vous lancer  ? "" tente de se connecter à un port de série Ce service d'authentification est hébergé par Pour configurer l'empreinte de votre enfant, demandez-lui d'appuyer sur le bouton Marche/Arrêt. Les données de son empreinte sont stockées de façon sécurisée et ne quittent jamais ce . +Vous avez la protection standard {COUNT,plural, =1{un fichier}one{# fichier}other{# fichiers}} Actions Avatar orange par défaut @@ -4396,6 +4405,7 @@ Vous pouvez associer plusieurs contacteurs à cette action. Un problème est survenu avec la demande d'enregistrement en mode de démonstration. La réinitialisation de votre appareil n'a aucune incidence sur vos comptes Google ni sur leurs données synchronisées. Toutefois, tous les fichiers enregistrés en local sur votre appareil vont être supprimés. Connexion automatique +Traduction en terminée Vérification de pilote matériel Microsoft Windows Impossible d'associer l'appareil au domaine. Veuillez réessayer, ou contactez le propriétaire ou l'administrateur de l'appareil. Code d'erreur : . Menu principal @@ -5810,6 +5820,7 @@ Assurez-vous de ne pas dévoiler d'informations sensibles. {NUM_MINS,plural, =1{Contrôle de sécurité effectué il y a 1 minute}one{Contrôle de sécurité effectué il y a {NUM_MINS} minute}other{Contrôle de sécurité effectué il y a {NUM_MINS} minutes}} Impossible d'obtenir les données de l'application. Nous essayons malgré tout de lancer l'application… Réseau masqué +Appareil  sur , tablette nommée "" Lancement automatique Autoriser les sites fermés récemment à terminer l'envoi et la réception de données (recommandé) Traitement des raccourcis en cours… @@ -5973,6 +5984,7 @@ Assurez-vous de ne pas dévoiler d'informations sensibles. Réseaux Wi-Fi Service d'impression Accéder aux données que vous copiez et collez +Appareil  sur , caméra nommée "" Transformations L'application ne répond pas. Sélectionnez "Forcer la fermeture" pour la fermer. Ce service de connexion est hébergé par . @@ -6769,6 +6781,7 @@ Conservez votre fichier de clé en lieu sûr. Vous en aurez besoin lors de la cr Accéder à l'ensemble du texte énoncé à l'aide de la synthèse vocale Demander (par défaut) Fichier +Appareil  sur , clavier nommé "" Envoyer Opacité du texte L'application ne répond pas. @@ -6907,6 +6920,7 @@ Conservez votre fichier de clé en lieu sûr. Vous en aurez besoin lors de la cr Vos favoris, mots de passe, données d'historique et plus sont synchronisés sur tous vos appareils Contenu {NUM_TABS,plural, =1{Ajouter l'onglet à la liste de lecture}one{Ajouter l'onglet à la liste de lecture}other{Ajouter les onglets à la liste de lecture}} +Réactiver Masquer toutes les fiches Informations sur l'appareil Sauvegarder dans Google Drive. Restaurez des données ou changez d'appareil facilement et à tout moment. La sauvegarde inclut les données d'applications. Les sauvegardes sont importées dans Google et chiffrées à l'aide du mot de passe du compte Google de votre enfant. En savoir plus @@ -6980,6 +6994,7 @@ Conservez votre fichier de clé en lieu sûr. Vous en aurez besoin lors de la cr Envoyer à vos appareils Me proposer de traduire les pages qui sont écrites dans une langue que je ne connais pas Actualiser +Association à Miniature supprimée Toujours afficher les URL en entier Importation… @@ -7217,9 +7232,11 @@ Conservez votre fichier de clé en lieu sûr. Vous en aurez besoin lors de la cr Ajouter des langues Connexion en cours Échec du partage de connexion +La navigation sécurisée avec protection renforcée est désactivée Petit problème… Une erreur s'est produite lors de la tentative d'association au domaine. Veuillez réessayer. URL de renouvellement du certificat Netscape Son à chaque touche +Réactiver Non (HttpOnly) Mettre à niveau Saisissez une URL dont le format est correct diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 4ebdde39b3d7ed..e2a89ae0227faf 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb @@ -251,6 +251,7 @@ હાલમાં Linuxને પહેલાંના જેવું કરવાની પ્રક્રિયા ચાલુ છે એક્સટેંશન ભૂલ ઇન્સ્ટૉલ કરી શક્યાં નહીં: છબીના URL દ્વારા ભૂલનો કોડ પરત આપવામાં આવ્યો છે. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો. +માંથી ડિવાઇસ, નામનું ટૅબ્લેટ અપેક્ષિત ખુલતો વાંકળિયો કૌંસ: આમ કરવાથી સાઇટ અને ઇન્સ્ટૉલ કરેલી ઍપ દ્વારા સ્ટોર કરવામાં આવેલો ડેટા સાફ કરવામાં આવશે મોબાઇલ ડેટા નેટવર્ક માટે સ્કૅન કરી રહ્યાં છીએ… @@ -437,6 +438,7 @@ પસંદ કરી સક્રિય Kerberos ટિકિટ સેટ કરો આ સેટિંગ ડિવાઇસના માલિક દ્વારા મેનેજ થાય છે. +માંથી ડિવાઇસ, નામનો ફોન થીમ માટે '' લોડ કરી શકાયું નથી. સોંપણી કન્ફર્મ કરવા માટે, ફરી “” દબાવો અને વેબપેજ, એકલ ફાઇલ @@ -856,6 +858,7 @@ કૅમેરા ચાલુ કર્યો છે સ્થાન ઉમેરો... સૉફ્ટવેર માર્કર્સને ઓળખવા માટે આ પ્રમાણપત્ર પર વિશ્વાસ કરો +માંથી ડિવાઇસ, નામનું અજાણ્યું ડિવાઇસ આ ફોલ્ડર ખાલી છે શું તમે કોઈ વિશિષ્ટ VPN, પ્રૉક્સી, ફાયરવૉલ અથવા NAS સૉફ્ટવેર ઇન્સ્ટૉલ કરેલું છે? કોઈ સીરિયલ પોર્ટ મળ્યાં નથી @@ -1230,6 +1233,7 @@ ફાઇલ માહિતી Google તરફથી છબીનાં વર્ણનો મેળવીએ? તમારું ડિવાઇસ તમારી સંસ્થા દ્વારા મેનેજ કરવામાં આવે છે +માંથી ડિવાઇસ, નામનું ગેમ કન્ટ્રોલર ટૅબવાળી વિંડો તરીકે ખોલો ઉદા. ત. 1-5, 8, 11-13 સિસ્ટમ દર્શક સાથે ખોલો @@ -1989,6 +1993,7 @@ ડુપ્લિકેટ ટૅબ તમારા પર Linux સાધનો, એડિટર અને IDEs ચલાવો. વધુ જાણો પરવાનગીઓ રીસેટ કરો +માંથી ડિવાઇસ, નામનું ઑડિયો ડિવાઇસ {NUM_DAYS,plural, =1{ માટે જરૂરી છે કે તમે અપડેટ ડાઉનલોડ કરવા માટે આજે વાઇ-ફાઇ સાથે કનેક્ટ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}one{ માટે જરૂરી છે કે તમે સમયસીમા સમાપ્ત થાય તે પહેલાં વાઇ-ફાઇ સાથે કનેક્ટ કરો અને અપડેટ ડાઉનલોડ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}other{ માટે જરૂરી છે કે તમે સમયસીમા સમાપ્ત થાય તે પહેલાં વાઇ-ફાઇ સાથે કનેક્ટ કરો અને અપડેટ ડાઉનલોડ કરો. અથવા મીટર્ડ (ડેટા નિયંત્રણ) કનેક્શન પરથી ડાઉનલોડ કરો (શુલ્ક લાગુ થઈ શકે છે).}} શું તમે ખરેખર મોબાઇલ ડેટા સેવા સેટઅપ પ્રક્રિયાને રદ કરવા માંગો છો? અનુક્રમિત ડેટાબેસેસ @@ -2294,6 +2299,7 @@ કાઢી નાખવા યોગ્ય ઉપકરણ મળ્યું સૂચવેલા ઇમોજી. નૅવિગેટ કરવા માટે ઉપર અથવા નીચેની ઍરો કી દબાવો અને મનપસંદ ઇમોજીને શામેલ કરવા enter કી દબાવો. મેમરી ફૂટપ્રિન્ટ + ડિવાઇસ સાથે જોડાણ કરી શક્યા નથી; ફરી પ્રયાસ કરવા માટે ડિવાઇસ પસંદ કરો કનેક્શન ભૂલ પૂર્ણ પ્રમાણપત્ર નીતિની મર્યાદાઓ @@ -3124,6 +3130,7 @@ કસ્ટમ શબ્દો નવું &ટૅબ શું સિંક કરવું તે હંમેશાં તમે સેટિંગમાં પસંદ કરી શકો છો. +Safe Browsingમાં વધારેલી સુરક્ષા વડે તમે Chromeની સૌથી સશક્ત સુરક્ષા મેળવશો સ્ક્રીન સેવર બંધ કરો એલિયન પ્રતિસાદ રિપોર્ટ @@ -3629,6 +3636,7 @@ ડાઉનલોડ્સ તમારા માઇક્રોફોનનો ઉપયોગ કરો ઉપકરણ ડિસ્ક સ્થાન અત્યંત ઓછું છે +માંથી ડિવાઇસ, નામનું કમ્પ્યુટર જ્યારે તમે આ પેજ જોયું, ત્યારે નીચેની કુકી સેટ થઈ હતી Android Messagesને તમારા ફોન પરથી તમારી Chromebook પર ટેક્સ્ટને પ્રસારિત કરવાની મંજૂરી આપે છે તમારી પાસે આ સંસ્થાઓના પ્રમાણપત્ર છે કે જે તમને ઓળખે છે @@ -3810,6 +3818,7 @@ "" સિરીઅલ પોર્ટ સાથે કનેક્ટ કરવા માગે છે આ પ્રમાણીકરણ સેવા દ્વારા હોસ્ટ કરવામાં આવે છે ફિંગરપ્રિન્ટનું સેટઅપ કરવા માટે, તમારા બાળકને પાવર બટનને ટચ કરવા જણાવો. તમારા બાળકની ફિંગરપ્રિન્ટનો ડેટા સુરક્ષિત રીતે સ્ટોર કરવામાં આવે છે અને તે હંમેશાં આ માં જ રહે છે. +તમે માનક સુરક્ષા મેળવી રહ્યાં છો {COUNT,plural, =1{એક ફાઇલ}one{# ફાઇલ}other{# ફાઇલ}} ક્રિયાઓ ડિફોલ્ટ નારંગી અવતાર @@ -4393,6 +4402,7 @@ ડેમો નોંધણીની વિનંતીમાં સમસ્યા આવી. તમારા ડિવાઇસને ફરીથી સેટ કરવાથી તમારા Google એકાઉન્ટ અથવા આ એકાઉન્ટ સાથે સિંક કરાયેલા કોઈ પણ ડેટા પર અસર થશે નહીં. જોકે, તમારા ડિવાઇસ પર સ્થાનિક રીતે સાચવેલી બધી ફાઇલ ડિલીટ કરવામાં આવશે. સ્વતઃ સાઇન-ઇન +માં અનુવાદ પૂર્ણ થયો Microsoft Windows Hardware Driver Verification ડોમેન સાથે ડિવાઇસને જોડી શકાતું નથી. કૃપા કરીને ફરીથી પ્રયાસ કરો અથવા તમારા ડિવાઇસના માલિક અથવા વ્યવસ્થાપકનો સંપર્ક કરો. ભૂલનો કોડ: . મુખ્ય મેનૂ @@ -5808,6 +5818,7 @@ USB ડિવાઇસ {NUM_MINS,plural, =1{સલામતી માટે તપાસ 1 મિનિટ અગાઉ કરવામાં આવી હતી}one{સલામતી માટે તપાસ {NUM_MINS} મિનિટ અગાઉ કરવામાં આવી હતી}other{સલામતી માટે તપાસ {NUM_MINS} મિનિટ અગાઉ કરવામાં આવી હતી}} ઍપનો ડેટા મેળવવામાં નિષ્ફળ રહ્યાં, તેમ છતાં હજી પણ ઍપ ચલાવવાનો પ્રયાસ કરી રહ્યાં છીએ... છુપાવવામાં આવેલું નેટવર્ક +માંથી ડિવાઇસ, નામનું માઉસ સ્વતઃ-લોંચ સેટ કરો ડેટા મોકલવાનું અને મેળવવાનું સમાપ્ત કરવા માટે તાજેતરમાં બંધ કરેલી સાઇટને મંજૂરી આપો (સુઝાવ આપીએ છીએ) શોર્ટકટ્સની પ્રક્રિયા કરી રહ્યું છે... @@ -5971,6 +5982,7 @@ USB ડિવાઇસ Wi-Fi નેટવર્ક્સ પ્રિન્ટિંગ સેવા તમે કૉપિ અને પેસ્ટ કરો એ ડેટાને વાંચો +માંથી ડિવાઇસ, નામનો વીડિયો કૅમેરા રૂપાંતરણો ઍપ્લિકેશન ચાલી રહી નથી. ઍપ બંધ કરવા માટે "ફરજિયાત બંધ" પસંદ કરો. આ સાઇન-ઇન સેવા દ્વારા હોસ્ટ થયેલી છે. @@ -6761,6 +6773,7 @@ USB ડિવાઇસ સિન્થેસાઇઝ કરેલ વાણીનો ઉપયોગ કરીને બધી બોલાયેલ ટેક્સ્ટને વાંચો પૂછો (ડિફૉલ્ટ) ફાઇલ +માંથી ડિવાઇસ, નામનું કીબોર્ડ પ્રતિસાદ મોકલો ટેક્સ્ટની અસ્પષ્ટતા ચાલી રહી નથી. @@ -6899,6 +6912,7 @@ USB ડિવાઇસ તમારા બુકમાર્ક, પાસવર્ડ, ઇતિહાસ જેવું બીજું ઘણું તમારા બધા ડિવાઇસ પર સિંક કરવામાં આવે છે કન્ટેન્ટ {NUM_TABS,plural, =1{વાંચન સૂચિમાં ટૅબ ઉમેરો}one{વાંચન સૂચિમાં ટૅબ ઉમેરો}other{વાંચન સૂચિમાં ટૅબ ઉમેરો}} +ફરી ચાલુ કરો બધા કાર્ડ છુપાવો ઉપકરણ માહિતી Google ડ્રાઇવમાં બૅકઅપ લો. કોઈપણ સમયે ડેટા સરળતાથી પાછો મેળવો અથવા ડિવાઇસ સ્વિચ કરો. આ બૅકઅપમાં ઍપનો ડેટા શામેલ હોય છે. બૅકઅપને Google પર અપલોડ કરવામાં આવે છે અને તમારા બાળકના Google એકાઉન્ટ પાસવર્ડનો ઉપયોગ કરીને એન્ક્રિપ્ટ કરવામાં આવે છે. વધુ જાણો @@ -6972,6 +6986,7 @@ USB ડિવાઇસ તમારા ડિવાઇસ પર મોકલો તમે વાંચો છો તે ભાષામાં ન હોય તેવા પેજનો અનુવાદ કરવાનું ઑફર કરો હવે રિફ્રેશ કરો +સાથે જોડાણ કરી રહ્યાં છીએ થંબનેલ દૂર કર્યું. હંમેશાં પૂર્ણ URLs બતાવો અપલોડ કરી રહ્યાં છીએ... @@ -7209,9 +7224,11 @@ USB ડિવાઇસ ભાષાઓ ઉમેરો સાઇન ઇન થઈ રહ્યું છે. ફટાફટ ટિથરિંગ કનેક્શન નિષ્ફળ +Safe Browsingમાં વધારેલી સુરક્ષા બંધ છે અરેરે! ડોમેન સાથે જોડાવાનો પ્રયાસ કરતી વખતે કંઈક ખોટું થયું હતું. કૃપા કરીને ફરી પ્રયાસ કરો. નેટસ્કેપ પ્રમાણપત્ર નવીકરણ URL કી દબાવવા પર સાઉન્ડ +ફરી ચાલુ કરો ના (ફક્ત Http) અપગ્રેડ કરો સાચી રીતે ફોર્મેટ કરેલું URL દાખલ કરો diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index fa0a45fe2e056a..6c2e309c97bd01 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb @@ -6804,6 +6804,7 @@ कृपया मान्य ईमेल पता डालें वीडियो वाली कुछ खास साइटों के लिए उपलब्ध USB कीबोर्ड कनेक्ट किया गया +जानकारी खोजने के लिए, स्क्रीन की बाईं ओर दिखने वाला पैनल समाप्ति वर्ष जर्की (रुक-रुककर) &उपकरणों का परीक्षण करें diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 4d62c86564c916..7ee520160c6cd7 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb @@ -6805,6 +6805,7 @@ Ključnu datoteku čuvajte na sigurnom mjestu. Trebat će vam za stvaranje novih Unesite važeću e-adresu Dostupno za određene web-lokacije za videozapise USB tipkovnica povezana +Bočno pretraživanje Godina isteka Isprekidano &Provjeri uređaje diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index b5c6fca58784cc..473a9af54eb3c5 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb @@ -6804,6 +6804,7 @@ Մուտքագրեք վավեր էլ․ հասցե Սարքը համատեղելի է միայն որոշակի կայքերի հետ USB ստեղնաշարը միացված է +Որոնման կողագոտի Ժամկետի սպառման տարեթիվը Ցնցվող &Հետազոտել սարքերը diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index a8eea407658b7c..181571ecaa0cb0 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb @@ -1684,6 +1684,7 @@ Компонентті жүктеу Орташадан астам Автотолтыру +Жаңа телефон қосу Пайдалану және диагностика деректері Жаңа Рұқсат сұрау @@ -2042,6 +2043,7 @@ Таңдалған провайдерді пайдалану Синхрондау функциясын кез келген уақытта "Параметрлер" бөлімінен қоса аласыз. Құрылғы атауы +Жүйе құрылғыларын іздеп жатырсыз ба? Келесіге бетке өтіңіз: Select to Speak функциясын қосу Құрылғы тілін өзгертіңіз. Қазір тілі қолданылып жатыр. Телефоныңызбен байланыс орнату мүмкін болмады. Телефоныңыз жаныңызда, құлпы ашық және Bluetooth бен Wi-Fi қосылып тұруы керек. @@ -2699,6 +2701,7 @@ {NUM_DEVICES,plural, =1{USB құрылғысы арқылы байланысу}other{# USB құрылғысы арқылы байланысу}} {COUNT,plural, =1{ құрылғысына жіберілуде.}other{ құрылғысына жіберілуде.}} Офлайн демо режиміндегі саясат оқылмады. +Жаңа құрылғыға трансляциялау Гц Балмұздақ Ата-ана бақылауы қосылып тұрғандықтан, бұл параметр өшірілді. @@ -3487,6 +3490,7 @@ Дерекқор жады Стилуспен сурет салу қолданбасы & мекенжайына өту +Жүйе туралы бетті іздеп жатырсыз ба? Келесіге бетке өтіңіз: Қолданбалар мен кеңейтімдерді басқарушы () ғана өзгерте алады. Файлда осы серверлерді анықтайтын сертификаттарыңыз бар Жадты басқару @@ -4873,6 +4877,7 @@ Қорғалған байланыс арқылы веб-сайттарға қосылу әдісін анықтайды. Растаған аккаунтыңыздың бұл құрылғыны пайдалануға рұқсаты жоқ. Әкімші орнатқан +Браузер туралы бетті іздеп жатырсыз ба? Келесіге бетке өтіңіз: Сүйкімді бет Бұл бетті оқу тізіміне қосу үшін "Бетбелгі" белгішесін басыңыз. Ортақ файл орнатылды. @@ -4971,6 +4976,7 @@ Шығып, қайта кіріңіз… PIN кодын өзгерту Файлды қабылдамау +Кеңейтімді басқару Бұл аккаунт өшірілсін бе? Құрылғыларға кіру немесе құлпын ашу үшін PIN кодыңызды пайдалануыңызға болады. Кескінді көші&ру @@ -5257,6 +5263,7 @@ Тінтуірмен кері айналдыру &Барлық тілдер Прокси сценарийіндегі хост анықталуда… +Маңайда ешқандай құрылғы табылмады мына файлды ашқысы келеді: Барлық контейнер Альбомдарды жасау үшін Google Photos қолданбасына өтіңіз. @@ -5722,6 +5729,7 @@ Дыбысын өшіру (әдепкі) Барлық уақыт Интернетті құпия пайдаланғыңыз келсе, инкогнито терезесін ашуға болады. Ол үшін нүктелер белгішесінің мәзірін басыңыз +Bluetooth құрылғыңыз жұптау режимінде және маңайда болсын. Сенімді құрылғылармен ғана жұптаңыз. Толығырақ Арнайы мүмкіндіктер Жылдам тетеринг желісін ажырату Тіркелген OID @@ -6629,6 +6637,7 @@ Әрқашан аудару Phone Hub Бет көрсеткіштері арқылы Chrome жақсара түседі +Браузер компоненттерін іздеп жатырсыз ба? Келесіге бетке өтіңіз: Бет жауап бермеді. Оның жауап беруін күтуіңізге немесе жабуыңызға болады. Файлда осы сертификат беруші орталықтарды анықтайтын сертификаттарыңыз бар Утилита: @@ -7004,6 +7013,7 @@ Тінтуірдің оң жақ түймесін басып немесе мәтінді басып тұрып, мәтіннің анықтамасын, аудармасын көруге немесе өлшем бірліктерін ауыстыруға болады. Аударма тілдерін веб-сайт тілдері бөлімінде реттейсіз. Ата-ана, келесі қадамдарды сіз орындауыңыз керек. Аккаунтты реттеп болғасын, құрылғысын балаға қайтара аласыз. "Қосымша құралдар" мәзіріндегі кеңейтімдерді басу арқылы кеңейтімдерді басқарыңыз. +QR кодын сканерлеу үшін камераны пайдалану Файлды трансляциялау Ұлғайтқышты пернетақта көмегімен қозғау Жаңарту аяқталмайынша құрылғыңызды өшірмеңіз немесе жаппаңыз. құрылғыңыз орнату аяқталғаннан кейін қайта қосылады. @@ -7683,6 +7693,7 @@ , оның астындағы барлық сайт және оның орнатылған қолданбалары үшін сайт деректері мен рұқсаттары өшірілсін бе? Белгісіз принтерге арналған хабарландыру алынды. Елемеу + мәліметтер бетіндегі артқа түймесі Жүктелуде (%)… Осы бетті өзгерткіңіз келді ме? Белгішені әрқашан көрсету @@ -7865,6 +7876,7 @@ Сайт Bluetooth құрылғыларын пайдаланғысы келгенде, рұқсат сұраy Пайдаланылуы және диагностикасы туралы деректерді жіберу. Бұл құрылғыдан Google-ға диагностика, құрылғы мен қолданбаны пайдалану деректері автоматты түрде жіберіліп тұрады. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Бұл параметрді иесі орнатқан. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер сіздің Google аккаунтыңызға сақталуы мүмкін. Толығырақ – Bluetooth құрылғысы қосылды +Кіру деректерін жою Кіру экранындағы пайдаланушы аты Бұл процесс бірнеше минутқа созылуы мүмкін. Linux контейнері іске қосылуда. Сайт экраныңызды бөлісе алады diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 90b0880e827f42..68e7e378b7f45f 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb @@ -6797,6 +6797,7 @@ ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ. ನಿರ್ದಿಷ್ಟ ವೀಡಿಯೊ ಸೈಟ್‌ಗಳಿಗೆ ಲಭ್ಯವಿದೆ USB ಕೀಬೋರ್ಡ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ +ಸೈಡ್ ಸರ್ಚ್ ಮುಕ್ತಾಯದ ವರ್ಷ ಜೆರ್ಕಿ &ಸಾಧನಗಳನ್ನು ಪರಿಶೀಲಿಸಿ diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 90b0f577960c78..dcb8942168db1c 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb @@ -2524,6 +2524,7 @@ Family Link колдонмосун түзмөгүңүзгө орнотуп, бу Family Link аркылуу вебсайттарга жана түзмөктү колдонуу убакытына чектөөлөрдү коюу Түзмөккө саясат орнотулбай койду. Болжол менен калды +Экранды бөлүү жана иш такталарды которуу сыяктуу аракеттер ырасталганда, дирилдейт. &Орфографиялык текшерүү Бир нече мүнөткө созулушу мүмкүн. Linux контейнери жөндөлүүдө. Chrome'догу акыркы өтмөктөрдү телефонуңуздан көрө аласыз @@ -4925,6 +4926,7 @@ Family Link колдонмосун түзмөгүңүзгө орнотуп, бу Телефонуңузду текшериңиз Chrome серепчиси менен Жүргүзгүчү үчүн демейки издөө каражатын жөндөңүз Smart Lock'ту колдонуу үчүн телефонуңуздагы негизги колдонуучунун профилин которуштуруңуз +Бул таржымалдар Менин файлдарымда сакталган: Тил жана текст киргизүү жөндөөлөрүн өзгөртүү Түзмөктүн аталышын деп коюу Бул бетти баштоо экранына кадап коюу… @@ -5701,6 +5703,7 @@ Family Link колдонмосун түзмөгүңүзгө орнотуп, бу Тышкы коопсуздук ачкычы же орнотулган сенсор {NUM_EXTENSIONS,plural, =1{Кеңейтүү четке кагылды}other{# кеңейтүү четке кагылды}} Жаңыртуу аягына чыкты +Чыкылдатуу күчү Кагаз тактасы жок "" түзмөгүнө дайындарды жазып жатканда атрибут өтө узун болуп кетти. 1 сакталган принтериңиз бар. @@ -6833,6 +6836,7 @@ Family Link колдонмосун түзмөгүңүзгө орнотуп, бу тобу – Байланыш диалогу Google Булуттагы Принтер +Сенсордук жооп Сүрөт форматында басып чыгаруу Колдонмо дайындарына иштеп чыгуучунун жөндөөлөрүнүн негизинде сакталган бардык дайындар, анын ичинде байланыштар, билдирүүлөр жана сүрөттөр сыяктуу дайындар кириши мүмкүн. Дайындардын камдык көчүрмөлөрү балаңыздын Drive сактагычынан орун ээлебейт. diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 56b538ef39c8c9..ce55bb5c059b1e 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb @@ -6810,6 +6810,7 @@ Rakto failą laikykite saugioje vietoje. Jo reikės, kai norėsite sukurti nauja Įveskite tinkamą el. pašto adresą Pasiekiama konkrečioms vaizdo įrašų svetainėms USB klaviatūra prijungta +Šoninė paieška Galiojimo laiko pabaigos metai Trūkčioja &Tikrinti įrenginius diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index c19b81300639b9..70a21b0d0836c0 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb @@ -2508,6 +2508,7 @@ Family Link ഉപയോഗിച്ച് വെബ്സൈറ്റ് നിയന്ത്രണങ്ങളും സ്ക്രീൻ സമയ പരിധികളും സജ്ജീകരിക്കുക ഉപകരണത്തിൽ നയം ഇൻസ്‌റ്റാൾ ചെയ്യാനായില്ല. ഏകദേശം ശേഷിക്കുന്നു +സ്‌ക്രീൻ വിഭജന മോഡും സ്വിച്ചിംഗ് ഡെസ്‌ക്കുകളും പോലുള്ള പ്രവർത്തനങ്ങൾക്ക് വൈബ്രേഷൻ സ്ഥിരീകരണം സ്വീകരിക്കുക. &അക്ഷരത്തെറ്റ് പരിശോധന ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. Linux കണ്ടെയ്‌നർ സജ്ജീകരിക്കുന്നു. നിങ്ങളുടെ ഫോണിലെ അടുത്തിടെയുള്ള Chrome ടാബുകൾ കാണുക @@ -4909,6 +4910,7 @@ നിങ്ങളുടെ ഫോൺ പരിശോധിക്കുക Chrome ബ്രൗസറിനും ലോഞ്ചറിനും നിങ്ങളുടെ ഡിഫോൾട്ട് തിരയൽ യന്ത്രം സജ്ജീകരിക്കുക Smart Lock ഉപയോഗിക്കാൻ നിങ്ങളുടെ ഫോണിലെ പ്രാഥമിക ഉപയോക്തൃ പ്രൊഫൈലിലേക്ക് സ്വിച്ച് ചെയ്യുക +ഈ ലോഗുകൾ ഇനിപ്പറയുന്നതായി 'എന്റെ ഫയലുകൾ' എന്നതിൽ സംരക്ഷിച്ചിരിക്കുന്നു ഭാഷയും ഇൻപുട്ട് ക്രമീകരണങ്ങളും മാറ്റുക ഉപകരണത്തിന് എന്ന് പേര് നൽകുക ഈ പേജ് ആരംഭ സ്‌ക്രീനിലേക്ക് പിൻ ചെയ്യുക... @@ -5685,6 +5687,7 @@ ബാഹ്യ സുരക്ഷാ കീ അല്ലെങ്കിൽ അന്തർനിർ‌മ്മിത സെൻസർ {NUM_EXTENSIONS,plural, =1{ഒരു വിപുലീകരണം നിരസിച്ചു}other{# വിപുലീകരണങ്ങൾ നിരസിച്ചു}} അപ്ഗ്രേഡ് പൂർത്തിയായി +ക്ലിക്ക് സെൻസിറ്റിവിറ്റി പേപ്പർ ട്രേ കാണുന്നില്ല എഴുതൽ പ്രവർത്തനം ഇനി പറയുന്നതിലേക്കുള്ള ആട്രിബ്യൂട്ടിന്‍റെ പരമാവധി ദൈർഘ്യം കവിയുന്നു : "". നിങ്ങൾക്ക് സംരക്ഷിച്ചിരിക്കുന്ന ഒരു പ്രിന്റർ ഉണ്ട്. @@ -6802,6 +6805,7 @@ സാധുതയുള്ള ഒരു ഇമെയില്‍വിലാസം നല്‍കുക. നിർദ്ദിഷ്ട വീഡിയോ സൈറ്റുകൾക്ക് ലഭ്യമാണ് USB കീബോർഡ് കണക്‌റ്റുചെയ്‌തു +സൈഡ് സെർച്ച് കാലാവധി കഴിയുന്ന വർഷം ചാഞ്ചാട്ടമുള്ളത് &ഉപകരണങ്ങൾ പരിശോധിക്കുക @@ -6816,6 +6820,7 @@ ഗ്രൂപ്പ് - - കണക്ഷൻ ഡയലോഗ് Google Cloud Print +തൊട്ടുളള ഫീഡ്ബാക്ക് ചിത്രമായി പ്രിന്‍റ് ചെയ്യുക ആപ്പ് ഡാറ്റ എന്നത്, കോൺടാക്‌റ്റുകൾ, സന്ദേശങ്ങൾ, ഫോട്ടോകൾ എന്നിവ പോലെ രഹസ്യ സ്വഭാവമുള്ള ഡാറ്റ ഉൾപ്പെടെ ഒരു ആപ്പ് സംരക്ഷിച്ച (ഡെവലപ്പർ ക്രമീകരണം അടിസ്ഥാനമാക്കി) ഏത് ഡാറ്റയുമാകാം. ബാക്കപ്പ് ഡാറ്റ, നിങ്ങളുടെ കുട്ടിയുടെ ഡ്രൈവ് സ്റ്റോറേജിലെ ഇടം കുറയ്ക്കില്ല. diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 5b08002e598618..1036d0815d420a 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb @@ -6814,6 +6814,7 @@ Хүчинтэй имэйл хаягаа оруулна уу Тодорхой видео сайтуудад боломжтой USB гар холбогдсон байна. +Хажуугийн хайлт Дуусах он Тасалддаг & Төхөөрөмжүүдийг хянан, шалгах diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 1e38424eab1e14..3ff9741a5516e1 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb @@ -6802,6 +6802,7 @@ https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featu कृपया एक वैध ईमेल ॲड्रेस एंटर करा विशिष्ट व्हिडिओ साइटसाठी उपलब्ध USB कीबोर्ड कनेक्ट झाला +बाजूला असलेला शोध कालबाह्य होण्याचे वर्ष अस्थिर आहे &डिव्हाइसेसचा निरीक्षण करा diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 6a9d6e6669ed57..f18f77f0f22913 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb @@ -250,6 +250,7 @@ Linux-herstel wordt momenteel uitgevoerd Fout met extensie Kan niet installeren: image-URL heeft een -foutcode geretourneerd. Neem contact op met je beheerder. +Apparaat van , tablet met de naam Verwachte openingsaccolade Hiermee wis je van de gegevens die zijn opgeslagen door sites en geïnstalleerde apps Scannen naar mobiele gegevensnetwerken... @@ -436,6 +437,7 @@ geselecteerd Actief Kerberos-ticket instellen Deze instelling wordt beheerd door de eigenaar van het apparaat, . +Apparaat van , telefoon met de naam Kan '' niet laden voor thema. Druk nog een keer op om de toewijzing te bevestigen en . Webpagina, één bestand @@ -859,6 +861,7 @@ Camera staat aan Locatie toevoegen... Dit certificaat vertrouwen voor het identificeren van softwareontwikkelaars +Apparaat van , onbekend apparaat met de naam Deze map is leeg Heb je speciale VPN-, proxy-, firewall- of NAS-software geïnstalleerd? Geen seriële poorten gevonden @@ -1233,6 +1236,7 @@ Je kunt de instellingen van dit account beheren door de Family Link-app op je ap Bestandsinformatie Afbeeldingsbeschrijvingen ophalen van Google? Je apparaat wordt beheerd door je organisatie +Apparaat van , gamecontroller met de naam Openen als venster met tabbladen bijv. 1-5, 8, 11-13 Openen met systeemviewer @@ -1990,6 +1994,7 @@ Als je later besluit dat je niet wilt dat je kind Voice Match gebruikt, verwijde Tabblad dupliceren Voer Linux-tools, -editors en -IDE's op je uit. Meer informatie Rechten resetten +Apparaat van , audioapparaat met de naam {NUM_DAYS,plural, =1{ 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{ 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).}} Weet je zeker dat je het instellen van een mobiele dataservice wilt annuleren? Geïndexeerde databases @@ -2295,6 +2300,7 @@ Als je later besluit dat je niet wilt dat je kind Voice Match gebruikt, verwijde Verwisselbaar apparaat gedetecteerd Voorgestelde emoji's. Druk op de pijl-omhoog of pijl-omlaag om te navigeren en druk op Enter om het geselecteerde item in te voegen. Geheugenvoetafdruk +Kan niet koppelen met apparaat , selecteer het apparaat om het opnieuw te proberen Verbindingsfout Voltooid Beleidsbeperkingen voor certificaat @@ -3125,6 +3131,7 @@ Als je later besluit dat je niet wilt dat je kind Voice Match gebruikt, verwijde Aangepaste woorden Nieuw &tabblad Je kunt altijd in de instellingen bepalen wat je wilt synchroniseren. +Met de uitgebreide versie van Safe Browsing krijg je de sterkste beveiliging van Chrome Screensaver uitzetten Alien Feedbackrapport @@ -3630,6 +3637,7 @@ Als je later besluit dat je niet wilt dat je kind Voice Match gebruikt, verwijde Downloads Je microfoon gebruiken Er is zeer weinig schijfruimte beschikbaar op het apparaat +Apparaat van , computer met de naam De volgende cookies zijn opgeslagen toen je deze pagina bekeek Hiermee kan Android Berichten sms'jes van je telefoon naar je Chromebook doorsturen Je hebt certificaten van deze organisaties waarmee je wordt geïdentificeerd @@ -3809,6 +3817,7 @@ Als je later besluit dat je niet wilt dat je kind Voice Match gebruikt, verwijde '' wil verbinden met een seriële poort Deze verificatieservice wordt gehost door Laat je kind de aan/uit-knop aanraken om een vingerafdruk in te stellen. De vingerafdrukgegevens van je kind worden beveiligd opgeslagen en blijven uitsluitend op de staan. +Je krijgt standaardbeveiliging {COUNT,plural, =1{een bestand}other{# bestanden}} Acties Standaard oranje avatar @@ -4392,6 +4401,7 @@ Je kunt meerdere schakelaars toewijzen aan deze actie. Er is een probleem opgetreden met een demoregistratieverzoek. Als je je apparaat opnieuw instelt, heeft dit geen effect op je Google-accounts of gegevens die zijn gesynchroniseerd met deze accounts. Alle bestanden die lokaal op je apparaat zijn opgeslagen, worden wel verwijderd. Automatisch inloggen +Vertaling naar klaar Controle van Windows-apparaatstuurprogramma's Kan het apparaat niet aan het domein koppelen. Probeer het opnieuw of neem contact op met de eigenaar of beheerder van het apparaat. Foutcode: . Hoofdmenu @@ -5805,6 +5815,7 @@ Als je later besluit dat je Voice Match niet wilt gebruiken, verwijder je dit ge {NUM_MINS,plural, =1{Veiligheidscheck is 1 minuut geleden uitgevoerd}other{Veiligheidscheck is {NUM_MINS} minuten geleden uitgevoerd}} App-gegevens kunnen niet worden opgehaald. Er wordt toch geprobeerd de app uit te voeren. Verborgen netwerk +Apparaat van , muis met de naam Instellen op automatisch starten Toestaan dat onlangs gesloten sites het verzenden en ontvangen van gegevens voltooien (aanbevolen) Snelle links verwerken... @@ -5968,6 +5979,7 @@ Als je later besluit dat je Voice Match niet wilt gebruiken, verwijder je dit ge Wifi-netwerken Afdrukservice Gegevens lezen die je kopieert en plakt +Apparaat van , videocamera met de naam Transformaties De app reageert niet. Selecteer 'Nu sluiten' om de app te sluiten. Deze inlogservice wordt gehost door . @@ -6762,6 +6774,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie Alle tekst lezen die wordt gesproken met gesynthetiseerde spraak Vragen (standaard) Archief +Apparaat van , toetsenbord met de naam Feedback sturen Ondoorzichtigheid van tekst reageert niet. @@ -6901,6 +6914,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie Je bookmarks, wachtwoorden, geschiedenis en meer zijn gesynchroniseerd op al je apparaten Content {NUM_TABS,plural, =1{Tabblad toevoegen aan leeslijst}other{Tabbladen toevoegen aan leeslijst}} +Weer aanzetten Alle kaarten verbergen Apparaatgegevens Een back-up maken in Google Drive. Gemakkelijk gegevens herstellen of op elk gewenst moment van apparaat wisselen. Deze back-up omvat app-gegevens. Back-ups worden geüpload naar Google en versleuteld met het wachtwoord van het Google-account van je kind. Meer informatie @@ -6974,6 +6988,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie Verzenden naar je apparaten Aanbieden om pagina's te vertalen die in een voor jou onbekende taal zijn Nu vernieuwen +Koppelen met Miniatuur verwijderd. Altijd volledige URL's bekijken Uploaden... @@ -7211,9 +7226,11 @@ Je kunt beheren wat je ziet in je herinneringen via phot Talen toevoegen Inloggen. Verbinding via instant-tethering mislukt +Uitgebreide versie van Safe Browsing staat uit Er is een fout opgetreden bij het verbinden met het domein. Probeer het opnieuw. URL voor verlengen van Netscape-certificaat Geluid bij toetsaanslag +Weer aanzetten Nee (HttpOnly) Upgraden Geef een correct opgemaakte URL op diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index c9c2dbc8e28db1..043529fc359c10 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb @@ -6808,6 +6808,7 @@ Oppbevar nøkkelfilen på et trygt sted. Du får bruk for den når du skal oppre Skriv inn en gyldig e-postadresse Tilgjengelig for spesifikke videonettsteder USB-tastatur tilkoblet +Sidesøk Utløpsår Hakker &Inspiser enheter diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 2ed1f876032444..a14aa4a29bd3b2 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb @@ -6799,6 +6799,7 @@ Przechowuj plik klucza w bezpiecznym miejscu. Będzie on potrzebny do utworzenia Wpisz prawidłowy adres e-mail Dostępne w przypadku konkretnych stron z filmami Podłączono klawiaturę USB +Wyszukiwanie na boku Rok utraty ważności Przeskakuje &Sprawdź urządzenia diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 143e46230b5c9c..e884c318d93852 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb @@ -2526,6 +2526,7 @@ e Ctrl + Alt + Diminuir brilho para diminuí-lo. Defina restrições de sites e limites de tempo de uso com o Family Link Falha ao instalar a política no dispositivo. Tempo restante: +Receber vibrações de confirmação para ações como divisão de tela e mudança de espaço de trabalho. &Verificação ortográfica O processo pode levar alguns minutos. Configurando o contêiner Linux. Ver guias recentes do Chrome no seu smartphone @@ -4928,6 +4929,7 @@ Não exponha nenhuma informação confidencial. Verifique seu smartphone Defina seu mecanismo de pesquisa padrão para o navegador Chrome e o acesso rápido do Para usar o Smart Lock, acesse o perfil de usuário principal no smartphone +Esses registros foram salvos em "Meus arquivos" como Alterar configurações de idioma e de entrada Nomear dispositivo como Fixar esta página na tela inicial... @@ -5704,6 +5706,7 @@ Não exponha nenhuma informação confidencial. Chave de segurança externa ou sensor integrado {NUM_EXTENSIONS,plural, =1{Uma extensão foi rejeitada}one{# extensão foi rejeitada}other{# extensões foram rejeitadas}} Atualização concluída +Força do clique A bandeja de papel não foi encontrada A operação de escrita excede o comprimento máximo do atributo para "". Você tem 1 impressora salva. @@ -6837,6 +6840,7 @@ Mantenha a sua chave de arquivo em um local seguro. Você precisará dela para c Grupo : - Caixa de diálogo de conexão Google Cloud Print +Retorno tátil Imprimir como imagem Os dados de apps podem ser quaisquer dados que um app tenha salvado (com base nas configurações de desenvolvedores), incluindo dados como contatos, mensagens e fotos. Os dados de backup não serão contabilizados na cota de armazenamento do Drive do seu filho. diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 941b5e3d61f362..2a420750d52bbe 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb @@ -2505,6 +2505,7 @@ Pretende pará-lo? Defina restrições de Websites e limites de tempo de utilização com o Family Link Falha ao instalar a política no dispositivo. Resta(m) cerca de +Receba a confirmação com vibração para ações como ativar o ecrã dividido e alternar entre espaços de trabalho. &Verificação ortográfica Este processo pode demorar alguns minutos. A configurar o contentor do Linux… Veja os separadores recentes do Chrome do telemóvel. @@ -4902,6 +4903,7 @@ Certifique-se de que não revela informações confidenciais. Verificar o seu telemóvel Selecione o motor de pesquisa predefinido para o navegador Chrome e o Launcher . Para utilizar o Smart Lock, mude para o perfil de utilizador principal no seu telemóvel +Estes registos foram guardados em Os meus ficheiros como Alterar idioma e definições de introdução Atribuir o nome ao dispositivo Fixar esta página ao ecrã Inicial... @@ -5678,6 +5680,7 @@ Certifique-se de que não revela informações confidenciais. Chave de segurança externa ou sensor incorporado {NUM_EXTENSIONS,plural, =1{Uma extensão foi rejeitada}one{# extensão(ões) foi(ram) rejeitada(s)}other{# extensões foram rejeitadas}} Atualização concluída +Força do clique Não existe um tabuleiro de papel A operação de escrita excede o comprimento máximo do atributo para: "". Tem 1 impressora guardada. @@ -6808,6 +6811,7 @@ Mantenha o seu ficheiro de chave num local seguro, pois irá precisar dele para Grupo Caixa de diálogo de ligação Google Cloud Print +Resposta tátil Imprimir como imagem Os dados de apps podem ser quaisquer dados que uma aplicação tenha guardado (com base nas definições do programador), incluindo dados como contactos, mensagens e fotos. Os dados da cópia de segurança não são contabilizados para a quota do armazenamento do Drive da criança. diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 354fe4d4d3e30a..c40329339968da 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb @@ -6790,6 +6790,7 @@ Păstrează fișierul cu cheia într-un loc sigur. Acesta va fi necesar la crear Introdu o adresă de e-mail validă Disponibil pentru anumite site-uri cu videoclipuri Tastatură USB conectată +Căutare laterală Anul expirării Redare sacadată &Inspectați dispozitivele diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index 98d23f6637264c..cd192ca176874e 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb @@ -6790,6 +6790,7 @@ Введите действительный адрес электронной почты Совместимо только с определенными сайтами USB-клавиатура подключена +Боковая панель поиска Год окончания срока действия Нестабильное &Проверка устройств diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index b187aeca3cfb69..af050f9cfed46c 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb @@ -2511,6 +2511,7 @@ stlačením klávesov Ctrl + Alt + zníženie jasu zobrazenie oddialite.Pomocou aplikácie Family Link môžete nastaviť obmedzenia webov a obmedzenia času používania Pravidlo sa nepodarilo v zariadení nainštalovať. Zostáva približne +Dostávajte potvrdenie vibráciami v prípade akcií, napríklad pri použití rozdelenej obrazovky a prepnutí plôch. &Kontrola pravopisu Tento proces môže trvať niekoľko minút. Nastavuje sa kontajner systému Linux. Zobrazte si nedávne karty Chromu z telefónu @@ -4911,6 +4912,7 @@ Tejto akcii môžete prideliť viacero prepínačov. Skontrolujte telefón Nastavte si predvolený vyhľadávač pre prehliadač Chrome a Spúštač v zariadení Ak chcete používať funkcie Smart Lock, prepnite na profil hlavného používateľa v telefóne +Tieto denníky boli uložené v priečinku Moje súbory ako Zmeniť nastavenia jazyka a vstupu Pomenovať zariadenie Pripnúť túto stránku na Úvodnú obrazovku... @@ -5687,6 +5689,7 @@ Tejto akcii môžete prideliť viacero prepínačov. Externý bezpečnostný kľúč alebo vstavaný senzor {NUM_EXTENSIONS,plural, =1{Rozšírenie bolo odmietnuté}few{# rozšírenia boli odmietnuté}many{# extensions have been rejected}other{# rozšírení bolo odmietnutých}} Inovácia je dokončená +Sila kliknutia Chýba zásobník na papier Operácia zápisu prekročila maximálnu dĺžku atribútu na zariadení . Máte jednu uloženú tlačiareň. @@ -6804,6 +6807,7 @@ Súbor kľúča uložte na bezpečné miesto. Budete ho potrebovať na vytvoreni Zadajte platnú e-mailovú adresu K dispozícii pre konkrétne weby s videom Klávesnica s konektorom USB bola pripojená +Bočné vyhľadávanie Rok ukončenia platnosti Opakovane sa zastavuje &Preskúmať zariadenia @@ -6818,6 +6822,7 @@ Súbor kľúča uložte na bezpečné miesto. Budete ho potrebovať na vytvoreni Skupina Dialógové okno pripojenia Google Cloud Print +Hmatová odozva Vytlačiť ako obrázok Dáta aplikácií môžu byť ľubovoľné dáta, ktoré aplikácie uložili (v závislosti od nastavení vývojára), vrátane potenciálne citlivých informácií, ako sú kontakty, správy a fotky. Zálohované dáta sa nezapočítavajú do kvóty úložiska Disku. diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 27103dca63f022..986178306d9915 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb @@ -255,6 +255,7 @@ Domena zahteva, da je pametna kartica vstavljena.}}Trenutno poteka obnavljanje vsebnika za Linux Napaka razširitve Navideznega računalnika ni bilo mogoče namestiti: URL slike je vrnil kodo napake . Obrnite se na skrbnika. +Naprava od , tablični računalnik, imenovan Pričakovan zaviti oklepaj: S tem boste izbrisali podatkov, ki so jih shranila spletna mesta in nameščene aplikacije. Iskanje mobilnih podatkovnih omrežij … @@ -441,6 +442,7 @@ Domena zahteva, da je pametna kartica vstavljena.}}Št. izbranih: Nastavitev aktivnega kartončka za Kerberos To nastavitev upravlja lastnik naprave . +Naprava od , telefon, imenovan Ni bilo mogoče naložiti slike »« za temo. Znova pritisnite »«, če želite potrditi dodelitev in . Spletna stran, ena datoteka @@ -873,6 +875,7 @@ Domena zahteva, da je pametna kartica vstavljena.}}Kamera je vklopljena. Dodaj lokacijo ... Zaupaj temu potrdilu za prepoznavanje proizvajalcev programske opreme +Naprava od , neznana naprava, imenovana Ta mapa je prazna Ali imate nameščeno posebno omrežje VPN, strežnik proxy, požarni zid ali programsko opremo NAS? @@ -1248,6 +1251,7 @@ Nastavitve tega računa je mogoče upravljati z namestitvijo aplikacije Family L Podatki o datoteki Želite pridobivati opise slik iz Googla? To napravo upravlja vaša organizacija. +Naprava od , krmilnik za igre, imenovan Odprta kot okno na zavihku npr. 1–5, 8, 11–13 Odpri s sistemskim pregledovalnikom @@ -2009,6 +2013,7 @@ Domena zahteva, da je pametna kartica vstavljena.Duplicate Tab Izvajanje orodij, urejevalnikov in IDE-jev za Linux v napravi . Več o tem Ponastavi dovoljenja +Naprava od , zvočna naprava, imenovana {NUM_DAYS,plural, =1{ 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{ 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{ 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{ 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{ 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).}} Ali ste prepričani, da želite preklicati postopek nastavitve mobilne podatkovne storitve? Indeksirane zbirke podatkov @@ -2314,6 +2319,7 @@ Domena zahteva, da je pametna kartica vstavljena.Zaznane zamenljive naprave Predlagan je bil emodži. Pritisnite tipko za navzdol ali navzdol in Enter, če ga želite vnesti. Količina uporabljenega pomnilnika +Seznanitve z napravo ni bilo mogoče opraviti; izberite napravo, če želite poskusiti znova Napaka povezave Dokončano Omejitve pravilnika potrdila @@ -3144,6 +3150,7 @@ Domena zahteva, da je pametna kartica vstavljena.Besede po meri Nov &zavihek V nastavitvah lahko kadar koli izberete, kaj želite sinhronizirati. +Z izboljšanim varnim brskanjem dobite Chromovo najmočnejšo zaščito. Izklop ohranjevalnika zaslona Zunajzemeljsko bitje Poročilo s povratnimi informacijami @@ -3650,6 +3657,7 @@ Domena zahteva, da je pametna kartica vstavljena.Prenosi Uporabite mikrofon V napravi kritično primanjkuje prostora na disku +Naprava od , računalnik, imenovan Ko ste si ogledovali to stran, so bili poslani ti piškotki Aplikaciji Android Messages omogoča posredovanje sporočil SMS iz telefona v Chromebook Imate potrdila teh organizacij, ki vas identificirajo @@ -3831,6 +3839,7 @@ Domena zahteva, da je pametna kartica vstavljena.»« se želi povezati z zaporednimi vrati Storitev preverjanja pristnosti gosti Če želite nastaviti prstni odtis, naj se otrok dotakne gumba za vklop. Podatki o prstnih odtisih otroka so varno shranjeni in nikoli ne zapustijo naprave . +Imate standardno zaščito. {COUNT,plural, =1{datoteko}one{# datoteko}two{# datoteki}few{# datoteke}other{# datotek}} Dejanja Privzeti oranžni avatar @@ -4414,6 +4423,7 @@ Temu dejanju lahko dodelite več stikal. Prišlo je do težave z zahtevo za registracijo predstavitve. Ponastavitev naprave ne bo vplivala na vaše Google Račune ali kakršne koli druge podatke, sinhronizirane s temi računi. Izbrisani pa bodo vsi podatki, shranjeni lokalno v napravi. Samodejna prijava +Prevod v jezik je dokončan Preverjanje gonilnikov strojne opreme za sistem Microsoft Windows Naprave ni mogoče pridružiti domeni. Poskusite znova ali se obrnite na lastnika ali skrbnika naprave. Koda napake: . Glavni meni @@ -5829,6 +5839,7 @@ Domena zahteva, da je pametna kartica vstavljena.{NUM_MINS,plural, =1{Varnostno preverjanje je bilo izvedeno pred 1 minuto}one{Varnostno preverjanje je bilo izvedeno pred {NUM_MINS} minuto}two{Varnostno preverjanje je bilo izvedeno pred {NUM_MINS} minutama}few{Varnostno preverjanje je bilo izvedeno pred {NUM_MINS} minutami}other{Varnostno preverjanje je bilo izvedeno pred {NUM_MINS} minutami}} Pridobivanje podatkov aplikacije ni uspelo. Aplikacija se kljub temu poskuša zagnati … Skrito omrežje +Naprava od , miška, imenovana Nastavi za samodejni zagon Nedavno zaprtim spletnim mestom dovoli dokončanje pošiljanja in prejemanja podatkov (priporočeno) Obdelava bližnjic ... @@ -5992,6 +6003,7 @@ Domena zahteva, da je pametna kartica vstavljena.Omrežja Wi-Fi Storitev tiskanja Branje podatkov, ki jih kopirate in prilepite +Naprava od , kamera, imenovana Pretvorbe Aplikacija se ne odziva. Če želite zapreti aplikacijo, izberite »Vsili zapiranje«. Prijavno storitev gosti @@ -6788,6 +6800,7 @@ Datoteko s ključem shranite na varnem. Potrebovali jo boste za izdelavo novih r Branje in izgovarjava vsega besedila z uporabo sintetiziranega govora Zahteva (privzeto) Datoteka +Naprava od , tipkovnica, imenovana Pošlji povratne informacije Neprosojnost besedila se ne odziva. @@ -6926,6 +6939,7 @@ Datoteko s ključem shranite na varnem. Potrebovali jo boste za izdelavo novih r Zaznamki, gesla, zgodovina in drugi podatki so sinhronizirani v vseh vaših napravah Vsebina {NUM_TABS,plural, =1{Dodaj zavihek na bralni seznam}one{Dodaj zavihke na bralni seznam}two{Dodaj zavihke na bralni seznam}few{Dodaj zavihke na bralni seznam}other{Dodaj zavihke na bralni seznam}} +Vnovični vklop Skrij vse kartice Podatki o napravi Varnostno kopiranje v Google Drive. Po želji lahko preprosto obnovite podatke ali napravo zamenjate z drugo. Ta varnostna kopija vključuje podatke aplikacij. Varnostne kopije so naložene v Google in šifrirane z geslom za Google Račun otroka. Več o tem @@ -6999,6 +7013,7 @@ Datoteko s ključem shranite na varnem. Potrebovali jo boste za izdelavo novih r Pošiljanje v naprave Ponudi prevajanje strani, ki niso v vašem jeziku Osveži zdaj +Seznanjanje z napravo Sličica je odstranjena. Vedno pokaži celotne URL-je Nalaganje … @@ -7236,9 +7251,11 @@ Datoteko s ključem shranite na varnem. Potrebovali jo boste za izdelavo novih r Dodaj jezike Prijavljanje. Vzpostavljanje takojšnje povezave z internetom prek mobilnega telefona ni uspelo +Izboljšano varno brskanje je izklopljeno Ojoj. Pri poskusu pridružitve domeni je prišlo do težav. Poskusite znova. Spletni naslov podaljšanja Netscapeovega potrdila Zvok ob pritisku tipke +Vnovični vklop Ne (samo http) Nadgradi Vnesite pravilno oblikovan URL diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index b77e695a035ac1..58b653eab301d2 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb @@ -6788,6 +6788,7 @@ Datoteka ključa: Unesite važeću imejl adresu Dostupno za određene sajtove za video snimke USB tastatura je povezana +Bočna pretraga Godina isteka Isprekidan &Ispitaj uređaje diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 67bfc9af6bd638..971b6153aba12e 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb @@ -6788,6 +6788,7 @@ Унесите важећу имејл адресу Доступно за одређене сајтове за видео снимке USB тастатура је повезана +Бочна претрага Година истека Испрекидан &Испитај уређаје diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index e152d20569ac7b..d1b86223123beb 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb @@ -252,6 +252,7 @@ ప్రస్తుతం Linux పునరుద్ధరణ ప్రోగ్రెస్‌లో ఉంది ఎక్స్‌టెన్షన్ ఎర్రర్ ‌ను ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు: ఇమేజ్ URL ఎర్రర్ కోడ్‌ను అందించింది. దయచేసి మీ అడ్మినిస్ట్రేటర్‌ను సంప్రదించండి. +లో పరికరం, అనే పేరుతో ఉన్న టాబ్లెట్ తెరిచి ఉన్న వంకర కలుపు ఉండాలి: దీని వలన సైట్‌లు, ఇన్‌స్టాల్ చేయబడిన యాప్‌లు స్టోర్ చేసిన డేటా తొలగిపోతుంది. మొబైల్ డేటా నెట్‌వర్క్‌ల కోసం స్కాన్ చేస్తోంది... @@ -438,6 +439,7 @@ ఎంచుకోబడింది/ఎంచుకోబడ్డాయి యాక్టివ్ Kerberos టిక్కెట్‌ను సెట్ చేయండి ఈ సెట్టింగ్‌ను పరికరం యజమాని అయిన నిర్వహిస్తున్నారు. +లో పరికరం, అనే పేరుతో ఉన్న ఫోన్ థీమ్ కోసం ''ను లోడ్ చేయడం సాధ్యపడలేదు. కేటాయింపును నిర్ధారించి, కోసం ""ని మళ్లీ నొక్కండి వెబ్ పేజీ, ఒకే ఫైల్ @@ -869,6 +871,7 @@ కెమెరా ఆన్ చేయబడింది స్థానాన్ని జోడించు... సాఫ్ట్‌వేర్ రూపకర్తలను గుర్తించడం కోసం ఈ ప్రమాణపత్రాన్ని విశ్వసిస్తుంది +లో పరికరం, అనే పేరుతో ఉన్న తెలియని పరికరం ఈ ఫోల్డర్ ఖాళీగా ఉంది మీరు ఏదైనా ప్రత్యేక VPN, ప్రాక్సీ, ఫైర్‌వాల్ లేదా NAS సాఫ్ట్‌వేర్‌ను ఇన్‌స్టాల్ చేశారా? @@ -1244,6 +1247,7 @@ ఫైల్ సమాచారం Google నుండి చిత్ర వివరణలను పొందాలా? మీ పరికరం మీ సంస్థ ద్వారా మేనేజ్ చేయబడుతుంది. +లో పరికరం, అనే పేరుతో ఉన్న గేమ్ కంట్రోలర్ ట్యాబ్ చేసిన విండో లాగా తెరువు ఉదా. 1-5, 8, 11-13 సిస్టమ్ వ్యూయర్‌తో తెరువు @@ -2005,6 +2009,7 @@ ట్యాబ్ యొక్క నకిలీని రూపొందించు మీ లో Linux టూల్‌లు, ఎడిటర్‌లు, IDEలను రన్ చేయండి. మరింత తెలుసుకోండి అనుమతులను రీసెట్ చేయి +లో పరికరం, అనే పేరుతో ఉన్న ఆడియో పరికరం {NUM_DAYS,plural, =1{ కోసం అప్‌డేట్‌ను డౌన్‌లోడ్ చేయడానికి మీరు ఈరోజే Wi-Fiకి కనెక్ట్ కావలసి ఉంటుంది. లేదా డేటా నియంత్రణ ఉన్న కనెక్షన్ నుండి డౌన్‌లోడ్ చేయండి (ఛార్జీలు వర్తించవచ్చు).}other{ కోసం అప్‌డేట్‌ను డౌన్‌లోడ్ చేయడానికి మీరు గడువు తేదీలోపు Wi-Fiకి కనెక్ట్ కావలసి ఉంటుంది. లేదా డేటా నియంత్రణ ఉన్న కనెక్షన్ నుండి డౌన్‌లోడ్ చేయండి (ఛార్జీలు వర్తించవచ్చు).}} మొబైల్ డేటా సేవ సెటప్ ప్రాసెస్‌ను మీరు ఖచ్చితంగా రద్దు చేయాలనుకుంటున్నారా? సూచికలోని డేటాబేస్‌లు @@ -2310,6 +2315,7 @@ తొలగించగల పరికరం కనుగొనబడింది సూచించిన ఎమోజి. నావిగేట్ చేయడానికి పైకి లేదా కిందకి నొక్కండి, జొప్పించడానికి 'Enter' నొక్కండి. మెమరీ ఫుట్‌ప్రింట్ + పరికరానికి పెయిర్ చేయడం సాధ్యపడలేదు; మళ్ళీ ట్రై చేయడానికి పరికరాన్ని ఎంచుకోండి కనెక్షన్ ఎర్రర్ పూర్తయింది సర్టిఫికెట్ విధాన పరిమితులు @@ -3140,6 +3146,7 @@ అనుకూల పదాలు కొత్త &టాబ్ మీరు ఎప్పుడైనా సెట్టింగ్‌ల ద్వారా వేటిని సింక్ చేయాలో ఎంచుకోవచ్చు. +మెరుగైన సురక్షిత బ్రౌజింగ్, మీకు Chromeలో అత్యంత సురక్షితమైన సెక్యూరిటీని అందిస్తుంది స్క్రీన్ సేవర్‌ను ఆఫ్ చేయి గ్రహాంతరవాసి అభిప్రాయ రిపోర్ట్‌ @@ -3646,6 +3653,7 @@ డౌన్‌లోడ్‌లు మీ మైక్రోఫోన్‌ను ఉపయోగించండి పరికరంలో డిస్క్ స్థలం చాలా తక్కువగా ఉంది +లో పరికరం, అనే పేరుతో ఉన్న కంప్యూటర్ మీరు ఈ పేజీని వీక్షించినప్పుడు కింది కుక్కీలు సెట్ చేయబడ్డాయి మీ ఫోన్‌లో ఉన్న వచనాన్ని మీ Chromebookలో చూపడానికి Android సందేశాలుని అనుమతిస్తుంది మిమ్మల్ని గుర్తించే ఈ సంస్థల నుండి మీకు ప్రమాణపత్రాలు ఉన్నాయి @@ -3827,6 +3835,7 @@ "" ఈ సీరియల్ పోర్ట్‌లలో ఒకదానితో కనెక్ట్ (అనుసంధానం) కావాలని కోరుకుంటుంది ఈ ప్రమాణీకరణ సేవ ద్వారా హోస్ట్ చేయబడుతోంది వేలిముద్రను సెటప్ చేయడానికి, మీ చిన్నారి చేత పవర్ బటన్‌పై తాకించండి. మీ చిన్నారి వేలిముద్ర సురక్షితంగా స్టోర్ చేయబడుతుంది, ఎప్పటికీ ఈ ‌లోనే ఉంటుంది. +మీరు స్టాండర్డ్ రక్షణను పొందుతున్నారు {COUNT,plural, =1{ఫైల్}other{# ఫైళ్లు}} చర్యలు డిఫాల్ట్ నారింజ రంగు అవతార్ @@ -4410,6 +4419,7 @@ డెమో నమోదు రిక్వెస్ట్‌కు సంబంధించి ఒక సమస్య ఏర్పడింది. మీ పరికరాన్ని రీసెట్ చేయడం వలన మీ Google ఖాతాలపై లేదా ఈ ఖాతాలకు సింక్ చేయ‌బ‌డిన‌ ఏదైనా డేటాపై ఎటువంటి ప్రభావం ఉండదు. అయితే, మీ పరికరంలో స్థానికంగా సేవ్ చేయబడిన అన్ని ఫైళ్లు తొలగించబడతాయి. ఆటోమేటిక్ సైన్-ఇన్ + భాషకు అనువాదం పూర్తయింది Microsoft Windows హార్డ్‌వేర్ డ్రైవర్ ధృవీకరణ పరికరాన్ని డొమైన్‌కు చేర్చడం సాధ్యపడదు. దయచేసి మళ్లీ ట్రై చేయండి లేదా మీ పరికర ఓనర్‌ను లేదా అడ్మినిస్ట్రేట‌ర్‌ను సంప్రదించండి. ఎర్రర్ కోడ్: . ప్రధాన మెనూ @@ -5823,6 +5833,7 @@ {NUM_MINS,plural, =1{భద్రతా తనిఖీ జరిగి 1 నిమిషం అయింది}other{భద్రతా తనిఖీ జరిగి {NUM_MINS} నిమిషాలు అయింది}} యాప్ డేటాను పొందడంలో సమస్య ఉంది, యాప్‌ను రన్ చేయడానికి ప్రయత్నిస్తోంది... దాచబడిన నెట్‌వర్క్ +లో పరికరం, అనే పేరుతో ఉన్న మౌస్ స్వీయ-ప్రారంభానికి సెట్ చేయి డేటాను పంపడం మరియు స్వీకరించడం పూర్తి చేయడానికి ఇటీవల మూసివేసిన సైట్‌లను అనుమతించు (సిఫార్సు చేయబడింది) షార్ట్‌కట్‌లను ప్రాసెస్ చేస్తోంది... @@ -5986,6 +5997,7 @@ Wi-Fi నెట్‌వర్క్‌లు ముద్రణ సేవ మీరు కాపీ చేసి అతికించే డేటాను చదవడం +లో పరికరం, అనే పేరుతో ఉన్న వీడియో కెమెరా పరివర్తనాలు అప్లికేషన్ స్పందించడం లేదు. యాప్‌ను మూసివేయడానికి "బలవంతంగా మూసివేయి" ఎంచుకోండి. ఈ సైన్-ఇన్ సేవను హోస్ట్ చేస్తోంది @@ -6778,6 +6790,7 @@ సంశ్లేషణ ప్రసంగాన్ని ఉపయోగించి మాట్లాడిన మొత్తం వచనాన్ని చదవడం అడగాలి (డిఫాల్ట్) ఫైల్ +లో పరికరం, అనే పేరుతో ఉన్న కీబోర్డ్ ప్రతిస్పందనను పంపండి వచన అపారదర్శకత స్పందించడం లేదు. @@ -6801,6 +6814,7 @@ దయచేసి చెల్లుబాటు అయ్యే ఈమెయిల్‌ అడ్రస్‌ను నమోదు చేయండి నిర్దిష్ట వీడియో సైట్‌ల కోసం అందుబాటులో ఉంది USB కీబోర్డ్ కనెక్ట్ చేయబడింది +సైడ్ సెర్చ్ టూల్ గడువు ముగింపు సంవత్సరం మధ్యమధ్యలో అంతరాయాలు &పరికరాలను పర్యవేక్షించు @@ -6916,6 +6930,7 @@ మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు హిస్టరీ, మరెన్నో మీ అన్ని పరికరాల్లో సింక్ చేయబడ్డాయి కంటెంట్ {NUM_TABS,plural, =1{చదవాల్సిన లిస్ట్‌కు ట్యాబ్‌ను జోడించండి}other{చదవాల్సిన లిస్ట్‌కు ట్యాబ్‌లను జోడించండి}} +మళ్లీ ఆన్ చేయండి అన్ని కార్డ్‌లను దాచు పరికర సమాచారం Google డిస్క్‌కు బ్యాకప్ చేయండి. ఏ సమయంలో అయినా సులభంగా డేటాని పునరుద్ధరించండి లేదా పరికరాన్ని మార్చండి. ఈ బ్యాకప్‌లో యాప్ డేటా ఉంటుంది. బ్యాకప్‌లు Googleకి అప్‌లోడ్ చేయబడతాయి మరియు మీ చిన్నారి Google ఖాతా పాస్‌వర్డ్‌ని ఉపయోగించి ఎన్‌క్రిప్ట్ చేయబడతాయి. మరింత తెలుసుకోండి @@ -6989,6 +7004,7 @@ మీ పరికరాలకు పంపండి మీరు చదివే భాషలో లేని పేజీలను అనువదించే సౌలభ్యం ఇప్పుడు రిఫ్రెష్ చేయి +కు పెయిర్ అవుతోంది థంబ్‌నెయిల్‌ తొలగించబడింది. ఎల్లప్పుడూ పూర్తి URLలను చూపించు అప్‌లోడ్ చేస్తోంది... @@ -7226,9 +7242,11 @@ భాషలను జోడించు సైన్ ఇన్ అవుతోంది. తక్షణ టెథెరింగ్ కనెక్షన్ విఫలమైంది +మెరుగైన సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది అయ్యో! డొమైన్‌‌ను చేర్చడానికి ప్రయత్నిస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి మళ్లీ ప్రయత్నించండి. Netscape సర్టిఫికెట్ పునరుద్ధరణ URL కీని నొక్కినప్పుడు ధ్వని +మళ్లీ ఆన్ చేయండి లేదు (Httpమాత్రమే) అప్‌గ్రేడ్ చేయి సరిగ్గా ఫార్మాట్ చేసిన URLను ఎంటర్ చేయండి diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 7a5c2cc0b58df7..3ec45673c682dd 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb @@ -6822,6 +6822,7 @@ Введіть дійсну електронну адресу Доступно для певних сайтів із відео Під’єднано клавіатуру USB +Бічна панель пошуку Рік закінчення терміну дії Відтворюється уривками &Перевірити пристрої diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 843dc556dea48e..3b19f80b0bdd48 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb @@ -250,6 +250,7 @@ ‏Linux بحالی فی الحال جاری ہے ایکسٹینشن میں خرابی کو انسٹال نہیں کیا جا سکا: تصویری URL نے خرابی کا کوڈ واپس کر دیا۔ براہ کرم اپنے منتظم سے رابطہ کریں۔ + میں سے آلہ، نام والا ٹیبلیٹ ابتدائی خمیدہ قوسین کی توقع ہے: اس سے سائٹس اور انسٹال کردہ ایپس کا اسٹور کردہ ڈیٹا صاف ہو جائے گا موبائل ڈیٹا نیٹ ورکس کو اسکین کیا جا رہا ہے... @@ -436,6 +437,7 @@ کو منتخب کیا گیا ‏Kerberos کا فعال ٹکٹ سیٹ کریں یہ ترتیب آلہ کے مالک، کے زیر انتظام ہے۔ + میں سے آلہ، نام والا فون تھیم کیلئے '' کو لوڈ نہیں کیا جا سکا۔ تفویض اور کی تصدیق کرنے کے لیے "" دوبارہ دبائيں ویب صفحہ، واحد فائل @@ -859,6 +861,7 @@ کیمرا آن ہے مقام شامل کریں… سافٹ ویئر بنانے والوں کی شناخت کرنے کیلئے اس سرٹیفیکیٹ پر بھروسہ کریں + میں سے آلہ، نام والا نامعلوم آلہ یہ فولڈر خالی ہے ‏کیا آپ نے کوئی خصوصی VPN، پراکسی، فائروال یا NAS سافٹ ویئر انسٹال کیا ہوا ہے؟ کوئی سیریل پورٹ نہیں ملا @@ -1233,6 +1236,7 @@ فائل کی معلومات ‏Google سے تصویر کی تفصیلات حاصل کریں؟ آپ کا آلہ آپ کی تنظیم کے زیر انتظام ہے + میں سے آلہ، نام والا گیم کنٹرولر ٹیب کردہ ونڈو کے طور پر کھولیں ‏مثلاً ‎1-5, 8, 11-13 سسٹم ویور کے ساتھ کھولیں @@ -1990,6 +1994,7 @@ ڈپلیکیٹ ٹیب ‏اپنے پر Linux ٹولز، ایڈیٹرز اور IDEs چلائیں۔ مزید جانیں اجازتیں دوبارہ ترتیب دیں + میں سے آلہ، نام والا آڈیو آلہ {NUM_DAYS,plural, =1{‏ کا تقاضہ ہے کہ آج آپ Wi-Fi سے منسلک ہوں اور ایک اپ ڈیٹ ڈاؤن لوڈ کریں۔ یا میٹرڈ کنکشن سے ڈاؤن لوڈ کریں (چارجز لاگو ہو سکتے ہیں)۔}other{‏ کا تقاضہ ہے کہ آپ آخری تاریخ سے پہلے Wi-Fi سے منسلک ہوں اور ایک اپ ڈیٹ ڈاؤن لوڈ کریں۔ یا میٹرڈ کنکشن سے ڈاؤن لوڈ کریں (چارجز لاگو ہو سکتے ہیں)۔}} کیا آپ واقعی موبائل ڈیٹا سروس سیٹ اپ کارروائی کو منسوخ کرنا چاہتے ہیں؟ انڈیکس کردہ ڈیٹا بیسز @@ -2295,6 +2300,7 @@ ہٹانے لائق آلہ کا پتا چلا تجویز کردہ ایموجی۔ نیویگیٹ کرنے کے لیے اوپر یا نیچے کا تیر دبائیں اور داخل کرنے کے لیے اینٹر دبائیں۔ میموری فوٹ پرنٹ + آلے سے جوڑا نہیں بنایا جا سکا؛ دوبارہ کوشش کرنے کے لیے آلہ منتخب کریں کنکشن کی خرابی مکمل سرٹیفکیٹ کی پالیسی کی پابندیاں @@ -3125,6 +3131,7 @@ حسب ضرورت الفاظ نیا &ٹیب آپ ترتیبات میں کسی بھی وقت اس بات کا انتخاب کر سکتے ہیں کہ کس چیز کی مطابقت پذیری کرنی ہے۔ +‏بہتر کردہ محفوظ براؤزنگ کے ساتھ، آپ Chrome کی مضبوط ترین سیکیورٹی حاصل کریں گے اسکرین سیور آف کریں ایلیئن تاثرات کی رپورٹ @@ -3630,6 +3637,7 @@ ڈاؤن لوڈز اپنا مائیکروفون استعمال کریں آلہ کے ڈسک کی جگہ انتہائی کم ہے + میں سے آلہ، نام والا کمپیوٹر جب آپ نے یہ صفحہ ملاحظہ کیا تو مندرجہ ذیل کوکیز سیٹ کی گئی تھیں ‏Android پیغامات کو آپ کے فون سے آپ کے Chromebook پر متنی پیغامت بھیجنے کی اجازت دیتی ہے آپ کی شناخت کرنے والی ان تنظیموں کی جانب سے آپ کے پاس سرٹیفیکیٹس ہیں @@ -3811,6 +3819,7 @@ "" ایک سیریل پورٹ سے منسلک ہونا چاہتا ہے یہ توثیقی سروس کی زیر میزبانی ہے فنگر پرنٹ کو سیٹ اپ کرنے کے لیے، اپنے بچے کو پاور بٹن ٹچ کرنے دیں۔ آپ کے بچے کے فنگر پرنٹ ڈیٹا کو محفوظ طریقے سے اسٹور کیا جاتا ہے اور یہ کبھی بھی آپ کے سے باہر نہیں جاتا۔ +آپ کو معیاری تحفظ حاصل ہو رہا ہے {COUNT,plural, =1{ایک فائل}other{# فائلز}} کارروائیاں ڈیفالٹ نارنجی اوتار @@ -4393,6 +4402,7 @@ ڈیمو کی رجسٹریشن کی درخواست کے ساتھ ایک مسئلہ پیش آگیا۔ ‏آپ کے آلہ کو دوبارہ ترتیب دینے سے آپ کے Google اکاؤنٹس یا ان اکاؤنٹس کے کسی بھی مطابقت پذیر ڈیٹا پر اثر نہیں پڑے گا۔ تاہم، آپ کے آلہ پر مقامی طور پر محفوظ کردہ سبھی فائلیں حذف کر دی جائیں گی۔ خودکار سائن ان + میں ترجمہ مکمل ہو گیا ہے ‏Microsoft Windows ہارڈ ویئر ڈرائیور کی توثیق ڈومین میں آلہ کو شامل نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں یا اپنے آلہ کے مالک یا منتظم سے رابطہ کریں۔ خرابی کا کوڈ: ۔ اصل مینو @@ -5806,6 +5816,7 @@ {NUM_MINS,plural, =1{سیفٹی چیک 1 منٹ پہلے کیا گیا}other{سیفٹی چیک {NUM_MINS} منٹ پہلے کیا گیا}} ایپ کا ڈیٹا حاصل کرنے میں ناکام، بہر صورت ایپ کو چلانے کی کوشش کی جار رہی ہے... پوشیدہ نیٹ ورک + میں سے آلہ، نام والا ماؤس خود کار طور پر شروع کریں پر سیٹ کریں حال ہی میں بند کی گئی سائٹس کو ڈیٹا بھیجنے اور حاصل کرنے کو مکمل کرنے کی اجازت دیں (تجویز کردہ) شارٹ کٹس پر کارروائی کی جا رہی ہے… @@ -5969,6 +5980,7 @@ ‏Wi-Fi نیٹ ورکس پرنٹنگ سروس آپ جو ڈیٹا کاپی اور پیسٹ کرتے ہیں اسے پڑھیں + میں سے آلہ، نام والا ویڈیو کیمرا تبدیلیاں ایپلیکیشن جواب نہیں دے رہی ہے۔ ایپ بند کرنے کیلئے، "زبردستی بند کریں" منتخب کریں۔ اس سائن ان سروس کی میزبانی کرتا ہے @@ -6764,6 +6776,7 @@ سنتھیسائز کردہ اسپیچ کا استعمال کر کے بولے گئے سبھی متن کو پڑھیں پوچھیں (ڈیفالٹ) فائل + میں سے آلہ، نام والا کی بورڈ تاثرات بھیجیں متن کا دھندلا پن جواب نہیں دے رہی ہے۔ @@ -6902,6 +6915,7 @@ آپ کے سبھی آلات پر آپ کے بُک مارکس، پاس ورڈز، سرگزشت اور مزید بہت کچھ کو سِنک کیا جاتا ہے مواد {NUM_TABS,plural, =1{پڑھنے کی فہرست میں ٹیب شامل کریں}other{پڑھنے کی فہرست میں ٹیبز شامل کریں}} +دوبارہ آن کریں سبھی کارڈز کو چھپائیں آلہ کی معلومات ‏Google Drive پر بیک اپ لیں۔ آسانی سے ڈیٹا بحال کریں یا کسی بھی وقت آلہ سوئچ کریں۔ اس بیک اپ میں ایپ ڈیٹا شامل ہوتا ہے۔ بیک اپس کو Google پر اپ لوڈ کیا جاتا ہے اور آپ کے بچے کے Google اکاؤنٹ کا پاس ورڈ استعمال کر کے انہیں مرموز کیا جاتا ہے۔ مزید جانیں @@ -6975,6 +6989,7 @@ اپنے آلات پر بھیجیں ان صفحات کا ترجمہ کرنے کی پیشکش کریں جو آپ کے مطالعہ کی زبان میں نہیں ہیں اب ریفریش کریں + سے جوڑا بنایا جا رہا ہے تھمب نیل کو ہٹا دیا گیا۔ ‏ہمیشہ مکمل URLs دکھائیں اپ لوڈ ہو رہی ہے... @@ -7212,9 +7227,11 @@ زبانیں شامل کریں سائن ان کیا جا رہا ہے۔ فوری ٹیدرنگ کا کنکشن ناکام ہو گیا +بہتر کردہ محفوظ براؤزنگ آف ہے افوہ! ڈومین میں شامل ہونے کی کوشش کرتے وقت کچھ غلط ہو گیا۔ براہ کرم دوبارہ کوشش کریں۔ ‏Netscape سرٹیفیکیٹ تجدید URL کلید دبانے پر آواز +دوبارہ آن کریں ‏کوئی (HttpOnly) نہیں ہے اپ گریڈ کریں ‏صحیح طور پر فارمیٹ کیا ہوا URL درج کریں diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index 69ebf667218ea3..9313356a23852b 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb @@ -1698,6 +1698,7 @@ Bạn có thể quản lý các tùy chọn cài đặt của tài khoản này Thành phần đang tải xuống Trên trung bình Tự động điền +Thêm điện thoại mới Dữ liệu chẩn đoán và dữ liệu về mức sử dụng Mới Xin phép @@ -2056,6 +2057,7 @@ và Ctrl+Alt+Giảm độ sáng để thu nhỏ. Với nhà cung cấp mà bạn lựa chọn Bạn có thể bật tính năng đồng bộ hóa bất cứ lúc nào trong phần cài đặt Tên thiết bị +Bạn đang tìm các thành phần hệ thống? Hãy truy cập Bật chọn để nói Thay đổi ngôn ngữ của thiết bị. Ngôn ngữ hiện tại là . Chúng tôi không thể thiết lập đường kết nối với điện thoại của bạn. Hãy đảm bảo điện thoại của bạn đang ở gần, mở khóa, đồng thời đã bật Bluetooth và Wi-Fi. @@ -2712,6 +2714,7 @@ và Ctrl+Alt+Giảm độ sáng để thu nhỏ. {NUM_DEVICES,plural, =1{Kết nối với một thiết bị USB}other{Kết nối với # thiết bị USB}} {COUNT,plural, =1{Đang gửi tới thiết bị }other{Đang gửi tới thiết bị }} Không thể đọc chính sách về chế độ minh họa ngoại tuyến. +Truyền sang màn hình mới  Hz Kem Tùy chọn cài đặt này bị tắt do các quyền kiểm soát của cha mẹ đang bật @@ -3500,6 +3503,7 @@ và Ctrl+Alt+Giảm độ sáng để thu nhỏ. Bộ nhớ cơ sở dữ liệu Ứng dụng vẽ bằng bút cảm ứng Đ&i đến +Bạn đang tìm hệ thống giới thiệu trang? Hãy truy cập Chỉ người quản lý mới có thể sửa đổi ứng dụng và tiện ích (). Bạn có các chứng chỉ trên tệp có thể nhận dạng các máy chủ này Quản lý bộ nhớ @@ -4883,6 +4887,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này. Xác định cách kết nối với các trang web qua đường kết nối an toàn Tài khoản mà bạn đã xác minh không được phép truy cập vào thiết bị này. Do quản trị viên của bạn cài đặt +Bạn đang tìm trình duyệt giới thiệu trang? Hãy truy cập Khuôn mặt vui nhộn Để thêm trang này vào danh sách đọc, hãy nhấp vào biểu tượng Dấu trang Đã kết nối thành công với thư mục chia sẻ. @@ -4981,6 +4986,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này. Đăng xuất rồi đăng nhập lại... Thay đổi mã PIN Loại bỏ tệp +Quản lý tiện ích Xoá tài khoản này? Bạn có thể sử dụng mã PIN để đăng nhập hoặc mở khóa thiết bị của mình. Sao ché&p Hình ảnh @@ -5267,6 +5273,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này. Đảo ngược hướng cuộn chuột &Tất cả ngôn ngữ của bạn Đang khắc phục máy chủ trong tập lệnh proxy... +Không tìm thấy thiết bị nào ở gần muốn mở tệp này: Tất cả vùng chứa Để tạo album, hãy chuyển đến Google Photos @@ -5732,6 +5739,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này. Tắt tiếng (mặc định) Từ trước đến nay Để duyệt web ở chế độ riêng tư, hãy nhấp vào trình đơn có biểu tượng ba dấu chấm để mở một cửa sổ Ẩn danh +Hãy đảm bảo thiết bị Bluetooth của bạn đang ở gần và đã bật chế độ ghép nối. Chỉ ghép nối với các thiết bị mà bạn tin tưởng. Tìm hiểu thêm Hỗ trợ tiếp cận Ngắt kết nối mạng Chia sẻ Internet tức thì OID đã Đăng ký @@ -6638,6 +6646,7 @@ Nhấn một công tắc hoặc phím đã gán để xóa. Luôn dịch Trung tâm điều khiển điện thoại Cải thiện Chrome bằng cách sử dụng các chỉ số trang +Bạn đang tìm các thành phần trình duyệt? Hãy truy cập Trang không hồi đáp. Bạn có thể chờ trang hồi đáp hoặc đóng trang. Bạn có các chứng chỉ trên tệp có thể nhận dạng các tổ chức cấp chứng chỉ này Tiện ích: @@ -7011,6 +7020,7 @@ Giữ tệp khóa của bạn ở nơi an toàn. Bạn sẽ cần tệp khóa đ Xem định nghĩa, bản dịch hoặc kết quả chuyển đổi đơn vị bằng cách nhấp chuột phải hoặc chạm và giữ văn bản. Tùy chỉnh ngôn ngữ dịch trong Ngôn ngữ cho trang web. Cha mẹ chỉ cần thực hiện một vài bước nữa là xong. Bạn có thể đưa lại cho trẻ sau khi thiết lập tài khoản. Quản lý tiện ích của bạn bằng cách nhấp vào Tiện ích trong menu "Công cụ khác". +Dùng máy ảnh để quét mã QR Truyền tệp Phóng to theo tiêu điểm lấy bằng bàn phím Không tắt hoặc đóng cho đến khi cập nhật xong. của bạn sẽ khởi động lại sau khi cài đặt xong. @@ -7688,6 +7698,7 @@ Giữ tệp khóa của bạn ở nơi an toàn. Bạn sẽ cần tệp khóa đ Xóa tất cả dữ liệu trang web và quyền của , cũng như mọi trang web và ứng dụng đã cài đặt thuộc nhóm này? Đã nhận được thông báo cho máy in không xác định. Bỏ qua +Nút quay lại trang chi tiết của Đang tải lên (%)... Có phải bạn muốn thay đổi trang này không? Luôn hiển thị biểu tượng @@ -7870,6 +7881,7 @@ Giữ tệp khóa của bạn ở nơi an toàn. Bạn sẽ cần tệp khóa đ Hỏi khi một trang web muốn truy cập vào các thiết bị Bluetooth Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Thiết bị này hiện tự động gửi dữ liệu chẩn đoán, dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Mục cài đặt này do chủ sở hữu thực thi. Nếu bạn bật mục cài đặt bổ sung Hoạt động trên web và ứng dụng thì dữ liệu này có thể được lưu vào Tài khoản Google của bạn. Tìm hiểu thêm - Đã kết nối thiết bị Bluetooth +Xoá dữ liệu đăng nhập Tên người dùng trên màn hình đăng nhập Quá trình này có thể mất vài phút. Đang khởi động vùng chứa Linux. Trang web có thể chia sẻ màn hình của bạn diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index ba82abcd2a73da..06daec4a9b6099 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb @@ -253,6 +253,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.}}Ukubuyiselwa kwe-Linux manje kuyaqhubeka Iphutha lesandiso Ayikwazanga ukufaka i-: I-URL yomfanekiso ibuyisele ikhodi lephutha le-. Sicela uxhumane nomlawuli wakho. +Idivayisi ye- kwezingu-, Ithebulethi ebizwa ngokuthi i- I-brace egoqekile yokuvuleka okulindelwe: Lokhu kuzosula idatha engu- egcinwe amasayithi nezinhlelo zokusebenza ezifakiwe Iskena amanethiwekhi wedatha yeselula... @@ -439,6 +440,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.}} okukhethiwe Setha ithikithi le-Kerberos elisebenzayo Lokhu kulungiselelwa kuphethwe umnikazi wedivayisi, . +Idivayisi engu- kwezingu-, Ifoni ebizwa ngokuthi i- Ayikwazanga ukulayisha i-'' yetimu. Cindezela i-“” futhi ukuqinisekisa umsebenzi ne- Ikhasi lewebhu, ifayela eyodwa @@ -869,6 +871,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.}}Ikhamera ivuliwe Engeza indawo... Themba lesi sitifiketi ukuze sikhombe omaka besofthiwe +Idivayisi ye- kwezingu-, Idivayisi engaziwa ebizwa ngokuthi i- Le folda ayinalutho Ingabe unayo isofthiwe ekhethekile ye-VPN, yommeleli, yohlelo lokuvikela noma ye-NAS efakiwe? @@ -1244,6 +1247,7 @@ Ungaphatha izilungiselelo zale akhawunti ngokufaka uhlelo lokusebenza lwe-Family Ulwazi lwefayela Thola izincazelo zesithombe kusuka ku-Google? Idivayisi yakho iphethwe inhlangano yakho +Idivayisi engu- kwezingu-, Isilawuli segeyimu esibizwa ngokuthi i- Kuvule njengewindi elinethebhu isb. 1-5, 8, 11-13 Vula ngesibukeli sesistimu @@ -2005,6 +2009,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.Phinda ithebhu Qalisa amathuluzi e-Linux, abahleli, nama-IDE ku- yakho. Funda kabanzi Setha kabusha izimvume +Idivayisi ye- kwezingu-, Idivayisi yomsindo ebizwa ngokuthi i- {NUM_DAYS,plural, =1{I- idinga ukuthi uxhumeke ku-Wi-Fi namuhla ukuze ulande isibuyekezo. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}one{I- idinga ukuthi uxhume ku-Wi-Fi bese ulanda isibuyekezo ngaphambi kwesikhathi esimisiwe. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}other{I- idinga ukuthi uxhume ku-Wi-Fi bese ulanda isibuyekezo ngaphambi kwesikhathi esimisiwe. Noma, ulande ngokuxhuma okwenziwe imitha (kungaba nezinkokhelo).}} Ingabe uqinisekile ukuthi ufuna ukukhansela inqubo yokusetha yesevisi yedatha yeselula? Izizinda zemininingwane ezikhonjiwe @@ -2310,6 +2315,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.Kutholwe idivayisi engasuseka I-emoji iphakanyisiwe. Cindezela umcibisholo waphezulu noma waphansi ukuze uzulazule kanye no-enter ukuze ufake. I-Footprint yememori +Ayikwazanga ukubhangqa ku-; khetha idivayisi ukuzama futhi Iphutha lokuxhumeka Qedile Izithiyo zenqubomgomo yesitifiketi @@ -3139,6 +3145,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.Amagama angokwezifiso Ithebhu entsha Ungahlala ukhetha ukuthi yini okumele ivunyelaniswe kuzilungiselelo. +Ngokuphequlula Ngokuphepha Okugqamile, uzothola ukuvikeleka kwe-Chrome okunamandla Vula isilondolozi sesikrini I-alien Umbiko wokuphendula @@ -3645,6 +3652,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.Ukulanda Sebenzisa imakrofoni yakho Isikhala sediski yedivayisi sincane kakhulu +Idivayisi ye- kwezingu-, Ikhompyutha ebizwa ngokuthi i- Amakhukhi alandelayo athunyelwe ngenkathi ubuka leli khasi Ivumela i-Android Messages ukwethemba imibhalo kusuka efonini yakho kuya ku-Chromebook yakho Unezitifiketi ezivela kulezi zinhlangano ezikukhombayo @@ -3826,6 +3834,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe."" ifuna ukuxhuma embobeni yesiriyeli Le sevisi yokufakazela ubuqiniso isingethwe i- Ukuze usethe isigxivizo somunwe, vumela ingane yakho ukuthi ithinte inkinobho yamandla. Idatha yesigxivizo somunwe yengane yakho igcinwa ngokuvikelekile futhi ayishiyi i-. +Uthola ukuvikelwa okujwayelekile {COUNT,plural, =1{ifayela}one{amafayela angu-#}other{amafayela angu-#}} Izenzo Isithombe esizenzakalelayo esiwolintshi @@ -4411,6 +4420,7 @@ Ungabela amaswishi amaningi kulesi senzo. Inkinga ngesicelo sokubhalisa idemo ivelile. Ukusetha kabusha idivayisi yakho ngeke kuze kuthinte ama-akhawunti wakho we-Google noma enye idatha evumelaniswe kulawa ma-akhawunti. Kodwa, wonke amafayela alondolozwe endaweni kudivayisi yakho azosuswa. Ngena ngemvume ngokuzenzakalela +Ukuhumushela kwisi- kuqedile Ukuqinisekiswa kwesishayeli sezingxenyekazi zekhompyutha kwe-Microsoft Windows Ayikwazi ukujoyina idivayisi esizindeni. Sicela uzame futhi noma uxhumane nomnikazi noma umlawuli wedivayisi yakho. Ikhodi yephutha: . Imenyu eyinhloko @@ -5825,6 +5835,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.{NUM_MINS,plural, =1{Ukuhlola kokuphepha kusebenze eminithini elingu-1 eledlule}one{Ukuhlola kokuphepha kusebenze emaminithini angu-{NUM_MINS} adlule}other{Ukuhlola kokuphepha kusebenze emaminithini angu-{NUM_MINS} adlule}} Yehlulekile ukuthola idatha yohlelo lokusebenza, izama ukuqalisa uhlelo lokusebenza noma kunjalo... Inethiwekhi efihliwe +Idivayisi engu- kwezingu-, Imawuzi ebizwa ngokuthi i- Sethela ukuqalisa ngokuzenzakalela Vumela amasayithi asanda kuvalwa ukuqeda ukuthumela noma ukwamukela idatha Icubungula izinqamuleli... @@ -5988,6 +5999,7 @@ I- idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.Amanethiwekhi we-Wi-Fi Isevisi yokuphrinta Funda idatha oyikopishayo uphinde uyinamathisele +Idivayisi ye- kwezingu-, Ikhamera yevidiyo ebizwa ngokuthi i- Ukuguqulwa Uhlelo lokusebenza aluphenduli. Khetha okuthi "Phoqa ukuvala" ukuze uvale uhlelo lokusebenza. Le sevisi yokungena ngemvume isingathwa yi- @@ -6783,6 +6795,7 @@ Gcina ifayela lakho elingukhiye endaweni evikelekile. Uzolidinga ukuze udale izi Funda wonke umbhalo okhulunywayo usebenzisa inkulumo ekhulisiwe Buza (okuzenzakalelayo) Ifayela +Idivayisi ye- kwezingu-, Ikhibhodi ebizwa ngokuthi i- Thumela impendulo I-Opacity yombhalo I- ayiphenduli. @@ -6921,6 +6934,7 @@ Gcina ifayela lakho elingukhiye endaweni evikelekile. Uzolidinga ukuze udale izi Amabhukhimakhi akho, amaphasiwedi, umlando, nokunye kuyavunyelaniswa kuwo wonke amadivayisi akho Okuqukethwe {NUM_TABS,plural, =1{Engeza Ithebhu Kuhlu Lokufunda}one{Engeza Amathebhu Kuhlu Lokufunda}other{Engeza Amathebhu Kuhlu Lokufunda}} +Phinda uvule Fihla wonke amakhadi Ulwazi lwedivayisi Ukwenza isipele ku-Google Drayivu. Buyisa kalula idatha noma shintsha idivayisi noma kunini. Lesi sipele sibandakanya idatha yohlelo lokusebenza. Izipele zilayishwa ku-Google futhi zibethelwe kusetshenziswa iphasiwedi ye-akhawunti ye-Google yengane yakho. Funda kabanzi @@ -6994,6 +7008,7 @@ Gcina ifayela lakho elingukhiye endaweni evikelekile. Uzolidinga ukuze udale izi Thumela kumadivayisi akho Nikezela ngokuhumusha amakhasi angekho kulimi olifundayo Vuselela manje +Ibhangqa ku- Isithombe esincane sisusiwe. Njalo nje Bonisa ama-URL Agcwele Iyalayisha... @@ -7231,9 +7246,11 @@ Gcina ifayela lakho elingukhiye endaweni evikelekile. Uzolidinga ukuze udale izi Engeza izilimi Ingena ngemvume. Ukuxhumeka okusheshayo kokusebenzisa ifoni njengemodemu kuhlulekile +Ukuphequlula Ngokuphepha Okugqamile kuvaliwe Eshu! Kukhona okungahambanga kahle ngenkathi uzama ukujoyina isizinda. Sicela uzame futhi. I-URL yokuvuselela yesitifiketi se-Netscape Umsindo wokucindezela ukhiye +Phinda uvule Ayikho (HttpOnly) Thuthukisa Faka i-URL efomethwe ngokulungile diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb index 4c49f2a958ee4a..c94639565f4949 100644 --- a/chrome/app/resources/google_chrome_strings_ar.xtb +++ b/chrome/app/resources/google_chrome_strings_ar.xtb @@ -50,7 +50,7 @@ ‏إعادة تشغيل متصفِّح Chrome لتحديثه ‏يمكنك المساعدة في تحسين Chrome بالإبلاغ عن الإعدادات الحالية ‏يُرجى إعادة تشغيل Chrome الآن -‏تخصيص بعض من أهم خيارات الخصوصية في Chrome +‏تخصيص بعض أهم خيارات الخصوصية في Chrome ‏للوصول إلى بياناتك في متصفّح Chrome من جميع أجهزتك، سجِّل الدخول وفعِّل المزامنة. ‏مفاتيح واجهة برمجة تطبيقات Google مفقودة. وسيترتب على ذلك توقف بعض وظائف Google Chrome عن العمل. ‏هل تريد فعلًا إزالة Google Chrome؟ @@ -115,7 +115,7 @@ {COUNT,plural, =0{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث.}=1{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث. لن تتم إعادة فتح نافذة التصفح المتخفي.}two{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث. لن تتم إعادة فتح نافذتَي التصفح المتخفي.}few{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}many{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}other{‏يطلب المشرف إعادة تشغيل Chrome لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}} ‏الآن أصبح استخدام Chrome مع حسابك في Google وفي أجهزة الكمبيوتر المشتركة أكثر سهولة. ‏رصد Chrome أنّ الإضافة "" تحتوي على برامج ضارة. -‏تناسب الإعدادات التلقائية معظم الأشخاص، ولكن يمكنك تخصيصها لاستخدام Chrome بالطريقة التي تعجبك. +‏تناسب الإعدادات التلقائية معظم الأشخاص، ويمكنك تخصيصها لاستخدام Chrome بالطريقة التي تعجبك. ‏سيعمل هذا على حذف عنصر واحد من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chrome كـ . ‏غيّرت الإضافة "" الصفحة التي تظهر عند بدء Chrome. ‏للحصول على تحديثات Google Chrome في المستقبل، يجب أن تستخدم جهازًا يعمل بنظام التشغيل OS X 10.11 أو إصدار أحدث. يعمل جهاز الكمبيوتر هذا بنظام التشغيل OS X 10.10. diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb index 304effb41b36e2..5c86903aefe240 100644 --- a/chrome/app/resources/google_chrome_strings_az.xtb +++ b/chrome/app/resources/google_chrome_strings_az.xtb @@ -245,6 +245,7 @@ Bəzi funksiyalar əlçatmaz ola bilər. Xüsusi profil direktoriyası göstəri Chrome'a olaraq daxil olmuşdunuz. Lütfən, yenidən daxil olmaq üçün eyni hesabdan istifadə edin. Chrome OS şərtləri Chrome OS datanızı sinxronizasiya edə bilmədi, çünki sinxronizasiya domeniniz üçün əlçatan deyil. +Chrome’un ən güclü güvənlik sistemini əldə edin Ünvan panelində təkliflər irəli sürmək üçün Chrome Diskinizə daxil olacaq Google Chrome Dev Cihazınızın güncəl olub-olmadığına baxmaq üçün Chrome OS Ayarlarına keçin @@ -304,6 +305,7 @@ Bəzi funksiyalar əlçatmaz ola bilər. Xüsusi profil direktoriyası göstəri Sistem səviyyəli quraşdırma üçün uyğun hüquqlarınız yoxdur. Quraşdırıcını yenidən Administrator olaraq işə salmağa cəhd edin. Chrome'u yenidən başladın cihazından Android telefonunuza nömrə göndərmək üçün hər iki cihazda Chrome'a daxil olun. +Chrome'un ən vacib hesab etdiyi məxfilik seçimlərini fərdiləşdirin. Bu bələdçiyə hər ayar və seçim daxil deyil. Bu brauzerə iş profili əlavə edirsiniz və administratorunuza yalnız iş profili üzərində nəzarət verirsiniz. {0,plural, =0{Chrome güncəlləməsi əlçatandır}=1{Chrome güncəlləməsi əlçatandır}other{Chrome güncəlləməsi # gün əlçatan olub}} Chrome OS datanızı sinxronizasiya edə bilmir, çünki hesaba giriş məlumatlarınız köhnədir. diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb index 5b933cce6a4b1e..b7755607287044 100644 --- a/chrome/app/resources/google_chrome_strings_bn.xtb +++ b/chrome/app/resources/google_chrome_strings_bn.xtb @@ -288,6 +288,7 @@ Google Chrome এই অফিস প্রোফাইল আপনার ব্যক্তিগত প্রোফাইল থেকে সম্পূর্ণ আলাদা। Google Chrome-এর একটি নতুন ভার্সন উপলভ্য এবং এটি আগের তুলনায় দ্রুততর৷ +এছাড়া, Chrome-এ চালু করতে চান? Chrome প্রোফাইলের সাহায্যে আপনি সব Chrome-এ থাকা ডেটা আলাদা করতে পারবেন। এর ফলে সহজেই অফিস এবং বিনোদনের প্রোফাইল আলাদা করা যায়। Google Chrome প্রতিক্রিয়া করছে না৷ এখনই পুনঃলঞ্চ করবেন? আপনার আশেপাশের 3D ম্যাপ তৈরি করতে এই সাইটটির জন্য Chrome-কে আপনার ক্যামেরা অ্যাক্সেস করার অনুমতি দিতে হবে diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb index 95aa5d0c72b109..577dafec549e11 100644 --- a/chrome/app/resources/google_chrome_strings_el.xtb +++ b/chrome/app/resources/google_chrome_strings_el.xtb @@ -246,6 +246,7 @@ Συνδεθήκατε στο Chrome ως . Χρησιμοποιήστε τον ίδιο λογαριασμό για να συνδεθείτε ξανά. Όροι Chrome OS Το Chrome OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας. +Λάβετε την ισχυρότερη ασφάλεια του Chrome Το Chrome θα αποκτήσει πρόσβαση στο Drive, για να κάνει προτάσεις στη γραμμή διευθύνσεων Google Chrome Dev Για να διαπιστώσετε εάν η συσκευή σας είναι ενημερωμένη, μεταβείτε στις Ρυθμίσεις του Chrome OS @@ -305,6 +306,7 @@ Δεν έχετε τα απαραίτητα δικαιώματα για εγκατάσταση σε επίπεδο συστήματος. Δοκιμάστε να εκτελέσετε ξανά το πρόγραμμα εγκατάστασης ως Διαχειριστής. Επανεκκίνηση του Chrome Για να στείλετε έναν αριθμό από το στο τηλέφωνό σας Android, συνδεθείτε στο Chrome και στις δύο συσκευές. +Προσαρμογή των επιλογών απορρήτου που το Chrome θεωρεί πιο σημαντικές. Αυτός ο οδηγός δεν περιλαμβάνει όλες τις ρυθμίσεις και επιλογές. Προσθέτετε ένα προφίλ εργασίας σε αυτό το πρόγραμμα περιήγησης και παραχωρείτε τον έλεγχο στον διαχειριστή σας μόνο για το προφίλ εργασίας. {0,plural, =0{Υπάρχει μια διαθέσιμη ενημέρωση του Chrome}=1{Υπάρχει μια διαθέσιμη ενημέρωση του Chrome}other{Υπάρχει μια διαθέσιμη ενημέρωση του Chrome για # ημέρες}} Το Chrome OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή τα στοιχεία σύνδεσης στο λογαριασμό σας δεν είναι ενημερωμένα. diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb index 99d625f3029ee1..bc51ed2b547639 100644 --- a/chrome/app/resources/google_chrome_strings_en-GB.xtb +++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb @@ -249,6 +249,7 @@ Google Chrome is unable to recover your settings. You were signed in to Chrome as . Please use the same account to sign in again. Chrome OS terms Chrome OS could not sync your data because Sync is not available for your domain. +Get Chrome's strongest security Chrome will access your Drive to make suggestions in the address bar Google Chrome Dev To see if your device is up to date, go to Chrome OS Settings @@ -308,6 +309,7 @@ Google Chrome is unable to recover your settings. You do not have appropriate rights for system-level installation. Try running the installer again as Administrator. Relaunch Chrome To send a number from to your Android phone, sign in to Chrome on both devices. +Customise the privacy choices that Chrome considers most important. This guide doesn't include every setting and option. You are adding a work profile to this browser and giving your administrator control over just the work profile. {0,plural, =0{A Chrome update is available}=1{A Chrome update is available}other{A Chrome update has been available for # days}} Chrome OS could not sync your data because your account sign-in details are out of date. diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb index 598d30d2be6695..ce2bd22ec2eee6 100644 --- a/chrome/app/resources/google_chrome_strings_eu.xtb +++ b/chrome/app/resources/google_chrome_strings_eu.xtb @@ -291,6 +291,7 @@ Google Chrome-k ezin ditu berreskuratu zure ezarpenak. Google Chrome Laneko profila eta profil pertsonala guztiz bereizita daude. Google Chrome-ren bertsio berri bat erabilgarri dago; inoiz baino bizkorragoa da. +Chrome-n ere aktibatu nahi duzu? Chrome-ko profilekin, Chrome-n dituzun gauza guztiak bereiz ditzakezu. Hala, errazago edukiko dituzu bananduta gauza pertsonalak eta lanekoak. Google Chrome-k ez du erantzuten. Berrabiarazi nahi duzu? Chrome-k kamera atzitzeko baimena behar du, ingurunearen hiru dimentsioko mapa bat sortzeko diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb index 3a5674cd91764e..c56566dbb630c9 100644 --- a/chrome/app/resources/google_chrome_strings_fr.xtb +++ b/chrome/app/resources/google_chrome_strings_fr.xtb @@ -290,6 +290,7 @@ Google Chrome ne peut pas récupérer vos paramètres. Google Chrome Ce profil professionnel est parfaitement séparé de votre profil personnel. Une nouvelle version de Google Chrome encore plus rapide est disponible. +Activer aussi dans Chrome ? Utilisez les profils Chrome pour dissocier toutes vos données Chrome. Vous pouvez ainsi faire plus facilement la distinction entre vos contenus personnels et professionnels. Google Chrome ne répond pas. Voulez-vous le relancer maintenant ? Chrome a besoin de votre autorisation pour accéder à votre appareil photo afin de créer un plan 3D de votre environnement diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index 3c373d73a55a78..54e4ef13a7f2a8 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb @@ -292,6 +292,7 @@ Google Chrome તમારા સેટિંગને રિકવર કરી Google Chrome ઑફિસની આ પ્રોફાઇલ તમારી વ્યક્તિગત પ્રોફાઇલથી સાવ અલગ છે. Google Chromeનું એક નવું વર્ઝન ઉપલબ્ધ છે અને તે પહેલાં કરતાંએ વધુ ઝડપી છે. +Chromeમાં પણ ચાલુ કરીએ? Chrome પ્રોફાઇલ વડે તમે તમારી બધી વસ્તુઓ Chrome પર અલગ-અલગ રાખી શકો છો. આનાથી ઑફિસ અને મનોરંજન વચ્ચે વિભાજન કરવાનું સરળ બને છે. Google Chrome પ્રતિસાદ આપતું નથી. હવે ફરીથી લોંચ કરીએ? તમારા આસપાસનો 3D નકશો બનાવવા માટે, Chromeને તમારા કૅમેરાના ઍક્સેસની પરવાનગી જરૂરી છે diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb index 6cd8438257e4de..28936a999b7ff2 100644 --- a/chrome/app/resources/google_chrome_strings_ky.xtb +++ b/chrome/app/resources/google_chrome_strings_ky.xtb @@ -250,6 +250,7 @@ Google Chrome жөндөөлөрүңүздү калыбына келтире а Chrome'го катары кирдиңиз. Кайра кирүү үчүн ушул каттоо эсебин колдонуңуз. Chrome OS шарттары Chrome OS дайын-даректериңизди шайкештештире алган жок, себеби домениңизде Шайкештештирүү аракети жеткиликтүү эмес. +Chrome'дун эң күчтүү коопсуздук тутумун колдонуңуз Дарек тилкесинде сунуштарды көрсөтүү үчүн Chrome кызматы Drive сактагычыңызды колдонот Google Chrome Dev Түзмөгүңүздүн жаңыртылганын текшерүү үчүн Chrome OS Жөндөөлөрүнө өтүңүз @@ -309,6 +310,7 @@ Google Chrome жөндөөлөрүңүздү калыбына келтире а Тутум деңгээлинде орнотууга тийиштүү укугуңуз жок. Орноткучту Администратор катары кайра иштетип көрүңүз. Chrome'ду кайрадан ишке киргизүү Номерди сайтынан Android телефонуңузга жөнөтүү үчүн эки түзмөгүңүздөн тең Chrome'го кириңиз. +Chrome эң маанилүү деп эсептеген купуялык тандоолорун ыңгайлаштырыңыз. Жетектемеде айрым жөндөөлөр жана параметрлер камтылган эмес. Жумуш профилин ушул серепчиге кошуп, администраторго жумуш профилин гана көзөмөлдөөгө уруксат берип жатасыз. {0,plural, =0{Chrome'дун жаңы версиясы жеткиликтүү}=1{Chrome'дун жаңы версиясы жеткиликтүү}other{Chrome'дун жаңы версиясы # күндөн бери жеткиликтүү}} Аккаунтуңуздун кирүү чоо-жайы эскирип калгандыктан, Chrome OS дайын-даректериңизди шайкештештире алган жок. diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb index bec99c44ad8807..86def7c62882d2 100644 --- a/chrome/app/resources/google_chrome_strings_ml.xtb +++ b/chrome/app/resources/google_chrome_strings_ml.xtb @@ -250,6 +250,7 @@ നിങ്ങൾ Chrome-ൽ എന്നായി സൈൻ ഇൻ ചെയ്‌തു. വീണ്ടും സൈൻ ഇൻ ചെയ്യുന്നതിന് സമാന അക്കൗണ്ട് ഉപയോഗിക്കുക. Chrome OS നിബന്ധനകൾ നിങ്ങളുടെ ഡൊമെയ്‌‌നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. +Chrome-ന്റെ ഏറ്റവും ശക്‌തമായ സുരക്ഷ നേടുക വിലാസ ബാറിൽ നിർദ്ദേശങ്ങൾ സൃഷ്‌ടിക്കാൻ, Chrome നിങ്ങളുടെ ഡ്രൈവ് ആക്‌സ‌സ് ചെയ്യും Google Chrome Dev നിങ്ങളുടെ ഉപകരണം അപ് ടു ഡേറ്റ് ആണോയെന്ന് കാണാൻ Chrome OS ക്രമീകരണത്തിലേക്ക് പോവുക @@ -309,6 +310,7 @@ സിസ്റ്റം തലത്തിൽ ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുന്നതിന് നിങ്ങള്‍‌ക്ക് ഉചിതമായ അവകാശങ്ങളില്ല. അഡ്‌മിനിസ്‌ട്രേറ്ററായി ഇന്‍‌സ്റ്റാളര്‍‌ റണ്‍ ചെയ്യിക്കാൻ വീണ്ടും ശ്രമിക്കൂ. Chrome വീണ്ടും സമാരംഭിക്കുക എന്നതിൽ നിന്ന് നിങ്ങളുടെ Android ഫോണിലേക്ക് ഒരു നമ്പർ അയയ്‌ക്കാൻ, രണ്ട് ഉപകരണങ്ങളിൽ നിന്നും Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക. +ഏറ്റവും പ്രധാനപ്പെട്ടതായി Chrome കരുതുന്ന സ്വകാര്യതാ തിരഞ്ഞെടുപ്പുകൾ ഇഷ്ടാനുസൃതമാക്കുക. ഈ ഗൈഡിൽ എല്ലാ ക്രമീകരണവും ഓപ്ഷനും ഉൾപ്പെടുന്നില്ല. നിങ്ങൾ ഈ ബ്രൗസറിലേക്ക് ഒരു ഔദ്യോഗിക പ്രൊഫൈൽ ചേർക്കുകയും നിങ്ങളുടെ അഡ്മിന് ഔദ്യോഗിക പ്രൊഫൈലിലേക്ക് മാത്രം നിയന്ത്രണം നൽകുകയും ചെയ്യുന്നു. {0,plural, =0{Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}=1{Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}other{# ദിവസമായി Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}} നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb index b8a9aba8d215b1..a007cf921e975b 100644 --- a/chrome/app/resources/google_chrome_strings_nl.xtb +++ b/chrome/app/resources/google_chrome_strings_nl.xtb @@ -288,6 +288,7 @@ Sommige functies zijn wellicht niet beschikbaar. Geef een andere profieldirector Google Chrome Dit werkprofiel is volledig gescheiden van je persoonlijke profiel. Er is een nieuwe versie van Google Chrome en deze is sneller dan ooit. +Ook aanzetten in Chrome? Met Chrome-profielen kun je alle Chrome-gegevens gescheiden houden. Zo kun je makkelijker onderscheid maken tussen werk en privé. Google Chrome reageert niet meer. Nu opnieuw starten? Chrome heeft toegangsrechten voor de camera nodig om een 3D-kaart van je omgeving te maken. diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb index 0af740d1306e15..c5811c654147b1 100644 --- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb @@ -241,6 +241,7 @@ Você estava conectado ao Google Chrome como . Use a mesma conta para fazer login novamente. Termos do Chrome OS O Chrome OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio. +Use o nível mais alto de segurança do Chrome O Chrome acessará seu Drive para fazer sugestões na barra de endereço Google Chrome Dev Para verificar se o dispositivo está atualizado, acesse as Configurações do Chrome OS @@ -300,6 +301,7 @@ Você não tem os direitos adequados para instalação no nível do sistema. Tente executar o instalador novamente como administrador. Reiniciar o Google Chrome Para enviar um número de ao seu smartphone Android, faça login no Chrome nos dois dispositivos. +Personalize as opções de privacidade mais importantes para o Chrome. Este guia não inclui todas as configurações e opções. Você está adicionando um perfil de trabalho a este navegador. O administrador poderá controlar apenas o perfil de trabalho. {0,plural, =0{Uma atualização do Chrome está disponível}=1{Uma atualização do Chrome está disponível}one{Uma atualização do Chrome está disponível há # dia}other{Uma atualização do Chrome está disponível há # dias}} O Chrome OS não pôde sincronizar seus dados porque os detalhes de login da sua conta estão desatualizados. diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb index 7eefef0431113a..5c2f1bbe9a94ce 100644 --- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb @@ -242,6 +242,7 @@ a sincronização. Iniciou sessão no Chrome com a conta . Utilize a mesma conta para iniciar sessão novamente. Termos do Chrome OS O Chrome OS não conseguiu sincronizar os dados porque a sincronização não está disponível para o seu domínio. +Obtenha a segurança mais avançada do Chrome O Chrome vai aceder ao Drive para fornecer sugestões na barra de endereço. Google Chrome Dev Para ver se o seu dispositivo está atualizado, aceda às Definições do Chrome OS. @@ -300,6 +301,7 @@ a sincronização. Não tem os direitos adequados para uma instalação ao nível do sistema. Tente executar o programa de instalação novamente como Administrador. Reiniciar o Chrome Para enviar um número de para o seu telemóvel Android, inicie sessão no Chrome em ambos os dispositivos. +Personalize as escolhas de privacidade que o Chrome considera serem mais importantes. Este guia não inclui todas as definições e opções. Está a adicionar um perfil de trabalho a este navegador e a conceder ao seu administrador controlo apenas sobre o perfil de trabalho. {0,plural, =0{Está disponível uma atualização do Chrome}=1{Está disponível uma atualização do Chrome}one{Está disponível uma atualização do Chrome há # dia(s)}other{Está disponível uma atualização do Chrome há # dias}} O Chrome OS não conseguiu sincronizar os dados porque os detalhes de início de sessão da sua conta estão desatualizados. diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index faf292fa8683d9..e7767f57ece717 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb @@ -247,6 +247,7 @@ Prehliadač Google Chrome nedokáže obnoviť vaše nastavenia. Do prehliadača Chrome ste boli prihlásený/-á ako . Ak sa chcete prihlásiť znova, použite rovnaký účet. Zmluvné podmienky systému OS Chrome Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii. +Získajte najsilnejšie zabezpečenie Chromu Chrome bude mať prístup na váš Disk, aby mohol v paneli s adresou zobrazovať návrhy Google Chrome verzie pre vývojárov Ak sa chcete pozrieť, či je zariadenie aktualizované, prejdite do Nastavení operačného systému Chrome OS @@ -306,6 +307,7 @@ Prehliadač Google Chrome nedokáže obnoviť vaše nastavenia. Nemáte potrebné práva na inštaláciu na úrovni systému. Skúste inštalátor spustiť znova ako správca. Znova spustiť prehliadač Chrome Ak chcete zo zariadenia odoslať číslo do svojho telefónu s Androidom, prihláste sa v oboch zariadeniach do Chromu. +Prispôsobte si možnosti ochrany súkromia, ktoré Chrome považuje za najdôležitejšie. Tento sprievodca neobsahuje všetky nastavenia a možnosti. Do tohto prehliadača pridávate pracovný profil a svojmu správcovi udeľujete kontrolu iba nad ním. {0,plural, =0{Je k dispozícii aktualizácia Chromu}=1{Je k dispozícii aktualizácia Chromu}few{Aktualizácia Chromu je k dispozícii už # dni}many{Aktualizácia Chromu je k dispozícii už # dňa}other{Aktualizácia Chromu je k dispozícii už # dní}} Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože vaše prihlasovacie údaje účtu sú zastarané. diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb index a9ef4a3431ddea..f893398676729d 100644 --- a/chrome/app/resources/google_chrome_strings_sl.xtb +++ b/chrome/app/resources/google_chrome_strings_sl.xtb @@ -292,6 +292,7 @@ Google Chrome ne more obnoviti vaših nastavitev. Google Chrome Ta delovni profil je v celoti ločen od osebnega profila. Na voljo je nova različica Google Chroma, ki je najhitrejša doslej. +Želite vklopiti tudi v Chromu? S profili v Chromu lahko ločite vse stvari v Chromu. Tako laže ločite delo in zabavo. Google Chrome se ne odziva. Ga želite znova zagnati? Chrome potrebuje dovoljenje za dostop do fotoaparata zaradi ustvarjanja tridimenzionalnega zemljevida okolice. diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb index 09821ed5474d8e..1bf64edee3036e 100644 --- a/chrome/app/resources/google_chrome_strings_te.xtb +++ b/chrome/app/resources/google_chrome_strings_te.xtb @@ -284,6 +284,7 @@ Google Chrome ఈ వర్క్ ప్రొఫైల్, మీ వ్యక్తిగత ప్రొఫైల్ నుండి పూర్తిగా భిన్నంగా ఉంది. Google Chrome యొక్క కొత్త వెర్షన్ అందుబాటులో ఉంది, ఇది మునుపటి కంటే వేగవంతంగా ఉంటుంది. +Chromeలో కూడా ఆన్ చేయాలా? మీ మొత్తం Chrome అంశాలను మీ Chrome ప్రొఫైల్‌లతో వేరు చేయండి. ఇలా చేయడం వలన ఆఫీస్, వినోదాన్ని వేర్వేరుగా ఉంచవచ్చు. Google Chrome స్పందించడం లేదు. ఇప్పుడే పునఃప్రారంభించాలా? మీ పరిసరాల 3D మ్యాప్‌ను సృష్టించడానికి Chromeకు మీ కెమెరాను యాక్సెస్ చేసే అనుమతి కావాలి diff --git a/chrome/app/resources/google_chrome_strings_ur.xtb b/chrome/app/resources/google_chrome_strings_ur.xtb index a12b75acbe3f88..7159f001d6d665 100644 --- a/chrome/app/resources/google_chrome_strings_ur.xtb +++ b/chrome/app/resources/google_chrome_strings_ur.xtb @@ -291,6 +291,7 @@ Google Chrome آپ کی ترتیبات کو بازیافت کرنے سے قاص Google Chrome یہ دفتری پروفائل آپ کی ذاتی پروفائل سے پوری طرح علیحدہ ہے۔ ‏Google Chrome کا ایک نیا ورژن دستیاب ہے اور پہلے سے کہیں زیادہ تیز ہے۔ +‏Chrome میں بھی آن کرنا چاہتے ہیں؟ ‏Chrome کی پروفائلز کے ساتھ آپ اپنے تمام Chrome کی چیزوں کو الگ کر سکتے ہیں۔ یہ کام اور تفریح کے درمیان تقسیم کرنا زیادہ آسان بناتا ہے۔ ‏Google Chrome جواب نہیں دے رہا ہے۔ ابھی دوبارہ شروع کریں؟ ‏اپنے اطراف کا 3D نقشہ تخلیق کرنے کی خاطر Chrome کو آپ کے کیمرے تک رسائی کی اجازت درکار ہے diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb index b2e0e1b8766acf..bf8a8dc165abb8 100644 --- a/chrome/app/resources/google_chrome_strings_zu.xtb +++ b/chrome/app/resources/google_chrome_strings_zu.xtb @@ -292,6 +292,7 @@ I-Google Chrome ayikwazi ukuthola izilungiselelo zakho. Google Chrome Le phrofayela yomsebenzi ihluke ngokugcwele kusukela kuphrofayela yakho siqu. Kukhona inguqulo entsha ye-Google Chrome etholakalayo, futhi ishesha kakhulu kunakuqala. +Vula futhi ku-Chrome? Ngamaphrofayela we-Chrome ungahlukanisa zonke izinto zakho ze-Chrome. Lokhu kwenza kube lula ukuhlukanisa phakathi komsebenzi nokuzijabulisa. I-Google Chrome ayiphenduli. Qalisa kabusha manje? I-Chrome idinga imvume yokufinyelela kwikhamera yakho ukudala imephu engu-3D yendawo yakho ekuzungezile diff --git a/chrome/app/vector_icons/BUILD.gn b/chrome/app/vector_icons/BUILD.gn index 78f8949bc9625e..67427539e3b626 100644 --- a/chrome/app/vector_icons/BUILD.gn +++ b/chrome/app/vector_icons/BUILD.gn @@ -106,7 +106,6 @@ aggregate_vector_icons("chrome_vector_icons") { "security.icon", "send_tab_to_self.icon", "sharing_hub_screenshot.icon", - "shield_bad.icon", "side_panel.icon", "side_panel_touch.icon", "sign_out.icon", diff --git a/chrome/app/vector_icons/shield_bad.icon b/chrome/app/vector_icons/shield_bad.icon deleted file mode 100644 index 0e9033742468f7..00000000000000 --- a/chrome/app/vector_icons/shield_bad.icon +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -CANVAS_DIMENSIONS, 24, -MOVE_TO, 9.9f, 15.5f, -LINE_TO, 12, 13.4f, -LINE_TO, 14.1f, 15.5f, -LINE_TO, 15.5f, 14.1f, -LINE_TO, 13.4f, 12, -LINE_TO, 15.5f, 9.9f, -LINE_TO, 14.1f, 8.5f, -LINE_TO, 12, 10.6f, -LINE_TO, 9.9f, 8.5f, -LINE_TO, 8.5f, 9.9f, -LINE_TO, 10.6f, 12, -LINE_TO, 8.5f, 14.1f, -CLOSE, -MOVE_TO, 12, 22, -R_QUADRATIC_TO, -3.47f, -0.87f, -5.74f, -3.99f, -QUADRATIC_TO, 4, 14.9f, 4, 11.1f, -V_LINE_TO, 5, -R_LINE_TO, 8, -3, -R_LINE_TO, 8, 3, -R_V_LINE_TO, 6.1f, -R_QUADRATIC_TO, 0, 3.8f, -2.26f, 6.91f, -QUADRATIC_TO, 15.48f, 21.13f, 12, 22, -CLOSE, -R_MOVE_TO, 0, -10, -CLOSE, -R_MOVE_TO, 0, 7.9f, -R_QUADRATIC_TO, 2.6f, -0.82f, 4.3f, -3.3f, -R_QUADRATIC_TO, 1.7f, -2.47f, 1.7f, -5.5f, -V_LINE_TO, 6.38f, -R_LINE_TO, -6, -2.25f, -R_LINE_TO, -6, 2.25f, -V_LINE_TO, 11.1f, -R_QUADRATIC_TO, 0, 3.03f, 1.7f, 5.5f, -R_QUADRATIC_TO, 1.7f, 2.47f, 4.3f, 3.3f, -CLOSE \ No newline at end of file diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 4433abc0bb7b11..4109bff9ec802b 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -4968,6 +4968,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kNtpModulesRedesignedLayoutDescription, kOsDesktop, FEATURE_VALUE_TYPE(ntp_features::kNtpModulesRedesignedLayout)}, + {"ntp-realbox-match-omnibox-theme", + flag_descriptions::kNtpRealboxMatchOmniboxThemeName, + flag_descriptions::kNtpRealboxMatchOmniboxThemeDescription, kOsDesktop, + FEATURE_VALUE_TYPE(ntp_features::kRealboxMatchOmniboxTheme)}, + {"ntp-realbox-pedals", flag_descriptions::kNtpRealboxPedalsName, flag_descriptions::kNtpRealboxPedalsDescription, kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kNtpRealboxPedals)}, @@ -4980,6 +4985,11 @@ const FeatureEntry kFeatureEntries[] = { {"ntp-realbox-tail-suggest", flag_descriptions::kNtpRealboxTailSuggestName, flag_descriptions::kNtpRealboxTailSuggestDescription, kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kNtpRealboxTailSuggest)}, + + {"ntp-realbox-use-google-g-icon", + flag_descriptions::kNtpRealboxUseGoogleGIconName, + flag_descriptions::kNtpRealboxUseGoogleGIconDescription, kOsDesktop, + FEATURE_VALUE_TYPE(ntp_features::kRealboxUseGoogleGIcon)}, #endif // !defined(OS_ANDROID) #if defined(DCHECK_IS_CONFIGURABLE) diff --git a/chrome/browser/ash/tether/tether_service.cc b/chrome/browser/ash/tether/tether_service.cc index 1425fe0ef44582..6e6ed0950c00bf 100644 --- a/chrome/browser/ash/tether/tether_service.cc +++ b/chrome/browser/ash/tether/tether_service.cc @@ -51,7 +51,7 @@ TetherService* TetherService::Get(Profile* profile) { // static void TetherService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { - chromeos::tether::TetherComponentImpl::RegisterProfilePrefs(registry); + TetherComponentImpl::RegisterProfilePrefs(registry); } // static. @@ -111,12 +111,10 @@ TetherService::TetherService( profile_, chromeos::NetworkConnect::Get())), gms_core_notifications_state_tracker_( - std::make_unique< - chromeos::tether::GmsCoreNotificationsStateTrackerImpl>()), + std::make_unique()), tether_host_fetcher_( - chromeos::tether::TetherHostFetcherImpl::Factory::Create( - device_sync_client_, - multidevice_setup_client_)), + TetherHostFetcherImpl::Factory::Create(device_sync_client_, + multidevice_setup_client_)), timer_(std::make_unique()) { tether_host_fetcher_->AddObserver(this); power_manager_client_->AddObserver(this); @@ -153,7 +151,7 @@ void TetherService::StartTetherIfPossible() { return; PA_LOG(VERBOSE) << "Starting up TetherComponent."; - tether_component_ = chromeos::tether::TetherComponentImpl::Factory::Create( + tether_component_ = TetherComponentImpl::Factory::Create( device_sync_client_, secure_channel_client_, tether_host_fetcher_.get(), notification_presenter_.get(), gms_core_notifications_state_tracker_.get(), profile_->GetPrefs(), @@ -164,62 +162,55 @@ void TetherService::StartTetherIfPossible() { session_manager_); } -chromeos::tether::GmsCoreNotificationsStateTracker* +GmsCoreNotificationsStateTracker* TetherService::GetGmsCoreNotificationsStateTracker() { return gms_core_notifications_state_tracker_.get(); } void TetherService::StopTetherIfNecessary() { if (!tether_component_ || - tether_component_->status() != - chromeos::tether::TetherComponent::Status::ACTIVE) { + tether_component_->status() != TetherComponent::Status::ACTIVE) { return; } PA_LOG(VERBOSE) << "Shutting down TetherComponent."; - chromeos::tether::TetherComponent::ShutdownReason shutdown_reason; + TetherComponent::ShutdownReason shutdown_reason; switch (GetTetherFeatureState()) { case SHUT_DOWN: - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT; + shutdown_reason = TetherComponent::ShutdownReason::USER_LOGGED_OUT; break; case SUSPENDED: - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::USER_CLOSED_LID; + shutdown_reason = TetherComponent::ShutdownReason::USER_CLOSED_LID; break; case CELLULAR_DISABLED: - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::CELLULAR_DISABLED; + shutdown_reason = TetherComponent::ShutdownReason::CELLULAR_DISABLED; break; case BLUETOOTH_DISABLED: - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::BLUETOOTH_DISABLED; + shutdown_reason = TetherComponent::ShutdownReason::BLUETOOTH_DISABLED; break; case USER_PREFERENCE_DISABLED: - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED; + shutdown_reason = TetherComponent::ShutdownReason::PREF_DISABLED; break; case BLE_NOT_PRESENT: - shutdown_reason = chromeos::tether::TetherComponent::ShutdownReason:: - BLUETOOTH_CONTROLLER_DISAPPEARED; + shutdown_reason = + TetherComponent::ShutdownReason::BLUETOOTH_CONTROLLER_DISAPPEARED; break; case NO_AVAILABLE_HOSTS: // If |tether_component_| was previously active but now has been shut down // due to no longer having a host, this means that the host became // unverified. - shutdown_reason = chromeos::tether::TetherComponent::ShutdownReason:: - MULTIDEVICE_HOST_UNVERIFIED; + shutdown_reason = + TetherComponent::ShutdownReason::MULTIDEVICE_HOST_UNVERIFIED; break; case BETTER_TOGETHER_SUITE_DISABLED: - shutdown_reason = chromeos::tether::TetherComponent::ShutdownReason:: - BETTER_TOGETHER_SUITE_DISABLED; + shutdown_reason = + TetherComponent::ShutdownReason::BETTER_TOGETHER_SUITE_DISABLED; break; default: PA_LOG(ERROR) << "Unexpected shutdown reason. FeatureState is " << GetTetherFeatureState() << "."; - shutdown_reason = - chromeos::tether::TetherComponent::ShutdownReason::OTHER; + shutdown_reason = TetherComponent::ShutdownReason::OTHER; break; } @@ -327,8 +318,7 @@ void TetherService::UpdateEnabledState() { } void TetherService::OnShutdownComplete() { - DCHECK(tether_component_->status() == - chromeos::tether::TetherComponent::Status::SHUT_DOWN); + DCHECK(tether_component_->status() == TetherComponent::Status::SHUT_DOWN); tether_component_->RemoveObserver(this); tether_component_.reset(); PA_LOG(VERBOSE) << "TetherComponent was shut down."; @@ -655,8 +645,7 @@ void TetherService::LogUserPreferenceChanged(bool is_now_enabled) { } void TetherService::SetTestDoubles( - std::unique_ptr - notification_presenter, + std::unique_ptr notification_presenter, std::unique_ptr timer) { notification_presenter_ = std::move(notification_presenter); timer_ = std::move(timer); diff --git a/chrome/browser/ash/tether/tether_service.h b/chrome/browser/ash/tether/tether_service.h index 8127831c2eb27a..de200bf303fd36 100644 --- a/chrome/browser/ash/tether/tether_service.h +++ b/chrome/browser/ash/tether/tether_service.h @@ -27,11 +27,6 @@ class NetworkStateHandler; namespace secure_channel { class SecureChannelClient; } // namespace secure_channel -namespace tether { -class GmsCoreNotificationsStateTracker; -class GmsCoreNotificationsStateTrackerImpl; -class NotificationPresenter; -} // namespace tether } // namespace chromeos namespace session_manager { @@ -45,6 +40,10 @@ class PrefRegistrySyncable; namespace ash { namespace tether { +class GmsCoreNotificationsStateTracker; +class GmsCoreNotificationsStateTrackerImpl; +class NotificationPresenter; + // Service providing access to the Instant Tethering component. Provides an // interface to start up the component as well as to retrieve metadata about // ongoing Tether connections. @@ -54,10 +53,10 @@ namespace tether { class TetherService : public KeyedService, public chromeos::PowerManagerClient::Observer, - public chromeos::tether::TetherHostFetcher::Observer, + public TetherHostFetcher::Observer, public device::BluetoothAdapter::Observer, public chromeos::NetworkStateHandlerObserver, - public chromeos::tether::TetherComponent::Observer, + public TetherComponent::Observer, public chromeos::device_sync::DeviceSyncClient::Observer, public chromeos::multidevice_setup::MultiDeviceSetupClient::Observer { public: @@ -86,7 +85,7 @@ class TetherService // Should only be called once a user is logged in. virtual void StartTetherIfPossible(); - virtual chromeos::tether::GmsCoreNotificationsStateTracker* + virtual GmsCoreNotificationsStateTracker* GetGmsCoreNotificationsStateTracker(); protected: @@ -97,7 +96,7 @@ class TetherService void SuspendImminent(power_manager::SuspendImminent::Reason reason) override; void SuspendDone(base::TimeDelta sleep_duration) override; - // chromeos::tether::TetherHostFetcher::Observer + // TetherHostFetcher::Observer void OnTetherHostsUpdated() override; // device::BluetoothAdapter::Observer: @@ -111,7 +110,7 @@ class TetherService // Helper method called from NetworkStateHandlerObserver methods. void UpdateEnabledState(); - // chromeos::tether::TetherComponent::Observer: + // TetherComponent::Observer: void OnShutdownComplete() override; // chromeos::device_sync::DeviceSyncClient::Observer: @@ -236,9 +235,9 @@ class TetherService void LogUserPreferenceChanged(bool is_now_enabled); - void SetTestDoubles(std::unique_ptr - notification_presenter, - std::unique_ptr timer); + void SetTestDoubles( + std::unique_ptr notification_presenter, + std::unique_ptr timer); // Whether the service has been shut down. bool shut_down_ = false; @@ -275,12 +274,11 @@ class TetherService multidevice_setup_client_; chromeos::NetworkStateHandler* network_state_handler_; session_manager::SessionManager* session_manager_; - std::unique_ptr - notification_presenter_; - std::unique_ptr + std::unique_ptr notification_presenter_; + std::unique_ptr gms_core_notifications_state_tracker_; - std::unique_ptr tether_host_fetcher_; - std::unique_ptr tether_component_; + std::unique_ptr tether_host_fetcher_; + std::unique_ptr tether_component_; scoped_refptr adapter_; std::unique_ptr timer_; diff --git a/chrome/browser/ash/tether/tether_service_unittest.cc b/chrome/browser/ash/tether/tether_service_unittest.cc index 2a14904c3fe505..d6f704a1315f20 100644 --- a/chrome/browser/ash/tether/tether_service_unittest.cc +++ b/chrome/browser/ash/tether/tether_service_unittest.cc @@ -121,8 +121,7 @@ class TestTetherService : public TetherService { int updated_technology_state_count_ = 0; }; -class FakeTetherComponentWithDestructorCallback - : public chromeos::tether::FakeTetherComponent { +class FakeTetherComponentWithDestructorCallback : public FakeTetherComponent { public: FakeTetherComponentWithDestructorCallback( base::OnceClosure destructor_callback) @@ -137,8 +136,7 @@ class FakeTetherComponentWithDestructorCallback base::OnceClosure destructor_callback_; }; -class TestTetherComponentFactory final - : public chromeos::tether::TetherComponentImpl::Factory { +class TestTetherComponentFactory final : public TetherComponentImpl::Factory { public: TestTetherComponentFactory() {} @@ -148,13 +146,13 @@ class TestTetherComponentFactory final return active_tether_component_; } - // chromeos::tether::TetherComponentImpl::Factory: - std::unique_ptr CreateInstance( + // TetherComponentImpl::Factory: + std::unique_ptr CreateInstance( chromeos::device_sync::DeviceSyncClient* device_sync_client, chromeos::secure_channel::SecureChannelClient* secure_channel_client, - chromeos::tether::TetherHostFetcher* tether_host_fetcher, - chromeos::tether::NotificationPresenter* notification_presenter, - chromeos::tether::GmsCoreNotificationsStateTrackerImpl* + TetherHostFetcher* tether_host_fetcher, + NotificationPresenter* notification_presenter, + GmsCoreNotificationsStateTrackerImpl* gms_core_notifications_state_tracker, PrefService* pref_service, chromeos::NetworkStateHandler* network_state_handler, @@ -174,8 +172,7 @@ class TestTetherComponentFactory final bool was_tether_component_active() { return was_tether_component_active_; } - const chromeos::tether::TetherComponent::ShutdownReason& - last_shutdown_reason() { + const TetherComponent::ShutdownReason& last_shutdown_reason() { return last_shutdown_reason_; } @@ -187,7 +184,7 @@ class TestTetherComponentFactory final FakeTetherComponentWithDestructorCallback* active_tether_component_ = nullptr; bool was_tether_component_active_ = false; - chromeos::tether::TetherComponent::ShutdownReason last_shutdown_reason_; + TetherComponent::ShutdownReason last_shutdown_reason_; }; class FakeRemoteDeviceProviderFactory @@ -206,33 +203,29 @@ class FakeRemoteDeviceProviderFactory } }; -class FakeTetherHostFetcherFactory - : public chromeos::tether::TetherHostFetcherImpl::Factory { +class FakeTetherHostFetcherFactory : public TetherHostFetcherImpl::Factory { public: FakeTetherHostFetcherFactory( const chromeos::multidevice::RemoteDeviceRefList& initial_devices) : initial_devices_(initial_devices) {} virtual ~FakeTetherHostFetcherFactory() = default; - chromeos::tether::FakeTetherHostFetcher* last_created() { - return last_created_; - } + FakeTetherHostFetcher* last_created() { return last_created_; } void SetNoInitialDevices() { initial_devices_.clear(); } - // chromeos::tether::TetherHostFetcherImpl::Factory : - std::unique_ptr CreateInstance( + // TetherHostFetcherImpl::Factory : + std::unique_ptr CreateInstance( chromeos::device_sync::DeviceSyncClient* device_sync_client, chromeos::multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client) override { - last_created_ = - new chromeos::tether::FakeTetherHostFetcher(initial_devices_); + last_created_ = new FakeTetherHostFetcher(initial_devices_); return base::WrapUnique(last_created_); } private: chromeos::multidevice::RemoteDeviceRefList initial_devices_; - chromeos::tether::FakeTetherHostFetcher* last_created_ = nullptr; + FakeTetherHostFetcher* last_created_ = nullptr; }; class FakeDeviceSyncClientImplFactory @@ -364,7 +357,7 @@ class TetherServiceTest : public testing::Test { test_tether_component_factory_ = base::WrapUnique(new TestTetherComponentFactory()); - chromeos::tether::TetherComponentImpl::Factory::SetFactoryForTesting( + TetherComponentImpl::Factory::SetFactoryForTesting( test_tether_component_factory_.get()); shutdown_reason_verified_ = false; @@ -375,7 +368,7 @@ class TetherServiceTest : public testing::Test { fake_tether_host_fetcher_factory_ = base::WrapUnique(new FakeTetherHostFetcherFactory(test_devices_)); - chromeos::tether::TetherHostFetcherImpl::Factory::SetFactoryForTesting( + TetherHostFetcherImpl::Factory::SetFactoryForTesting( fake_tether_host_fetcher_factory_.get()); TestingBrowserProcess::GetGlobal()->SetLocalState(&local_pref_service_); @@ -431,8 +424,7 @@ class TetherServiceTest : public testing::Test { fake_multidevice_setup_client_.get(), network_state_handler(), nullptr /* session_manager */)); - fake_notification_presenter_ = - new chromeos::tether::FakeNotificationPresenter(); + fake_notification_presenter_ = new FakeNotificationPresenter(); mock_timer_ = new base::MockOneShotTimer(); tether_service_->SetTestDoubles( base::WrapUnique(fake_notification_presenter_), @@ -517,8 +509,7 @@ class TetherServiceTest : public testing::Test { } void VerifyLastShutdownReason( - const chromeos::tether::TetherComponent::ShutdownReason& - expected_shutdown_reason) { + const TetherComponent::ShutdownReason& expected_shutdown_reason) { EXPECT_EQ(expected_shutdown_reason, test_tether_component_factory_->last_shutdown_reason()); shutdown_reason_verified_ = true; @@ -546,7 +537,7 @@ class TetherServiceTest : public testing::Test { fake_remote_device_provider_factory_; std::unique_ptr fake_tether_host_fetcher_factory_; - chromeos::tether::FakeNotificationPresenter* fake_notification_presenter_; + FakeNotificationPresenter* fake_notification_presenter_; base::MockOneShotTimer* mock_timer_; std::unique_ptr fake_device_sync_client_; @@ -591,8 +582,7 @@ TEST_F(TetherServiceTest, TestShutdown) { network_state_handler()->GetTechnologyState( chromeos::NetworkTypePattern::Tether())); VerifyTetherActiveStatus(false /* expected_active */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -616,7 +606,7 @@ TEST_F(TetherServiceTest, DISABLED_TestAsyncTetherShutdown) { // Tether should be active, but shutting down. VerifyTetherActiveStatus(true /* expected_active */); EXPECT_EQ( - chromeos::tether::TetherComponent::Status::SHUTTING_DOWN, + TetherComponent::Status::SHUTTING_DOWN, test_tether_component_factory_->active_tether_component()->status()); // Tether should be AVAILABLE. @@ -630,8 +620,7 @@ TEST_F(TetherServiceTest, DISABLED_TestAsyncTetherShutdown) { test_tether_component_factory_->active_tether_component() ->FinishAsynchronousShutdown(); VerifyTetherActiveStatus(false /* expected_active */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); } TEST_F(TetherServiceTest, TestSuspend) { @@ -659,8 +648,7 @@ TEST_F(TetherServiceTest, TestSuspend) { VerifyTetherFeatureStateRecorded(TetherService::TetherFeatureState::SUSPENDED, 2 /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_CLOSED_LID); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_CLOSED_LID); } TEST_F(TetherServiceTest, TestDeviceSyncClientNotReady) { @@ -678,8 +666,7 @@ TEST_F(TetherServiceTest, TestDeviceSyncClientNotReady) { VerifyTetherActiveStatus(true /* expected_active */); ShutdownTetherService(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } TEST_F(TetherServiceTest, @@ -708,8 +695,7 @@ TEST_F(TetherServiceTest, VerifyTetherActiveStatus(true /* expected_active */); ShutdownTetherService(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } TEST_F(TetherServiceTest, TestMultiDeviceSetupClientLosesVerifiedHost) { @@ -737,8 +723,8 @@ TEST_F(TetherServiceTest, TestMultiDeviceSetupClientLosesVerifiedHost) { VerifyTetherFeatureStateRecorded( TetherService::TetherFeatureState::NO_AVAILABLE_HOSTS, 1 /* expected_count */); - VerifyLastShutdownReason(chromeos::tether::TetherComponent::ShutdownReason:: - MULTIDEVICE_HOST_UNVERIFIED); + VerifyLastShutdownReason( + TetherComponent::ShutdownReason::MULTIDEVICE_HOST_UNVERIFIED); } TEST_F(TetherServiceTest, TestBetterTogetherSuiteInitiallyDisabled) { @@ -763,8 +749,7 @@ TEST_F(TetherServiceTest, TestBetterTogetherSuiteInitiallyDisabled) { VerifyTetherActiveStatus(true /* expected_active */); ShutdownTetherService(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } TEST_F(TetherServiceTest, TestBetterTogetherSuiteBecomesDisabled) { @@ -790,8 +775,8 @@ TEST_F(TetherServiceTest, TestBetterTogetherSuiteBecomesDisabled) { VerifyTetherFeatureStateRecorded( TetherService::TetherFeatureState::BETTER_TOGETHER_SUITE_DISABLED, 1 /* expected_count */); - VerifyLastShutdownReason(chromeos::tether::TetherComponent::ShutdownReason:: - BETTER_TOGETHER_SUITE_DISABLED); + VerifyLastShutdownReason( + TetherComponent::ShutdownReason::BETTER_TOGETHER_SUITE_DISABLED); } TEST_F(TetherServiceTest, TestGet_NotPrimaryUser_FeatureFlagDisabled) { @@ -825,8 +810,7 @@ TEST_F(TetherServiceTest, DISABLED_TestGet_PrimaryUser_FeatureFlagEnabled) { base::RunLoop().RunUntilIdle(); tether_service->Shutdown(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -846,8 +830,7 @@ TEST_F( base::RunLoop().RunUntilIdle(); tether_service->Shutdown(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -872,8 +855,7 @@ TEST_F( base::RunLoop().RunUntilIdle(); tether_service->Shutdown(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } TEST_F(TetherServiceTest, TestNoTetherHosts) { @@ -968,8 +950,7 @@ TEST_F(TetherServiceTest, TestMetricsFalsePositives) { ASSERT_FALSE(mock_timer_->IsRunning()); ShutdownTetherService(); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::USER_LOGGED_OUT); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::USER_LOGGED_OUT); } TEST_F(TetherServiceTest, TestWifiNotPresent) { @@ -1016,8 +997,7 @@ TEST_F(TetherServiceTest, TestIsBluetoothPowered) { VerifyTetherFeatureStateRecorded( TetherService::TetherFeatureState::BLUETOOTH_DISABLED, 2 /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::BLUETOOTH_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::BLUETOOTH_DISABLED); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -1036,8 +1016,7 @@ TEST_F(TetherServiceTest, DISABLED_TestCellularIsUnavailable) { network_state_handler()->GetTechnologyState( chromeos::NetworkTypePattern::Tether())); VerifyTetherActiveStatus(false /* expected_active */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); SetTetherTechnologyStateEnabled(true); EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, @@ -1105,8 +1084,7 @@ TEST_F(TetherServiceTest, DISABLED_TestCellularIsAvailable) { VerifyTetherFeatureStateRecorded( TetherService::TetherFeatureState::CELLULAR_DISABLED, 2 /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::CELLULAR_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::CELLULAR_DISABLED); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -1163,8 +1141,7 @@ TEST_F(TetherServiceTest, DISABLED_TestEnabled) { VerifyTetherFeatureStateRecorded(TetherService::TetherFeatureState::ENABLED, 2 /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); } TEST_F(TetherServiceTest, TestUserPrefChangesViaFeatureStateChange) { @@ -1225,8 +1202,7 @@ TEST_F(TetherServiceTest, TestUserPrefChangesViaFeatureStateChange) { "InstantTethering.UserPreference.OnToggle", true, 2u /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); } TEST_F(TetherServiceTest, TestUserPrefChangesViaTechnologyStateChange) { @@ -1276,8 +1252,7 @@ TEST_F(TetherServiceTest, TestUserPrefChangesViaTechnologyStateChange) { VerifyTetherFeatureStateRecorded(TetherService::TetherFeatureState::ENABLED, 2 /* expected_count */); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); } // TODO(https://crbug.com/893878): Fix disabled test. @@ -1309,8 +1284,7 @@ TEST_F(TetherServiceTest, DISABLED_TestEnabledMultipleChanges) { EXPECT_EQ(updated_technology_state_count, tether_service_->updated_technology_state_count()); - VerifyLastShutdownReason( - chromeos::tether::TetherComponent::ShutdownReason::PREF_DISABLED); + VerifyLastShutdownReason(TetherComponent::ShutdownReason::PREF_DISABLED); } } // namespace tether diff --git a/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.cc b/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.cc index efe58a1f32a679..6b9492d18c81be 100644 --- a/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.cc +++ b/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.cc @@ -8,6 +8,7 @@ #include "ash/grit/ash_camera_app_resources.h" #include "ash/webui/camera_app_ui/resources/strings/grit/ash_camera_app_strings.h" #include "ash/webui/camera_app_ui/url_constants.h" +#include "chrome/browser/ash/file_manager/path_util.h" #include "chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_constants.h" #include "chrome/browser/ash/web_applications/system_web_app_install_utils.h" #include "chrome/browser/web_applications/web_app_constants.h" @@ -77,6 +78,11 @@ bool CameraSystemAppDelegate::ShouldCaptureNavigations() const { return true; } +base::FilePath CameraSystemAppDelegate::GetLaunchDirectory( + const apps::AppLaunchParams& params) const { + return file_manager::util::GetMyFilesFolderForProfile(profile()); +} + gfx::Size CameraSystemAppDelegate::GetMinimumWindowSize() const { return {kChromeCameraAppMinimumWidth, kChromeCameraAppMinimumHeight + 32}; } diff --git a/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.h b/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.h index 249f178c671ed0..c46e00ff271672 100644 --- a/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.h +++ b/chrome/browser/ash/web_applications/camera_app/camera_system_web_app_info.h @@ -6,9 +6,9 @@ #define CHROME_BROWSER_ASH_WEB_APPLICATIONS_CAMERA_APP_CAMERA_SYSTEM_WEB_APP_INFO_H_ #include + #include "chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h" #include "chrome/browser/web_applications/system_web_apps/system_web_app_types.h" - #include "ui/gfx/geometry/rect.h" class Browser; @@ -22,6 +22,8 @@ class CameraSystemAppDelegate : public web_app::SystemWebAppDelegate { std::unique_ptr GetWebAppInfo() const override; bool ShouldCaptureNavigations() const override; gfx::Size GetMinimumWindowSize() const override; + base::FilePath GetLaunchDirectory( + const apps::AppLaunchParams& params) const override; gfx::Rect GetDefaultBounds(Browser* browser) const override; }; diff --git a/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.cc b/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.cc index 186542e30dd460..52c176f3ec1436 100644 --- a/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.cc +++ b/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.cc @@ -33,7 +33,6 @@ #include "chrome/browser/ui/web_applications/system_web_app_ui_utils.h" #include "chrome/browser/web_applications/web_app_id_constants.h" #include "chrome/browser/web_applications/web_app_tab_helper.h" -#include "chrome/browser/web_launch/web_launch_files_helper.h" #include "components/services/app_service/public/mojom/types.mojom.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" @@ -168,22 +167,6 @@ ChromeCameraAppUIDelegate::~ChromeCameraAppUIDelegate() { file_task_runner_->DeleteSoon(FROM_HERE, std::move(file_monitor_)); } -void ChromeCameraAppUIDelegate::SetLaunchDirectory() { - Profile* profile = Profile::FromWebUI(web_ui_); - content::WebContents* web_contents = web_ui_->GetWebContents(); - - auto my_files_folder_path = - file_manager::util::GetMyFilesFolderForProfile(profile); - - web_launch::WebLaunchFilesHelper::EnqueueLaunchParams( - web_contents, - /*app_scope=*/GURL(ash::kChromeUICameraAppScopeURL), - /*await_navigation=*/true, - /*launch_url=*/GURL(ash::kChromeUICameraAppMainURL), my_files_folder_path, - /*launch_paths=*/{}); - web_app::WebAppTabHelper::CreateForWebContents(web_contents); -} - void ChromeCameraAppUIDelegate::PopulateLoadTimeData( content::WebUIDataSource* source) { // Add strings that can be pulled in. diff --git a/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.h b/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.h index 267b5b704fda90..f7c75ff7135d94 100644 --- a/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.h +++ b/chrome/browser/ash/web_applications/camera_app/chrome_camera_app_ui_delegate.h @@ -93,7 +93,6 @@ class ChromeCameraAppUIDelegate : public ash::CameraAppUIDelegate { ~ChromeCameraAppUIDelegate() override; // ash::CameraAppUIDelegate - void SetLaunchDirectory() override; void PopulateLoadTimeData(content::WebUIDataSource* source) override; bool IsMetricsAndCrashReportingEnabled() override; void OpenFileInGallery(const std::string& name) override; diff --git a/chrome/browser/ash/web_applications/media_app/media_web_app_info.cc b/chrome/browser/ash/web_applications/media_app/media_web_app_info.cc index d3e07f4129f9c7..88fa10f8b42bbf 100644 --- a/chrome/browser/ash/web_applications/media_app/media_web_app_info.cc +++ b/chrome/browser/ash/web_applications/media_app/media_web_app_info.cc @@ -11,6 +11,7 @@ #include "ash/constants/ash_features.h" #include "ash/grit/ash_media_app_resources.h" #include "ash/webui/media_app_ui/url_constants.h" +#include "base/files/file_path.h" #include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/ash/web_applications/system_web_app_install_utils.h" @@ -161,8 +162,24 @@ std::unique_ptr MediaSystemAppDelegate::GetWebAppInfo() return CreateWebAppInfoForMediaWebApp(); } -bool MediaSystemAppDelegate::ShouldIncludeLaunchDirectory() const { - return true; +base::FilePath MediaSystemAppDelegate::GetLaunchDirectory( + const apps::AppLaunchParams& params) const { + // |launch_dir| is the directory that contains all |launch_files|. If + // there are no launch files, launch_dir is empty. + base::FilePath launch_dir = params.launch_files.size() + ? params.launch_files[0].DirName() + : base::FilePath(); + +#if DCHECK_IS_ON() + // Check |launch_files| all come from the same directory. + if (!launch_dir.empty()) { + for (auto path : params.launch_files) { + DCHECK_EQ(launch_dir, path.DirName()); + } + } +#endif + + return launch_dir; } bool MediaSystemAppDelegate::ShouldShowInLauncher() const { diff --git a/chrome/browser/ash/web_applications/media_app/media_web_app_info.h b/chrome/browser/ash/web_applications/media_app/media_web_app_info.h index 264e3917d1ccad..61574d37230332 100644 --- a/chrome/browser/ash/web_applications/media_app/media_web_app_info.h +++ b/chrome/browser/ash/web_applications/media_app/media_web_app_info.h @@ -16,12 +16,13 @@ class MediaSystemAppDelegate : public web_app::SystemWebAppDelegate { // web_app::SystemWebAppDelegate overrides: std::unique_ptr GetWebAppInfo() const override; - bool ShouldIncludeLaunchDirectory() const override; bool ShouldShowInLauncher() const override; bool ShouldCaptureNavigations() const override; bool ShouldShowInSearch() const override; bool ShouldShowNewWindowMenuOption() const override; bool ShouldReuseExistingWindow() const override; + base::FilePath GetLaunchDirectory( + const apps::AppLaunchParams& params) const override; }; // Return a WebApplicationInfo used to install the app. diff --git a/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc b/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc index febee56c4d2a9b..09be74d4912506 100644 --- a/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc +++ b/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc @@ -391,7 +391,11 @@ class CupsPrintersManagerTest : public testing::Test, manager_->AddObserver(this); } - ~CupsPrintersManagerTest() override {} + ~CupsPrintersManagerTest() override { + // Fast forwarding so that delayed tasks like |SendScannerCountToUMA| will + // run and not leak memory in unused callbacks. + task_environment_.FastForwardUntilNoTasksRemain(); + } // CupsPrintersManager::Observer implementation void OnPrintersChanged(PrinterClass printer_class, @@ -431,7 +435,8 @@ class CupsPrintersManagerTest : public testing::Test, // See // //docs/threading_and_tasks_testing.md#mainthreadtype-trait content::BrowserTaskEnvironment task_environment_{ - base::test::TaskEnvironment::MainThreadType::IO}; + base::test::TaskEnvironment::MainThreadType::IO, + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; // Captured printer lists from observer callbacks. base::flat_map> observed_printers_; diff --git a/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.cc b/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.cc index c764481581a331..3e669e6ae7bdb8 100644 --- a/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.cc +++ b/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.cc @@ -106,7 +106,7 @@ void MediaFoundationWidevineCdmComponentInstallerPolicy::ComponentReady( kWidevineKeySystem, content::CdmInfo::Robustness::kHardwareSecure, /*capability=*/absl::nullopt, /*supports_sub_key_systems=*/false, kMediaFoundationWidevineCdmDisplayName, kMediaFoundationWidevineCdmType, - version, GetCdmPath(install_dir), /*file_system_id=*/""); + version, GetCdmPath(install_dir)); content::CdmRegistry::GetInstance()->RegisterCdm(cdm_info); } diff --git a/chrome/browser/component_updater/widevine_cdm_component_installer.cc b/chrome/browser/component_updater/widevine_cdm_component_installer.cc index 5d35673ae987d4..6ced59e1a48a22 100644 --- a/chrome/browser/component_updater/widevine_cdm_component_installer.cc +++ b/chrome/browser/component_updater/widevine_cdm_component_installer.cc @@ -123,8 +123,7 @@ void RegisterWidevineCdmWithChrome(const base::Version& cdm_version, content::CdmInfo cdm_info( kWidevineKeySystem, content::CdmInfo::Robustness::kSoftwareSecure, std::move(capability), /*supports_sub_key_systems=*/false, - kWidevineCdmDisplayName, kWidevineCdmType, cdm_version, cdm_path, - kWidevineCdmFileSystemId); + kWidevineCdmDisplayName, kWidevineCdmType, cdm_version, cdm_path); CdmRegistry::GetInstance()->RegisterCdm(cdm_info); } #endif // !defined(OS_LINUX) && !defined(OS_CHROMEOS) diff --git a/chrome/browser/content_settings/sound_content_setting_observer.cc b/chrome/browser/content_settings/sound_content_setting_observer.cc index 2b7ae43e68c977..bc4fd51283c4ca 100644 --- a/chrome/browser/content_settings/sound_content_setting_observer.cc +++ b/chrome/browser/content_settings/sound_content_setting_observer.cc @@ -86,14 +86,9 @@ void SoundContentSettingObserver::ReadyToCommitNavigation( blink::mojom::kAutoplayFlagUserException); } -void SoundContentSettingObserver::DidFinishNavigation( - content::NavigationHandle* navigation_handle) { - if (navigation_handle->IsInPrimaryMainFrame() && - navigation_handle->HasCommitted() && - !navigation_handle->IsSameDocument()) { - MuteOrUnmuteIfNecessary(); - logged_site_muted_ukm_ = false; - } +void SoundContentSettingObserver::PrimaryPageChanged(content::Page& page) { + MuteOrUnmuteIfNecessary(); + logged_site_muted_ukm_ = false; } void SoundContentSettingObserver::OnAudioStateChanged(bool audible) { diff --git a/chrome/browser/content_settings/sound_content_setting_observer.h b/chrome/browser/content_settings/sound_content_setting_observer.h index 6de46715a46a76..7d96899d07564e 100644 --- a/chrome/browser/content_settings/sound_content_setting_observer.h +++ b/chrome/browser/content_settings/sound_content_setting_observer.h @@ -15,6 +15,10 @@ #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" +namespace content { +class Page; +} + class SoundContentSettingObserver : public content::WebContentsObserver, public content::WebContentsUserData, @@ -37,8 +41,7 @@ class SoundContentSettingObserver // content::WebContentsObserver implementation. void ReadyToCommitNavigation( content::NavigationHandle* navigation_handle) override; - void DidFinishNavigation( - content::NavigationHandle* navigation_handle) override; + void PrimaryPageChanged(content::Page& page) override; void OnAudioStateChanged(bool audible) override; // content_settings::Observer implementation. diff --git a/chrome/browser/extensions/api/debugger/debugger_api.cc b/chrome/browser/extensions/api/debugger/debugger_api.cc index 96f7b8b525e375..73e19fb183e551 100644 --- a/chrome/browser/extensions/api/debugger/debugger_api.cc +++ b/chrome/browser/extensions/api/debugger/debugger_api.cc @@ -309,11 +309,11 @@ void ExtensionDevToolsClientHost::SendMessageToBackend( DebuggerSendCommandFunction* function, const std::string& method, SendCommand::Params::CommandParams* command_params) { - base::DictionaryValue protocol_request; + base::Value protocol_request(base::Value::Type::DICTIONARY); int request_id = ++last_request_id_; pending_requests_[request_id] = function; - protocol_request.SetInteger("id", request_id); - protocol_request.SetString("method", method); + protocol_request.SetIntKey("id", request_id); + protocol_request.SetStringKey("method", method); if (command_params) { protocol_request.SetKey("params", command_params->additional_properties.Clone()); @@ -376,27 +376,27 @@ void ExtensionDevToolsClientHost::DispatchProtocolMessage( base::StringPiece message_str(reinterpret_cast(message.data()), message.size()); - std::unique_ptr result = base::JSONReader::ReadDeprecated( + absl::optional result = base::JSONReader::Read( message_str, base::JSON_REPLACE_INVALID_CHARACTERS); if (!result || !result->is_dict()) { LOG(ERROR) << "Tried to send invalid message to extension: " << message_str; return; } - base::DictionaryValue* dictionary = - static_cast(result.get()); + base::Value dictionary = std::move(result.value()); - absl::optional id = dictionary->FindIntKey("id"); + absl::optional id = dictionary.FindIntKey("id"); if (!id) { - std::string method_name; - if (!dictionary->GetString("method", &method_name)) + std::string* method_name = dictionary.FindStringKey("method"); + if (!method_name) return; OnEvent::Params params; - base::DictionaryValue* params_value; - if (dictionary->GetDictionary("params", ¶ms_value)) - params.additional_properties.Swap(params_value); + if (base::Value* params_value = dictionary.FindDictKey("params")) { + params.additional_properties.Swap( + static_cast(params_value)); + } - auto args(OnEvent::Create(debuggee_, method_name, params)); + auto args(OnEvent::Create(debuggee_, *method_name, params)); auto event = std::make_unique(events::DEBUGGER_ON_EVENT, OnEvent::kEventName, std::move(args), profile_); @@ -407,7 +407,7 @@ void ExtensionDevToolsClientHost::DispatchProtocolMessage( if (it == pending_requests_.end()) return; - it->second->SendResponseBody(dictionary); + it->second->SendResponseBody(std::move(dictionary)); pending_requests_.erase(it); } } @@ -654,20 +654,19 @@ ExtensionFunction::ResponseAction DebuggerSendCommandFunction::Run() { return RespondLater(); } -void DebuggerSendCommandFunction::SendResponseBody( - base::DictionaryValue* response) { - base::Value* error_body; - if (response->Get("error", &error_body)) { +void DebuggerSendCommandFunction::SendResponseBody(base::Value response) { + if (base::Value* error_body = response.FindKey("error")) { std::string error; base::JSONWriter::Write(*error_body, &error); Respond(Error(std::move(error))); return; } - base::DictionaryValue* result_body; SendCommand::Results::Result result; - if (response->GetDictionary("result", &result_body)) - result.additional_properties.Swap(result_body); + if (base::Value* result_body = response.FindDictKey("result")) { + result.additional_properties.Swap( + static_cast(result_body)); + } Respond(ArgumentList(SendCommand::Results::Create(result))); } @@ -693,35 +692,33 @@ const char kTargetTypeBackgroundPage[] = "background_page"; const char kTargetTypeWorker[] = "worker"; const char kTargetTypeOther[] = "other"; -std::unique_ptr SerializeTarget( - scoped_refptr host) { - std::unique_ptr dictionary( - new base::DictionaryValue()); - dictionary->SetString(kTargetIdField, host->GetId()); - dictionary->SetString(kTargetTitleField, host->GetTitle()); - dictionary->SetBoolean(kTargetAttachedField, host->IsAttached()); - dictionary->SetString(kTargetUrlField, host->GetURL().spec()); +base::Value SerializeTarget(scoped_refptr host) { + base::Value dictionary(base::Value::Type::DICTIONARY); + dictionary.SetStringKey(kTargetIdField, host->GetId()); + dictionary.SetStringKey(kTargetTitleField, host->GetTitle()); + dictionary.SetBoolKey(kTargetAttachedField, host->IsAttached()); + dictionary.SetStringKey(kTargetUrlField, host->GetURL().spec()); std::string type = host->GetType(); std::string target_type = kTargetTypeOther; if (type == DevToolsAgentHost::kTypePage) { int tab_id = extensions::ExtensionTabUtil::GetTabId(host->GetWebContents()); - dictionary->SetInteger(kTargetTabIdField, tab_id); + dictionary.SetIntKey(kTargetTabIdField, tab_id); target_type = kTargetTypePage; } else if (type == ChromeDevToolsManagerDelegate::kTypeBackgroundPage) { - dictionary->SetString(kTargetExtensionIdField, host->GetURL().host()); + dictionary.SetStringKey(kTargetExtensionIdField, host->GetURL().host()); target_type = kTargetTypeBackgroundPage; } else if (type == DevToolsAgentHost::kTypeServiceWorker || type == DevToolsAgentHost::kTypeSharedWorker) { target_type = kTargetTypeWorker; } - dictionary->SetString(kTargetTypeField, target_type); + dictionary.SetStringKey(kTargetTypeField, target_type); GURL favicon_url = host->GetFaviconURL(); if (favicon_url.is_valid()) - dictionary->SetString(kTargetFaviconUrlField, favicon_url.spec()); + dictionary.SetStringKey(kTargetFaviconUrlField, favicon_url.spec()); return dictionary; } @@ -735,8 +732,8 @@ DebuggerGetTargetsFunction::~DebuggerGetTargetsFunction() = default; ExtensionFunction::ResponseAction DebuggerGetTargetsFunction::Run() { content::DevToolsAgentHost::List list = DevToolsAgentHost::GetOrCreateAll(); std::unique_ptr result(new base::ListValue()); - for (size_t i = 0; i < list.size(); ++i) - result->Append(SerializeTarget(list[i])); + for (auto& i : list) + result->Append(SerializeTarget(i)); return RespondNow( OneArgument(base::Value::FromUniquePtrValue(std::move(result)))); diff --git a/chrome/browser/extensions/api/debugger/debugger_api.h b/chrome/browser/extensions/api/debugger/debugger_api.h index e38d5a8a923fe6..9a4f5af19402f6 100644 --- a/chrome/browser/extensions/api/debugger/debugger_api.h +++ b/chrome/browser/extensions/api/debugger/debugger_api.h @@ -20,10 +20,6 @@ using extensions::api::debugger::Debuggee; // Base debugger function. -namespace base { -class DictionaryValue; -} - namespace extensions { class ExtensionDevToolsClientHost; @@ -77,7 +73,7 @@ class DebuggerSendCommandFunction : public DebuggerFunction { DECLARE_EXTENSION_FUNCTION("debugger.sendCommand", DEBUGGER_SENDCOMMAND) DebuggerSendCommandFunction(); - void SendResponseBody(base::DictionaryValue* result); + void SendResponseBody(base::Value result); void SendDetachedError(); protected: diff --git a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc b/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc index a3bcd891b3fe81..64dbc1f2b116a7 100644 --- a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc +++ b/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc @@ -527,20 +527,6 @@ class TestSocketFactory : public net::ClientSocketFactory { NOTIMPLEMENTED(); return nullptr; } - std::unique_ptr CreateProxyClientSocket( - std::unique_ptr stream_socket, - const std::string& user_agent, - const net::HostPortPair& endpoint, - const net::ProxyServer& proxy_server, - net::HttpAuthController* http_auth_controller, - bool tunnel, - bool using_spdy, - net::NextProto negotiated_protocol, - net::ProxyDelegate* proxy_delegate, - const net::NetworkTrafficAnnotationTag& traffic_annotation) override { - NOTIMPLEMENTED(); - return nullptr; - } private: std::vector> providers_; diff --git a/chrome/browser/extensions/extension_messages_apitest.cc b/chrome/browser/extensions/extension_messages_apitest.cc index e219dd32a5de63..2fc7226aa9a831 100644 --- a/chrome/browser/extensions/extension_messages_apitest.cc +++ b/chrome/browser/extensions/extension_messages_apitest.cc @@ -80,9 +80,9 @@ class MessageSender : public ExtensionHostRegistry::Observer { static std::unique_ptr BuildEventArguments( const bool last_message, const std::string& data) { - std::unique_ptr event(new base::DictionaryValue()); - event->SetBoolean("lastMessage", last_message); - event->SetString("data", data); + base::Value event(base::Value::Type::DICTIONARY); + event.SetBoolKey("lastMessage", last_message); + event.SetStringKey("data", data); std::unique_ptr arguments(new base::ListValue()); arguments->Append(std::move(event)); return arguments; diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 82af9b0d4a8a2e..0babcd6b5b2508 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -4013,6 +4013,11 @@ "owners": [ "jerem", "tiborg" ], "expiry_milestone": 100 }, + { + "name": "ntp-realbox-match-omnibox-theme", + "owners": [ "mahmadi", "mfacey" ], + "expiry_milestone": 105 + }, { "name": "ntp-realbox-pedals", "owners": [ "mahmadi", "mfacey" ], @@ -4028,6 +4033,11 @@ "owners": [ "mahmadi", "mfacey" ], "expiry_milestone": 100 }, + { + "name": "ntp-realbox-use-google-g-icon", + "owners": [ "mahmadi", "mfacey" ], + "expiry_milestone": 105 + }, { "name": "ntp-recipe-tasks-module", "owners": [ "mahmadi", "tiborg" ], @@ -5304,11 +5314,6 @@ "owners": ["elainechien", "romanarora"], "expiry_milestone": 110 }, - { - "name": "tabs-bulkactions-ios", - "owners": [ "mrefaat", "michaeldo", "bling-flags@google.com" ], - "expiry_milestone": 98 - }, { "name": "tabs-search-ios", "owners": [ "mrefaat", "michaeldo", "bling-flags@google.com" ], diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 75754108031655..c9ef78283da058 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -3711,6 +3711,11 @@ const char kNtpModulesRedesignedLayoutName[] = "Ntp Modules Redesigned Layout"; const char kNtpModulesRedesignedLayoutDescription[] = "Changes the layout of modules on New Tab Page"; +const char kNtpRealboxMatchOmniboxThemeName[] = + "NTP Realbox Matches Omnibox Theme"; +const char kNtpRealboxMatchOmniboxThemeDescription[] = + "NTP Realbox matches the Omnibox theme when enabled."; + const char kNtpRealboxPedalsName[] = "NTP Realbox Pedals"; const char kNtpRealboxPedalsDescription[] = "Shows pedals in the NTP Realbox when enabled."; @@ -3724,6 +3729,11 @@ const char kNtpRealboxTailSuggestName[] = "NTP Realbox Tail Suggest"; const char kNtpRealboxTailSuggestDescription[] = "Properly formats the tail suggestions to match the Omnibox"; +const char kNtpRealboxUseGoogleGIconName[] = "NTP Realbox Google G Icon"; +const char kNtpRealboxUseGoogleGIconDescription[] = + "Shows Google G icon " + "instead of Search Loupe in realbox when enabled"; + const char kEnableReaderModeName[] = "Enable Reader Mode"; const char kEnableReaderModeDescription[] = "Allows viewing of simplified web pages by selecting 'Customize and " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 393c3891781884..093ba1279c0ea0 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h @@ -2141,6 +2141,9 @@ extern const char kNtpModulesRedesignedDescription[]; extern const char kNtpModulesRedesignedLayoutName[]; extern const char kNtpModulesRedesignedLayoutDescription[]; +extern const char kNtpRealboxMatchOmniboxThemeName[]; +extern const char kNtpRealboxMatchOmniboxThemeDescription[]; + extern const char kNtpRealboxPedalsName[]; extern const char kNtpRealboxPedalsDescription[]; @@ -2150,6 +2153,9 @@ extern const char kNtpRealboxSuggestionAnswersDescription[]; extern const char kNtpRealboxTailSuggestName[]; extern const char kNtpRealboxTailSuggestDescription[]; +extern const char kNtpRealboxUseGoogleGIconName[]; +extern const char kNtpRealboxUseGoogleGIconDescription[]; + extern const char kEnableReaderModeName[]; extern const char kEnableReaderModeDescription[]; diff --git a/chrome/browser/resources/access_code_cast/BUILD.gn b/chrome/browser/resources/access_code_cast/BUILD.gn index 08c53a44fba2cc..f54e0a708d6b9d 100644 --- a/chrome/browser/resources/access_code_cast/BUILD.gn +++ b/chrome/browser/resources/access_code_cast/BUILD.gn @@ -15,6 +15,7 @@ html_to_js("web_components") { js_files = [ "access_code_cast.ts", "code_input/code_input.ts", + "error_message/error_message.ts", ] } @@ -57,6 +58,7 @@ ts_library("build_ts") { "access_code_cast.ts", "browser_proxy.ts", "code_input/code_input.ts", + "error_message/error_message.ts", "route_request_result_code.mojom-webui.js", ] } diff --git a/chrome/browser/resources/access_code_cast/access_code_cast.html b/chrome/browser/resources/access_code_cast/access_code_cast.html index 73d967a4786367..3a1128b2c1b2e5 100644 --- a/chrome/browser/resources/access_code_cast/access_code_cast.html +++ b/chrome/browser/resources/access_code_cast/access_code_cast.html @@ -3,6 +3,12 @@ margin-inline-end: 8px; } + .center { + left: 50%; + top: 50%; + transform: translateY(-50%) translateX(-50%); + } + .text-button:not(:focus) { border: none; box-shadow: none; @@ -21,7 +27,7 @@

$i18n{dialogTitle}

- + $i18n{useCamera} @@ -29,6 +35,7 @@

$i18n{dialogTitle}

Camera input view

+
$i18n{close} { this.handleCodeInput(e); }); @@ -101,7 +105,7 @@ class AccessCodeCastElement extends PolymerElement { }); if (addResult !== AddSinkResultCode.OK) { - this.showAddSinkError(addResult); + this.$.errorMessage.setAddSinkError(addResult); return; } @@ -110,7 +114,7 @@ class AccessCodeCastElement extends PolymerElement { }); if (castResult !== RouteRequestResultCode.OK) { - this.showCastError(castResult); + this.$.errorMessage.setCastError(castResult); return; } @@ -129,6 +133,7 @@ class AccessCodeCastElement extends PolymerElement { private setState(state: PageState) { this.state = state; + this.$.errorMessage.setNoError(); this.$.codeInputView.hidden = state !== PageState.CODE_INPUT; this.$.castButton.hidden = state !== PageState.CODE_INPUT; @@ -156,25 +161,6 @@ class AccessCodeCastElement extends PolymerElement { const castResult = await BrowserProxy.getInstance().handler.castToSink(); return castResult.resultCode as RouteRequestResultCode; } - - // TODO:(b/209720173): Implement this functions to handle errors - private showAddSinkError(resultCode: AddSinkResultCode) { - if (resultCode === AddSinkResultCode.INVALID_ACCESS_CODE) { - console.log('Incorrect access code'); - } else { - console.log('Add sink error: ' + resultCode); - } - } - - // TODO:(b/209720173): Implement this functions to handle errors - private showCastError(resultCode: RouteRequestResultCode) { - if (resultCode === RouteRequestResultCode.ROUTE_NOT_FOUND) { - console.log('Route not found'); - } else { - console.log('Cast error: ' + resultCode); - } - } - } customElements.define(AccessCodeCastElement.is, AccessCodeCastElement); diff --git a/chrome/browser/resources/access_code_cast/error_message/error_message.html b/chrome/browser/resources/access_code_cast/error_message/error_message.html new file mode 100644 index 00000000000000..359007203303be --- /dev/null +++ b/chrome/browser/resources/access_code_cast/error_message/error_message.html @@ -0,0 +1,40 @@ + +
+ +
\ No newline at end of file diff --git a/chrome/browser/resources/access_code_cast/error_message/error_message.ts b/chrome/browser/resources/access_code_cast/error_message/error_message.ts new file mode 100644 index 00000000000000..09457057dc977c --- /dev/null +++ b/chrome/browser/resources/access_code_cast/error_message/error_message.ts @@ -0,0 +1,124 @@ +// Copyright 2021 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://resources/cr_elements/icons.m.js'; +import 'chrome://resources/cr_elements/shared_vars_css.m.js'; +import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js'; + +import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {AddSinkResultCode} from '../access_code_cast.mojom-webui.js'; +import {RouteRequestResultCode} from '../route_request_result_code.mojom-webui.js'; + +enum ErrorMessage { + NO_ERROR, + GENERIC, + ACCESS_CODE, + NETWORK, + PERMISSION, + TOO_MANY_REQUESTS, +} + +export class ErrorMessageElement extends PolymerElement { + private static readonly ADD_RESULT_MESSAGE_CODES: + [ErrorMessage, AddSinkResultCode[]][] = [ + [ErrorMessage.NO_ERROR, [AddSinkResultCode.OK]], + [ErrorMessage.GENERIC, [ + AddSinkResultCode.UNKNOWN_ERROR, + AddSinkResultCode.SINK_CREATION_ERROR + ]], + [ErrorMessage.ACCESS_CODE, [ + AddSinkResultCode.INVALID_ACCESS_CODE, + AddSinkResultCode.ACCESS_CODE_NOT_FOUND + ]], + [ErrorMessage.NETWORK, [ + AddSinkResultCode.HTTP_RESPONSE_CODE_ERROR, + AddSinkResultCode.RESPONSE_MALFORMED, + AddSinkResultCode.EMPTY_RESPONSE, + AddSinkResultCode.SERVICE_NOT_PRESENT, + AddSinkResultCode.SERVER_ERROR + ]], + [ErrorMessage.PERMISSION, [AddSinkResultCode.AUTH_ERROR]], + [ErrorMessage.TOO_MANY_REQUESTS, [AddSinkResultCode.TOO_MANY_REQUESTS]], + ]; + + private static readonly CAST_RESULT_MESSAGE_CODES: + [ErrorMessage, RouteRequestResultCode[]][] = [ + [ErrorMessage.NO_ERROR, [RouteRequestResultCode.OK]], + [ErrorMessage.GENERIC, [ + RouteRequestResultCode.UNKNOWN_ERROR, + RouteRequestResultCode.INVALID_ORIGIN, + RouteRequestResultCode.OFF_THE_RECORD_MISMATCH, + RouteRequestResultCode.NO_SUPPORTED_PROVIDER, + RouteRequestResultCode.CANCELLED, + RouteRequestResultCode.ROUTE_ALREADY_EXISTS, + RouteRequestResultCode.DESKTOP_PICKER_FAILED, + RouteRequestResultCode.ROUTE_ALREADY_TERMINATED + ]], + [ErrorMessage.NETWORK, [ + RouteRequestResultCode.TIMED_OUT, + RouteRequestResultCode.ROUTE_NOT_FOUND, + RouteRequestResultCode.SINK_NOT_FOUND + ]], + ]; + + private static readonly ADD_RESULT_MESSAGE_MAP = + new Map(ErrorMessageElement.ADD_RESULT_MESSAGE_CODES); + + private static readonly CAST_RESULT_MESSAGE_MAP = + new Map(ErrorMessageElement.CAST_RESULT_MESSAGE_CODES); + + // Needed for Polymer data binding + private errorMessageEnum = ErrorMessage; + + static get is() { + return 'c2c-error-message'; + } + + static get template() { + return html`{__html_template__}`; + } + + private messageCode = ErrorMessage.NO_ERROR; + + setAddSinkError(resultCode: AddSinkResultCode) { + this.messageCode = this.findErrorMessage(resultCode, + ErrorMessageElement.ADD_RESULT_MESSAGE_MAP); + } + + setCastError(resultCode: RouteRequestResultCode) { + this.messageCode = this.findErrorMessage(resultCode, + ErrorMessageElement.CAST_RESULT_MESSAGE_MAP); + } + + setNoError() { + this.messageCode = ErrorMessage.NO_ERROR; + } + + getMessageCode() { + return this.messageCode; + } + + isEqual(a: ErrorMessage, b: ErrorMessage) { + return a === b; + } + + isNotEqual(a: ErrorMessage, b: ErrorMessage) { + return a !== b; + } + + private findErrorMessage( + resultCode: AddSinkResultCode|RouteRequestResultCode, + messageCodes: Map) { + for (const key of messageCodes.keys()) { + if (messageCodes.get(key)!.includes(resultCode)) { + return key; + } + } + + return ErrorMessage.NO_ERROR; + } +} + +customElements.define(ErrorMessageElement.is, ErrorMessageElement); \ No newline at end of file diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb index 9c825b45bce4a5..dca022e5dcf74a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb @@ -392,6 +392,7 @@ {COUNT,plural, =1{сұрақ белгісі}other{# сұрақ белгісі}} ChromeVox мәзірлерін ашу {COUNT,plural, =1{кірістіру белгісі}other{# кірістіру белгісі}} +{COUNT,plural, =1{ақ таңбалауыш}other{# ақ таңбалауыш}} Өңделетін мәтін өрісі сипаттама тізімі бөлігін қиып алу. @@ -675,6 +676,7 @@ Келесі құсбелгі ұяшығы , радио түйме белгісі алып тасталды Әдепкі әрекетті орындау +{COUNT,plural, =1{шаршы таңбалауыш}other{# шаршы таңбалауыш}} Автотолтыру жолы Келесі сабақ time @@ -1097,6 +1099,7 @@ Ашылмалы тізімдер , соңы 5-тақырып +{COUNT,plural, =1{}other{# орналастырылған деңгей}} Сүйікті маусымым Бал реңкті {COUNT,plural, =1{құбыр}other{# тік құбыр}} diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb index 555355d85e2460..05a53b18849c52 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb @@ -392,6 +392,7 @@ {COUNT,plural, =1{dấu hỏi}other{# dấu hỏi}} Thu gọn Trình đơn ChromeVox {COUNT,plural, =1{dấu mũ}other{# dấu mũ}} +{COUNT,plural, =1{dấu chấm trắng đầu dòng}other{# dấu chấm trắng đầu dòng}} Trường văn bản có thể chỉnh sửa dsmt cắt . @@ -675,6 +676,7 @@ Hộp kiểm tiếp theo , nút radio bị bỏ chọn Thực hiện tác vụ mặc định +{COUNT,plural, =1{dấu đầu dòng hình vuông}other{# dấu đầu dòng hình vuông}} Tự động hoàn thành nội dòng Bài học tiếp theo thời gian @@ -1098,6 +1100,7 @@ Danh sách thả xuống kết thúc Tiêu đề 5 +{COUNT,plural, =1{}other{nội dung con cấp #}} Mùa tôi yêu thích Màu dưa lưới {COUNT,plural, =1{dấu sổ thẳng}other{# dấu sổ thẳng}} diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn index 85ae17055a8bad..7da158d2b227ad 100644 --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn @@ -55,6 +55,7 @@ static_library("safe_browsing") { "//components/sessions", "//components/signin/public/identity_manager", "//components/url_formatter", + "//components/vector_icons:vector_icons", "//mojo/public/cpp/platform", "//mojo/public/cpp/system", "//services/preferences/public/cpp", diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.h b/chrome/browser/safe_browsing/chrome_password_protection_service.h index 97cb1611482c42..391fd196f54cca 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service.h +++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h @@ -397,8 +397,14 @@ class ChromePasswordProtectionService : public PasswordProtectionService, // Unit tests FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, VerifyUserPopulationForPasswordOnFocusPing); - FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, - VerifyUserPopulationForSyncPasswordEntryPing); + FRIEND_TEST_ALL_PREFIXES( + ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, + VerifyUserPopulationForSyncPasswordEntryPing); +#if defined(OS_ANDROID) + FRIEND_TEST_ALL_PREFIXES( + ChromePasswordProtectionServiceWithProtectionForSignedInUsersDisabledTest, + VerifyUserPopulationForSyncPasswordEntryPing); +#endif FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, VerifyUserPopulationForSavedPasswordEntryPing); FRIEND_TEST_ALL_PREFIXES( @@ -425,6 +431,9 @@ class ChromePasswordProtectionService : public PasswordProtectionService, VerifyUnhandledSyncPasswordReuseUponClearHistoryDeletion); FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, VerifyCanShowInterstitial); + FRIEND_TEST_ALL_PREFIXES( + ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, + VerifyCanShowInterstitial); FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, VerifySendsPingForAboutBlank); FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, @@ -441,8 +450,12 @@ class ChromePasswordProtectionService : public PasswordProtectionService, VerifyPersistPhishedSavedPasswordCredential); FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, VerifyGetPingNotSentReason); - FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceTest, - VerifyPageLoadToken); + FRIEND_TEST_ALL_PREFIXES( + ChromePasswordProtectionServiceWithSBPageLoadTokenEnabledTest, + VerifyPageLoadToken); + FRIEND_TEST_ALL_PREFIXES( + ChromePasswordProtectionServiceWithSBPageLoadTokenDisabledTest, + VerifyPageLoadToken); // Browser tests FRIEND_TEST_ALL_PREFIXES(ChromePasswordProtectionServiceBrowserTest, VerifyCheckGaiaPasswordChange); diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc index 9b767dbf651692..7af9a9a2f88a7b 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc +++ b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc @@ -437,6 +437,25 @@ class ChromePasswordProtectionServiceTest mock_remove_callback_; }; +class ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest + : public ChromePasswordProtectionServiceTest { + private: + base::test::ScopedFeatureList feature_list_{ + safe_browsing::kPasswordProtectionForSignedInUsers}; +}; + +class ChromePasswordProtectionServiceWithProtectionForSignedInUsersDisabledTest + : public ChromePasswordProtectionServiceTest { + public: + ChromePasswordProtectionServiceWithProtectionForSignedInUsersDisabledTest() { + feature_list_.InitAndDisableFeature( + safe_browsing::kPasswordProtectionForSignedInUsers); + } + + private: + base::test::ScopedFeatureList feature_list_; +}; + TEST_F(ChromePasswordProtectionServiceTest, VerifyUserPopulationForPasswordOnFocusPing) { ReusedPasswordAccountType reused_password_type; @@ -467,8 +486,6 @@ TEST_F(ChromePasswordProtectionServiceTest, TEST_F(ChromePasswordProtectionServiceTest, VerifyUserPopulationForSavedPasswordEntryPing) { - base::test::ScopedFeatureList feature_list; - ReusedPasswordAccountType reused_password_type; reused_password_type.set_account_type( ReusedPasswordAccountType::SAVED_PASSWORD); @@ -500,100 +517,90 @@ TEST_F(ChromePasswordProtectionServiceTest, reused_password_type)); } -// TODO(crbug.com/1276906): Flaky on Linux TSan Tests. -#if defined(THREAD_SANITIZER) -#define MAYBE_VerifyUserPopulationForSyncPasswordEntryPing \ - DISABLED_VerifyUserPopulationForSyncPasswordEntryPing -#else -#define MAYBE_VerifyUserPopulationForSyncPasswordEntryPing \ - VerifyUserPopulationForSyncPasswordEntryPing -#endif -TEST_F(ChromePasswordProtectionServiceTest, - MAYBE_VerifyUserPopulationForSyncPasswordEntryPing) { +TEST_F(ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, + VerifyUserPopulationForSyncPasswordEntryPing) { // Sets up the account as a gmail account as there is no hosted domain. ReusedPasswordAccountType reused_password_type; reused_password_type.set_account_type(ReusedPasswordAccountType::GMAIL); reused_password_type.set_is_account_syncing(true); - { - // Enable kPasswordProtectionForSignedInUsers. - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitWithFeatures( - {safe_browsing::kPasswordProtectionForSignedInUsers}, {}); + // Sync password entry pinging is enabled by default. + service_->ConfigService(false /*incognito*/, false /*SBER*/); + // Sync password pings are now gated by Safe Browsing, not Safe Browsing + // Enhanced Reporting (SBER), on Android, because warnings are now enabled + // with kPasswordProtectionForSignedInUsers. + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); - // Sync password entry pinging is enabled by default. - service_->ConfigService(false /*incognito*/, false /*SBER*/); - // Sync password pings are now gated by Safe Browsing, not Safe Browsing - // Enhanced Reporting (SBER), on Android, because warnings are now enabled - // with kPasswordProtectionForSignedInUsers. - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - - service_->ConfigService(false /*incognito*/, true /*SBER*/); - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - - service_->ConfigService(true /*incognito*/, false /*SBER*/); - // Sync password pings are now gated by Safe Browsing, not Safe Browsing - // Enhanced Reporting (SBER), on Android, because warnings are now enabled - // with kPasswordProtectionForSignedInUsers. - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - - // Even if sync password entry pinging is disabled by policy, - // |IsPingingEnabled(..)| should still default to true if the - // the password reuse type is syncing Gmail account. - service_->ConfigService(true /*incognito*/, true /*SBER*/); - service_->SetIsNoHostedDomainFound(true); - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); + service_->ConfigService(false /*incognito*/, true /*SBER*/); + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); - profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, - PASSWORD_PROTECTION_OFF); - service_->ConfigService(false /*incognito*/, false /*SBER*/); - // Sync password pings are now gated by Safe Browsing, not Safe Browsing - // Enhanced Reporting (SBER), on Android, because warnings are now enabled - // with kPasswordProtectionForSignedInUsers. - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); + service_->ConfigService(true /*incognito*/, false /*SBER*/); + // Sync password pings are now gated by Safe Browsing, not Safe Browsing + // Enhanced Reporting (SBER), on Android, because warnings are now enabled + // with kPasswordProtectionForSignedInUsers. + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); - profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, - PASSWORD_REUSE); - // Sync password pings are now gated by Safe Browsing, not Safe Browsing - // Enhanced Reporting (SBER), on Android, because warnings are now enabled. - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - } + // Even if sync password entry pinging is disabled by policy, + // |IsPingingEnabled(..)| should still default to true if the + // the password reuse type is syncing Gmail account. + service_->ConfigService(true /*incognito*/, true /*SBER*/); + service_->SetIsNoHostedDomainFound(true); + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); + + profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, + PASSWORD_PROTECTION_OFF); + service_->ConfigService(false /*incognito*/, false /*SBER*/); + // Sync password pings are now gated by Safe Browsing, not Safe Browsing + // Enhanced Reporting (SBER), on Android, because warnings are now enabled + // with kPasswordProtectionForSignedInUsers. + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); + + profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, + PASSWORD_REUSE); + // Sync password pings are now gated by Safe Browsing, not Safe Browsing + // Enhanced Reporting (SBER), on Android, because warnings are now enabled. + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); +} #if defined(OS_ANDROID) - { - // Disable kPasswordProtectionForSignedInUsers. - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitWithFeatures( - {}, {safe_browsing::kPasswordProtectionForSignedInUsers}); +TEST_F( + ChromePasswordProtectionServiceWithProtectionForSignedInUsersDisabledTest, + VerifyUserPopulationForSyncPasswordEntryPing) { + // Sets up the account as a gmail account as there is no hosted domain. + ReusedPasswordAccountType reused_password_type; + reused_password_type.set_account_type(ReusedPasswordAccountType::GMAIL); + reused_password_type.set_is_account_syncing(true); - service_->ConfigService(false /*incognito*/, false /*SBER*/); - // Sync password pings are now gated by Safe Browsing Enhanced Reporting, - // because the flag is disabled. - EXPECT_FALSE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - - // Sync password pings are now gated by Safe Browsing Enhanced Reporting, - // because the flag is disabled. - service_->ConfigService(false /*incognito*/, true /*SBER*/); - EXPECT_TRUE(service_->IsPingingEnabled( - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, - reused_password_type)); - } -#endif + profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, + PASSWORD_REUSE); + + service_->ConfigService(false /*incognito*/, false /*SBER*/); + // Sync password pings are now gated by Safe Browsing Enhanced Reporting, + // because kPasswordProtectionForSignedInUsers is disabled. + EXPECT_FALSE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); + + // Sync password pings are now gated by Safe Browsing Enhanced Reporting, + // because kPasswordProtectionForSignedInUsers is disabled. + service_->ConfigService(false /*incognito*/, true /*SBER*/); + EXPECT_TRUE(service_->IsPingingEnabled( + LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + reused_password_type)); } +#endif TEST_F(ChromePasswordProtectionServiceTest, VerifyPingingIsSkippedIfMatchEnterpriseAllowlist) { @@ -1308,7 +1315,7 @@ TEST_F(ChromePasswordProtectionServiceTest, VerifyGetWarningDetailTextSaved) { EXPECT_EQ(warning_text, service_->GetWarningDetailText(reused_password_type)); } -TEST_F(ChromePasswordProtectionServiceTest, +TEST_F(ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, VerifyGetWarningDetailTextEnterprise) { std::u16string warning_text_non_sync = l10n_util::GetStringUTF16( IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS_SIGNED_IN_NON_SYNC); @@ -1330,14 +1337,10 @@ TEST_F(ChromePasswordProtectionServiceTest, reused_password_type.set_is_account_syncing(false); EXPECT_EQ(generic_enterprise_warning_text, service_->GetWarningDetailText(reused_password_type)); - { - base::test::ScopedFeatureList feature_list; - feature_list.InitAndEnableFeature( - safe_browsing::kPasswordProtectionForSignedInUsers); - reused_password_type.set_account_type(ReusedPasswordAccountType::GSUITE); - EXPECT_EQ(warning_text_non_sync, - service_->GetWarningDetailText(reused_password_type)); - } + + reused_password_type.set_account_type(ReusedPasswordAccountType::GSUITE); + EXPECT_EQ(warning_text_non_sync, + service_->GetWarningDetailText(reused_password_type)); reused_password_type.set_account_type(ReusedPasswordAccountType::GSUITE); reused_password_type.set_is_account_syncing(true); @@ -1351,15 +1354,12 @@ TEST_F(ChromePasswordProtectionServiceTest, service_->GetWarningDetailText(reused_password_type)); } -TEST_F(ChromePasswordProtectionServiceTest, VerifyGetWarningDetailTextGmail) { +TEST_F(ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, + VerifyGetWarningDetailTextGmail) { std::u16string warning_text_non_sync = l10n_util::GetStringUTF16( IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS_SIGNED_IN_NON_SYNC); std::u16string warning_text_sync = l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS_SYNC); - - base::test::ScopedFeatureList feature_list; - feature_list.InitAndEnableFeature( - safe_browsing::kPasswordProtectionForSignedInUsers); ReusedPasswordAccountType reused_password_type; reused_password_type.set_account_type(ReusedPasswordAccountType::GMAIL); EXPECT_EQ(warning_text_non_sync, @@ -1369,6 +1369,25 @@ TEST_F(ChromePasswordProtectionServiceTest, VerifyGetWarningDetailTextGmail) { service_->GetWarningDetailText(reused_password_type)); } +TEST_F(ChromePasswordProtectionServiceWithProtectionForSignedInUsersEnabledTest, + VerifyCanShowInterstitial) { + // Do not show interstitial if policy not set for password_alert. + ASSERT_FALSE( + profile()->GetPrefs()->HasPrefPath(prefs::kSafeBrowsingAllowlistDomains)); + GURL trigger_url = GURL(kPhishingURL); + ReusedPasswordAccountType reused_password_type; + reused_password_type.set_account_type(ReusedPasswordAccountType::GSUITE); + reused_password_type.set_is_account_syncing(false); + service_->SetAccountInfo(kUserName); + EXPECT_FALSE( + service_->CanShowInterstitial(reused_password_type, trigger_url)); + + // Show interstitial if the policy is set to password_alert. + profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, + PASSWORD_REUSE); + EXPECT_TRUE(service_->CanShowInterstitial(reused_password_type, trigger_url)); +} + TEST_F(ChromePasswordProtectionServiceTest, VerifyCanShowInterstitial) { // Do not show interstitial if policy not set for password_alert. ASSERT_FALSE( @@ -1383,16 +1402,6 @@ TEST_F(ChromePasswordProtectionServiceTest, VerifyCanShowInterstitial) { reused_password_type.set_is_account_syncing(true); EXPECT_FALSE( service_->CanShowInterstitial(reused_password_type, trigger_url)); - { - base::test::ScopedFeatureList feature_list; - feature_list.InitAndEnableFeature( - safe_browsing::kPasswordProtectionForSignedInUsers); - service_->SetAccountInfo(kUserName); - reused_password_type.set_is_account_syncing(false); - EXPECT_FALSE( - service_->CanShowInterstitial(reused_password_type, trigger_url)); - } - reused_password_type.set_account_type( ReusedPasswordAccountType::NON_GAIA_ENTERPRISE); reused_password_type.set_is_account_syncing(false); @@ -1409,18 +1418,6 @@ TEST_F(ChromePasswordProtectionServiceTest, VerifyCanShowInterstitial) { profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, PASSWORD_REUSE); EXPECT_TRUE(service_->CanShowInterstitial(reused_password_type, trigger_url)); - { - base::test::ScopedFeatureList feature_list; - feature_list.InitAndEnableFeature( - safe_browsing::kPasswordProtectionForSignedInUsers); - service_->SetAccountInfo(kUserName); - reused_password_type.set_account_type(ReusedPasswordAccountType::GSUITE); - reused_password_type.set_is_account_syncing(false); - profile()->GetPrefs()->SetInteger(prefs::kPasswordProtectionWarningTrigger, - PASSWORD_REUSE); - EXPECT_TRUE( - service_->CanShowInterstitial(reused_password_type, trigger_url)); - } // Show interstitial if user is a Enterprise user and the policy is set to // password_alert. reused_password_type.set_account_type( @@ -1522,24 +1519,35 @@ TEST_F(ChromePasswordProtectionServiceTest, VerifyGetPingNotSentReason) { } } -TEST_F(ChromePasswordProtectionServiceTest, VerifyPageLoadToken) { - // Feature disabled - { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndDisableFeature(kSafeBrowsingPageLoadToken); - auto request = std::make_unique(); - service_->FillUserPopulation(GURL("https:www.example.com/"), request.get()); - ASSERT_EQ(0, request->population().page_load_tokens_size()); +class ChromePasswordProtectionServiceWithSBPageLoadTokenDisabledTest + : public ChromePasswordProtectionServiceTest { + public: + ChromePasswordProtectionServiceWithSBPageLoadTokenDisabledTest() { + feature_list_.InitAndDisableFeature(kSafeBrowsingPageLoadToken); } - // Feature enabled - { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature(kSafeBrowsingPageLoadToken); - auto request = std::make_unique(); - service_->FillUserPopulation(GURL("https:www.example.com/"), request.get()); - ASSERT_EQ(1, request->population().page_load_tokens_size()); - } + private: + base::test::ScopedFeatureList feature_list_; +}; + +TEST_F(ChromePasswordProtectionServiceWithSBPageLoadTokenDisabledTest, + VerifyPageLoadToken) { + auto request = std::make_unique(); + service_->FillUserPopulation(GURL("https:www.example.com/"), request.get()); + ASSERT_EQ(0, request->population().page_load_tokens_size()); +} + +class ChromePasswordProtectionServiceWithSBPageLoadTokenEnabledTest + : public ChromePasswordProtectionServiceTest { + private: + base::test::ScopedFeatureList feature_list_{kSafeBrowsingPageLoadToken}; +}; + +TEST_F(ChromePasswordProtectionServiceWithSBPageLoadTokenEnabledTest, + VerifyPageLoadToken) { + auto request = std::make_unique(); + service_->FillUserPopulation(GURL("https:www.example.com/"), request.get()); + ASSERT_EQ(1, request->population().page_load_tokens_size()); } namespace { diff --git a/chrome/browser/safe_browsing/tailored_security/notification_handler_desktop.cc b/chrome/browser/safe_browsing/tailored_security/notification_handler_desktop.cc index 65ae29928ae6c8..b2dc3746d5433b 100644 --- a/chrome/browser/safe_browsing/tailored_security/notification_handler_desktop.cc +++ b/chrome/browser/safe_browsing/tailored_security/notification_handler_desktop.cc @@ -21,6 +21,7 @@ #include "components/prefs/pref_service.h" #include "components/safe_browsing/core/common/safe_browsing_prefs.h" #include "components/strings/grit/components_strings.h" +#include "components/vector_icons/vector_icons.h" #include "content/public/common/referrer.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/page_transition_types.h" @@ -172,11 +173,13 @@ void DisplayTailoredSecurityConsentedModalDesktop(Profile* profile, description = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_DESCRIPTION); primary_button = l10n_util::GetStringUTF16( - IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_ON); + IDS_TAILORED_SECURITY_CONSENTED_DISABLE_NOTIFICATION_TURN_OFF); secondary_button = l10n_util::GetStringUTF16(IDS_OK); - SkColor icon_color = color_provider->GetColor(ui::kColorAlertHighSeverity); + SkColor icon_color = + color_provider->GetColor(ui::kColorSecondaryForeground); icon = gfx::Image(gfx::CreateVectorIcon( - kShieldBadIcon, message_center::kNotificationIconSize, icon_color)); + vector_icons::kGppMaybeIcon, message_center::kNotificationIconSize, + icon_color)); } LogConsentedOutcome(TailoredSecurityOutcome::kShown, enable); message_center::Notification notification( diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn index 743edd573b6925..092d928b8abb38 100644 --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn @@ -54,7 +54,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java", "java/src/org/chromium/chrome/browser/omnibox/status/StatusViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider.java", - "java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxTheme.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate.java", diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java index 3c4f67f4b545d2..609ecb56d7bd67 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java @@ -45,7 +45,6 @@ import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.voice.AssistantVoiceSearchService; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; @@ -57,6 +56,7 @@ import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.ui.native_page.NativePage; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.util.KeyNavigationUtil; import org.chromium.components.browser_ui.styles.ChromeColors; @@ -927,24 +927,25 @@ private void focusCurrentTab() { * Update visuals to use a correct color scheme depending on the primary color. */ @VisibleForTesting - /* package */ void updateOmniboxTheme() { + /* package */ void updateBrandedColorScheme() { // TODO(crbug.com/1114183): Unify light and dark color logic in chrome and make it clear // whether the foreground or background color is dark. final boolean useDarkForegroundColors = !ColorUtils.shouldUseLightForegroundOnBackground(getPrimaryBackgroundColor()); - final @OmniboxTheme int omniboxTheme = OmniboxResourceProvider.getOmniboxTheme( - mContext, mLocationBarDataProvider.isIncognito(), getPrimaryBackgroundColor()); + final @BrandedColorScheme int brandedColorScheme = + OmniboxResourceProvider.getBrandedColorScheme(mContext, + mLocationBarDataProvider.isIncognito(), getPrimaryBackgroundColor()); mLocationBarLayout.setDeleteButtonTint( ChromeColors.getPrimaryIconTint(mContext, !useDarkForegroundColors)); // If the URL changed colors and is not focused, update the URL to account for the new // color scheme. - if (mUrlCoordinator.setOmniboxTheme(omniboxTheme) && !isUrlBarFocused()) { + if (mUrlCoordinator.setBrandedColorScheme(brandedColorScheme) && !isUrlBarFocused()) { updateUrl(); } mStatusCoordinator.setUseDarkForegroundColors(useDarkForegroundColors); if (mAutocompleteCoordinator != null) { - mAutocompleteCoordinator.updateVisualsForState(omniboxTheme); + mAutocompleteCoordinator.updateVisualsForState(brandedColorScheme); } } @@ -1172,7 +1173,7 @@ public void onNtpStartedLoading() { public void onPrimaryColorChanged() { updateAssistantVoiceSearchDrawableAndColors(); updateLensButtonColors(); - updateOmniboxTheme(); + updateBrandedColorScheme(); } @Override diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java index af0ce86face190..4635ff07a672ea 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java @@ -69,7 +69,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.voice.AssistantVoiceSearchService; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; @@ -81,6 +80,7 @@ import org.chromium.chrome.browser.profiles.ProfileJni; import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.signin.AccountManagerTestRule; @@ -663,11 +663,12 @@ public void testUpdateColors_lightBrandedColor() { .getPrimaryColor(); doReturn(false).when(mLocationBarDataProvider).isIncognito(); - mMediator.updateOmniboxTheme(); + mMediator.updateBrandedColorScheme(); verify(mLocationBarLayout).setDeleteButtonTint(any(ColorStateList.class)); verify(mStatusCoordinator).setUseDarkForegroundColors(true); - verify(mAutocompleteCoordinator).updateVisualsForState(OmniboxTheme.LIGHT_THEME); + verify(mAutocompleteCoordinator) + .updateVisualsForState(BrandedColorScheme.LIGHT_BRANDED_THEME); } @Test @@ -675,11 +676,12 @@ public void testUpdateColors_darkBrandedColor() { doReturn(Color.BLACK).when(mLocationBarDataProvider).getPrimaryColor(); doReturn(false).when(mLocationBarDataProvider).isIncognito(); - mMediator.updateOmniboxTheme(); + mMediator.updateBrandedColorScheme(); verify(mLocationBarLayout).setDeleteButtonTint(any(ColorStateList.class)); verify(mStatusCoordinator).setUseDarkForegroundColors(false); - verify(mAutocompleteCoordinator).updateVisualsForState(OmniboxTheme.DARK_THEME); + verify(mAutocompleteCoordinator) + .updateVisualsForState(BrandedColorScheme.DARK_BRANDED_THEME); } @Test @@ -688,11 +690,11 @@ public void testUpdateColors_incognito() { doReturn(primaryColor).when(mLocationBarDataProvider).getPrimaryColor(); doReturn(true).when(mLocationBarDataProvider).isIncognito(); - mMediator.updateOmniboxTheme(); + mMediator.updateBrandedColorScheme(); verify(mLocationBarLayout).setDeleteButtonTint(any(ColorStateList.class)); verify(mStatusCoordinator).setUseDarkForegroundColors(false); - verify(mAutocompleteCoordinator).updateVisualsForState(OmniboxTheme.INCOGNITO); + verify(mAutocompleteCoordinator).updateVisualsForState(BrandedColorScheme.INCOGNITO); } @Test @@ -701,28 +703,29 @@ public void testUpdateColors_default() { doReturn(primaryColor).when(mLocationBarDataProvider).getPrimaryColor(); doReturn(false).when(mLocationBarDataProvider).isIncognito(); - mMediator.updateOmniboxTheme(); + mMediator.updateBrandedColorScheme(); verify(mLocationBarLayout).setDeleteButtonTint(any(ColorStateList.class)); verify(mStatusCoordinator).setUseDarkForegroundColors(true); - verify(mAutocompleteCoordinator).updateVisualsForState(OmniboxTheme.DEFAULT); + verify(mAutocompleteCoordinator).updateVisualsForState(BrandedColorScheme.APP_DEFAULT); } @Test - public void testUpdateColors_setOmniboxTheme() { + public void testUpdateColors_setColorScheme() { String url = "https://www.google.com"; UrlBarData urlBarData = UrlBarData.forUrl(url); doReturn(urlBarData).when(mLocationBarDataProvider).getUrlBarData(); doReturn(url).when(mLocationBarDataProvider).getCurrentUrl(); - doReturn(true).when(mUrlCoordinator).setOmniboxTheme(anyInt()); + doReturn(true).when(mUrlCoordinator).setBrandedColorScheme(anyInt()); - mMediator.updateOmniboxTheme(); + mMediator.updateBrandedColorScheme(); verify(mLocationBarLayout).setDeleteButtonTint(anyObject()); verify(mUrlCoordinator) .setUrlBarData( urlBarData, UrlBar.ScrollType.SCROLL_TO_TLD, SelectionState.SELECT_ALL); verify(mStatusCoordinator).setUseDarkForegroundColors(false); - verify(mAutocompleteCoordinator).updateVisualsForState(OmniboxTheme.DARK_THEME); + verify(mAutocompleteCoordinator) + .updateVisualsForState(BrandedColorScheme.DARK_BRANDED_THEME); } @Test diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java index 5dc80036aff328..7b8e242c95321b 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java @@ -18,7 +18,7 @@ import org.chromium.chrome.browser.omnibox.UrlBar.ScrollType; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.UrlBar.UrlTextChangeListener; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowDelegate; import org.chromium.ui.modelutil.PropertyModel; @@ -122,9 +122,9 @@ public void setAutocompleteText(String userText, String autocompleteText) { mMediator.setAutocompleteText(userText, autocompleteText); } - /** @see UrlBarMediator#setOmniboxTheme(int) */ - public boolean setOmniboxTheme(@OmniboxTheme int omniboxTheme) { - return mMediator.setOmniboxTheme(omniboxTheme); + /** @see UrlBarMediator#setBrandedColorScheme(int) */ + public boolean setBrandedColorScheme(@BrandedColorScheme int brandedColorScheme) { + return mMediator.setBrandedColorScheme(brandedColorScheme); } /** @see UrlBarMediator#setIncognitoColorsEnabled(boolean) */ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java index 7a32254496652b..31bb1db62c3abc 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java @@ -24,7 +24,7 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; import org.chromium.chrome.browser.omnibox.UrlBarProperties.AutocompleteText; import org.chromium.chrome.browser.omnibox.UrlBarProperties.UrlBarTextState; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.omnibox.OmniboxUrlEmphasizer.UrlEmphasisSpan; import org.chromium.ui.modelutil.PropertyModel; @@ -73,7 +73,7 @@ public UrlBarMediator( mModel.set(UrlBarProperties.TEXT_CONTEXT_MENU_DELEGATE, this); mModel.set(UrlBarProperties.URL_TEXT_CHANGE_LISTENER, this); mModel.set(UrlBarProperties.TEXT_CHANGED_LISTENER, this); - setOmniboxTheme(OmniboxTheme.DEFAULT); + setBrandedColorScheme(BrandedColorScheme.APP_DEFAULT); } public void destroy() { @@ -224,17 +224,17 @@ private void onUrlFocusChange(boolean focus) { } /** - * Sets the omnibox theme. + * Sets the color scheme. * - * @param omniboxTheme The {@link @OmniboxTheme}. + * @param brandedColorScheme The {@link @BrandedColorScheme}. * @return Whether this resulted in a change from the previous value. */ - public boolean setOmniboxTheme(@OmniboxTheme int omniboxTheme) { + public boolean setBrandedColorScheme(@BrandedColorScheme int brandedColorScheme) { // TODO(bauerb): Make clients observe the property instead of checking the return value. - @OmniboxTheme - int previousValue = mModel.get(UrlBarProperties.OMNIBOX_THEME); - mModel.set(UrlBarProperties.OMNIBOX_THEME, omniboxTheme); - return previousValue != omniboxTheme; + @BrandedColorScheme + int previousValue = mModel.get(UrlBarProperties.BRANDED_COLOR_SCHEME); + mModel.set(UrlBarProperties.BRANDED_COLOR_SCHEME, brandedColorScheme); + return previousValue != brandedColorScheme; } /** diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java index d057f393074977..297a714a0181bb 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java @@ -125,10 +125,10 @@ public String toString() { new WritableObjectPropertyKey<>(); /** - * Specifies the omnibox theme. It can be light or dark because of a publisher defined color, + * Specifies the color scheme. It can be light or dark because of a publisher defined color, * incognito, or the default theme that follows dynamic colors. */ - public static final WritableIntPropertyKey OMNIBOX_THEME = new WritableIntPropertyKey(); + public static final WritableIntPropertyKey BRANDED_COLOR_SCHEME = new WritableIntPropertyKey(); /** * Specifies whether incognito colors should be used in the view, meaning baseline dark theme @@ -145,5 +145,5 @@ public String toString() { new PropertyKey[] {ACTION_MODE_CALLBACK, ALLOW_FOCUS, AUTOCOMPLETE_TEXT, DELEGATE, FOCUS_CHANGE_CALLBACK, SHOW_CURSOR, TEXT_CONTEXT_MENU_DELEGATE, TEXT_STATE, URL_DIRECTION_LISTENER, URL_TEXT_CHANGE_LISTENER, TEXT_CHANGED_LISTENER, - OMNIBOX_THEME, INCOGNITO_COLORS_ENABLED, WINDOW_DELEGATE}; + BRANDED_COLOR_SCHEME, INCOGNITO_COLORS_ENABLED, WINDOW_DELEGATE}; } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java index 1c853bbc4d94d1..f481a0fbe8526c 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java @@ -19,7 +19,7 @@ import org.chromium.chrome.browser.omnibox.UrlBarProperties.AutocompleteText; import org.chromium.chrome.browser.omnibox.UrlBarProperties.UrlBarTextState; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -72,8 +72,8 @@ public static void bind(PropertyModel model, UrlBar view, PropertyKey propertyKe view.setSelection(view.getText().length()); } } - } else if (UrlBarProperties.OMNIBOX_THEME.equals(propertyKey)) { - updateTextColors(view, model.get(UrlBarProperties.OMNIBOX_THEME)); + } else if (UrlBarProperties.BRANDED_COLOR_SCHEME.equals(propertyKey)) { + updateTextColors(view, model.get(UrlBarProperties.BRANDED_COLOR_SCHEME)); } else if (UrlBarProperties.INCOGNITO_COLORS_ENABLED.equals(propertyKey)) { final boolean incognitoColorsEnabled = model.get(UrlBarProperties.INCOGNITO_COLORS_ENABLED); @@ -92,12 +92,12 @@ public static void bind(PropertyModel model, UrlBar view, PropertyKey propertyKe } } - private static void updateTextColors(UrlBar view, @OmniboxTheme int omniboxTheme) { - final @ColorInt int textColor = - OmniboxResourceProvider.getUrlBarPrimaryTextColor(view.getContext(), omniboxTheme); + private static void updateTextColors(UrlBar view, @BrandedColorScheme int brandedColorScheme) { + final @ColorInt int textColor = OmniboxResourceProvider.getUrlBarPrimaryTextColor( + view.getContext(), brandedColorScheme); - final @ColorInt int hintColor = - OmniboxResourceProvider.getUrlBarHintTextColor(view.getContext(), omniboxTheme); + final @ColorInt int hintColor = OmniboxResourceProvider.getUrlBarHintTextColor( + view.getContext(), brandedColorScheme); view.setTextColor(textColor); setHintTextColor(view, hintColor); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider.java index 2c25e66bb7679f..5da39d5a1c6cb7 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider.java @@ -20,6 +20,7 @@ import org.chromium.chrome.browser.night_mode.NightModeUtils; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.theme.ThemeUtils; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.util.ColorUtils; /** Provides resources specific to Omnibox. */ @@ -27,64 +28,65 @@ public class OmniboxResourceProvider { private static final String TAG = "OmniboxResourceProvider"; /** @return Whether the mode is dark (dark theme or incognito). */ - public static boolean isDarkMode(@OmniboxTheme int omniboxTheme) { - return omniboxTheme == OmniboxTheme.DARK_THEME || omniboxTheme == OmniboxTheme.INCOGNITO; + public static boolean isDarkMode(@BrandedColorScheme int brandedColorScheme) { + return brandedColorScheme == BrandedColorScheme.DARK_BRANDED_THEME + || brandedColorScheme == BrandedColorScheme.INCOGNITO; } /** - * Returns a drawable for a given attribute depending on a {@link OmniboxTheme} + * Returns a drawable for a given attribute depending on a {@link BrandedColorScheme} * * @param context The {@link Context} used to retrieve resources. - * @param omniboxTheme {@link OmniboxTheme} to use. + * @param brandedColorScheme {@link BrandedColorScheme} to use. * @param attributeResId A resource ID of an attribute to resolve. * @return A background drawable resource ID providing ripple effect. */ public static Drawable resolveAttributeToDrawable( - Context context, @OmniboxTheme int omniboxTheme, int attributeResId) { - Context wrappedContext = maybeWrapContext(context, omniboxTheme); + Context context, @BrandedColorScheme int brandedColorScheme, int attributeResId) { + Context wrappedContext = maybeWrapContext(context, brandedColorScheme); @DrawableRes int resourceId = resolveAttributeToDrawableRes(wrappedContext, attributeResId); return ContextCompat.getDrawable(wrappedContext, resourceId); } /** - * Returns the OmniboxTheme based on the incognito state and the background color. + * Returns the ColorScheme based on the incognito state and the background color. * * @param context The {@link Context}. * @param isIncognito Whether incognito mode is enabled. * @param primaryBackgroundColor The primary background color of the omnibox. - * @return The {@link OmniboxTheme}. + * @return The {@link BrandedColorScheme}. */ - public static @OmniboxTheme int getOmniboxTheme( + public static @BrandedColorScheme int getBrandedColorScheme( Context context, boolean isIncognito, @ColorInt int primaryBackgroundColor) { - if (isIncognito) return OmniboxTheme.INCOGNITO; + if (isIncognito) return BrandedColorScheme.INCOGNITO; if (ThemeUtils.isUsingDefaultToolbarColor(context, isIncognito, primaryBackgroundColor)) { - return OmniboxTheme.DEFAULT; + return BrandedColorScheme.APP_DEFAULT; } return ColorUtils.shouldUseLightForegroundOnBackground(primaryBackgroundColor) - ? OmniboxTheme.DARK_THEME - : OmniboxTheme.LIGHT_THEME; + ? BrandedColorScheme.DARK_BRANDED_THEME + : BrandedColorScheme.LIGHT_BRANDED_THEME; } /** * Returns the primary text color for the url bar. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return Primary url bar text color. */ public static @ColorInt int getUrlBarPrimaryTextColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { final Resources resources = context.getResources(); @ColorInt int color; - if (omniboxTheme == OmniboxTheme.LIGHT_THEME) { + if (brandedColorScheme == BrandedColorScheme.LIGHT_BRANDED_THEME) { color = resources.getColor(R.color.branded_url_text_on_light_bg); - } else if (omniboxTheme == OmniboxTheme.DARK_THEME) { + } else if (brandedColorScheme == BrandedColorScheme.DARK_BRANDED_THEME) { color = resources.getColor(R.color.branded_url_text_on_dark_bg); - } else if (omniboxTheme == OmniboxTheme.INCOGNITO) { + } else if (brandedColorScheme == BrandedColorScheme.INCOGNITO) { color = resources.getColor(R.color.url_bar_primary_text_incognito); } else { color = MaterialColors.getColor(context, R.attr.colorOnSurface, TAG); @@ -96,19 +98,19 @@ public static Drawable resolveAttributeToDrawable( * Returns the secondary text color for the url bar. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return Secondary url bar text color. */ public static @ColorInt int getUrlBarSecondaryTextColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { final Resources resources = context.getResources(); @ColorInt int color; - if (omniboxTheme == OmniboxTheme.LIGHT_THEME) { + if (brandedColorScheme == BrandedColorScheme.LIGHT_BRANDED_THEME) { color = resources.getColor(R.color.branded_url_text_variant_on_light_bg); - } else if (omniboxTheme == OmniboxTheme.DARK_THEME) { + } else if (brandedColorScheme == BrandedColorScheme.DARK_BRANDED_THEME) { color = resources.getColor(R.color.branded_url_text_variant_on_dark_bg); - } else if (omniboxTheme == OmniboxTheme.INCOGNITO) { + } else if (brandedColorScheme == BrandedColorScheme.INCOGNITO) { color = resources.getColor(R.color.url_bar_secondary_text_incognito); } else { color = MaterialColors.getColor(context, R.attr.colorOnSurfaceVariant, TAG); @@ -120,29 +122,30 @@ public static Drawable resolveAttributeToDrawable( * Returns the hint text color for the url bar. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return The url bar hint text color. */ public static @ColorInt int getUrlBarHintTextColor( - Context context, @OmniboxTheme int omniboxTheme) { - return getUrlBarSecondaryTextColor(context, omniboxTheme); + Context context, @BrandedColorScheme int brandedColorScheme) { + return getUrlBarSecondaryTextColor(context, brandedColorScheme); } /** * Returns the danger semantic color. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return The danger semantic color to be used on the url bar. */ public static @ColorInt int getUrlBarDangerColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { // Danger color has semantic meaning and it doesn't change with dynamic colors. @ColorRes int colorId = R.color.default_red; - if (omniboxTheme == OmniboxTheme.DARK_THEME || omniboxTheme == OmniboxTheme.INCOGNITO) { + if (brandedColorScheme == BrandedColorScheme.DARK_BRANDED_THEME + || brandedColorScheme == BrandedColorScheme.INCOGNITO) { colorId = R.color.default_red_light; - } else if (omniboxTheme == OmniboxTheme.LIGHT_THEME) { + } else if (brandedColorScheme == BrandedColorScheme.LIGHT_BRANDED_THEME) { colorId = R.color.default_red_dark; } return context.getResources().getColor(colorId); @@ -152,17 +155,18 @@ public static Drawable resolveAttributeToDrawable( * Returns the secure semantic color. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return The secure semantic color to be used on the url bar. */ public static @ColorInt int getUrlBarSecureColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { // Secure color has semantic meaning and it doesn't change with dynamic colors. @ColorRes int colorId = R.color.default_green; - if (omniboxTheme == OmniboxTheme.DARK_THEME || omniboxTheme == OmniboxTheme.INCOGNITO) { + if (brandedColorScheme == BrandedColorScheme.DARK_BRANDED_THEME + || brandedColorScheme == BrandedColorScheme.INCOGNITO) { colorId = R.color.default_green_light; - } else if (omniboxTheme == OmniboxTheme.LIGHT_THEME) { + } else if (brandedColorScheme == BrandedColorScheme.LIGHT_BRANDED_THEME) { colorId = R.color.default_green_dark; } return context.getResources().getColor(colorId); @@ -172,14 +176,14 @@ public static Drawable resolveAttributeToDrawable( * Returns the primary text color for the suggestions. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return Primary suggestion text color. */ public static @ColorInt int getSuggestionPrimaryTextColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { // Suggestions are only shown when the omnibox is focused, hence LIGHT_THEME and DARK_THEME // are ignored as they don't change the result. - return omniboxTheme == OmniboxTheme.INCOGNITO + return brandedColorScheme == BrandedColorScheme.INCOGNITO ? ApiCompatibilityUtils.getColor( context.getResources(), R.color.default_text_color_light) : MaterialColors.getColor(context, R.attr.colorOnSurface, TAG); @@ -189,14 +193,14 @@ public static Drawable resolveAttributeToDrawable( * Returns the secondary text color for the suggestions. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return Secondary suggestion text color. */ public static @ColorInt int getSuggestionSecondaryTextColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { // Suggestions are only shown when the omnibox is focused, hence LIGHT_THEME and DARK_THEME // are ignored as they don't change the result. - return omniboxTheme == OmniboxTheme.INCOGNITO + return brandedColorScheme == BrandedColorScheme.INCOGNITO ? ApiCompatibilityUtils.getColor( context.getResources(), R.color.default_text_color_secondary_light) : MaterialColors.getColor(context, R.attr.colorOnSurfaceVariant, TAG); @@ -206,14 +210,14 @@ public static Drawable resolveAttributeToDrawable( * Returns the URL text color for the suggestions. * * @param context The context to retrieve the resources from. - * @param omniboxTheme The {@link OmniboxTheme}. + * @param brandedColorScheme The {@link BrandedColorScheme}. * @return URL suggestion text color. */ public static @ColorInt int getSuggestionUrlTextColor( - Context context, @OmniboxTheme int omniboxTheme) { + Context context, @BrandedColorScheme int brandedColorScheme) { // Suggestions are only shown when the omnibox is focused, hence LIGHT_THEME and DARK_THEME // are ignored as they don't change the result. - final @ColorRes int colorId = omniboxTheme == OmniboxTheme.INCOGNITO + final @ColorRes int colorId = brandedColorScheme == BrandedColorScheme.INCOGNITO ? R.color.suggestion_url_color_incognito : R.color.suggestion_url_color; return ApiCompatibilityUtils.getColor(context.getResources(), colorId); @@ -223,12 +227,13 @@ public static Drawable resolveAttributeToDrawable( * Wraps the context if necessary to force dark resources for incognito. * * @param context The {@link Context} to be wrapped. - * @param omniboxTheme Current omnibox theme. - * @return Context with resources appropriate to the {@link OmniboxTheme}. + * @param brandedColorScheme Current color scheme. + * @return Context with resources appropriate to the {@link BrandedColorScheme}. */ - private static Context maybeWrapContext(Context context, @OmniboxTheme int omniboxTheme) { + private static Context maybeWrapContext( + Context context, @BrandedColorScheme int brandedColorScheme) { // Only wraps the context in case of incognito. - if (omniboxTheme == OmniboxTheme.INCOGNITO) { + if (brandedColorScheme == BrandedColorScheme.INCOGNITO) { return NightModeUtils.wrapContextWithNightModeConfig( context, R.style.Theme_Chromium_TabbedMode, /*nightMode=*/true); } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProviderTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProviderTest.java index e2dcdfad585e6d..77eba05c7b1049 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProviderTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxResourceProviderTest.java @@ -23,6 +23,7 @@ import org.robolectric.annotation.Config; import org.chromium.chrome.R; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.testing.local.LocalRobolectricTestRunner; @@ -48,38 +49,40 @@ public void setUp() { @Test public void isDarkMode() { - Assert.assertTrue(OmniboxResourceProvider.isDarkMode(OmniboxTheme.DARK_THEME)); - Assert.assertTrue(OmniboxResourceProvider.isDarkMode(OmniboxTheme.INCOGNITO)); - Assert.assertFalse(OmniboxResourceProvider.isDarkMode(OmniboxTheme.LIGHT_THEME)); + Assert.assertTrue( + OmniboxResourceProvider.isDarkMode(BrandedColorScheme.DARK_BRANDED_THEME)); + Assert.assertTrue(OmniboxResourceProvider.isDarkMode(BrandedColorScheme.INCOGNITO)); + Assert.assertFalse( + OmniboxResourceProvider.isDarkMode(BrandedColorScheme.LIGHT_BRANDED_THEME)); } @Test public void resolveAttributeToDrawable() { Drawable drawableLight = OmniboxResourceProvider.resolveAttributeToDrawable( - mActivity, OmniboxTheme.LIGHT_THEME, R.attr.selectableItemBackground); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME, R.attr.selectableItemBackground); Assert.assertNotNull(drawableLight); Drawable drawableDark = OmniboxResourceProvider.resolveAttributeToDrawable( - mActivity, OmniboxTheme.DARK_THEME, R.attr.selectableItemBackground); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME, R.attr.selectableItemBackground); Assert.assertNotNull(drawableDark); } @Test - public void getOmniboxTheme_incognito() { - assertEquals("Omnibox theme should be INCOGNITO.", OmniboxTheme.INCOGNITO, - OmniboxResourceProvider.getOmniboxTheme(mActivity, true, mDefaultColor)); - assertEquals("Omnibox theme should be INCOGNITO.", OmniboxTheme.INCOGNITO, - OmniboxResourceProvider.getOmniboxTheme(mActivity, true, Color.RED)); + public void getColorScheme_incognito() { + assertEquals("Color scheme should be INCOGNITO.", BrandedColorScheme.INCOGNITO, + OmniboxResourceProvider.getBrandedColorScheme(mActivity, true, mDefaultColor)); + assertEquals("Color scheme should be INCOGNITO.", BrandedColorScheme.INCOGNITO, + OmniboxResourceProvider.getBrandedColorScheme(mActivity, true, Color.RED)); } @Test - public void getOmniboxTheme_nonIncognito() { - assertEquals("Omnibox theme should be DEFAULT.", OmniboxTheme.DEFAULT, - OmniboxResourceProvider.getOmniboxTheme(mActivity, false, mDefaultColor)); - assertEquals("Omnibox theme should be DARK_THEME.", OmniboxTheme.DARK_THEME, - OmniboxResourceProvider.getOmniboxTheme(mActivity, false, Color.BLACK)); - assertEquals("Omnibox theme should be LIGHT_THEME.", OmniboxTheme.LIGHT_THEME, - OmniboxResourceProvider.getOmniboxTheme( + public void getColorScheme_nonIncognito() { + assertEquals("Color scheme should be DEFAULT.", BrandedColorScheme.APP_DEFAULT, + OmniboxResourceProvider.getBrandedColorScheme(mActivity, false, mDefaultColor)); + assertEquals("Color scheme should be DARK_THEME.", BrandedColorScheme.DARK_BRANDED_THEME, + OmniboxResourceProvider.getBrandedColorScheme(mActivity, false, Color.BLACK)); + assertEquals("Color scheme should be LIGHT_THEME.", BrandedColorScheme.LIGHT_BRANDED_THEME, + OmniboxResourceProvider.getBrandedColorScheme( mActivity, false, Color.parseColor("#eaecf0" /*Light grey color*/))); } @@ -93,15 +96,16 @@ public void getUrlBarPrimaryTextColor() { assertEquals("Wrong url bar primary text color for LIGHT_THEME.", darkTextColor, OmniboxResourceProvider.getUrlBarPrimaryTextColor( - mActivity, OmniboxTheme.LIGHT_THEME)); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Wrong url bar primary text color for DARK_THEME.", lightTextColor, OmniboxResourceProvider.getUrlBarPrimaryTextColor( - mActivity, OmniboxTheme.DARK_THEME)); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Wrong url bar primary text color for INCOGNITO.", incognitoColor, OmniboxResourceProvider.getUrlBarPrimaryTextColor( - mActivity, OmniboxTheme.INCOGNITO)); + mActivity, BrandedColorScheme.INCOGNITO)); assertEquals("Wrong url bar primary text color for DEFAULT.", defaultColor, - OmniboxResourceProvider.getUrlBarPrimaryTextColor(mActivity, OmniboxTheme.DEFAULT)); + OmniboxResourceProvider.getUrlBarPrimaryTextColor( + mActivity, BrandedColorScheme.APP_DEFAULT)); } @Test @@ -115,16 +119,16 @@ public void getUrlBarSecondaryTextColor() { assertEquals("Wrong url bar secondary text color for LIGHT_THEME.", darkTextColor, OmniboxResourceProvider.getUrlBarSecondaryTextColor( - mActivity, OmniboxTheme.LIGHT_THEME)); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Wrong url bar secondary text color for DARK_THEME.", lightTextColor, OmniboxResourceProvider.getUrlBarSecondaryTextColor( - mActivity, OmniboxTheme.DARK_THEME)); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Wrong url bar secondary text color for INCOGNITO.", incognitoColor, OmniboxResourceProvider.getUrlBarSecondaryTextColor( - mActivity, OmniboxTheme.INCOGNITO)); + mActivity, BrandedColorScheme.INCOGNITO)); assertEquals("Wrong url bar secondary text color for DEFAULT.", defaultColor, OmniboxResourceProvider.getUrlBarSecondaryTextColor( - mActivity, OmniboxTheme.DEFAULT)); + mActivity, BrandedColorScheme.APP_DEFAULT)); } @Test @@ -134,14 +138,18 @@ public void getUrlBarDangerColor() { final int redOnLight = resources.getColor(R.color.default_red_dark); assertEquals("Danger color for DARK_THEME should be the lighter red.", redOnDark, - OmniboxResourceProvider.getUrlBarDangerColor(mActivity, OmniboxTheme.DARK_THEME)); + OmniboxResourceProvider.getUrlBarDangerColor( + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Danger color for LIGHT_THEME should be the darker red.", redOnLight, - OmniboxResourceProvider.getUrlBarDangerColor(mActivity, OmniboxTheme.LIGHT_THEME)); + OmniboxResourceProvider.getUrlBarDangerColor( + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Danger color for DEFAULT should be the darker red when we're in light theme.", redOnLight, - OmniboxResourceProvider.getUrlBarDangerColor(mActivity, OmniboxTheme.DEFAULT)); + OmniboxResourceProvider.getUrlBarDangerColor( + mActivity, BrandedColorScheme.APP_DEFAULT)); assertEquals("Danger color for INCOGNITO should be the lighter red.", redOnDark, - OmniboxResourceProvider.getUrlBarDangerColor(mActivity, OmniboxTheme.INCOGNITO)); + OmniboxResourceProvider.getUrlBarDangerColor( + mActivity, BrandedColorScheme.INCOGNITO)); } @Test @@ -151,15 +159,19 @@ public void getUrlBarSecureColor() { final int greenOnLight = resources.getColor(R.color.default_green_dark); assertEquals("Secure color for DARK_THEME should be the lighter green.", greenOnDark, - OmniboxResourceProvider.getUrlBarSecureColor(mActivity, OmniboxTheme.DARK_THEME)); + OmniboxResourceProvider.getUrlBarSecureColor( + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Secure color for LIGHT_THEME should be the darker green.", greenOnLight, - OmniboxResourceProvider.getUrlBarSecureColor(mActivity, OmniboxTheme.LIGHT_THEME)); + OmniboxResourceProvider.getUrlBarSecureColor( + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals( "Secure color for DEFAULT should be the darker green when we're in light theme.", greenOnLight, - OmniboxResourceProvider.getUrlBarSecureColor(mActivity, OmniboxTheme.DEFAULT)); + OmniboxResourceProvider.getUrlBarSecureColor( + mActivity, BrandedColorScheme.APP_DEFAULT)); assertEquals("Secure color for INCOGNITO should be the lighter green.", greenOnDark, - OmniboxResourceProvider.getUrlBarSecureColor(mActivity, OmniboxTheme.INCOGNITO)); + OmniboxResourceProvider.getUrlBarSecureColor( + mActivity, BrandedColorScheme.INCOGNITO)); } @Test @@ -170,16 +182,16 @@ public void getSuggestionPrimaryTextColor() { assertEquals("Wrong suggestion primary text color for LIGHT_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionPrimaryTextColor( - mActivity, OmniboxTheme.LIGHT_THEME)); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Wrong suggestion primary text color for DARK_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionPrimaryTextColor( - mActivity, OmniboxTheme.DARK_THEME)); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Wrong suggestion primary text color for INCOGNITO.", incognitoColor, OmniboxResourceProvider.getSuggestionPrimaryTextColor( - mActivity, OmniboxTheme.INCOGNITO)); + mActivity, BrandedColorScheme.INCOGNITO)); assertEquals("Wrong suggestion primary text color for DEFAULT.", defaultColor, OmniboxResourceProvider.getSuggestionPrimaryTextColor( - mActivity, OmniboxTheme.DEFAULT)); + mActivity, BrandedColorScheme.APP_DEFAULT)); } @Test @@ -191,16 +203,16 @@ public void getSuggestionSecondaryTextColor() { assertEquals("Wrong suggestion secondary text color for LIGHT_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionSecondaryTextColor( - mActivity, OmniboxTheme.LIGHT_THEME)); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Wrong suggestion secondary text color for DARK_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionSecondaryTextColor( - mActivity, OmniboxTheme.DARK_THEME)); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Wrong suggestion secondary text color for INCOGNITO.", incognitoColor, OmniboxResourceProvider.getSuggestionSecondaryTextColor( - mActivity, OmniboxTheme.INCOGNITO)); + mActivity, BrandedColorScheme.INCOGNITO)); assertEquals("Wrong suggestion secondary text color for DEFAULT.", defaultColor, OmniboxResourceProvider.getSuggestionSecondaryTextColor( - mActivity, OmniboxTheme.DEFAULT)); + mActivity, BrandedColorScheme.APP_DEFAULT)); } @Test @@ -211,14 +223,15 @@ public void getSuggestionUrlTextColor() { assertEquals("Wrong suggestion url text color for LIGHT_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionUrlTextColor( - mActivity, OmniboxTheme.LIGHT_THEME)); + mActivity, BrandedColorScheme.LIGHT_BRANDED_THEME)); assertEquals("Wrong suggestion url text color for DARK_THEME.", defaultColor, OmniboxResourceProvider.getSuggestionUrlTextColor( - mActivity, OmniboxTheme.DARK_THEME)); + mActivity, BrandedColorScheme.DARK_BRANDED_THEME)); assertEquals("Wrong suggestion url text color for INCOGNITO.", incognitoColor, OmniboxResourceProvider.getSuggestionUrlTextColor( - mActivity, OmniboxTheme.INCOGNITO)); + mActivity, BrandedColorScheme.INCOGNITO)); assertEquals("Wrong suggestion url text color for DEFAULT.", defaultColor, - OmniboxResourceProvider.getSuggestionUrlTextColor(mActivity, OmniboxTheme.DEFAULT)); + OmniboxResourceProvider.getSuggestionUrlTextColor( + mActivity, BrandedColorScheme.APP_DEFAULT)); } } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxTheme.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxTheme.java deleted file mode 100644 index 78921e47e99f21..00000000000000 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/styles/OmniboxTheme.java +++ /dev/null @@ -1,24 +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. - -package org.chromium.chrome.browser.omnibox.styles; - -import androidx.annotation.IntDef; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@IntDef({OmniboxTheme.LIGHT_THEME, OmniboxTheme.DARK_THEME, OmniboxTheme.INCOGNITO, - OmniboxTheme.DEFAULT}) -@Retention(RetentionPolicy.SOURCE) -public @interface OmniboxTheme { - /* Light branded color as defined by the website, unrelated to the app/OS dark theme setting. */ - int LIGHT_THEME = 0; - /* Dark branded color as defined by the website, unrelated to the app/OS dark theme setting. */ - int DARK_THEME = 1; - /* Incognito theme. */ - int INCOGNITO = 2; - /* Default theme with potentially dynamic colors that can be light or dark. */ - int DEFAULT = 3; -} diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java index 3b5b2f8a3f1ca5..d986081c734327 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java @@ -26,7 +26,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlTextChangeListener; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.OnSuggestionsReceivedListener; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; import org.chromium.chrome.browser.omnibox.suggestions.answer.AnswerSuggestionViewBinder; @@ -49,6 +48,7 @@ import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabWindowManager; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.chrome.browser.util.KeyNavigationUtil; import org.chromium.components.omnibox.AutocompleteMatch; import org.chromium.ui.ViewProvider; @@ -298,10 +298,10 @@ public void updateSuggestionListLayoutDirection() { /** * Update the visuals of the autocomplete UI. - * @param omniboxTheme The {@link @OmniboxTheme}. + * @param brandedColorScheme The {@link @BrandedColorScheme}. */ - public void updateVisualsForState(@OmniboxTheme int omniboxTheme) { - mMediator.updateVisualsForState(omniboxTheme); + public void updateVisualsForState(@BrandedColorScheme int colorScheme) { + mMediator.updateVisualsForState(colorScheme); } /** diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java index 568a0f96b17cf2..eed7e0d0fc0774 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java @@ -29,7 +29,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.OnSuggestionsReceivedListener; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionsMetrics.RefineActionUsage; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -42,6 +41,7 @@ import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tabmodel.TabWindowManager; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.metrics.OmniboxEventProtos.OmniboxEventProto.PageClassification; import org.chromium.components.omnibox.AutocompleteMatch; import org.chromium.components.omnibox.AutocompleteResult; @@ -248,11 +248,11 @@ void setLayoutDirection(int layoutDirection) { /** * Specifies the visual state to be used by the suggestions. - * @param omniboxTheme The {@link @OmniboxTheme}. + * @param brandedColorScheme The {@link @BrandedColorScheme}. */ - void updateVisualsForState(@OmniboxTheme int omniboxTheme) { - mDropdownViewInfoListManager.setOmniboxTheme(omniboxTheme); - mListPropertyModel.set(SuggestionListProperties.OMNIBOX_THEME, omniboxTheme); + void updateVisualsForState(@BrandedColorScheme int brandedColorScheme) { + mDropdownViewInfoListManager.setBrandedColorScheme(brandedColorScheme); + mListPropertyModel.set(SuggestionListProperties.COLOR_SCHEME, brandedColorScheme); } /** diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java index cb0e31c9c2d99a..1e7bd8ab3b2570 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java @@ -10,7 +10,7 @@ import androidx.annotation.NonNull; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.omnibox.AutocompleteResult; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; @@ -25,13 +25,13 @@ class DropdownItemViewInfoListManager { private final ModelList mManagedModel; private final SparseBooleanArray mGroupsCollapsedState; private int mLayoutDirection; - private @OmniboxTheme int mOmniboxTheme; + private @BrandedColorScheme int mBrandedColorScheme; private List mSourceViewInfoList; DropdownItemViewInfoListManager(@NonNull ModelList managedModel) { assert managedModel != null : "Must specify a non-null model."; mLayoutDirection = View.LAYOUT_DIRECTION_INHERIT; - mOmniboxTheme = OmniboxTheme.LIGHT_THEME; + mBrandedColorScheme = BrandedColorScheme.LIGHT_BRANDED_THEME; mSourceViewInfoList = Collections.emptyList(); mGroupsCollapsedState = new SparseBooleanArray(); mManagedModel = managedModel; @@ -58,15 +58,15 @@ void setLayoutDirection(int layoutDirection) { /** * Specifies the visual theme to be used by the suggestions. - * @param omniboxTheme Specifies which {@link OmniboxTheme} should be used. + * @param brandedColorScheme Specifies which {@link BrandedColorScheme} should be used. */ - void setOmniboxTheme(@OmniboxTheme int omniboxTheme) { - if (mOmniboxTheme == omniboxTheme) return; + void setBrandedColorScheme(@BrandedColorScheme int brandedColorScheme) { + if (mBrandedColorScheme == brandedColorScheme) return; - mOmniboxTheme = omniboxTheme; + mBrandedColorScheme = brandedColorScheme; for (int i = 0; i < mSourceViewInfoList.size(); i++) { PropertyModel model = mSourceViewInfoList.get(i).model; - model.set(SuggestionCommonProperties.OMNIBOX_THEME, omniboxTheme); + model.set(SuggestionCommonProperties.COLOR_SCHEME, brandedColorScheme); } } @@ -129,7 +129,7 @@ void setSourceViewInfoList(@NonNull List sourceList, final DropdownItemViewInfo item = mSourceViewInfoList.get(i); final PropertyModel model = item.model; model.set(SuggestionCommonProperties.LAYOUT_DIRECTION, mLayoutDirection); - model.set(SuggestionCommonProperties.OMNIBOX_THEME, mOmniboxTheme); + model.set(SuggestionCommonProperties.COLOR_SCHEME, mBrandedColorScheme); final boolean groupIsDefaultCollapsed = getGroupCollapsedState(item.groupId); if (!groupIsDefaultCollapsed || isGroupHeaderWithId(item, item.groupId)) { diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java index 641a4939eebc05..8c05fd558daf29 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java @@ -14,7 +14,6 @@ import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; -import android.view.View.MeasureSpec; import android.view.ViewGroup; import android.view.ViewParent; import android.view.ViewTreeObserver.OnGlobalLayoutListener; @@ -32,7 +31,7 @@ import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.omnibox.R; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.chrome.browser.util.KeyNavigationUtil; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.content_public.browser.UiThreadTaskTraits; @@ -247,10 +246,11 @@ public void hide() { /** * Update the suggestion popup background to reflect the current state. - * @param omniboxTheme The {@link @OmniboxTheme}. + * @param brandedColorScheme The {@link @BrandedColorScheme}. */ - public void refreshPopupBackground(@OmniboxTheme int omniboxTheme) { - int color = omniboxTheme == OmniboxTheme.INCOGNITO ? mIncognitoBgColor : mStandardBgColor; + public void refreshPopupBackground(@BrandedColorScheme int brandedColorScheme) { + int color = brandedColorScheme == BrandedColorScheme.INCOGNITO ? mIncognitoBgColor + : mStandardBgColor; if (!isHardwareAccelerated()) { // When HW acceleration is disabled, changing mSuggestionList' items somehow erases // mOmniboxResultsContainer' background from the area not covered by diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java index dc7918dd9fea65..1cf01f1eeab829 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java @@ -12,10 +12,9 @@ */ public class SuggestionCommonProperties { /** Whether dark colors should be applied to text, icons. */ - public static final WritableIntPropertyKey OMNIBOX_THEME = new WritableIntPropertyKey(); + public static final WritableIntPropertyKey COLOR_SCHEME = new WritableIntPropertyKey(); /** The layout direction to be applied to the entire suggestion view. */ public static final WritableIntPropertyKey LAYOUT_DIRECTION = new WritableIntPropertyKey(); - public static final PropertyKey[] ALL_KEYS = - new PropertyKey[] {OMNIBOX_THEME, LAYOUT_DIRECTION}; + public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {COLOR_SCHEME, LAYOUT_DIRECTION}; } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java index cb75241fdde127..1f26fa94116b76 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java @@ -29,15 +29,15 @@ public class SuggestionListProperties { new WritableObjectPropertyKey<>(true); /** - * Specifies the omnibox theme. It can be light or dark because of a publisher defined color, + * Specifies the color scheme. It can be light or dark because of a publisher defined color, * incognito, or the default theme that follows dynamic colors. */ - public static final WritableIntPropertyKey OMNIBOX_THEME = new WritableIntPropertyKey(); + public static final WritableIntPropertyKey COLOR_SCHEME = new WritableIntPropertyKey(); /** Observer that will receive notifications and callbacks from Suggestion List. */ public static final WritableObjectPropertyKey OBSERVER = new WritableObjectPropertyKey<>(); public static final PropertyKey[] ALL_KEYS = - new PropertyKey[] {VISIBLE, EMBEDDER, SUGGESTION_MODELS, OMNIBOX_THEME, OBSERVER}; + new PropertyKey[] {VISIBLE, EMBEDDER, SUGGESTION_MODELS, COLOR_SCHEME, OBSERVER}; } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java index fd50d86c0407be..963dd13d43d99e 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java @@ -63,8 +63,8 @@ public void onItemRangeChanged(ListObservable source, int index, view.dropdown.resetSelection(); } }); - } else if (SuggestionListProperties.OMNIBOX_THEME.equals(propertyKey)) { - view.dropdown.refreshPopupBackground(model.get(SuggestionListProperties.OMNIBOX_THEME)); + } else if (SuggestionListProperties.COLOR_SCHEME.equals(propertyKey)) { + view.dropdown.refreshPopupBackground(model.get(SuggestionListProperties.COLOR_SCHEME)); } } } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java index a81af962162495..becea4ebc463d4 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java @@ -57,7 +57,7 @@ public void bind(PropertyModel model, BaseSuggestionView view, PropertyKey pr ViewCompat.setLayoutDirection( view, model.get(SuggestionCommonProperties.LAYOUT_DIRECTION)); updateContentViewPadding(model, view.getDecoratedSuggestionView()); - } else if (SuggestionCommonProperties.OMNIBOX_THEME == propertyKey) { + } else if (SuggestionCommonProperties.COLOR_SCHEME == propertyKey) { updateColorScheme(model, view); } else if (BaseSuggestionViewProperties.ACTIONS == propertyKey) { bindActionButtons(model, view, model.get(BaseSuggestionViewProperties.ACTIONS)); @@ -147,7 +147,7 @@ private static void updateColorScheme( /** @return Whether currently used color scheme is considered to be dark. */ private static boolean useDarkColors(PropertyModel model) { return !OmniboxResourceProvider.isDarkMode( - model.get(SuggestionCommonProperties.OMNIBOX_THEME)); + model.get(SuggestionCommonProperties.COLOR_SCHEME)); } /** Update attributes of decorated suggestion icon. */ @@ -207,7 +207,7 @@ private static void updateContentViewPadding( */ private static Drawable getSelectableBackgroundDrawable(View view, PropertyModel model) { return OmniboxResourceProvider.resolveAttributeToDrawable(view.getContext(), - model.get(SuggestionCommonProperties.OMNIBOX_THEME), + model.get(SuggestionCommonProperties.COLOR_SCHEME), R.attr.selectableItemBackground); } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java index 7ebe859cdd1583..2f6dbc2c3d4d12 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java @@ -29,9 +29,9 @@ import org.robolectric.annotation.Config; import org.chromium.chrome.R; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionCommonProperties; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewProperties.Action; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; @@ -224,7 +224,7 @@ public void actionIcon_dontCrashWhenRecycling() { Assert.assertNull(mModel.get(BaseSuggestionViewProperties.ACTIONS)); mBaseView.setActionButtonsCount(1); // Change in color scheme happening ahead of setting action could cause a crash. - mModel.set(SuggestionCommonProperties.OMNIBOX_THEME, OmniboxTheme.LIGHT_THEME); + mModel.set(SuggestionCommonProperties.COLOR_SCHEME, BrandedColorScheme.LIGHT_BRANDED_THEME); } @Test diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java index fa9bc9ab3db771..e2084343fbd289 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java @@ -13,9 +13,9 @@ import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionCommonProperties; import org.chromium.chrome.browser.omnibox.suggestions.base.SuggestionSpannable; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -26,7 +26,7 @@ public static void bind(PropertyModel model, View view, PropertyKey propertyKey) if (propertyKey == SuggestionViewProperties.TEXT_LINE_1_TEXT) { TextView tv = view.findViewById(R.id.line_1); tv.setText(model.get(SuggestionViewProperties.TEXT_LINE_1_TEXT)); - } else if (propertyKey == SuggestionCommonProperties.OMNIBOX_THEME) { + } else if (propertyKey == SuggestionCommonProperties.COLOR_SCHEME) { updateSuggestionTextColor(view, model); } else if (propertyKey == SuggestionViewProperties.IS_SEARCH_SUGGESTION) { updateSuggestionTextColor(view, model); @@ -54,18 +54,20 @@ public static void bind(PropertyModel model, View view, PropertyKey propertyKey) private static void updateSuggestionTextColor(View view, PropertyModel model) { final boolean isSearch = model.get(SuggestionViewProperties.IS_SEARCH_SUGGESTION); - final @OmniboxTheme int omniboxTheme = model.get(SuggestionCommonProperties.OMNIBOX_THEME); + final @BrandedColorScheme int brandedColorScheme = + model.get(SuggestionCommonProperties.COLOR_SCHEME); final TextView line1 = view.findViewById(R.id.line_1); final TextView line2 = view.findViewById(R.id.line_2); final Context context = view.getContext(); final @ColorInt int color1 = - OmniboxResourceProvider.getSuggestionPrimaryTextColor(context, omniboxTheme); + OmniboxResourceProvider.getSuggestionPrimaryTextColor(context, brandedColorScheme); line1.setTextColor(color1); final @ColorInt int color2 = isSearch - ? OmniboxResourceProvider.getSuggestionSecondaryTextColor(context, omniboxTheme) - : OmniboxResourceProvider.getSuggestionUrlTextColor(context, omniboxTheme); + ? OmniboxResourceProvider.getSuggestionSecondaryTextColor( + context, brandedColorScheme) + : OmniboxResourceProvider.getSuggestionUrlTextColor(context, brandedColorScheme); line2.setTextColor(color2); } } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java index e8922bd2d02c12..887ce1e1a9d4e7 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java @@ -28,9 +28,9 @@ public EditUrlSuggestionViewBinder() { public void bind(PropertyModel model, EditUrlSuggestionView view, PropertyKey propertyKey) { mBinder.bind(model, view.getBaseSuggestionView(), propertyKey); - if (SuggestionCommonProperties.OMNIBOX_THEME == propertyKey) { + if (SuggestionCommonProperties.COLOR_SCHEME == propertyKey) { Drawable drawable = OmniboxResourceProvider.resolveAttributeToDrawable( - view.getContext(), model.get(SuggestionCommonProperties.OMNIBOX_THEME), + view.getContext(), model.get(SuggestionCommonProperties.COLOR_SCHEME), android.R.attr.listDivider); view.getDivider().setBackground(drawable); } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java index 0f1bb60660a300..6c21881c3385e4 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/header/HeaderViewBinder.java @@ -21,9 +21,9 @@ public class HeaderViewBinder { public static void bind(PropertyModel model, HeaderView view, PropertyKey propertyKey) { if (HeaderViewProperties.TITLE == propertyKey) { view.getTextView().setText(model.get(HeaderViewProperties.TITLE)); - } else if (propertyKey == SuggestionCommonProperties.OMNIBOX_THEME) { + } else if (propertyKey == SuggestionCommonProperties.COLOR_SCHEME) { final boolean useDarkColors = !OmniboxResourceProvider.isDarkMode( - model.get(SuggestionCommonProperties.OMNIBOX_THEME)); + model.get(SuggestionCommonProperties.COLOR_SCHEME)); TextViewCompat.setTextAppearance(view.getTextView(), ChromeColors.getTextMediumThickSecondaryStyle(!useDarkColors)); ApiCompatibilityUtils.setImageTintList(view.getIconView(), diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor.java index 27a9dbc90bd8af..22efd4f3fb2d4c 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor.java @@ -22,12 +22,12 @@ import org.chromium.chrome.browser.omnibox.OmniboxSuggestionType; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionUiType; import org.chromium.chrome.browser.omnibox.suggestions.SuggestionHost; import org.chromium.chrome.browser.omnibox.suggestions.carousel.BaseCarouselSuggestionProcessor; import org.chromium.chrome.browser.omnibox.suggestions.carousel.BaseCarouselSuggestionView; import org.chromium.chrome.browser.omnibox.suggestions.carousel.BaseCarouselSuggestionViewProperties; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.browser_ui.widget.RoundedIconGenerator; import org.chromium.components.browser_ui.widget.tile.TileView; import org.chromium.components.browser_ui.widget.tile.TileViewBinder; @@ -220,8 +220,9 @@ private static TileView buildTile(ViewGroup parent) { .inflate(R.layout.suggestions_tile_view, parent, false); tile.setClickable(true); - Drawable background = OmniboxResourceProvider.resolveAttributeToDrawable( - parent.getContext(), OmniboxTheme.LIGHT_THEME, R.attr.selectableItemBackground); + Drawable background = + OmniboxResourceProvider.resolveAttributeToDrawable(parent.getContext(), + BrandedColorScheme.LIGHT_BRANDED_THEME, R.attr.selectableItemBackground); tile.setBackgroundDrawable(background); return tile; } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java index d7aeb540dedc31..a0ad5d61397522 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java @@ -21,9 +21,9 @@ public static void bind(PropertyModel model, TailSuggestionView view, PropertyKe view.setTailText(model.get(TailSuggestionViewProperties.TEXT)); } else if (propertyKey == TailSuggestionViewProperties.FILL_INTO_EDIT) { view.setFullText(model.get(TailSuggestionViewProperties.FILL_INTO_EDIT)); - } else if (propertyKey == SuggestionCommonProperties.OMNIBOX_THEME) { + } else if (propertyKey == SuggestionCommonProperties.COLOR_SCHEME) { final @ColorInt int color = OmniboxResourceProvider.getSuggestionPrimaryTextColor( - view.getContext(), model.get(SuggestionCommonProperties.OMNIBOX_THEME)); + view.getContext(), model.get(SuggestionCommonProperties.COLOR_SCHEME)); view.setTextColor(color); } } 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 b8c0febd87fec5..c9826128f249b4 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 @@ -104,6 +104,7 @@ Kopieer gebruikernaam Standaardbeskerming: {NUM_SELECTED,plural, =1{Verwyder 1 gekose item}other{Verwyder # gekose items}} +Ontdek nuwe inhoud op Chrome se tuisblad Veiligblaai Jy bekyk tans 'n vanlyn kopie van hierdie program vanaf Geskiedenis @@ -220,6 +221,7 @@ Tik op enige woord om te soek. Raak en hou om meer of minder woorde te kies as j Trek die glyer totdat jy dit gemaklik kan lees. Teks behoort minstens só groot te lyk nadat jy op 'n paragraaf gedubbeltik het. Werfberging Kan nie aanmeld nie +Chrome-wenke: Kan nie jou kamera oopmaak nie. Iets is fout. Raak en hou 'n woord om te soek Alle data deur Chrome gebruik, insluitend rekeninge, boekmerke en gestoorde instellings @@ -263,6 +265,7 @@ Raak en hou enige woord om te soek. Kies meer of minder woorde as jy jou soektog URL'e wat jy besoek, word na Google toe gestuur Bekyk tans 'n vanlyn kopie van hierdie bladsy Webkoekies en werfdata +Probeer Incognito om te blaai sonder om aktiwiteit op jou toestel te stoor Videovoorskoue PRENT Vinniger, proaktiewe beskerming teen gevaarlike webwerwe, aflaaie en uitbreidings @@ -274,6 +277,7 @@ Raak en hou enige woord om te soek. Kies meer of minder woorde as jy jou soektog Kaartnommer Wagwoord is gekopieer Bespaar +Kom meer te wete oor hoe om Chrome as jou verstek te stel Jou -verbinding kan jou aflaai stadiger maak Voeg taal by Jou blaaier word bestuur deur @@ -358,6 +362,7 @@ Raak en hou enige woord om te soek. Kies meer of minder woorde as jy jou soektog Spoor tans prys na Wys porboodskappe om by Chrome aan te meld. Kom volgende keer vinniger by hierdie werf uit +Boekmerk is geskuif Ligging is af; skakel dit in Android-instellings aan. {BOOKMARKS_COUNT,plural, =1{ boekmerk}other{ boekmerke}} Artikels oor jou belangstellings op Chrome @@ -386,6 +391,7 @@ Raak en hou enige woord om te soek. Kies meer of minder woorde as jy jou soektog Stoor op toestel 1 minuut oor Standaardvooraflaai: +Rollees af om voorgestelde artikels te sien MM As jy ook Chrome-gebruiksverslae deel, sluit daardie verslae die URL'e in wat jy besoek Prentbeskrywings sal hervat wanneer jy aan wi-fi koppel @@ -651,6 +657,7 @@ Jou Google-rekening het dalk ander vorme van blaaigeskiedenis, soos soektogte en Chrome het nie toegang tot die hulpbron wat versoek is nie. Maak opsies oop om bladsy te druk Wys tans opspringer vir wagwoordgenerering +Tik op die mikrofoon om met jou stem te soek Bekyk Bel Meld tans aan … @@ -697,6 +704,7 @@ Jou Google-rekening het dalk ander vorme van blaaigeskiedenis, soos soektogte en Uitgebreide datagebruik 'n Fout het voorgekom. 1 uur oor +na Belangstellings Incognito-oortjie Verifieer jou kaart @@ -801,6 +809,7 @@ Jou Google-rekening het dalk ander vorme van blaaigeskiedenis, soos soektogte en Chrome het bergingtoegang nodig om lêers af te laai. Af Nie aanbeveel nie Deel net GIF +Jy kan jou stem gebruik om in Chrome te soek Kan nie Ontdek herlaai nie Incognito-oortjies Tik om hierdie program se URL te kopieer @@ -1012,6 +1021,7 @@ Byvoorbeeld, sommige webwerwe kan op hierdie versoek reageer deur vir jou advert Meld by Chrome aan; oopgemaak. Wat jy met Google deel Deel hierdie bladsy vinnig. Raak en hou om hierdie kortpad te wysig. +Meld aan om jou Google-goed op alle toestelle te kry CVC , oortjie, gekies Stop prysnasporing @@ -1050,6 +1060,7 @@ Byvoorbeeld, sommige webwerwe kan op hierdie versoek reageer deur vir jou advert Teruggestel op Plaas QR- of strepieskode in hierdie raam Wagwoorde +Meld by Chrome aan met jou Google-rekening chrome_image_ Kry prentbeskrywings? Herleiding is geblokkeer: @@ -1404,6 +1415,7 @@ Byvoorbeeld, sommige webwerwe kan op hierdie versoek reageer deur vir jou advert – hierdie taal kon nie afgelaai word nie. Probeer later weer. Chrome het vir jou MB bespaar Terug na bo +Maak die kieslys oop om 'n nuwe Incognito-oortjie oop te maak hangende Voeg by leeslys {TAB_COUNT,plural, =1{ Incognito- en nog oortjie sal toegemaak word}other{ Incognito- en nog oortjies sal toegemaak word}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb index 92f51cd37da031..00f70fdee1a9e2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb @@ -104,6 +104,7 @@ የተጠቃሚ ስምን ቅዳ መደበኛ ጥበቃ፦ {NUM_SELECTED,plural, =1{1 የተመረጠ ንጥልን አስወግድ}one{# የተመረጡ ንጥሎችን አስወግድ}other{# የተመረጡ ንጥሎችን አስወግድ}} +በChrome መነሻ ገጽ ላይ ያለውን አዲስ ይዘት ያግኙ የጥንቃቄ አሰሳ ላይ የነበረ የዚህን ገጽ የመስመር ውጪ ቅጂ በመመልከት ላይ ነዎት ታሪክ @@ -220,6 +221,7 @@ ይህን በሚመች ሁኔታ ማንበብ እስኪችሉ ድረስ ተንሸራታቹን ይጎትቱት። በአንድ አንቀጽ ላይ ሁለቴ መታ ካደረጉ በኋላ ጽሑፍ ቢያንስ የዚህ ያህል ትልቀት ሊኖረው ይገባል። የጣቢያ ማከማቻ መግባት አልተቻለም +የChrome ጠቃሚ ምክሮች፡- የእርስዎን ካሜራ መክፈት አይቻልም። የሆነ ችግር ተፈጥሯል። ለመፈለግ ፣ ቃል ይንኩ እና ይያዙ መለያዎች፣ ዕልባቶች እና የተቀመጡ ቅንብሮችን ጨምሮ Chrome የተጠቀመው ጠቅላላ ውሂብ @@ -263,6 +265,7 @@ እርስዎ የጎበኟቸው ዩአርኤሎች ወደ Google ይላካሉ የዚህን ገጽ የመስመር ውጭ ቅጂ በመመልከት ላይ ኩኪዎች እና የጣቢያ ውሂብ +እንቅስቃሴን ወደ መሳሪያዎ ሳያስቀምጡ ለማሰስ ማንነትን የማያሳውቅ ይሞክሩ የቪዲዮ ቅድመ-እይታዎች ምስል ይበልጥ ፈጣን፣ ከአደገኛ ድር ጣቢያዎች፣ ማውረዶች እና ቅጥያዎች አስቀድሞ የሚደረግ ጥበቃ @@ -274,6 +277,7 @@ የካርድ ቁጥር የይለፍ ቃል ተቀድቷል። ተቀምጧል +chromeን እንደ የእርስዎ ነባሪ እንዴት ማዋቀር እንደሚችሉ ይወቁ የእርስዎ ግንኙነት ማውረድዎን ሊያዘገይ ይችላል ቋንቋ አክል የእርስዎ አሳሽ በ የሚተዳደር ነው @@ -358,6 +362,7 @@ ዋጋዎችን በመከታተል ላይ ወደ Chrome ለመግባት ጥያቄዎችን ያሳያል በሚቀጥለው ጊዜ በፍጥነት ወደዚህ ጣቢያ ይሂዱ +ዕልባት ተንቀሳቅሷል አካባቢ ጠፍቷል፤ በAndroid ቅንብሮች ውስጥ ያብሩት። {BOOKMARKS_COUNT,plural, =1{ ዕልባት}one{ ዕልባቶች}other{ ዕልባቶች}} Chrome ላይ በእርስዎ ፍላጎቶች ላይ ያሉ ጽሑፎች @@ -386,6 +391,7 @@ ወደ መሣሪያ አስቀምጥ 1 ደቂቃ ይቀራል መደበኛ ቅድሚያ መጫን፦ +የተጠቆሙ ጽሑፎችን ለማየት ወደ ታች ይሸብልሉ ወወ እንዲሁም የChrome አጠቃቀም ሪፖርቶችን ካጋሩ፣ እነዚያ ሪፖርቶች እርስዎ የሚጎበኟቸውን ዩአርኤሎች ያካትታሉ ከWi-Fi ጋር ሲገናኙ የምስል መግለጫዎች ከቆሙበት ይቀጥላሉ @@ -651,6 +657,7 @@ Chrome የተጠየቀው ግብዓት መዳረሻ የለውም። ገጽን ለማተም አማራጮችን ክፈት የይለፍ ቃል ማመንጨት ብቅ ይን በማሳየት ላይ +በድምጽዎ ለመፈለግ ማይክሮፎኑን መታ ያድርጉ አሳይ ደውል በመግባት ላይ... @@ -697,6 +704,7 @@ የተራዘመ የአጠቃቀም ውሂብ ስህተት አጋጥሟል። 1 ሰዓት ይቀራል +ወደ ዝንባሌዎች ማንነት የማያሳውቅ ትር የእርስዎን ኮርድ ያረጋግጡ @@ -801,6 +809,7 @@ Chrome ፋይሎችን ለማውረድ የማከማቻ መዳረሻ ያስፈልገዋል። አጥፋ አይመከርም GIFን ብቻ ያጋሩ +በChrome ውስጥ ለመፈለግ ድምጽዎን መጠቀም ይችላሉ Discoverን ዳግም ማደስ አይቻልም ማንነት የማያሳውቁ ትሮች የዚህ መተግበሪያ ዩአርኤል ለመቅዳት መታ ያድርጉ @@ -1012,6 +1021,7 @@ ወደ Chrome መግባት፣ ተከፍቷል። ለGoogle የሚያጋሩት ነገር ይህንን ገጽ በፍጥነት ያጋሩ ይህን አቋራጭ ለማርትዕ ነክተው ይያዙ። +የእርስዎን የGoogle ነገሮች በመሳሪያዎች ላይ ለማግኘት፣ በመለያ ይግቡ CVC ፣ ትር ተመርጧል ዋጋ ተከታተልን ያቁሙ @@ -1050,6 +1060,7 @@ ወደነበረበት የተመለሰው በ የQR ኮድ ወይም የአሞሌ ኮድ በዚህ ክፈፍ ውስጥ ያምጡት የይለፍ ቃላት +በእርስዎ Google መለያ ወደ Chrome ይግቡ chrome_image_ የምስል መግለጫዎችን ያግኙ? አቅጣጫ ማዞር ታግዷል፦ @@ -1404,6 +1415,7 @@ - ይህ ቋንቋ ሊወርድ አልቻለም ቆይተው እንደገና ይሞክሩ። Chrome ሜባ ቆጥቦልዎታል ወደ ላይ ተመለስ +አዲስ ማንነት የማያሳውቅ ትር ለመክፈት ምናሌውን ይክፈቱ በመጠበቅ ላይ ወደ የንባብ ዝርዝር አክል {TAB_COUNT,plural, =1{ ማንነትን የማያሳውቅ እና ተጨማሪ ትር ይዘጋል}one{ ማንነትን የማያሳውቅ እና ተጨማሪ ትሮች ይዘጋሉ}other{ ማንነትን የማያሳውቅ እና ተጨማሪ ትሮች ይዘጋሉ}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb index a1be89662a9b35..e0c5c729265524 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb @@ -423,7 +423,7 @@ الحجم: اختيار الحالات التي يتم فيها حظر ملفات ملف تعريف الارتباط التابعة لجهات خارجية تم إيقاف ميزات الإصدار التجريبي. -في حال ظهور العديد من النوافذ، يمكنك إدارتها من هنا. +هل لديك العديد من النوافذ؟ يمكنك إدارتها من هنا. انقر مع الاستمرار لعرض معلومات أكثر صلة إعادة تحميل الصفحة الحالية هل تريد مشاركة ملاحظاتك وآرائك حول وضع "المظهر الداكن" للمواقع الإلكترونية؟ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb index 3cd2c00ff70b48..840f48169b6607 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb @@ -104,6 +104,7 @@ ব্যৱহাৰকাৰীৰ নামটোৰ প্ৰতিলিপি কৰক মান্য সুৰক্ষা: {NUM_SELECTED,plural, =1{বাছনি কৰা ১টা বস্তু আঁতৰাওক}one{বাছনি কৰা #টা বস্তু আঁতৰাওক}other{বাছনি কৰা #টা বস্তু আঁতৰাওক}} +Chromeৰ গৃহপৃষ্ঠাত নতুন সমলৰ সন্ধান কৰক সুৰক্ষিত ব্ৰাউজিং আপুনি ৰ পৰা এই পৃষ্ঠাটোৰ এটা অফলাইন প্ৰতিলিপি চাই আছে ইতিহাস @@ -220,6 +221,7 @@ আপুনি এইখিনি অনায়সে পঢ়িব নোৱাৰালৈকে স্লাইডাৰটো টানক। কোনো পেৰেগ্ৰাফত দুবাৰ টিপিলে পাঠখিনি অতি কমেও ইমানখিনি ডাঙৰ দেখা হ'ব লাগে। ছাইট ষ্ট’ৰেজ ছাইন ইন কৰিব নোৱাৰি +Chromeৰ কিটিপ: আপোনাৰ কেমেৰাটো খুলিব নোৱাৰি। কিবা ভুল হ’ল। সন্ধান কৰিবলৈ শব্দ এটাত স্পৰ্শ কৰি ধৰি ৰাখক একাউণ্ট, বুকমার্ক আৰু ছেভ কৰি ৰখা ছেটিংসমূহকে লৈ Chromeএ ব্যৱহাৰ কৰা মুঠ ডেটা @@ -263,6 +265,7 @@ আপুনি চোৱা URLসমূহ Googleলৈ পঠিওৱা হয় এই পৃষ্ঠাটোৰ এটা অফলাইন প্ৰতিলিপি চাই আছে কুকি আৰু ছাইট ডেটা +আপোনাৰ ডিভাইচত কাৰ্যকলাপ ছেভ নকৰাকৈ ব্ৰাউজ কৰিবলৈ ইনক’গনিট’ ব্যৱহাৰ কৰি চাওক ভিডিঅ'ৰ পূৰ্বদৰ্শন প্ৰতিচ্ছবি বিপজ্জনক ৱেবছাইট, ডাউনল’ড আৰু এক্সটেনশ্বনসমূহৰ পৰা ক্ষিপ্ৰ, আগতীয়া সুৰক্ষা @@ -274,6 +277,7 @@ কার্ড নম্বৰ পাছৱর্ডৰ প্ৰতিলিপি কৰা হ’ল ছেভ হৈ থকা +chromeক আপোনাৰ ডিফ’ল্ট হিচাপে কেনেকৈ ছেট কৰিব লাগে জানক আপোনাৰ সংযোগে আপোনাৰ ডাউনল'ডটো লেহেমীয়া কৰিব পাৰে ভাষা যোগ কৰক এ আপোনাৰ ব্ৰাউজাৰটো পৰিচালনা কৰে @@ -358,6 +362,7 @@ মূল্য ট্ৰেক কৰি থকা হৈছে Chromeত ছাইন ইন কৰিবলৈ প্ৰম্প্‌ট প্ৰদৰ্শন কৰে পৰৱৰ্তী সময়ত এই ছাইটটোলৈ ক্ষিপ্ৰতাৰে আহক +বুকমাৰ্ক স্থানান্তৰ কৰা হৈছে অৱস্থান অফ আছে Android ছেটিংসমূহত অন কৰক। {BOOKMARKS_COUNT,plural, =1{টা বুকমাৰ্ক}one{টা বুকমাৰ্ক}other{টা বুকমাৰ্ক}} Chromeত আপোনাৰ আগ্ৰহৰ বিষয়বস্তু সম্পৰ্কীয় প্ৰবন্ধসমূহ @@ -386,6 +391,7 @@ ডিভাইচত ছেভ কৰক ১ মিনিট বাকী আছে মান্য আগতীয়া ল’ডিং: +পৰামৰ্শিত প্ৰবন্ধসমূহ চাবলৈ তললৈ স্ক্ৰ’ল কৰক মাহ যদি আপুনি Chrome ব্যৱহাৰ কৰাৰ ৰিপ’ৰ্টও শ্বেয়াৰ কৰে, সেই ৰিপ’ৰ্টত আপুনি চোৱা URLসমূহ অন্তৰ্ভুক্ত হয় আপুনি ৱাই-ফাইৰ সৈতে সংযুক্ত হ’লে প্ৰতিচ্ছবিৰ বিৱৰণ পুনৰ আৰম্ভ হ’ব @@ -651,6 +657,7 @@ অনুৰোধ জনোৱা সমললৈ Chromeৰ এক্সেছ নাই। পৃষ্ঠা প্ৰিণ্ট কৰিবলৈ বিকল্প খোলক পাছৱর্ড সৃষ্টি কৰা পপআপ দেখুৱাই থকা হৈছে +আপোনাৰ কণ্ঠধ্বনিৰে সন্ধান কৰিবলৈ মাইক্ৰ’ফ’নটোত টিপক চাওক কল কৰক ছাইন ইন কৰি থকা হৈছে… @@ -697,6 +704,7 @@ বিস্তাৰিত ব্যৱহাৰৰ ডেটা কোনো আসোঁৱাহ হৈছে। ১ঘণ্টা বাকী আছে +লৈ আগ্ৰহ ইনক’গনিট’ টেব আপোনাৰ কাৰ্ডখন সত্যাপন কৰক @@ -801,6 +809,7 @@ ফাইল ডাউনল’ড কৰিবলৈ Chromeক ষ্ট’ৰেজত এক্সেছৰ আৱশ্যক। অফ আছে চুপাৰিছ কৰা নহয় কেৱল GIF শ্বেয়াৰ কৰক +Chromeত সন্ধান কৰিবলৈ আপুনি নিজৰ কণ্ঠধ্বনি ব্যৱহাৰ কৰিব পাৰে Discover ৰিফ্ৰেশ্ব কৰিব নোৱাৰি ইনক'গনিট' টেব এই এপৰ URLটো প্ৰতিলিপি কৰিবলৈ টিপক @@ -1012,6 +1021,7 @@ Chromeত ছাইন ইন কৰা হ’ল, খোলা আছে। আপুনি Googleৰ সৈতে কি শ্বেয়াৰ কৰে এই পৃষ্ঠাখন ক্ষিপ্ৰভাৱে শ্বেয়াৰ কৰক। এই শ্বৰ্টকাটটো সম্পাদনা কৰিবলৈ, স্পৰ্শ কৰি ধৰি ৰাখক। +সমগ্ৰ ডিভাইচত আপোনাৰ Googleৰ বস্তুবোৰ পাবলৈ ছাইন ইন কৰক CVC টেবটো বাছনি কৰা হৈছে মূল্য ট্ৰেক কৰাটো বন্ধ কৰক @@ -1050,6 +1060,7 @@ পুনঃস্থাপন কৰা হৈছে কিউআৰ ক’ড/বাৰক’ডটো এই ফ্ৰেমটোলৈ আনক। পাছৱৰ্ডসমূহ +আপোনাৰ Google একাউণ্টৰ জৰিয়তে Chromeত ছাইন ইন কৰক chrome_প্ৰতিচ্ছবি_ প্ৰতিচ্ছবিৰ বিৱৰণ লাভ কৰিবনে? পুনৰ নির্দেশ কৰাটো অৱৰোধ কৰা হৈছে @@ -1404,6 +1415,7 @@ - এই ভাষাটো ডাউনল'ড কৰিব পৰা নগ'ল। পাছত পুনৰ চেষ্টা কৰক। Chromeএ আপোনাৰ এমবি ডেটা ৰাহি কৰিছে ওপৰলৈ যাওক +নতুন ইনক’গনিট’ টেব খুলিবলৈ মেনুখন খোলক বিবেচনাধীন হৈ আছে পঢ়াৰ সূচীত যোগ দিয়ক {TAB_COUNT,plural, =1{ টা ইনক’গনিট’ আৰু টা টেব বন্ধ কৰা হ’ব}one{ টা ইনক’গনিট’ আৰু টা টেব বন্ধ কৰা হ’ব}other{ টা ইনক’গনিট’ আৰু টা টেব বন্ধ কৰা হ’ব}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb index d801164cd1685c..5b9fcdae6d74f1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb @@ -104,6 +104,7 @@ ইউজারনেম কপি করুন স্ট্যান্ডার্ড সুরক্ষা: {NUM_SELECTED,plural, =1{১ টি নির্বাচিত আইটেম সরান}one{#টি নির্বাচিত আইটেম সরান}other{#টি নির্বাচিত আইটেম সরান}} +Chrome-এর হোমপেজে নতুন কন্টেন্ট খুঁজুন নিরাপদ ব্রাউজিং আপনি তারিখের এই পৃষ্ঠার একটি অফলাইন কপি দেখছেন ইতিহাস @@ -220,6 +221,7 @@ আপনি এটি স্বচ্ছন্দে পড়তে না পারা পর্যন্ত স্লাইডারটি টেনে আনুন৷ কোনো অনুচ্ছেদে দুবার-আলতো চাপার পরে পাঠ্যটিকে দেখতে অন্ততপক্ষে এইরকম বড় লাগা উচিত৷ সাইটের স্টোরেজ সাইন ইন করতে পারছেন না +Chrome সংক্রান্ত পরামর্শ: ক্যামেরা চালু করা যাচ্ছে না। কোনও সমস্যা হয়েছে। কোনও শব্দ সার্চ করতে সেটি টাচ করে ধরে থাকুন অ্যাকাউন্ট, ​​বুকমার্ক এবং স্টোর করা সেটিংসসহ Chrome-এর ব্যবহার করা মোট ডেটা @@ -263,6 +265,7 @@ আপনি যেসব URL দেখেন তা Google-এ পাঠানো হয় এই পৃষ্ঠার একটি অফলাইন কপি দেখছেন কুকিজ ও সাইট ডেটা +আপনার ডিভাইসে অ্যাক্টিভিটি সেভ না করেই ব্রাউজ করার জন্য, ছদ্মবেশী মোড ব্যবহার করুন ভিডিওর প্রিভিউ ছবি ঝুঁকিপূর্ণ ওয়েবসাইট, ডাউনলোড এবং এক্সটেনশনের জন্য আরও দ্রুত, সক্রিয় সুরক্ষা ব্যবস্থা @@ -274,6 +277,7 @@ কার্ড নম্বর পাসওয়ার্ড কপি করা হয়েছে সংরক্ষিত হয়েছে +ডিফল্ট হিসেবে Chrome কীভাবে সেট করবেন তা জানুন আপনার কানেকশনের ফলে ডাউনলোডের স্পিড কম হতে পারে ভাষা যুক্ত করুন আপনার ব্রাউজার ম্যানেজ করে @@ -358,6 +362,7 @@ দাম ট্র্যাক করা হচ্ছে Chrome-এ সাইন-ইন করার প্রম্পট দেখাবে পরবর্তী সময়ে এই সাইটে আরও তাড়াতাড়ি যান +বুকমার্ক সরিয়ে দেওয়া হয়েছে লোকেশনটি বন্ধ, Android সেটিংস থেকে এটি চালু করুন। {BOOKMARKS_COUNT,plural, =1{টি বুকমার্ক}one{টি বুকমার্ক}other{টি বুকমার্ক}} Chrome-এ আপনি যেসব নিবন্ধগুলি পড়তে পছন্দ করেন @@ -386,6 +391,7 @@ ডিভাইসে সেভ করুন ১ মিনিট বাকি আছে স্ট্যান্ডার্ড প্রিলোডিং: +সাজেস্ট করা নিবন্ধ দেখার জন্য নিচের দিকে স্ক্রল করুন মিমি আপনি Chrome ব্যবহারের রিপোর্ট শেয়ার করলেও, আপনার দেখা URL তার মধ্যে অন্তর্ভুক্ত থাকে আপনি ওয়াই-ফাইতে কানেক্ট করলে, ছবির বিবরণ আবার দেখা যাবে @@ -653,6 +659,7 @@ অনুরোধকৃত সম্পদে Chrome এর অ্যাক্সেস নেই। ‘পৃষ্ঠা প্রিন্ট করুন’-এর বিকল্পগুলি খুলুন পাসওয়ার্ড প্রজন্মের পপআপ দেখানো হচ্ছে +আপনার ভয়েস ব্যবহার করে সার্চ করার জন্য, মাইক্রোফোনে ট্যাপ করুন দেখুন কল করুন প্রবেশ করা হচ্ছে... @@ -699,6 +706,7 @@ বেশি ব্যবহারের ডেটা একটি ত্রুটি ঘটেছে৷ ১ ঘণ্টা বাকি আছে +-এ আগ্রহগুলি ছদ্মবেশী ট্যাব আপনার কার্ডটি যাচাই করুন @@ -803,6 +811,7 @@ ফাইল ডাউনলোড করতে Chrome-এর জন্য স্টোরেজ অ্যাক্সেস প্রয়োজন। বন্ধ করার বিষয়টি সাজেস্ট করা হয়নি শুধুমাত্র GIF শেয়ার করুন +আপনি Chrome-এ সার্চ করতে আপনার ভয়েস ব্যবহার করতে পারবেন Discover রিফ্রেশ করা যাচ্ছে না ছদ্মবেশী ট্যাব এই অ্যাপের ইউআরএল কপি করতে ট্যাপ করুন @@ -1014,6 +1023,7 @@ Chrome-এ সাইন-ইন করার পৃষ্ঠা খোলা আছে। আপনি Google-এ কী শেয়ার করেন এই পৃষ্ঠা দ্রুত শেয়ার করুন। এই শর্টকার্ট এডিট করতে, টাচ করে ধরে থাকুন। +ডিভাইস জুড়ে আপনার Google পরিষেবা পাওয়ার জন্য, সাইন-ইন করুন CVC , ট্যাব বেছে নেওয়া হয়েছে দাম ট্র্যাক করা বন্ধ করুন @@ -1052,6 +1062,7 @@ ফিরিয়ে আনা হয়েছে এই ফ্রেমের মধ্যে QR কোড/বারকোড রাখুন। পাসওয়ার্ড +আপনার Google অ্যাকাউন্ট ব্যবহার করে Chrome-এ সাইন-ইন করুন chrome_image_ ছবির বিবরণ পেতে চান? রিডাইরেক্ট ব্লক করা হয়েছে: @@ -1406,6 +1417,7 @@ - এই ভাষাটি ডাউনলোড করা যায়নি। পরে আবার চেষ্টা করুন। Chrome আপনার জন্য এমবি বাঁচিয়ে দিয়েছে শীর্ষে ফিরে যান +নতুন ছদ্মবেশী ট্যাব খোলার জন্য, মেনু খুলুন বাকি আছে পড়ার তালিকায় যোগ করুন {TAB_COUNT,plural, =1{টি ছদ্মবেশী এবং আরওটি ট্যাব বন্ধ করা হবে}one{টি ছদ্মবেশী এবং আরওটি ট্যাব বন্ধ করা হবে}other{টি ছদ্মবেশী এবং আরওটি ট্যাব বন্ধ করা হবে}} 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 1e7581c6e350db..764ebdde52f783 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 @@ -104,6 +104,7 @@ Kopiranje korisničkog imena Standardna zaštita: {NUM_SELECTED,plural, =1{Ukloni 1 odabranu stavku}one{Ukloni # odabranu stavku}few{Ukloni # odabrane stavke}other{Ukloni # odabranih stavki}} +Otkrijte novi sadržaj na početnoj stranici Chromea Sigurno pregledanje Prikazana vam je kopija ove stranice bez mreže od Historija @@ -220,6 +221,7 @@ Dodirnite bilo koju riječ da je pretražite. Za fino podešavanje pretraživanj Povlačite klizač dok vam tekst ne bude ugodan za čitanje. Nakon dvostrukog dodira na pasus, tekst bi trebao izgledati najmanje ove veličine. Pohrana web lokacije Nije se moguće prijaviti +Savjeti za Crhome: Nije moguće otvoriti kameru. Nešto nije uredu. Da pretražite, dodirnite i zadržite riječ Ukupna količina podataka koju je Chrome iskoristio, uključujući račune, oznake i sačuvane postavke @@ -263,6 +265,7 @@ Dodirnite i zadržite bilo koju riječ da je pretražite. Za fino podešavanje p URL-ovi koje posjetite šalju se Googleu Gledate kopiju ove stranice van mreže Kolačići i podaci web lokacije +Da pregledate bez pohranjivanja aktivnosti na uređaj, isprobajte anonimni način rada Pregledi videozapisa SLIKA Brža, proaktivna zaštita od opasnih web lokacija, preuzimanja i ekstenzija @@ -274,6 +277,7 @@ Dodirnite i zadržite bilo koju riječ da je pretražite. Za fino podešavanje p Broj kartice Zaporka je kopirana Sačuvano +Saznajte kako postaviti Chrome kao zadani preglednik Vaša veza može usporiti preuzimanje Dodavanje jezika Vašim preglednikom upravlja @@ -358,6 +362,7 @@ Dodirnite i zadržite bilo koju riječ da je pretražite. Za fino podešavanje p Praćenje cijene Prikazuje upite za prijavu na Chrome Sljedeći put brže pristupite ovoj web lokaciji +Oznaka je premještena Lokacija je isključena; uključite je u Postavkama Androida. {BOOKMARKS_COUNT,plural, =1{ oznaka}one{ oznaka}few{ oznake}other{ oznaka}} Članci o vašim interesovanjima na Chromeu @@ -386,6 +391,7 @@ Dodirnite i zadržite bilo koju riječ da je pretražite. Za fino podešavanje p Sačuvaj na uređaj Još 1 min Standardno predučitavanje: +Kliznite nadolje da vidite predložene članke MM Ako dijelite i izvještaje o korištenju Chromea, ti izvještaji uključuju URL-ove koje posjećujete Opisi slika će se nastaviti kada se povežete s WiFi mrežom @@ -651,6 +657,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Chrome nema pristup traženom resursu. Otvorite opcije za štampanje stranice Prikazivanje skočnog prozora za izradu lozinke +Da pretražujete glasom, dodirnite mikrofon Prikaz Pozovi Prijavljivanje… @@ -697,6 +704,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Prošireni podaci o korištenju Došlo je do greške. Još 1 sat +u: Interesi Anonimna kartica Potvrdite karticu @@ -801,6 +809,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Chromeu treba pristup pohrani za preuzimanje fajlova. Isključeno Ne preporučuje se Dijeli samo GIF +Pretraživanje u Chromeu možete obavljati glasom Nije moguće osvježiti Discover Anonimne kartice Dodirnite da kopirate URL za ovu aplikaciju @@ -1012,6 +1021,7 @@ Naprimjer, neke web lokacije mogu reagirati na ovaj zahtjev prikazivanjem oglasa Prijava na Chrome je otvorena. Šta dijelite s Googleom Brzo dijelite ovu stranicu. Dodirnite i zadržite da uredite ovu prečicu. +Da imate sve Googleove proizvode koje koristite na svim uređajima, prijavite se CVC , kartica, odabrana Zaustavi praćenje cijene @@ -1050,6 +1060,7 @@ Naprimjer, neke web lokacije mogu reagirati na ovaj zahtjev prikazivanjem oglasa Vraćeno: Postavite QR kôd/bar kôd u ovaj okvir. Lozinke +Prijavite se na Chrome pomoću svog Google računa chrome_image_ Preuzeti opise slika? Preusmjeravanje je blokirano: @@ -1404,6 +1415,7 @@ Naprimjer, neke web lokacije mogu reagirati na ovaj zahtjev prikazivanjem oglasa – Preuzimanje ovog jezika nije uspjelo. Pokušajte ponovo kasnije. Chrome vam je uštedio MB Nazad na vrh +Da otvorite novu anonimnu karticu, otvorite meni na čekanju Dodaj na popis za čitanje {TAB_COUNT,plural, =1{ anonimna kartica i još kartica će se zatvoriti}one{ anonimna kartica i još kartica će se zatvoriti}few{ anonimne kartice i još kartice će se zatvoriti}other{ anonimnih kartica i još kartica će se zatvoriti}} 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 c1fdc09299f083..51228406e0add8 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 @@ -104,6 +104,7 @@ Nutzernamen kopieren Standardschutz {NUM_SELECTED,plural, =1{1 ausgewähltes Element entfernen}other{# ausgewählte Elemente entfernen}} +Entdecken Sie neue Inhalte auf der Startseite von Chrome Safe Browsing Sie sehen sich momentan eine Offlinekopie dieser Seite vom an Verlauf @@ -220,6 +221,7 @@ Tippen Sie auf ein Wort, um eine Suche damit zu starten. Sie können Ihre Suche Ziehen Sie den Schieberegler, bis Sie diesen Text problemlos lesen können. Nach dem Doppeltippen auf einen Abschnitt sollte der Text mindestens so groß sein. Websitespeicher Anmeldung nicht möglich +Chrome-Tipps: Die Kamera kann nicht geöffnet werden. Ein Fehler ist aufgetreten. Wenn Sie ein Wort suchen, berühren und halten sie es Gesamtdaten, die von Chrome verwendet werden, wie Konten, Lesezeichen und gespeicherte Einstellungen @@ -263,6 +265,7 @@ Berühren und halten Sie ein Wort, um eine Suche damit zu starten. Sie können I URLs von Websites, die Sie besuchen, werden an Google gesendet Eine Offline-Kopie dieser Seite wird angezeigt. Cookies und Websitedaten +Mit dem Inkognitomodus können Sie surfen, ohne dass Ihre Aktivitäten auf Ihrem Gerät gespeichert werden Videovorschauen BILD Schnellerer und dynamischerer Schutz gegen schädliche Websites, Downloads und Erweiterungen @@ -274,6 +277,7 @@ Berühren und halten Sie ein Wort, um eine Suche damit zu starten. Sie können I Kartennummer Passwort kopiert Eingespart +Hier erfahren Sie, wie Sie Chrome als Standardbrowser festlegen können Ihr Download kann wegen Ihrer -Verbindung sehr lange dauern Sprache hinzufügen Ihr Browser wird von verwaltet @@ -358,6 +362,7 @@ Berühren und halten Sie ein Wort, um eine Suche damit zu starten. Sie können I Preis wird beobachtet Aufforderungen für die Anmeldung in Chrome werden angezeigt Diese Seite beim nächsten Mal schneller aufrufen +Lesezeichen verschoben Die Standortermittlung ist deaktiviert. Sie können sie in den Android-Einstellungen aktivieren. {BOOKMARKS_COUNT,plural, =1{ Lesezeichen}other{ Lesezeichen}} Artikel zu Ihren Interessen in Chrome @@ -386,6 +391,7 @@ Berühren und halten Sie ein Wort, um eine Suche damit zu starten. Sie können I Auf Gerät speichern 1 Minute übrig Standard-Vorabladen: +Scrollen Sie nach unten, um empfohlene Artikel zu sehen MM Wenn Sie Chrome-Nutzungsberichte teilen, enthalten diese Berichte die von Ihnen aufgerufenen URLs Bildbeschreibungen werden fortgesetzt, wenn Sie mit WLAN verbunden sind @@ -651,6 +657,7 @@ Wenn Sie diese Einstellung ändern möchten, setzen Sie Chrome hat keinen Zugriff auf die angeforderte Ressource. Optionen zum Drucken einer Seite öffnen Pop-up-Fenster zur Passwortgenerierung wird angezeigt. +Tippen Sie auf das Mikrofon, um die Sprachsuche zu verwenden Anzeigen Anrufen Anmeldung erfolgt... @@ -697,6 +704,7 @@ Wenn Sie diese Einstellung ändern möchten, setzen Sie Erweiterte Nutzungsdaten Ein Fehler ist aufgetreten. 1 Stunde übrig +zu Interessen Inkognitotab Karte bestätigen @@ -801,6 +809,7 @@ Wenn Sie diese Einstellung ändern möchten, setzen Sie Chrome benötigt Speicherzugriff, um Dateien herunterladen zu können. Aus Nicht empfohlen Nur GIF teilen +Sie können in Chrome per Sprachbefehl suchen Discover kann nicht aktualisiert werden Inkognito-Tabs Tippen, um die URL für diese App zu kopieren @@ -1012,6 +1021,7 @@ Einige Websites schalten möglicherweise Werbeanzeigen, deren Auswahl nicht dara In Chrome anmelden, geöffnet. Folgendes wird mit Google geteilt Diese Seite schnell teilen. Zum Ändern Schaltfläche gedrückt halten. +Melden Sie sich an, um auf Ihre Inhalte bei Google zuzugreifen CVC Tab „“ ausgewählt Preis nicht mehr beobachten @@ -1050,6 +1060,7 @@ Einige Websites schalten möglicherweise Werbeanzeigen, deren Auswahl nicht dara Wiederhergestellt: Positionieren Sie den QR- oder Barcode in diesem Bereich. Passwörter +Melden Sie sich mit Ihrem Google-Konto in Chrome an chrome_image_ Bildbeschreibungen abrufen? Weiterleitung blockiert: @@ -1404,6 +1415,7 @@ Einige Websites schalten möglicherweise Werbeanzeigen, deren Auswahl nicht dara  – Diese Sprache konnte nicht heruntergeladen werden. Versuchen Sie es später noch einmal. Dank Chrome haben Sie  MB eingespart Zurück nach oben +Öffnen Sie das Menü, um einen neuen Inkognitotab zu öffnen ausstehend Zur Leseliste hinzufügen {TAB_COUNT,plural, =1{ Inkognito- und  weiterer Tab werden geschlossen}other{ Inkognito- und  weitere Tabs werden geschlossen}} 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 381c1b1e3ca91b..d076ce7ed99d97 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 @@ -104,6 +104,7 @@ کپی کردن نام کاربری محافظت استاندارد: {NUM_SELECTED,plural, =1{حذف ۱ مورد انتخاب‌شده}one{حذف # مورد انتخاب‌شده}other{حذف # مورد انتخاب‌شده}} +‏محتوای جدید را در صفحه اصلی Chrome کاوش کنید مرور ایمن شما در حال تماشای کپی آفلاین این صفحه از هستید سابقه @@ -220,6 +221,7 @@ لغزنده را بکشید تا زمانی که بتوانید این متن را به راحتی بخوانید. بعد از دو ضربه متوالی روی یک پاراگراف، اندازه نوشتار حداقل باید به این بزرگی باشد. فضای ذخیره‌سازی سایت ورود به سیستم امکان‌پذیر نیست +‏نکته‌های Chrome: نمی‌توان دوربین را باز کرد. مشکلی پیش آمد. برای جستجو کردن، واژه را لمس کنید و نگه دارید ‏کل داده‌های استفاده‌شده توسط Chrome، شامل حساب‌ها، نشانک‌ها و تنظیمات ذخیره‌شده @@ -263,6 +265,7 @@ ‏نشانی‌های وبی که بازدید می‌کنید به Google ارسال می‌شوند مشاهده یک کپی آفلاین از این صفحه کوکی‌ها و داده‌های سایت +برای مرور بدون ذخیره فعالیت در دستگاه، «ناشناس» را امتحان کنید پیش‌نمایش ویدیو تصویر محافظت سریع‌تر و پیشگیرانه دربرابر وب‌سایت‌ها، بارگیری‌ها، و افزونه‌های خطرناک @@ -274,6 +277,7 @@ شماره کارت گذرواژه کپی شد ذخیره شده +‏با نحوه تنظیم Chrome به‌عنوان مرورگر پیش‌فرض آشنا شوید اتصال ممکن است سرعت بارگیری شما را کاهش دهد افزودن زبان مرورگرتان توسط مدیریت می‌شود @@ -358,6 +362,7 @@ درحال پیگیری قیمت ‏درخواست‌هایی برای ورود به سیستم Chrome نشان می‌دهد دفعه بعدی سریع‌تر به این سایت دسترسی پیدا کنید +نشانک منتقل شد ‏مکان خاموش است، آن را در تنظیمات Android روشن کنید. {BOOKMARKS_COUNT,plural, =1{ نشانک}one{ نشانک}other{ نشانک}} ‏مقاله‌های مربوط با علایقتان در Chrome @@ -386,6 +391,7 @@ ذخیره کردن در دستگاه ۱ دقیقه باقی‌مانده است پیش‌بارگیری استاندارد: +برای دیدن مقاله‌های پیشنهادی، به پایین پیمایش کنید ماه ‏اگر گزارش‌های استفاده از Chrome را نیز هم‌رسانی کنید، این گزارش‌ها نشانی‌های وبی را که بازدید می‌کنید دربرمی‌گیرند. ‏وقتی به Wi-Fi وصل شوید ویژگی توضیحات تصویر فعال خواهد شد @@ -651,6 +657,7 @@ ‏Chrome به منبع درخواستی دسترسی ندارد. باز کردن گزینه‌های چاپ صفحه نمایش پنجره تولید گذرواژه +برای جستجو با صدایتان، روی میکروفون ضربه بزنید نما تماس در حال ورود به سیستم... @@ -697,6 +704,7 @@ داده‌های استفاده گسترده خطایی روی داد. ۱ ساعت باقی‌مانده است +به علایق برگه ناشناس کارتتان را تأیید کنید @@ -801,6 +809,7 @@ ‏Chrome برای بارگیری فایل‌ها باید به حافظه دسترسی داشته باشد. خاموش توصیه نمی‌شود ‏فقط هم‌رسانی GIF +‏می‌توانید از صدایتان برای جستجو در Chrome استفاده کنید «یافته‌ها» بازخوانی نمی‌شود برگه‌های ناشناس برای کپی کردن نشانی وب این برنامه ضربه بزنید @@ -1012,6 +1021,7 @@ ‏ورود به سیستم Chrome، باز شد. ‏آنچه با Google هم‌رسانی می‌کنید به‌سرعت این صفحه را هم‌رسانی کنید. برای ویرایش این میان‌بر، لمس کنید و نگه دارید. +‏برای دریافت موارد مربوط به Google در دستگاه‌ها، به سیستم وارد شوید CVC ، برگه، انتخاب‌شده توقف پیگیری قیمت @@ -1050,6 +1060,7 @@ تاریخ بازیابی رمزینه پاسخ‌سریع یا بارکد را در این قاب قرار دهید. گذرواژه‌ها +‏با «حساب Google» به سیستم Chrome وارد شوید. chrome_image_ توضیحات تصویر دریافت شود؟ هدایت کردن مسدود شده است: @@ -1404,6 +1415,7 @@ - این زبان بارگیری نشد. بعداً دوباره امتحان کنید. ‏Chrome ‏ مگابایت از داده‌های شما را ذخیره کرده است برگشت به بالا +برای باز کردن «برگه ناشناس»، روی منو ضربه بزنید در انتظار افزودن به فهرست خواندن {TAB_COUNT,plural, =1{ برگه ناشناس و برگه دیگر بسته خواهند شد}one{ برگه ناشناس و برگه دیگر بسته خواهند شد}other{ برگه ناشناس و برگه دیگر بسته خواهند شد}} 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 5c275c72f6c120..752754e7da02eb 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 @@ -104,6 +104,7 @@ उपयोगकर्ता नाम की कॉपी करें सामान्य सुरक्षा मोड: {NUM_SELECTED,plural, =1{1 चयनित आइटम निकालें}one{# चयनित आइटम निकालें}other{# चयनित आइटम निकालें}} +Chrome के होम पेज पर जाकर, नया कॉन्टेंट खोजें सुरक्षित ब्राउज़िंग आप से इस पेज की ऑफ़लाइन कॉपी देख रहे हैं इतिहास @@ -220,6 +221,7 @@ इस टेक्स्ट को आसानी से पढ़ने लायक बनाने के लिए, स्‍लाइडर को आगे की ओर खींचें. पैराग्राफ़ पर डबल-टैप करने के बाद, टेक्स्ट को इतना बड़ा दिखाई देना चाहिए. साइट मेमोरी साइन इन नहीं कर सकते +Chrome से जुड़ी सलाह: कैमरा खाेला नहीं जा सकता. कोई गड़बड़ी हुई. किसी शब्द को खोजने के लिए, उसे दबाकर रखें Chrome द्वारा उपयोग किया गया कुल डेटा, जिसमें खाते, बुकमार्क और सहेजी गईं सेटिंग शामिल हैं @@ -263,6 +265,7 @@ आपके देखे गए पेजों के यूआरएल, Google को भेजे जाते हैं इस पृष्‍ठ की ऑफ़लाइन कॉपी देख रहे हैं कुकी और साइट डेटा +अपनी गतिविधि को डिवाइस में सेव किए बिना ब्राउज़ करने के लिए, गुप्त मोड आज़माएं वीडियो की झलक की सेटिंग इमेज नुकसान पहुंचाने वाली वेबसाइटों, डाउनलोड, और एक्सटेंशन से तेज़ और प्रोऐक्टिव (बिना मांगे मिलने वाली) सुरक्षा @@ -274,6 +277,7 @@ कार्ड संख्या पासवर्ड कॉपी किया गया बचाया गया +Chrome को अपने डिफ़ॉल्ट ब्राउज़र के तौर पर सेट करने का तरीका जानें हो सकता है कि आपका कनेक्शन आपके डाउनलोड की स्पीड कम कर दे भाषा जोड़ें , आपके ब्राउज़र को मैनेज करता है @@ -358,6 +362,7 @@ कीमत ट्रैक की जा रही है Chrome में साइन इन करने के निर्देश दिखाता है अगली बार यह साइट तेज़ी से ऐक्सेस हो +बुकमार्क को एक से दूसरी जगह ले जाया गया स्थान सेवा बंद है, उसे Android सेटिंग में चालू करें. {BOOKMARKS_COUNT,plural, =1{ बुकमार्क}one{ बुकमार्क}other{ बुकमार्क}} Chrome पर आपकी पसंद के लेख @@ -386,6 +391,7 @@ डिवाइस में सेव करें 1 मिनट शेष पहले से लोड करने की स्टैंडर्ड सुविधा: +सुझाए गए लेख देखने के लिए, नीचे की ओर स्क्रोल करें MM अगर Chrome के इस्तेमाल से जुड़ी जानकारी देने वाली रिपोर्ट भी शेयर की जाती हैं, तो याद रखें कि आपके देखे गए पेजों के यूआरएल उनमें शामिल होते हैं वाई-फ़ाई से कनेक्ट करने पर, इमेज की जानकारी जोड़ने की सुविधा फिर से शुरू हो जाएगी @@ -651,6 +657,7 @@ Chrome के पास अनुरोध किए गए संसाधन का एक्सेस नहीं है. पेज प्रिंट करने के विकल्प खोलें पासवर्ड जेनरेशन पॉपअप दिखाया जा रहा है +बोलकर खोजने के लिए, माइक्रोफ़ोन पर टैप करें देखें कॉल करें प्रवेश कर रहा है... @@ -697,6 +704,7 @@ इस्तेमाल के बारे में ज़्यादा डेटा कोई गड़बड़ी हुई. 1 घंटा शेष + में ले जाया गया रुचि गुप्त टैब कार्ड की पुष्टि करें @@ -801,6 +809,7 @@ फ़ाइलें डाउनलोड करने के लिए Chrome को मेमोरी के ऐक्‍सेस की ज़रूरत होगी. को बंद करने का सुझाव नहीं दिया गया सिर्फ़ GIF शेयर करें +Chrome पर जानकारी खोजने के लिए, आवाज़ का इस्तेमाल किया जा सकता है 'डिस्कवर' को रीफ़्रेश नहीं किया जा सकता गुप्त टैब इस ऐप्लिकेशन का यूआरएल कॉपी करने के लिए टैप करें @@ -1012,6 +1021,7 @@ 'Chrome में साइन इन करें' पेज खोला गया. आप Google के साथ क्या शेयर करते हैं इस पेज को तेज़ी से शेयर करें. इस शॉर्टकट में बदलाव करने के लिए, दबाकर रखें. +Google की सेवाएं अपने सभी डिवाइसों पर ऐक्सेस करने के लिए, Chrome में साइन इन करें CVC , टैब, चुना गया कीमत को ट्रैक करना रोकें @@ -1050,6 +1060,7 @@ को पहले जैसा किया गया इस फ़्रेम में क्यूआर/बार कोड रखें. पासवर्ड +अपने Google खाते से Chrome में साइन इन करें chrome_image_ क्या आप इमेज की जानकारी पाना चाहते हैं? रीडायरेक्ट ब्लॉक किया गया: @@ -1404,6 +1415,7 @@ - यह भाषा डाउनलोड नहीं की जा सकी. कुछ देर बाद कोशिश करें. Chrome ने आपके एमबी की बचत की शीर्ष पर वापस जाएं +नया गुप्त टैब खोलने के लिए, मेन्यू खोलें डाउनलोड बाकी है रीडिंग लिस्ट में जोड़ें {TAB_COUNT,plural, =1{ गुप्त और अन्य टैब बंद हो जाएगा}one{ गुप्त और अन्य टैब बंद हो जाएगा}other{ गुप्त और अन्य टैब बंद हो जाएंगे}} 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 b1c192139f712b..edde01cd95caa3 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 @@ -104,6 +104,7 @@ Kopiraj korisničko ime Standardna zaštita: {NUM_SELECTED,plural, =1{Uklanjanje 1 odabrane stavke}one{Uklanjanje # odabrane stavke}few{Uklanjanje # odabranih stavki}other{Uklanjanje # odabranih stavki}} +Otkrijte novi sadržaj na početnoj stranici Chromea Sigurno pregledavanje Prikazuje se offline kopija stranice od Povijest @@ -220,6 +221,7 @@ Dodirnite bilo koju riječ da biste pokrenuli pretraživanje. Ako želite preciz Pomičite klizač dok ne budete mogli čitati ovaj tekst bez poteškoća. Tekst bi trebao biti barem ovoliko velik nakon što dvaput dodirnete odlomak. Pohrana web-lokacije Prijava nije moguća +Savjeti za Chrome: Kamera se ne može otvoriti. Nešto nije u redu. Za pretraživanje dodirnite i držite riječ Ukupna količina podataka koju Chrome upotrebljava, uključujući račune, oznake i spremljene postavke. @@ -263,6 +265,7 @@ Dodirnite i držite bilo koju riječ da biste pokrenuli pretraživanje. Ako žel URL-ovi koje posjećujete šalju se Googleu Prikaz izvanmrežne kopije stranice Kolačići i podaci o web-lokacijama +Isprobajte anonimni način da biste pregledavali bez spremanja aktivnosti na uređaj Pregledi videozapisa SLIKA Brža, proaktivna zaštita od opasnih web-lokacija, preuzimanja i proširenja @@ -274,6 +277,7 @@ Dodirnite i držite bilo koju riječ da biste pokrenuli pretraživanje. Ako žel Broj kartice Zaporka je kopirana Spremljeno +Saznajte kako postaviti Chrome kao zadani preglednik Vaša veza mogla bi usporiti preuzimanje Dodavanje jezika Vašim preglednikom upravlja @@ -358,6 +362,7 @@ Dodirnite i držite bilo koju riječ da biste pokrenuli pretraživanje. Ako žel Praćenje cijene Prikazuje obavijesti za prijavu u Chrome Sljedeći put brže otvorite ovu web-lokaciju +Oznaka je premještena Lokacija je isključena. Uključite je u postavkama Androida. {BOOKMARKS_COUNT,plural, =1{ oznaka}one{ oznaka}few{ oznake}other{ oznaka}} Članci o vašim interesima na Chromeu @@ -386,6 +391,7 @@ Dodirnite i držite bilo koju riječ da biste pokrenuli pretraživanje. Ako žel Spremi na uređaj Još 1 min Standardno predučitavanje: +Pomaknite se prema dolje da biste vidjeli predložene članke MM Ako dijelite i izvješća o upotrebi Chromea, ta izvješća uključuju URL-ove koje posjećujete Opisi slika nastavit će se kada se povežete s Wi-Fijem @@ -651,6 +657,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Chrome nema pristup zatraženom resursu. Otvaranje opcija za ispis stranice Prikazuje se skočni prozor generiranja zaporke +Da biste pretraživali glasovno, dodirnite mikrofon Prikaz Poziv Prijavljivanje... @@ -697,6 +704,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Prošireni podaci o upotrebi Došlo je do pogreške. Još 1 sat +u Interesi Anonimna kartica Potvrdite svoju karticu @@ -801,6 +809,7 @@ Da biste promijenili tu postavku, poništite sinkronizac Chrome treba pristup pohrani radi preuzimanja datoteka. Isključeno Ne preporučuje se Podijeli samo GIF +Chrome možete pretraživati upotrebom glasa Nije moguće osvježiti Discover Anonimne kartice Dodirnite da biste kopirali URL za tu aplikaciju @@ -1012,6 +1021,7 @@ Na primjer, neke web-lokacije na taj zahtjev mogu odgovoriti tako da vam prikaž Prijava u Chrome; otvoreno. Što dijelite s Googleom Brzo podijelite ovu stranicu. Da biste uredili taj prečac, dodirnite ga i zadržite pritisak. +Prijavite se da biste imali pristup Googleovim stvarima na svim uređajima CVC , kartica, odabrana Zaustavi praćenje cijene @@ -1050,6 +1060,7 @@ Na primjer, neke web-lokacije na taj zahtjev mogu odgovoriti tako da vam prikaž Vraćeno: Postavite QR ili crtični kôd u ovaj okvir. Zaporke +Prijavite se na Chrome svojim Google računom chrome_image_ Primati opise slike? Preusmjeravanje je blokirano: @@ -1404,6 +1415,7 @@ Na primjer, neke web-lokacije na taj zahtjev mogu odgovoriti tako da vam prikaž – preuzimanje tog jezika nije uspjelo. Pokušajte ponovo kasnije. Chrome vam je uštedio MB Natrag na vrh +Da biste otvorili novu anonimnu karticu, otvorite izbornik na čekanju Dodaj na popis za čitanje {TAB_COUNT,plural, =1{Bit će zatvorena anonimna i još kartica}one{Bit će zatvorena anonimna i još kartica}few{Bit će zatvorena anonimna i još kartice}other{Bit će zatvorena anonimna i još kartica}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb index d7d740b3f97971..cde7b0e2e88328 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb @@ -104,6 +104,7 @@ Պատճենել օգտանունը Սովորական պաշտպանություն՝ {NUM_SELECTED,plural, =1{Հեռացնել ընտրված 1 տարրը}one{Հեռացնել ընտրված # տարրը}other{Հեռացնել ընտրված # տարրերը}} +Դիտեք բովանդակության առաջարկներ Chrome-ի գլխավոր էջում Անվտանգ դիտարկում Դուք դիտում եք տվյալ էջի -ի անցանց պատճենը Պատմություն @@ -220,6 +221,7 @@ Քաշեք սահիչն այնպես, որ հարմարավետ լինի կարդալը: Պարբերության վրա երկու անգամ սեղմելուց հետո տեքստը պետք է այսպիսի չափ ունենա: Կայքի օգտագործած տարածքը Չհաջողվեց մուտք գործել +Chrome-ին վերաբերող խորհուրդներ Չհաջողվեց բացել տեսախցիկը։ Սխալ առաջացավ։ Որոնելու համար հպեք բառին և պահեք Chrome-ի օգտագործած ընդհանուր տարածքը, ներառյալ` հաշիվները, էջանիշները և պահված կարգավորումները @@ -263,6 +265,7 @@ Ձեր այցելած էջերի URL-ներն ուղարկվում են Google-ին Դուք դիտում եք տվյալ էջի անցանց պատճենը Cookie ֆայլեր և կայքի տվյալներ +Որպեսզի դիտարկիչի պատմությունը չպահվի սարքում, միացրեք ինկոգնիտո ռեժիմը Տեսանյութերի նախադիտում ՊԱՏԿԵՐ Ավելի արագ և արդյունավետ պաշտպանություն վտանգավոր կայքերից, ընդլայնումներից և ներբեռնումներից @@ -274,6 +277,7 @@ Քարտի համարը Գաղտնաբառը պատճենվեց Խնայվեց +Իմացեք՝ ինչպես Chrome-ը դարձնել կանխադրված դիտարկիչ Ներբեռնումը ցանցի միջոցով կարող է դանդաղ կատարվել Ավելացնել լեզու Ձեր դիտարկիչը կառավարվում է կայքի կողմից @@ -358,6 +362,7 @@ Դուք հետևում եք այս ապրանքի գնին Ցույց է տալիս հաղորդագրություն Chrome-ում մուտք գործելու համար Հաջորդ անգամ ավելի արագ անցեք այս կայք +Էջանիշը տեղափոխվեց Տեղորոշումն անջատված է: Միացրեք այն Android-ի կարգավորումներում: {BOOKMARKS_COUNT,plural, =1{ էջանիշ}one{ էջանիշ}other{ էջանիշ}} Ձեր հետաքրքրությունների հիման վրա ընտրված հոդվածներ՝ Chrome-ում @@ -386,6 +391,7 @@ Պահել սարքում Մնացել է 1 րոպե Սովորական նախաբեռնում՝ +Ոլորեք ներքև՝ առաջարկվող հոդվածները տեսնելու համար ամիս Եթե դուք նաև ուղարկում եք Chrome-ի օգտագործման զեկույցներ, դրանցում կներառվեն ձեր այցելած URL-ները Պատկերի նկարագրությունները կցուցադրվեն, երբ միանաք Wi-Fi-ին @@ -651,6 +657,7 @@ Հարցված ռեսուրսը հասանելի չէ Chrome-ին: Բացել էջը տպելու տարբերակները Ցուցադրվում է գաղտնաբառի ստեղծման ելնող պատուհանը +Ձայնի միջոցով որոնելու համար հպեք խոսափողին Տեսք Զանգեք Մուտք... @@ -697,6 +704,7 @@ Օգտագործման լրացուցիչ տվյալներ Սխալ առաջացավ: Մնացել է 1 ժամ + Հետաքրքրություններ Ինկոգնիտո ներդիր Հաստատեք ձեր քարտը @@ -801,6 +809,7 @@ Ֆայլեր ներբեռնելու համար Chrome-ին անհրաժեշտ է պահեստի մուտք: Անջատված է Խորհուրդ չի տրվում Կիսվել միայն GIF ֆայլով +Դուք կարող եք որոնել Chrome-ում ձեր ձայնով Չհաջողվեց թարմացնել Discover-ը Ինկոգնիտո ներդիրներ Հպեք՝ այս հավելվածի URL-ը պատճենելու համար @@ -1012,6 +1021,7 @@ Privacy Sandbox տեխնոլոգիան դեռևս մշակման փուլում Մուտք գործել Chrome, բացված է։ Ինչ տեղեկություններ են փոխանցվում Google-ին Արագ կիսվեք այս էջով։ Այս դյուրանցումը փոփոխելու համար հպեք դրան և պահեք։ +Google-ի ծառայություններից մի քանի սարքերում օգտվելու համար մուտք գործեք հաշիվ CVC «» ներդիրն ընտրված է Դադարեցնել գների հետագծումը @@ -1050,6 +1060,7 @@ Privacy Sandbox տեխնոլոգիան դեռևս մշակման փուլում Վերականգնման ամսաթիվը՝ Դիրքավորեք QR-կոդը կամ գծակոդը այս շրջանակի մեջ Գաղտնաբառեր +Մուտք գործեք Chrome ձեր Google հաշվով chrome_image_ Ուզո՞ւմ եք ստանալ պատկերների նկարագրություններ Վերահասցեավորումն արգելափակված է՝ @@ -1404,6 +1415,7 @@ Privacy Sandbox տեխնոլոգիան դեռևս մշակման փուլում լեզուն հնարավոր չէ ներբեռնել։ Փորձեք ավելի ուշ։ Chrome-ը խնայել է ՄԲ տարածք Հետ դեպի վերև +Նոր ինկոգնիտո ներդիր բացելու համար բացեք ընտրացանկը սպասում է Ավելացնել ընթերցանության ցանկում {TAB_COUNT,plural, =1{ ինկոգնիտո և այլ ներդիր կփակվեն}one{ ինկոգնիտո և այլ ներդիր կփակվեն}other{ ինկոգնիտո և այլ ներդիրներ կփակվեն}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb index dc36a8190b5341..24c7fd959bfbd6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb @@ -826,6 +826,7 @@ Google аккаунтының шолу тарихы басқа Google қызме Google-ға статистика немесе жаңылыс туралы есеп жіберілмеді. Нақтылау: Бірдеңе дұрыс болмады. Бақыланатын баға жаңартылмады. +Мұны "Параметрлер" бөлімінен қосуға не өшіруге болады. Өшірулі Қосу Барлық құрылғылардан қойындыларды пайдалану үшін синхрондау функциясын қосыңыз @@ -1100,6 +1101,7 @@ Privacy Sandbox сынақ нұсқалары әлі де әзірленіп ж Төлеу әдістерін көру Түрі: Түртіп іздеу функциясын пайдалану кезінде беттегі мәтінді көбірек қамту арқылы дәлірек нәтижелер көресіз. Мұны кез келген уақытта параметрлерден өзгертуге болады. +Сайттар үшін қараңғы тақырып қолжетімді Сайт байланысы қауіпсіз болмаса, Chrome сізге бұл туралы хабарлайды. . URL diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb index b5022b19b630ff..d9e3a28431985f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb @@ -104,6 +104,7 @@ ಬಳಕೆದಾರರಹೆಸರು ನಕಲಿಸಿ ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆ: {NUM_SELECTED,plural, =1{ಆಯ್ಕೆಮಾಡಲಾದ 1 ಐಟಂ ತೆಗೆದುಹಾಕಿ}one{ಆಯ್ಕೆಮಾಡಲಾದ # ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಿ}other{ಆಯ್ಕೆಮಾಡಲಾದ # ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಿ}} +Chrome ನ ಮುಖಪುಟದಲ್ಲಿ ಹೊಸ ವಿಷಯವನ್ನು ಅನ್ವೇಷಿಸಿ ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ನೀವು ದಿನಾಂಕದಿಂದ ಈ ಪುಟದ ಆಫ್‌ಲೈನ್‌ ನಕಲನ್ನು ವೀಕ್ಷಿಸುತ್ತಿರುವಿರಿ ಇತಿಹಾಸ @@ -220,6 +221,7 @@ ನೀವು ಇದನ್ನು ಆರಾಮವಾಗಿ ಓದಲು ಸಾಧ್ಯವಾಗುವವರೆಗೆ ಸ್ಲೈಡರ್ ಎಳೆಯಿರಿ. ಪ್ಯಾರಾಗ್ರಾಫ್‌ನಲ್ಲಿ ಡಬಲ್ ಟ್ಯಾಪಿಂಗ್ ಮಾಡಿದ ನಂತರ ಪಠ್ಯವು ಕನಿಷ್ಠ ಇಷ್ಟು ದೊಡ್ಡದಾಗಿ ಕಾಣಿಸಬೇಕು. ಸೈಟ್ ಸಂಗ್ರಹಣೆ ಸೈನ್ ಇನ್ ಆಗಲು ಸಾಧ್ಯವಿಲ್ಲ +Chrome ಸಲಹೆಗಳು: ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ಏನೋ ತಪ್ಪಾಗಿದೆ. ಹುಡುಕಲು, ಪದವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ ಖಾತೆಗಳು, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಉಳಿಸಿದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ Chrome ಬಳಸಿದ ಒಟ್ಟು ಡೇಟಾ @@ -263,6 +265,7 @@ ನೀವು ಭೇಟಿ ನೀಡುವ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಈ ಪುಟದ ಆಫ್‌ಲೈನ್ ನಕಲನ್ನು ವೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾ +ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಚಟುವಟಿಕೆಯನ್ನು ಉಳಿಸದೆಯೇ ಬ್ರೌಸ್ ಮಾಡಲು, ಅಜ್ಞಾತ ಮೋಡ್ ಅನ್ನು ಬಳಸಿ ನೋಡಿ ವೀಡಿಯೊ ಪೂರ್ವವೀಕ್ಷಣೆಗಳು ಚಿತ್ರ ಅಪಾಯಕಾರಿ ವೆಬ್‌ಸೈಟ್‌ಗಳು, ಡೌನ್‌ಲೋಡ್‌ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳ ವಿರುದ್ಧ ವೇಗವಾದ, ಪೂರ್ವಭಾವಿ ಸುರಕ್ಷತೆ @@ -274,6 +277,7 @@ ಕಾರ್ಡ್ ಸಂಖ್ಯೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ ಉಳಿಸಲಾಗಿದೆ +Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸೆಟ್ ಮಾಡುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿಯಿರಿ ನಿಮ್ಮ ಡೌನ್‌ಲೋಡ್ ಅನ್ನು ನಿಮ್ಮ ಕನೆಕ್ಷನ್ ನಿಧಾನಗೊಳಿಸಬಹುದು ಭಾಷೆಯನ್ನು ಸೇರಿಸಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದೆ @@ -358,6 +362,7 @@ ದರವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ತೋರಿಸುತ್ತದೆ ಮುಂದಿನ ಬಾರಿ ಈ ಸೈಟ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಪ್ರವೇಶಿಸಿ +ಬುಕ್‌ಮಾರ್ಕ್ ಸರಿಸಲಾಗಿದೆ ಸ್ಥಳ ಆಫ್ ಆಗಿದೆ; Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಇದನ್ನು ಆನ್‌ ಮಾಡಿ. {BOOKMARKS_COUNT,plural, =1{ ಬುಕ್‌ಮಾರ್ಕ್‌}one{ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}other{ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}} Chrome ನಲ್ಲಿ ನಿಮ್ಮ ಆಸಕ್ತಿಗಳಿಗೆ ಅನುಗುಣವಾಗಿರುವ ಲೇಖನಗಳು @@ -386,6 +391,7 @@ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಿ 1 ನಿಮಿಷ ಉಳಿದಿದೆ ಪ್ರಮಾಣಿತ ಮುಂಚಿತ ಲೋಡ್ ಮಾಡುವಿಕೆ: +ಸೂಚಿಸಿದ ಲೇಖನಗಳನ್ನು ನೋಡಲು ಕೆಳಗೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ ಮಿಮೀ ನೀವು Chrome ಬಳಕೆಯ ವರದಿಗಳನ್ನು ಸಹ ಹಂಚಿಕೊಂಡರೆ, ಆ ವರದಿಗಳು ನೀವು ಭೇಟಿ ನೀಡುವ URL ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ನೀವು ವೈಫೈಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ ಚಿತ್ರ ವಿವರಣೆಗಳು ಪುನರಾರಂಭಗೊಳ್ಳುತ್ತವೆ @@ -650,6 +656,7 @@ ವಿನಂತಿಸಿದ ಸಂಪನ್ಮೂಲದಲ್ಲಿ Chrome ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ. ಪುಟವನ್ನು ಮುದ್ರಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೆರೆಯಿರಿ ಪಾಸ್‌ವರ್ಡ್ ರಚನೆ ಪಾಪ್‌ಅಪ್ ತೋರಿಸಲಾಗುತ್ತಿದೆ +ನಿಮ್ಮ ಧ್ವನಿಯ ಮೂಲಕ ಹುಡುಕಲು, ಮೈಕ್ರೊಫೋನ್ ಟ್ಯಾಪ್ ಮಾಡಿ ವೀಕ್ಷಣೆ ಕರೆ ಸೈನ್ ಇನ್ ಮಾಡಲಾಗುತ್ತಿದೆ... @@ -696,6 +703,7 @@ ಬಳಕೆಯ ಡೇಟಾವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ ದೋಷವೊಂದು ಕಾಣಿಸಿಕೊಂಡಿದೆ. 1 ಗಂಟೆ ಉಳಿದಿದೆ + ಗೆ ಆಸಕ್ತಿಗಳು ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ @@ -800,6 +808,7 @@ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು Chrome ಗೆ ಸಂಗ್ರಹಣೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ. ಆಫ್ ಶಿಫಾರಸು ಮಾಡಲಾಗಿಲ್ಲ GIF ಮಾತ್ರ ಹಂಚಿಕೊಳ್ಳಿ +Chrome ನಲ್ಲಿ ಹುಡುಕಲು ನೀವು ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು ಬಳಸಬಹುದು Discover ಅನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ಗಳು ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ URL ನಕಲಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ @@ -1011,6 +1020,7 @@ Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ, ತೆರೆಯಲಾಗಿದೆ. ನೀವು Google ಜೊತೆಗೆ ಏನನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತೀರಿ ಈ ಪುಟವನ್ನು ತ್ವರಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ. ಈ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿಯಿರಿ. +ಸಾಧನಗಳಾದ್ಯಂತ ನಿಮ್ಮ Google ವಿಷಯವನ್ನು ಪಡೆಯಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ CVC ಟ್ಯಾಬ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ ಬೆಲೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸಿ @@ -1049,6 +1059,7 @@ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ ಈ ಫ್ರೇಮ್‌ನಲ್ಲಿ QR ಕೋಡ್/ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಇರಿಸಿ. ಪಾಸ್‌ವರ್ಡ್‌ಗಳು +ನಿಮ್ಮ Google ಖಾತೆಯ ಮೂಲಕ Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ chrome_image_ ಚಿತ್ರದ ವಿವರಣೆ ಪಡೆಯಬೇಕೇ? ಮರುನಿರ್ದೇಶಿಸುವಿಕೆಯನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ: @@ -1403,6 +1414,7 @@ - ಈ ಭಾಷೆಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ. ನಿಮ್ಮ MB ಅನ್ನು Chrome ಉಳಿಸಿದೆ ಮೇಲಕ್ಕೆ ಹಿಂತಿರುಗಿ +ಹೊಸ ಅಜ್ಞಾತ ಮೋಡ್ ಟ್ಯಾಬ್ ಅನ್ನು ತೆರೆಯಲು, ಮೆನು ತೆರೆಯಿರಿ ಬಾಕಿ ಉಳಿದಿರುವುದು ಓದುವ ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ {TAB_COUNT,plural, =1{ ಅಜ್ಞಾತ ಮತ್ತು ಇನ್ನೂ ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ}one{ ಅಜ್ಞಾತ ಮತ್ತು ಇನ್ನೂ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ}other{ ಅಜ್ಞಾತ ಮತ್ತು ಇನ್ನೂ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ}} 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 a8c47665409c3e..f5bb0beca8c4cb 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 @@ -104,6 +104,7 @@ Kopijuoti naudotojo vardą Įprasta apsauga: {NUM_SELECTED,plural, =1{Pašalinti 1 pasirinktą elementą}one{Pašalinti # pasirinktą elementą}few{Pašalinti # pasirinktus elementus}many{Pašalinti # pasirinkto elemento}other{Pašalinti # pasirinktų elementų}} +Atraskite naujo turinio pagrindiniame „Chrome“ puslapyje Saugus naršymas Peržiūrite neprisijungus pasiekiamą šio puslapio kopiją () Istorija @@ -220,6 +221,7 @@ Norėdami ieškoti, palieskite bet kurį žodį. Jei norite patikslinti paiešk Vilkite šliaužiklį, kol bus patogu skaityti šį tekstą. Du kartus palietus pastraipą, tekstas turėtų būti mažiausiai tokio dydžio. Svetainės saugykla Nepavyksta prisijungti +„Chrome“ patarimai Kameros atidaryti nepavyko. Įvyko klaida. Jei norite ieškoti, palieskite ir palaikykite žodį Bendras „Chrome“ naudojamų duomenų kiekis, įskaitant paskyras, žymes ir išsaugotus nustatymus @@ -263,6 +265,7 @@ Norėdami ieškoti, palieskite ir palaikykite bet kurį žodį. Jei norite patik URL, kuriais lankotės, siunčiami „Google“ Žiūrima neprisijungus naudojama šio puslapio kopija Slapukai ir svetainės duomenys +Jei norite naršyti neišsaugodami veiklos įrenginyje, išbandykite inkognito režimą Vaizdo įrašų peržiūros VAIZDAS Spartesnė, veiksni apsauga nuo pavojingų svetainių, atsisiuntimų ir plėtinių @@ -274,6 +277,7 @@ Norėdami ieškoti, palieskite ir palaikykite bet kurį žodį. Jei norite patik Kortelės numeris Slaptažodis nukopijuotas Išsaugota +Sužinokite, kaip nustatyti „Chrome“ kaip numatytąją naršyklę Dėl ryšio atsisiuntimas gali sulėtėti Pridėti kalbą Jūsų naršyklę tvarko @@ -358,6 +362,7 @@ Norėdami ieškoti, palieskite ir palaikykite bet kurį žodį. Jei norite patik Kaina stebima Rodomi raginimai prisijungti prie „Chrome“. Kitą kartą sparčiau pasiekite šią svetainę +Žymė perkelta Vieta išjungta; įjunkite „Android“ nustatymuose. {BOOKMARKS_COUNT,plural, =1{ žymė}one{ žymė}few{ žymės}many{ žymės}other{ žymių}} Su jūsų pomėgiais susiję straipsniai naršyklėje „Chrome“ @@ -386,6 +391,7 @@ Norėdami ieškoti, palieskite ir palaikykite bet kurį žodį. Jei norite patik Išsaugoti įrenginyje Liko 1 min. Įprastas išankstinis įkėlimas: +Slinkite žemyn ir peržiūrėkite siūlomus straipsnius MM Jei taip pat bendrinate „Chrome“ naudojimo ataskaitas, į tas ataskaitas įtraukiami URL, kuriais lankėtės Vaizdų aprašai bus atnaujinti, kai prisijungsite prie „Wi-Fi“ @@ -651,6 +657,7 @@ Jei norite pakeisti šį nustatymą, iš naujo nustatyki „Chrome“ negali pasiekti pageidaujamo ištekliaus. Atidaryti puslapio spausdinimo parinktis Rodomas slaptažodžio generavimo iššokantysis langas +Jei norite ieškoti balsu, palieskite mikrofoną Žiūrėti Skambinti Prisijungiama... @@ -697,6 +704,7 @@ Jei norite pakeisti šį nustatymą, iš naujo nustatyki Išplėstiniai naudojimo duomenys Įvyko klaida. Liko 1 val. +į Pomėgiai Inkognito skirtukas Kortelės patvirtinimas @@ -801,6 +809,7 @@ Jei norite pakeisti šį nustatymą, iš naujo nustatyki „Chrome“ reikia prieigos prie saugyklos failams atsisiųsti. Išjungta Nerekomenduojama Bendrinti tik GIF +Galite balsu ieškoti naršyklėje „Chrome“ Nepavyko atnaujinti „Discover“ Inkognito skirtukai Palieskite, jei norite nukopijuoti šios programos URL @@ -1012,6 +1021,7 @@ Pavyzdžiui, kai kurios svetainės gali atsakyti į šią užklausą rodydamos j Prisijungimo prie „Chrome“ puslapis atidarytas. Ką bendrinate su „Google“ Sparčiai bendrinkite šį puslapį. Jei norite redaguoti šį spartųjį klavišą, palieskite ir palaikykite. +Jei norite pasiekti savo „Google“ duomenis skirtinguose įrenginiuose, prisijunkite CVC “, skirtukas, pasirinktas Stabdyti kainos stebėjimą @@ -1050,6 +1060,7 @@ Pavyzdžiui, kai kurios svetainės gali atsakyti į šią užklausą rodydamos j Atkurta „ QR arba brūkšninis kodas turėtų būti rodomas šiame rėmelyje. Slaptažodžiai +Prisijunkite prie „Chrome“ naudodami „Google“ paskyrą chrome_vaizdas_ Gauti vaizdų aprašus? Peradresavimas užblokuotas: @@ -1404,6 +1415,7 @@ Pavyzdžiui, kai kurios svetainės gali atsakyti į šią užklausą rodydamos j – nepavyko atsisiųsti šios kalbos. Vėliau bandykite dar kartą. „Chrome“ sutaupė jums MB Į pradžią +Jei norite atidaryti naują inkognito skirtuką, atidarykite meniu laukiama Prid. prie skait. sąrašo {TAB_COUNT,plural, =1{ inkognito ir dar skirtukas bus uždaryti}one{ inkognito ir dar skirtukas bus uždaryti}few{ inkognito ir dar skirtukai bus uždaryti}many{ inkognito ir dar skirtuko bus uždaryti}other{ inkognito ir dar skirtukų bus uždaryti}} 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 e1c7b7b2959198..eabdc711d24117 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 @@ -549,7 +549,7 @@ Слика од екран Лиценци за отворен код Корисничкиот интерфејс за согласност за гласовно пребарување со „Помошникот“ е отворен на цел екран -Копирај адреса на врска +Копирај ја адресата на линкот Да се преземе подоцна? Вклучете го заклучувањето на екранот во поставките за Android Нова картичка „Инкогнито“ diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index 6c07127d90be0f..13136d1ab3118a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb @@ -104,6 +104,7 @@ ഉപയോക്തൃനാമം പകർത്തുക സ്‌റ്റാൻഡേർഡ് പരിരക്ഷ: {NUM_SELECTED,plural, =1{തിരഞ്ഞെടുത്ത ഒരു ഇനം നീക്കംചെയ്യുക}other{തിരഞ്ഞെടുത്ത # ഇനങ്ങൾ നീക്കംചെയ്യുക}} +Chrome-ന്റെ ഹോം പേജിൽ പുതിയ ഉള്ളടക്കം കണ്ടെത്തുക സുരക്ഷിത ബ്രൗസിംഗ് നിങ്ങൾ ഈ പേജിന്റെ മുതലുള്ള ഓഫ്‌ലൈൻ പകർപ്പാണ് കാണുന്നത് ചരിത്രം @@ -220,6 +221,7 @@ നിങ്ങൾക്ക് ഇത് സൗകര്യപ്രദമായി വായിക്കാൻ കഴിയുന്നതുവരെ സ്ലൈഡർ വലിക്കുക. ഒരു ഖണ്ഡികയിൽ ഇരട്ട-ടാപ്പ് ചെയ്‌തതിനുശേഷം ടെക്‌സ്റ്റിന് ഈ വലുപ്പമെങ്കിലും ഉണ്ടായിരിക്കണം. സൈറ്റ് സ്‌റ്റോറേജ് സൈൻ ഇൻ ചെയ്യാനാകില്ല +Chrome നുറുങ്ങുകൾ: നിങ്ങളുടെ ക്യാമറ തുറക്കാനാവുന്നില്ല. എന്തോ കുഴപ്പമുണ്ടായി. തിരയുന്നതിന്, ഒരു പദം സ്‌പർശിച്ച് പിടിക്കുക അക്കൗണ്ടുകളും ബുക്ക്‌മാർക്കുകളും സംരക്ഷിച്ച ക്രമീകരണവും ഉൾപ്പെടെ Chrome ഉപയോഗിക്കുന്ന മൊത്തം വിവരങ്ങൾ @@ -263,6 +265,7 @@ നിങ്ങൾ സന്ദർശിക്കുന്ന URL-കൾ Google-ന് അയയ്ക്കുന്നു ഈ പേജിന്റെ ഒരു ഓഫ്‌ലൈൻ പതിപ്പ് കാണുന്നു കുക്കികളും സൈറ്റ് ഡാറ്റയും +നിങ്ങളുടെ ഉപകരണത്തിൽ ആക്റ്റിവിറ്റി സംരക്ഷിക്കാതെ ബ്രൗസ് ചെയ്യാൻ അദൃശ്യ മോഡ് പരീക്ഷിക്കൂ വീഡിയോ പ്രിവ്യൂകൾ ചിത്രം അപകടകരമായ വെബ്സൈറ്റുകൾ, ഡൗൺലോഡുകൾ, വിപുലീകരണങ്ങൾ എന്നിവയിൽ നിന്ന് വേഗത്തിലും സമയോചിതവുമായ പരിരക്ഷ @@ -274,6 +277,7 @@ കാർഡ് നമ്പർ പാസ്‌വേഡ് പകർത്തി ലാഭിച്ചത് +Chrome നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറായി സജ്ജീകരിക്കുന്നത് എങ്ങനെയെന്ന് അറിയുക കണക്ഷൻ നിങ്ങളുടെ ഡൗൺലോഡിന്റെ വേഗത കുറച്ചേക്കാം ഭാഷ ചേര്‍ക്കുക നിങ്ങളുടെ ബ്രൗസർ മാനേജ് ചെയ്യുന്നത് ആണ് @@ -358,6 +362,7 @@ നിരക്ക് ട്രാക്ക് ചെയ്യുന്നു Chrome-ൽ സൈൻ ഇൻ ചെയ്യാനുള്ള നിർദ്ദേശങ്ങൾ കാണിക്കുന്നു അടുത്ത തവണ കൂടുതൽ വേഗത്തിൽ ഈ സൈറ്റിലേക്ക് എത്തുക +ബുക്ക്‌മാർക്ക് നീക്കി ലൊക്കേഷൻ ഓഫാണ്; Android ക്രമീകരണത്തിൽ അത് ഓണാക്കുക. {BOOKMARKS_COUNT,plural, =1{ ബുക്ക്‌മാർക്ക്}other{ ബുക്ക്‌മാർക്കുകൾ}} Chrome-ൽ നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള വിഷയങ്ങളിലെ ലേഖനങ്ങൾ കാണൂ @@ -386,6 +391,7 @@ ഉപകരണത്തിൽ സംരക്ഷിക്കുക ഒരു മിനിറ്റ് ശേഷിക്കുന്നു സാധാരണ മുൻകൂട്ടി ലോഡ് ചെയ്യൽ: +നിർദ്ദേശിക്കുന്ന ലേഖനങ്ങൾ കാണാൻ താഴേക്ക് സ്ക്രോൾ ചെയ്യുക MM നിങ്ങൾ Chrome ഉപയോഗ റിപ്പോർട്ടുകളും പങ്കിടുന്നുവെങ്കിൽ ആ റിപ്പോർട്ടുകളിൽ നിങ്ങൾ സന്ദർശിക്കുന്ന URL-കളും ഉൾപ്പെടും നിങ്ങൾ വൈഫൈയിലേക്ക് കണക്റ്റ് ചെയ്യുമ്പോൾ ചിത്രത്തിന്റെ വിവരണങ്ങൾ പുനരാരംഭിക്കും @@ -651,6 +657,7 @@ അഭ്യർത്ഥിച്ച ഉറവിടത്തിലേക്ക് Chrome-ന് ആക്‌സസ് ഇല്ല. പേജ് പ്രിന്റ് ചെയ്യുന്നതിനുള്ള ഓപ്‌ഷനുകൾ തുറക്കുക പാസ്‌വേഡ് സൃഷ്ടിക്കൽ പോപ്പ് അപ്പ് കാണിക്കുന്നു +നിങ്ങളുടെ ശബ്‌ദം ഉപയോഗിച്ച് തിരയാൻ മൈക്രോഫോൺ ടാപ്പ് ചെയ്യുക കാണുക വിളിക്കുക സൈൻ ഇൻ ചെയ്യുന്നു... @@ -697,6 +704,7 @@ വിപുലീകൃത ഉപയോഗ ഡാറ്റ ഒരു പിശക് സംഭവിച്ചു. ഒരു മണിക്കൂർ ശേഷിക്കുന്നു + എന്നതിലേക്ക് താൽപ്പര്യങ്ങൾ അദൃശ്യ ടാബ് നിങ്ങളുടെ കാർഡ് പരിശോധിച്ചുറപ്പിക്കുക @@ -801,6 +809,7 @@ ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ Chrome-ന് സ്റ്റോറേജ് ആക്‌സസ് ആവശ്യമുണ്ട്. ഓഫാണ് ശുപാർശ ചെയ്യുന്നില്ല GIF മാത്രം പങ്കിടുക +നിങ്ങളുടെ ശബ്‌ദം ഉപയോഗിച്ച് Chrome-ൽ തിരയാം Discover റീഫ്രഷ് ചെയ്യാനാകുന്നില്ല ആൾമാറാട്ട ടാബുകൾ ഈ ആപ്പിനായുള്ള URL പകർത്താൻ ടാപ്പ് ചെയ്യുക @@ -1012,6 +1021,7 @@ Chrome-ലേക്ക് സെെൻ ഇൻ ചെയ്യുക, തുറന്നു. Google-മായി നിങ്ങൾ പങ്കിടുന്നത് ഈ പേജ് വേഗത്തിൽ പങ്കിടുക. ഈ കുറുക്കുവഴി എഡിറ്റ് ചെയ്യാൻ, സ്‌പർശിച്ചുപിടിക്കുക. +Google-ലുള്ള നിങ്ങളുടെ കാര്യങ്ങളെല്ലാം ഉപകരണങ്ങളിൽ ഉടനീളം ലഭ്യമാകാൻ സൈൻ ഇൻ ചെയ്യുക CVC , ടാബ്, തിരഞ്ഞെടുത്തു നിരക്ക് ട്രാക്ക് ചെയ്യൽ നിർത്തുക @@ -1050,6 +1060,7 @@ പുനഃസ്ഥാപിച്ചു ഈ ഫ്രെയിമിൽ QR കോഡ്/ബാർ‌കോഡ് സ്ഥാപിക്കുക. പാസ്‌വേഡുകള്‍ +നിങ്ങളുടെ Google അക്കൗണ്ട് ഉപയോഗിച്ച് Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക chrome_image_ ചിത്ര വിവരണങ്ങൾ നേടണോ? റീഡയറക്‌റ്റ് ചെയ്യുന്നത് ബ്ലോക്ക് ചെയ്തു @@ -1404,6 +1415,7 @@ - ഈ ഭാഷ ഡൗൺലോഡ് ചെയ്യാനായില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക. Chrome നിങ്ങളുടെ MB ലാഭിച്ചു മുകളിലേക്ക് മടങ്ങുക +പുതിയ അദൃശ്യ ടാബ് തുറക്കാൻ മെനു തുറക്കുക തീർച്ചപ്പെടുത്താത്തവ വായന ലിസ്റ്റിൽ ചേർക്കുക {TAB_COUNT,plural, =1{ അദൃശ്യ ടാബും മറ്റ് ടാബും കൂടി അടയ്ക്കും}other{ അദൃശ്യ ടാബും മറ്റ് ടാബുകളും കൂടി അടയ്ക്കും}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb index 6d7d9afb835dd1..cfd5ee14f444c2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb @@ -104,6 +104,7 @@ Хэрэглэгчийн нэрийг хуулах Стандарт хамгаалалт: {NUM_SELECTED,plural, =1{Сонгосон 1 зүйлийг устгах}other{Сонгосон # зүйлийг устгах}} +Chrome-н нүүр хуудаснаас шинэ контенттой танилцаарай Аюулгүй хайлт Та энэ хуудасны офлайн хуулбарыг -с харж байна Түүх @@ -220,6 +221,7 @@ Уншихад тохиромжтой болох хүртэл хүрээг томруулж татна уу. Бичвэр дээр хоёр удаа товшсоны дараагаар текстийн хэмжээ томорч харагдана. Сайтын сан Нэвтрэх боломжгүй +Chrome-н зөвлөгөө: Таны камерыг нээх боломжгүй байна. Алдаа гарлаа. Хайхын тулд үгийг удаан дарна уу Бүртгэл, хавчуурга, хадгалсан тохиргоо зэрэг Chrome-н ашигласан нийт өгөгдөл @@ -263,6 +265,7 @@ Таны зочилсон URL-г Google-д илгээдэг Энэ хуудсын офлайн хуулбарыг харж байна Cookies болон сайтын дата +Үйл ажиллагааг төхөөрөмждөө хадгалахгүйгээр үзэхийн тулд Нууцлалтай горимыг туршиж үзээрэй Видеоны урьдчилан үзэлтүүд ЗУРАГ Аюултай вебсайтууд, татаж авсан файл болон өргөтгөлийн эсрэг илүү хурдан, идэвхтэй хамгаалалт @@ -274,6 +277,7 @@ Картын дугаар Нууц үгийг хуулсан Хадгалсан +Chrome-г хэрхэн өгөгдмөл хөтөч болгон тохируулах талаар мэдэж аваарай Таны -н холболт таны татан авалтыг удаашруулж болзошгүй Хэл нэмэх Таны хөтчийг удирддаг @@ -358,6 +362,7 @@ Үнийг хянаж байна Chrome-д нэвтрэх сануулгыг харуулна Дараагийн удаа энэ сайт руу илүү шуурхай очоорой +Хавчуургыг зөөсөн байна Байршил идэвхгүй, үүнийг Андройд Тохиргоо дотроос асаана уу. {BOOKMARKS_COUNT,plural, =1{ хавчуурга}other{ хавчуурга}} Таны сонирхолтой холбоотой Chrome дээрх нийтлэлүүд @@ -386,6 +391,7 @@ Төхөөрөмжид хадгалах 1 минут үлдсэн Стандарт урьдчилан ачаалал: +Санал болгож буй нийтлэлүүдийг харахын тулд доош гүйлгэнэ үү MM Хэрэв та мөн Chrome-н ашиглалтын тайланг хуваалцвал тэдгээр тайланд таны зочилсон URL багтана Таныг Wi-Fi-д холбогдох үед зургийн тайлбарыг үргэлжлүүлнэ @@ -650,6 +656,7 @@ Tаны Google бүртгэл history.google.comChrome хүсэлт тавьсан нөөцөд хандах эрхгүй. Хуудас хэвлэхийн тулд сонголтыг нээнэ үү Нууц үг үүсгэх цонхыг харуулж байна +Дуу хоолойгоо ашиглан хайлт хийхийн тулд микрофон дээр товшино уу Харах Дуудлага Нэвтэрч байна… @@ -696,6 +703,7 @@ Tаны Google бүртгэл history.google.comӨргөтгөсөн ашиглалтын өгөгдөл Алдаа гарлаа. 1 цаг үлдсэн + хаягт Сонирхол Нууцлалтай таб Картаа баталгаажуулах @@ -800,6 +808,7 @@ Tаны Google бүртгэл history.google.comФайл татахын тулд Chrome-д санах ойд хандах зөвшөөрөл шаардлагатай. Унтраалттай Зөвлөдөггүй Зөвхөн GIF хуваалцана уу +Та Chrome-д хайлт хийхдээ дуу хоолойгоо ашиглах боломжтой Discover-г сэргээх боломжгүй байна Мэдээний нууцлалтай цонхууд URL-г энэ аппад хуулах бол товшино уу @@ -1011,6 +1020,7 @@ Privacy Sandbox-н туршилт нь идэвхтэй хөгжүүлэлтэд Chrome-д нэвтэрнэ үү, нээсэн. Таны Google-тэй хуваалцдаг зүйл Энэ хуудсыг шуурхай хуваалцаарай. Энэ товчлолыг засахын тулд хүрээд удаан дарна уу. +Google-н зүйлээ төхөөрөмжөөр авахын тулд нэвтэрнэ үү CVC , таб, сонгосон Үнэ хянахыг зогсоох @@ -1049,6 +1059,7 @@ Privacy Sandbox-н туршилт нь идэвхтэй хөгжүүлэлтэд -г сэргээсэн Энэ хүрээнд QR код/ шугаман код байрлуулна уу. Нууц үг +Chrome-д Google Бүртгэлээрээ нэвтэрнэ үү chrome_image_ Зургийн тайлбар авах уу? Дахин чиглүүлэлтийг блоклосон: @@ -1403,6 +1414,7 @@ Privacy Sandbox-н туршилт нь идэвхтэй хөгжүүлэлтэд - Энэ хэлийг татаж чадсангүй. Дараа дахин оролдоно уу. Chrome МБ-ыг хэмнэсэн Дээшээ очих +Шинэ Нууцлалтай таб нээхийн тулд цэсийг нээнэ үү хүлээгдэж байна Унших жагсаалтад нэмэх {TAB_COUNT,plural, =1{ нууцлалтай таб болон бусад табыг хаана}other{ нууцлалтай таб болон бусад табыг хаана}} 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 020c34717e92aa..bd0e0dd7a01d22 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 @@ -104,6 +104,7 @@ वापरकर्ता नाव कॉपी करा साधारण संरक्षण: {NUM_SELECTED,plural, =1{1 निवडलेला आयटम काढून टाका}other{# निवडलेले आयटम काढून टाका}} +Chrome च्या होम पेजवर नवीन आशय पहा सुरक्षित ब्राउझिंग तुम्ही पासून या पेजची ऑफलाइन प्रत पाहत आहात इतिहास @@ -220,6 +221,7 @@ तुम्ही हे व्यवस्थित वाचू शकण्यापार्यंत स्लायडर ड्रॅग करा. परिच्छेदावर डबल-टॅपिंग केल्यानंतर मजकूर कमीत कमी यापेक्षा मोठा दिसावा. साइट स्टोरेज साइन इन करू शकत नाही +Chrome संबंधित टिपा: तुमचा कॅमेरा उघडू शकत नाही. काहीतरी चूक झाली. शोधण्यासाठी, शब्दाला स्पर्श करा आणि धरून ठेवा खाती, बुकमार्क आणि सेव्ह केलेल्या सेटिंग्जसह, Chrome ने वापरलेला एकूण डेटा @@ -263,6 +265,7 @@ Google ला तुम्ही भेट दिलेल्या URLs पाठवल्या जातात या पेजची ऑफलाइन प्रत पाहत आहे कुकीज आणि साइट डेटा +तुमच्या डिव्हाइसवर अ‍ॅक्टिव्हिटी सेव्ह न करता ब्राउझ करण्यासाठी, गुप्त मोड वापरून पहा व्हिडिओची पूर्वावलोकने इमेज धोकादायक वेबसाइट, डाउनलोड आणि एक्स्टेंशनपासून अधिक जलद, प्रोअ‍ॅक्टिव्ह संरक्षण @@ -274,6 +277,7 @@ कार्ड नंबर पासवर्ड कॉपी केला वाचवला +Chrome ला तुमचे डीफॉल्ट ब्राउझर म्हणून कसे सेट करावे हे जाणून घ्या तुमच्या कनेक्शनमुळे तुमच्या डाउनलोडचा वेग कमी होऊ शकतो भाषा जोडा तुमचा ब्राउझर द्वारे व्यवस्थापित केला जातो @@ -358,6 +362,7 @@ किमतीचा माग ठेवत आहे Chrome मध्ये साइन इन करण्यासाठी सूचना दाखवते पुढील वेळी या साइटवर आणखी जलद जा +बुकमार्क हलवले आहेत स्‍थान बंद आहे; Android सेटिंग्‍ज मध्‍ये हे सुरू करा. {BOOKMARKS_COUNT,plural, =1{ बुकमार्क}other{ बुकमार्क}} Chrome वरील तुमच्या स्वारस्यांविषयी लेख @@ -386,6 +391,7 @@ डिव्हाइसमध्ये सेव्ह करा 1 मिनिट शिल्लक साधारण प्रीलोडिंग: +सुचवलेले लेख पाहण्यासाठी खाली स्क्रोल करा MM तुम्ही Chrome वापर अहवालदेखील शेअर केल्यास, त्या अहवालांमध्ये तुम्ही भेट दिलेल्या URLs चा समावेश होतो तुम्ही वाय-फायशी कनेक्ट करता तेव्हा इमेजची वर्णने पुन्हा सुरू होतील @@ -651,6 +657,7 @@ Chrome ला विनंती केलेल्या संसाधनांचा ॲक्सेस नाही. पेज प्रिंट करण्‍यासाठी पर्याय उघडा पासवर्ड निर्मिती पॉपअप दाखवत आहे +तुमचा आवाज वापरून शोधण्यासाठी, मायक्रोफोनवर टॅप करा पहा कॉल करा साइन इन करत आहे... @@ -697,6 +704,7 @@ वाढलेला वापर डेटा एक एरर आली आहे. 1 तास शिल्लक + वर स्वारस्ये गुप्त टॅब तुमच्या कार्डाची पडताळणी करा @@ -801,6 +809,7 @@ Chrome ला फाइल डाउनलोड करण्यासाठी स्टोरेज ॲक्सेस आवश्यक आहे. बंद शिफारस केली जात नाही फक्त GIF शेअर करा +तुम्ही Chrome मध्ये शोधण्यासाठी तुमचा आवाज वापरू शकता Discover रिफ्रेश करू शकत नाही गुप्त टॅब या ॲपची URL कॉपी करण्यासाठी टॅप करा @@ -1012,6 +1021,7 @@ Chrome मध्ये साइन इन करा, उघडले. तुम्ही Google सोबत काय शेअर करता हे पेज झटपट शेअर करा. हा शॉर्टकट संपादित करण्यासाठी, स्‍पर्श करा आणि धरून ठेवा. +सर्व डिव्हाइसवर तुमच्या Google संबंधित गोष्टी मिळवण्यासाठी, साइन इन करा CVC हा टॅब निवडला किमतीचा माग ठेवणे बंद करा @@ -1050,6 +1060,7 @@ रिस्टोअर केले QR कोड/बारकोड या फ्रेममध्‍ये बसवा. पासवर्ड +तुमचे Google खाते वापरून Chrome मध्ये साइन इन करा chrome_image_ इमेजची वर्णने मिळवायची का? रीडिरेक्ट ब्लॉक केले: @@ -1404,6 +1415,7 @@ - ही भाषा डाउनलोड करता आली नाही. नंतर पुन्हा प्रयत्न करा. Chrome ने तुमच्यासाठी MB सेव्ह केले शीर्षस्थानाकडे परत जा +नवीन गुप्त टॅब उघडण्यासाठी, मेनू उघडा प्रलंबित वाचन सूचीमध्ये जोडा {TAB_COUNT,plural, =1{ गुप्त आणि आणखी टॅब बंद केला जाईल}other{ गुप्त आणि आणखी टॅब बंद केले जातील}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb index 446e0fbbcda665..a4519bd43f303b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb @@ -104,6 +104,7 @@ Kopiér brukernavnet Standardbeskyttelse: {NUM_SELECTED,plural, =1{Fjern 1 valgt element}other{Fjern # valgte elementer}} +Oppdag nytt innhold på startsiden for Chrome Safe Browsing Du ser en lokal kopi av denne siden fra Logg @@ -220,6 +221,7 @@ Trykk på et ord for å søke. For å finstemme søket, trykk og hold inne for Dra glidebryteren til du kan lese dette uten problemer. Når du har dobbelttrykket på et avsnitt, bør teksten være minst like stor som dette. Nettstedslagring Kan ikke logge på +Chrome-tips: Kan ikke åpne kameraet. Noe gikk galt. For å søke, trykk og hold inne på et ord Total datamengde som brukes av Chrome, deriblant kontoer, bokmerker og lagrede innstillinger @@ -263,6 +265,7 @@ Trykk og hold inne på et ord for å søke. For å finstemme søket, merk flere Nettadresser du besøker, sendes til Google Ser på en lokalt lagret versjon av denne siden Informasjonskapsler og data fra nettsteder +For å surfe uten å lagre aktivitet på enheten, prøv Inkognito Videoforhåndsvisninger BILDE Raskere, proaktiv beskyttelse mot farlige nettsteder, nedlastinger og utvidelser @@ -274,6 +277,7 @@ Trykk og hold inne på et ord for å søke. For å finstemme søket, merk flere Kortnummer Passordet er kopiert Spart +Finn ut hvordan du angir Chrome som standard -tilkoblingen din kan gjøre at nedlastingen går tregt Legg til språk Nettleseren administreres av @@ -358,6 +362,7 @@ Trykk og hold inne på et ord for å søke. For å finstemme søket, merk flere Sporer prisen Viser beskjeder om å logge på Chrome Åpne dette nettstedet raskere neste gang +Bokmerket er flyttet Posisjon er slått av. Slå den på i Android-innstillingene. {BOOKMARKS_COUNT,plural, =1{ bokmerke}other{ bokmerker}} Artikler om interessene dine i Chrome @@ -386,6 +391,7 @@ Trykk og hold inne på et ord for å søke. For å finstemme søket, merk flere Lagre på enheten 1 minutt igjen Standard forhåndslasting: +Rull ned for å se foreslåtte artikler MM Hvis du også deler Chrome-bruksrapporter, inneholder disse rapportene nettadressene du besøker Bildebeskrivelser gjenopptas når du kobler til Wi-Fi @@ -651,6 +657,7 @@ For å endre denne innstillingen, tilbakestill synkronis Chrome har ikke tilgang til den forespurte ressursen. Åpne alternativene for å skrive ut siden Viser forgrunnsvinduet for passordgenerering +For å søke med stemmen, trykk på mikrofonen Visning Ring Logger på ... @@ -697,6 +704,7 @@ For å endre denne innstillingen, tilbakestill synkronis Utvidede bruksdata Det oppsto en feil. 1 time igjen +til Interesser Inkognitofane Bekreft kortet ditt @@ -801,6 +809,7 @@ For å endre denne innstillingen, tilbakestill synkronis Chrome må ha lagringstilgang for å laste ned filer. Av Anbefales ikke Del kun GIF +Du kan bruke stemmen til å søke i Chrome Kan ikke oppdatere Discover Inkognitofaner Trykk for å kopiere nettadressen for denne appen @@ -1012,6 +1021,7 @@ Noen nettsteder kan for eksempel svare på denne forespørselen ved å vise deg Logg på Chrome, åpnet. Dette deler du med Google Del denne siden raskt. Trykk og hold for å redigere denne snarveien. +For å få Google-tingene dine på flere enheter, logg på CVC , fane, valgt Slutt å spore prisen @@ -1050,6 +1060,7 @@ Noen nettsteder kan for eksempel svare på denne forespørselen ved å vise deg Gjenopprettet Plassér QR-/strekkoden i denne rammen. Passord +Logg på Chrome med Google-kontoen din chrome_bilde_ Vil du ha bildebeskrivelser? Viderekoblingen er blokkert: @@ -1404,6 +1415,7 @@ Noen nettsteder kan for eksempel svare på denne forespørselen ved å vise deg – Kunne ikke laste ned dette språket. Prøv igjen senere. Chrome har spart deg for MB Tilbake til toppen +For å åpne en ny inkognitofane, åpne menyen venter Legg til på leselisten {TAB_COUNT,plural, =1{ inkognitofaner og annen fane blir lukket}other{ inkognitofaner og andre faner blir lukket}} 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 ed4cb7bd596845..9996af57ed533b 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 @@ -104,6 +104,7 @@ Kopiuj nazwę użytkownika Standardowa ochrona: {NUM_SELECTED,plural, =1{Usuń 1 wybrany element}few{Usuń # wybrane elementy}many{Usuń # wybranych elementów}other{Usuń # wybranego elementu}} +Odkrywaj nowe treści na stronie głównej Chrome Bezpieczne przeglądanie Oglądasz kopię offline tej strony z Historia @@ -220,6 +221,7 @@ Aby coś wyszukać, dotknij dowolnego słowa. Aby doprecyzować wyszukiwanie, na Przeciągaj suwak, by umożliwić wygodne czytanie. Gdy dwukrotnie klikniesz akapit, tekst powiększy się co najmniej do tej wielkości. Dane witryn: Nie można się zalogować +Wskazówki dotyczące Chrome: Nie udało się otworzyć aparatu. Coś poszło nie tak. Aby wyszukać, naciśnij i przytrzymaj słowo Łączna ilość danych używanych przez Chrome, w tym konta, zakładki i zapisane ustawienia @@ -263,6 +265,7 @@ Aby coś wyszukać, naciśnij i przytrzymaj dowolne słowo. Aby doprecyzować w Odwiedzane adresy URL są wysyłane do Google. Oglądasz kopię offline tej strony Pliki cookie i dane stron +Aby przeglądać bez zapisywania swojej aktywności na urządzeniu, używaj karty incognito Podglądy filmów OBRAZ Szybsza proaktywna ochrona przed niebezpiecznymi stronami, pobieranymi plikami i rozszerzeniami @@ -274,6 +277,7 @@ Aby coś wyszukać, naciśnij i przytrzymaj dowolne słowo. Aby doprecyzować w Numer karty Hasło zostało skopiowane Zaoszczędzono +Jak ustawić Chrome jako przeglądarkę domyślną Połączenie może spowalniać pobieranie Dodaj język Twoją przeglądarką zarządza @@ -358,6 +362,7 @@ Aby coś wyszukać, naciśnij i przytrzymaj dowolne słowo. Aby doprecyzować w Monitoruję cenę Pokazuje prośby o zalogowanie się w Chrome Następnym razem otwórz tę stronę szybciej +Zakładka została przeniesiona Lokalizacja jest wyłączona. Włącz ją w Ustawieniach Androida. {BOOKMARKS_COUNT,plural, =1{ zakładka}few{ zakładki}many{ zakładek}other{ zakładki}} Artykuły dopasowane do Twoich zainteresowań w Chrome @@ -386,6 +391,7 @@ Aby coś wyszukać, naciśnij i przytrzymaj dowolne słowo. Aby doprecyzować w Zapisz na urządzeniu Pozostała minuta Wczytywanie standardowe: +Przewiń w dół, aby zobaczyć sugerowane artykuły MM Jeśli udostępnisz także raporty o użytkowaniu Chrome, będą one zawierały odwiedzane przez Ciebie adresy URL. Opisy do obrazów zostaną wznowione, gdy połączysz się z Wi-Fi @@ -651,6 +657,7 @@ Aby zmienić to ustawienie, zresetuj synchronizacjęChrome nie ma dostępu do żądanego zasobu. Otwórz opcje drukowania strony Pokazuję wyskakujące okienko generowania hasła +Aby wyszukać głosowo, kliknij mikrofon Widok Zadzwoń Loguję... @@ -697,6 +704,7 @@ Aby zmienić to ustawienie, zresetuj synchronizacjęRozszerzone dane o korzystaniu Wystąpił błąd. Pozostała godzina +do: Zainteresowania Karta incognito Zweryfikuj kartę @@ -801,6 +809,7 @@ Aby zmienić to ustawienie, zresetuj synchronizacjęChrome musi mieć dostęp do pamięci, by pobierać pliki. Wyłączono Niezalecane Udostępnij tylko GIF-a +W Chrome możesz wyszukiwać głosowo Nie można odświeżyć karty Discover Karty incognito Kliknij, by skopiować URL tej aplikacji @@ -1012,6 +1021,7 @@ Na przykład niektóre strony mogą na nie zareagować, wyświetlając reklamy b Logowanie się w Chrome, otwarte. Co udostępniasz Google Szybko udostępnij tę stronę. Aby edytować ten skrót, naciśnij i przytrzymaj. +Aby mieć dostęp do swoich treści w Google na różnych urządzeniach, zaloguj się Kod CVC Wybrano kartę Przestań monitorować cenę @@ -1050,6 +1060,7 @@ Na przykład niektóre strony mogą na nie zareagować, wyświetlając reklamy b Przywrócono: Umieść kod QR lub kod kreskowy w tej ramce. Hasła +Zaloguj się w Chrome, korzystając ze swojego konta Google chrome_obraz_ Czy chcesz pobierać opisy obrazów? Zablokowano przekierowanie: @@ -1404,6 +1415,7 @@ Na przykład niektóre strony mogą na nie zareagować, wyświetlając reklamy b  – nie udało się pobrać tego języka. Spróbuj później. Chrome pozwolił Ci zaoszczędzić  MB Powrót do góry +Aby otworzyć nową kartę incognito, otwórz menu Oczekiwanie Dodaj do listy Do przeczytania {TAB_COUNT,plural, =1{Zostaną zamknięte karty incognito () i  inna}few{Zostaną zamknięte karty incognito () i  inne}many{Zostaną zamknięte karty incognito () i  innych}other{Zostaną zamknięte karty incognito () i  innej}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb index b9aa6a648c5554..1f1520f8dca05c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb @@ -104,6 +104,7 @@ Copiază numele de utilizator Protecție standard: {NUM_SELECTED,plural, =1{Elimină un element selectat}few{Elimină # elemente selectate}other{Elimină # de elemente selectate}} +Descoperă conținut nou în pagina de pornire Chrome Navigare sigură Se afișează o versiune offline a acestei pagini de pe Istoric @@ -220,6 +221,7 @@ Atinge orice cuvânt pentru a-l căuta. Ca să rafinezi căutarea, atinge lung p Trage cursorul până poți citi textul cu ușurință. Textul trebuie să fie cel puțin la fel de mare ca acesta după o atingere dublă pe un paragraf. Stocarea site-urilor Nu se poate conecta +Sfaturi Chrome: Nu se poate deschide camera. A apărut o eroare. Pentru a căuta, atinge lung un cuvânt Totalul datelor folosite de Chrome, inclusiv conturile, marcajele și setările salvate @@ -263,6 +265,7 @@ Atinge lung orice cuvânt pentru a-l căuta. Pentru a rafina căutarea, selectea Adresele URL pe care le accesezi sunt trimise la Google Se afișează o versiune offline a acestei pagini Cookie-uri și date privind site-ul +Încearcă modul incognito pentru a naviga fără să salvezi activitatea pe dispozitiv Previzualizările videoclipului IMAGINE Protecție proactivă mai rapidă împotriva site-urilor, descărcărilor și extensiilor periculoase @@ -274,6 +277,7 @@ Atinge lung orice cuvânt pentru a-l căuta. Pentru a rafina căutarea, selectea Număr card Parola a fost copiată Economisite +Află cum să setezi Chrome ca browser prestabilit Conexiunea poate încetini descărcarea Adaugă o limbă Browserul este gestionat de @@ -358,6 +362,7 @@ Atinge lung orice cuvânt pentru a-l căuta. Pentru a rafina căutarea, selectea Se urmărește prețul Afișează solicitări pentru conectarea la Chrome Accesează mai rapid site-ul data viitoare +Marcajul a fost mutat Locația este dezactivată; activeaz-o în Setări Android. {BOOKMARKS_COUNT,plural, =1{ marcaj}few{ marcaje}other{ de marcaje}} Articole despre ceea ce te interesează în Chrome @@ -386,6 +391,7 @@ Atinge lung orice cuvânt pentru a-l căuta. Pentru a rafina căutarea, selectea Salvează pe dispozitiv 1 min. rămas Preîncărcare standard: +Derulează în jos pentru a vedea articolele sugerate LL Dacă trimiți rapoarte privind folosirea Chrome, acestea includ adresele URL pe care le accesezi Descrierile imaginilor vor fi reluate când te conectezi la Wi-Fi @@ -651,6 +657,7 @@ Pentru a modifica această setare, resetează sincroniza Chrome nu are acces la resursa solicitată. Deschide opțiunile pentru a printa pagina Fereastra pop-up pentru generarea parolelor este afișată +Atinge microfonul pentru a căuta cu ajutorul vocii Afișează Apelează Se conectează... @@ -697,6 +704,7 @@ Pentru a modifica această setare, resetează sincroniza Date de utilizare detaliate A apărut o eroare. 1 oră rămasă +în Interese Filă incognito Confirmă cardul @@ -801,6 +809,7 @@ Pentru a modifica această setare, resetează sincroniza Pentru a descărca fișiere, Chrome necesită acces la stocare. Dezactivată Nu este recomandată Trimite numai GIF-ul +Folosește-ți vocea pentru a căuta în Chrome Nu se poate actualiza Discover File incognito Atinge pentru a copia adresa URL pentru această aplicație @@ -1012,6 +1021,7 @@ De exemplu, unele site-uri pot răspunde la această solicitare afișând anunț Conectează-te la Chrome, deschis. Ce trimiți la Google Distribuie rapid pagina. Pentru a edita comanda rapidă, atinge-o lung. +Conectează-te pentru a folosi serviciile tale Google pe mai multe dispozitive CVC , filă, selectată Nu mai urmări prețul @@ -1050,6 +1060,7 @@ De exemplu, unele site-uri pot răspunde la această solicitare afișând anunț S-a restabilit Poziționează codul QR / codul de bare în acest cadru. Parole +Conectează-te la Chrome cu Contul Google chrome_image_ Vrei să generezi descrieri ale imaginilor? Redirecționarea a fost blocată: @@ -1404,6 +1415,7 @@ De exemplu, unele site-uri pot răspunde la această solicitare afișând anunț – Limba nu a putut fi descărcată. Încearcă din nou mai târziu. Chrome a economisit MB Înapoi sus +Deschide meniul pentru a deschide o nouă filă incognito în așteptare Adaugă în lista de lectură {TAB_COUNT,plural, =1{ filă incognito și încă filă vor fi închise}few{ filă incognito și încă file vor fi închise}other{ filă incognito și încă de file vor fi închise}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb index 1c3d4f5ceb36c5..6abd6d567fbdd5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb @@ -104,6 +104,7 @@ Копировать имя пользователя Стандартная защита: {NUM_SELECTED,plural, =1{Удалить 1 выбранный объект}one{Удалить # выбранный объект}few{Удалить # выбранных объекта}many{Удалить # выбранных объектов}other{Удалить # выбранного объекта}} +Просматривайте рекомендации контента на главной странице Chrome. Безопасный просмотр Эта офлайн-копия страницы была создана История @@ -220,6 +221,7 @@ Перемещайте ползунок, пока текст не станет удобным для чтения. После двойного нажатия на абзац текст должен быть такого размера. Данные сайтов Не удается войти +Советы по работе с Chrome Произошла ошибка. Не удается открыть камеру. Для поиска нажмите на слово и удерживайте Общее количество данных Chrome, включая аккаунты, закладки и сохраненные настройки @@ -263,6 +265,7 @@ URL посещенных вами страниц отправляются в Google. Офлайн-копия страницы Файлы сookie и данные сайтов +Чтобы история браузера не сохранялась на устройстве, включите режим инкогнито. Предварительный просмотр видео ИЗОБРАЖЕНИЕ Более быстрая и эффективная защита от опасных сайтов, расширений и скачанных файлов. @@ -274,6 +277,7 @@ Номер карты Пароль скопирован Сэкономлено +Узнайте, как сделать Chrome браузером по умолчанию. По сети данные могут скачиваться медленно. Добавить язык Вашим браузером управляет @@ -358,6 +362,7 @@ Вы отслеживаете цену на этот товар Показывать подсказки для входа в Chrome В следующий раз вы сможете открыть этот сайт быстрее. +Закладка перемещена Определение местоположения отключено. Включите его в настройках Android. {BOOKMARKS_COUNT,plural, =1{ закладка}one{ закладка}few{ закладки}many{ закладок}other{ закладки}} Прочитайте в Chrome статьи, подобранные с учетом ваших интересов. @@ -386,6 +391,7 @@ Сохранить на устройстве Осталась 1 мин. Стандартная предзагрузка: +Чтобы посмотреть рекомендуемые статьи, прокрутите экран вниз ММ Если вы также отправляете отчеты об использовании Chrome, в них включаются URL посещенных вами страниц. Описания изображений станут доступны при подключении к сети Wi-Fi. @@ -651,6 +657,7 @@ Запрошенный ресурс недоступен в Chrome Открыть параметры печати страницы Открыто всплывающее окно создания пароля +Чтобы использовать голосовой ввод при поиске, нажмите на микрофон Посмотреть Позвонить Вход в систему... @@ -697,6 +704,7 @@ Расширенные данные Произошла ошибка. Остался 1 час +в Интересы Вкладка инкогнито Подтвердите данные карты @@ -801,6 +809,7 @@ Для скачивания файлов браузеру Chrome требуется доступ к хранилищу. Отключено Не рекомендуется Поделиться только GIF +Вы можете использовать голосовой ввод при поиске в Chrome. Не удается обновить рекомендации Вкладки в режиме инкогнито Нажмите, чтобы скопировать URL этого приложения. @@ -1012,6 +1021,7 @@ Окно "Войти в Chrome" открыто. Что отправляется в Google Поделиться этой страницей. Чтобы изменить функцию кнопки, нажмите и удерживайте ее. +Чтобы использовать сервисы Google на нескольких устройствах, войдите в аккаунт. Код CVC Выбрана вкладка "" Прекратить отслеживание цен @@ -1050,6 +1060,7 @@ Восстановлен объект "" Поместите QR-код или штрихкод в эту рамку. Пароли +Войдите в Chrome, используя аккаунт Google chrome_image_ Генерировать описания изображений? Заблокирована попытка переадресации: @@ -1404,6 +1415,7 @@  – не удалось скачать этот языковой пакет. Повторите попытку позже. Благодаря Chrome вы сэкономили  МБ свободного места В начало +Чтобы открыть новую вкладку инкогнито, перейдите в меню ожидание Добавить в список для чтения {TAB_COUNT,plural, =1{ вкладка инкогнито и ещё вкладка будут закрыты.}one{ вкладка инкогнито и ещё вкладка будут закрыты.}few{ вкладка инкогнито и ещё вкладки будут закрыты.}many{ вкладка инкогнито и ещё вкладок будут закрыты.}other{ вкладка инкогнито и ещё вкладки будут закрыты.}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb index 18dbbd6ecc88c9..31bb7e2f9b0378 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb @@ -104,6 +104,7 @@ Kopírovať používateľské meno Štandardná ochrana: {NUM_SELECTED,plural, =1{Odstrániť 1 vybranú položku}few{Odstrániť # vybrané položky}many{Odstrániť # vybranej položky}other{Odstrániť # vybraných položiek}} +Objavte nový obsah na domovskej stránke Chromu Bezpečné prehliadanie Zobrazuje sa offline kópia tejto stránky z  História @@ -220,6 +221,7 @@ Vyhľadávanie spustíte klepnutím na ľubovoľné slovo. Spresníte ho pridrž Presúvajte posúvač, dokým nebude čítanie tohto textu pohodlné. Po dvojitom klepnutí na odsek by mal byť text aspoň takto veľký. Úložisko webu Nedá sa prihlásiť +Tipy na používanie Chromu: Vaša kamera sa nedá otvoriť. Vyskytol sa problém. Ak chcete nejaké slovo vyhľadať, pridržte ho Celkové dáta využívané Chromom vrátane účtov, záložiek a uložených nastavení @@ -263,6 +265,7 @@ Vyhľadávanie spustíte pridržaním ľubovoľného slova. Spresníte ho výber Webové adresy, ktoré navštívite, sú odosielané Googlu Zobrazuje sa offline kópia tejto stránky Súbory cookie a dáta webov +Ak chcete prehliadať bez ukladania aktivity v zariadení, vyskúšajte režim inkognito. Ukážky videí OBRÁZOK Rýchlejšia a proaktívna ochrana pred nebezpečnými webmi, stiahnutými súbormi a rozšíreniami @@ -274,6 +277,7 @@ Vyhľadávanie spustíte pridržaním ľubovoľného slova. Spresníte ho výber Číslo karty Heslo bolo skopírované. Uložené +Ako nastaviť Chrome ako predvolený prehliadač Vaše pripojenie môže spomaliť sťahovanie Pridať jazyk Váš prehliadač spravuje @@ -358,6 +362,7 @@ Vyhľadávanie spustíte pridržaním ľubovoľného slova. Spresníte ho výber Cenu sledujete Zobrazí výzvy na prihlásenie do Chromu Nabudúce prejdite na tento web rýchlejšie +Záložka bola premiestnená Poloha je vypnutá. Zapnite ju v Nastaveniach Androidu. {BOOKMARKS_COUNT,plural, =1{ záložka}few{ záložky}many{ bookmarks}other{ záložiek}} Články o vašich záujmoch v Chrome @@ -386,6 +391,7 @@ Vyhľadávanie spustíte pridržaním ľubovoľného slova. Spresníte ho výber Uložiť do zariadenia Zostáva: 1 min Štandardné prednačítavanie: +Navrhované články zobrazíte posunutím zobrazenia nadol MM Ak zdieľate aj prehľady používania Chromu, tieto prehľady zahŕňajú webové adresy, ktoré navštívite Popisy obrázkov sa obnovia, keď sa pripojíte k sieti Wi‑Fi @@ -651,6 +657,7 @@ Ak chcete toto nastavenie zmeniť, resetujte synchroniz Chrome nemá prístup k požadovanému zdroju. Otvorenie možností tlače stránky Zobrazuje sa okno generovania hesiel +Ak chcete vyhľadávať hlasom, klepnite na mikrofón Zobraziť Volajte Prebieha prihlasovanie... @@ -697,6 +704,7 @@ Ak chcete toto nastavenie zmeniť, resetujte synchroniz Rozšírené údaje o používaní Vyskytla sa chyba. Zostáva: 1 h +do služby Záujmy Karta inkognito Overenie karty @@ -801,6 +809,7 @@ Ak chcete toto nastavenie zmeniť, resetujte synchroniz Chrome potrebuje na sťahovanie súborov prístup k úložisku. Vypnuté Neodporúča sa Zdieľať iba gify +V Chrome môžete vyhľadávať hlasom Kanál Objaviť sa nedá obnoviť Karty inkognito Klepnutím skopírujete webovú adresu tejto aplikácie @@ -1012,6 +1021,7 @@ Niektoré weby môžu napríklad na túto žiadosť reagovať tak, že vám zobr Prihlásenie sa do Chromu, otvorené. Čo zdieľate s Googlom Skratka na rýchle zdieľanie tejto stránky. Ak ju chcete upraviť, pridržte ju. +Ak chcete využívať služby Googlu vo viacerých zariadeniach, prihláste sa CVC , karta, vybrané Prestať sledovať cenu @@ -1050,6 +1060,7 @@ Niektoré weby môžu napríklad na túto žiadosť reagovať tak, že vám zobr Obnovili ste položku QR kód alebo čiarový kód sa musí nachádzať v tomto rámčeku. Heslá +Prihláste sa do Chromu svojím účtom Google chrome_image_ Chcete získať popisy obrázkov? Presmerovanie bolo zablokované: @@ -1404,6 +1415,7 @@ Niektoré weby môžu napríklad na túto žiadosť reagovať tak, že vám zobr – tento jazyk sa nedá stiahnuť. Skúste to neskôr. Chrome ušetril  MB Späť na začiatok +Ak chcete otvoriť novú kartu inkognito, otvorte ponuku nespracované Pridať do čitateľského zoznamu {TAB_COUNT,plural, =1{ inkognito a  ďalšia karta budú zavreté}few{ inkognito a  ďalšie karty budú zavreté}many{ incognito and more tabs will be closed}other{ inkognito a  ďalších kariet budú zavreté}} 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 fee661c3621cdd..db0669c907197f 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 @@ -104,6 +104,7 @@ Kopiraj korisničko ime Standardna zaštita: {NUM_SELECTED,plural, =1{Ukloni 1 izabranu stavku}one{Ukloni # izabranu stavku}few{Ukloni # izabrane stavke}other{Ukloni # izabranih stavki}} +Otkrijte nov sadržaj na početnoj stranici Chrome-a Bezbedno pregledanje Prikazuje se oflajn kopija ove stranice od Istorija @@ -220,6 +221,7 @@ Dodirnite bilo koju reč za pretragu. Da biste precizirali pretragu, dodirnite i Prevlačite klizač dok ovo ne budete mogli lako da pročitate. Kada dvaput dodirnete pasus, tekst treba da bude bar ovoliki. Memorijski prostor za sajt Ne mogu da se prijavim +Saveti za Chrome: Ne možemo da otvorimo kameru. Nešto nije u redu. Da biste pretraživali, dodirnite i zadržite reč Svi podaci koje koristi Chrome, uključujući naloge, obeleživače i sačuvana podešavanja @@ -263,6 +265,7 @@ Dodirnite i zadržite bilo koju reč za pretragu. Da biste precizirali pretragu, URL-ovi koje posećujete se šalju Google-u Pregledate oflajn kopiju ove stranice Kolačići i podaci o sajtovima +Isprobajte režim Bez arhiviranja da biste pregledali bez čuvanja aktivnosti na uređaju Pregledi video snimaka SLIKA Brža proaktivna zaštita od opasnih veb-sajtova, preuzimanja i dodataka @@ -274,6 +277,7 @@ Dodirnite i zadržite bilo koju reč za pretragu. Da biste precizirali pretragu, Broj kartice Lozinka je kopirana Sačuvano +Saznajte kako da podesite Chrome kao podrazumevani pregledač veza može da uspori preuzimanje Dodaj jezik Pregledačem upravlja @@ -358,6 +362,7 @@ Dodirnite i zadržite bilo koju reč za pretragu. Da biste precizirali pretragu, Prati se cena Prikazuje upite za prijavljivanje u Chrome Sledeći put brže pristupite ovom sajtu +Obeleživač je premešten Lokacija je isključena; uključite je u Android podešavanjima. {BOOKMARKS_COUNT,plural, =1{ obeleživač}one{ obeleživač}few{ obeleživača}other{ obeleživača}} Članci o vašim interesovanjima u Chrome-u @@ -386,6 +391,7 @@ Dodirnite i zadržite bilo koju reč za pretragu. Da biste precizirali pretragu, Sačuvaj na uređaju Još 1 min Standardno predučitavanje: +Skrolujte nadole da biste videli podržane članke MM Ako delite i Chrome izveštaje o korišćenju, ti izveštaji obuhvataju URL-ove koje posećujete Opisi slika će se nastaviti kada se povežete na WiFi @@ -651,6 +657,7 @@ Da biste promenili ovo podešavanje, resetujte sinhroniz Chrome nema pristup zahtevanom resursu. Otvaranje opcija za štampanje stranice Prikazivanje iskačućeg prozora za generisanje lozinke +Dodirnite mikrofon da biste pretraživali glasom Prikaz Pozovite Prijavljivanje... @@ -697,6 +704,7 @@ Da biste promenili ovo podešavanje, resetujte sinhroniz Detaljni podaci o korišćenju Došlo je do greške. Još 1 sat +u Interesovanja Kartica bez arhiviranja Verifikujte karticu @@ -801,6 +809,7 @@ Da biste promenili ovo podešavanje, resetujte sinhroniz Chrome-u je potreban pristup memorijskom prostoru da bi preuzimao datoteke. Isključeno Ne preporučuje se Delite samo GIF +Možete da koristite glas da biste pretraživali pomoću glasa u Chrome-u Osvežavanje Discover-a nije uspelo Kartice bez arhiviranja Dodirnite da biste kopirali URL za ovu aplikaciju @@ -1012,6 +1021,7 @@ Na primer, neki veb-sajtovi mogu da odgovore na ovaj zahtev prikazivanjem oglasa Prijavljivanje u Chrome, otvoreno. Šta delite sa Google-om Brzo delite ovu stranicu. Da biste izmenili ovu prečicu, dodirnite i zadržite. +Prijavite se da biste sinhronizovali Google sadržaj na svim uređajima CVC , kartica, izabrana Zaustavi praćenje cena @@ -1050,6 +1060,7 @@ Na primer, neki veb-sajtovi mogu da odgovore na ovaj zahtev prikazivanjem oglasa Vraćena je stavka Postavite QR ili bar-kod u ovaj okvir. Lozinke +Prijavite se u Chrome pomoću Google naloga chrome_image_ Želite da dobijate opise slika? Blokirano je preusmeravanje: @@ -1404,6 +1415,7 @@ Na primer, neki veb-sajtovi mogu da odgovore na ovaj zahtev prikazivanjem oglasa – Preuzimanje ovog jezika nije uspelo. Probajte ponovo kasnije. Chrome vam je uštedeo MB Nazad na vrh +Otvorite meni da biste otvorili novu karticu bez arhiviranja na čekanju Dodaj na listu za čitanje {TAB_COUNT,plural, =1{Kartice bez arhiviranja () i još kartica će biti zatvorene}one{Kartice bez arhiviranja () i još kartica će biti zatvorene}few{Kartice bez arhiviranja () i još kartice će biti zatvorene}other{Kartice bez arhiviranja () i još kartica će biti zatvorene}} 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 29bfc4c6475ca6..72e45aee6adc63 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 @@ -104,6 +104,7 @@ Копирај корисничко име Стандардна заштита: {NUM_SELECTED,plural, =1{Уклони 1 изабрану ставку}one{Уклони # изабрану ставку}few{Уклони # изабране ставке}other{Уклони # изабраних ставки}} +Откријте нов садржај на почетној страници Chrome-а Безбедно прегледање Приказује се офлајн копија ове странице од Историја @@ -220,6 +221,7 @@ Превлачите клизач док ово не будете могли лако да прочитате. Када двапут додирнете пасус, текст треба да буде бар оволики. Меморијски простор за сајт Не могу да се пријавим +Савети за Chrome: Не можемо да отворимо камеру. Нешто није у реду. Да бисте претраживали, додирните и задржите реч Сви подаци које користи Chrome, укључујући налоге, обележиваче и сачувана подешавања @@ -263,6 +265,7 @@ URL-ови које посећујете се шаљу Google-у Прегледате офлајн копију ове странице Колачићи и подаци о сајтовима +Испробајте режим Без архивирања да бисте прегледали без чувања активности на уређају Прегледи видео снимака СЛИКА Бржа проактивна заштита од опасних веб-сајтова, преузимања и додатака @@ -274,6 +277,7 @@ Број картице Лозинка је копирана Сачувано +Сазнајте како да подесите Chrome као подразумевани прегледач веза може да успори преузимање Додај језик Прегледачем управља @@ -358,6 +362,7 @@ Прати се цена Приказује упите за пријављивање у Chrome Следећи пут брже приступите овом сајту +Обележивач је премештен Локација је искључена; укључите је у Android подешавањима. {BOOKMARKS_COUNT,plural, =1{ обележивач}one{ обележивач}few{ обележивача}other{ обележивача}} Чланци о вашим интересовањима у Chrome-у @@ -386,6 +391,7 @@ Сачувај на уређају Још 1 мин Стандардно предучитавање: +Скролујте надоле да бисте видели подржане чланке ММ Ако делите и Chrome извештаје о коришћењу, ти извештаји обухватају URL-ове које посећујете Описи слика ће се наставити када се повежете на WiFi @@ -651,6 +657,7 @@ Google налог можда има друге облике историје п Chrome нема приступ захтеваном ресурсу. Отварање опција за штампање странице Приказивање искачућег прозора за генерисање лозинке +Додирните микрофон да бисте претраживали гласом Приказ Позовите Пријављивање... @@ -697,6 +704,7 @@ Google налог можда има друге облике историје п Детаљни подаци о коришћењу Дошло је до грешке. Још 1 сат +у Интересовања Картица без архивирања Верификујте картицу @@ -801,6 +809,7 @@ Google налог можда има друге облике историје п Chrome-у је потребан приступ меморијском простору да би преузимао датотеке. Искључено Не препоручује се Делите само GIF +Можете да користите глас да бисте претраживали помоћу гласа у Chrome-у Освежавање Discover-а није успело Картице без архивирања Додирните да бисте копирали URL за ову апликацију @@ -1012,6 +1021,7 @@ Google налог можда има друге облике историје п Пријављивање у Chrome, отворено. Шта делите са Google-ом Брзо делите ову страницу. Да бисте изменили ову пречицу, додирните и задржите. +Пријавите се да бисте синхронизовали Google садржај на свим уређајима CVC , картица, изабрана Заустави праћење цена @@ -1050,6 +1060,7 @@ Google налог можда има друге облике историје п Враћена је ставка Поставите QR или бар-код у овај оквир. Лозинке +Пријавите се у Chrome помоћу Google налога chrome_image_ Желите да добијате описе слика? Блокирано је преусмеравање: @@ -1404,6 +1415,7 @@ Google налог можда има друге облике историје п – Преузимање овог језика није успело. Пробајте поново касније. Chrome вам је уштедео MB Назад на врх +Отворите мени да бисте отворили нову картицу без архивирања на чекању Додај на листу за читање {TAB_COUNT,plural, =1{Картице без архивирања () и још картица ће бити затворене}one{Картице без архивирања () и још картица ће бити затворене}few{Картице без архивирања () и још картице ће бити затворене}other{Картице без архивирања () и још картица ће бити затворене}} 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 66ae7526dc51b1..78d42026b62423 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 @@ -104,6 +104,7 @@ వినియోగదారు పేరును కాపీ చేస్తుంది ప్రామాణిక రక్షణ: {NUM_SELECTED,plural, =1{ఎంచుకోబడిన 1 అంశాన్ని తీసివేస్తుంది}other{ఎంచుకోబడిన # అంశాలను తీసివేస్తుంది}} +Chrome హోమ్ పేజీలో కొత్త కంటెంట్‌ను కనుగొనండి సురక్షిత బ్రౌజింగ్ మీరు నుండి ఈ పేజీ యొక్క ఆఫ్‌లైన్ కాపీని వీక్షిస్తున్నారు హిస్టరీ @@ -220,6 +221,7 @@ మీరు దీనిని సౌకర్యవంతంగా చదవగలిగే వరకు స్లైడర్‌ను లాగండి. పేరాపై రెండుసార్లు నొక్కిన తర్వాత వచనం కనీసం ఇంత పెద్దదిగా కనిపించాలి. సైట్ నిల్వ సైన్ ఇన్ చేయడం సాధ్యపడదు +Chrome చిట్కాలు: మీ కెమెరాను తెరవడం సాధ్యపడలేదు. ఏదో పొరపాటు జరిగింది. వెతకడానికి, ఒక పదాన్ని తాకి & అలాగే నొక్కి ఉంచండి ఖాతాలు, బుక్‌మార్క్‌లు, సేవ్ చేసిన సెట్టింగ్‌లతో సహా Chrome ఉపయోగించిన మొత్తం డేటా @@ -263,6 +265,7 @@ మీరు సందర్శించే URLలు Googleకు పంపబడతాయి ఈ పేజీ ఆఫ్‌లైన్ కాపీని వీక్షిస్తున్నారు కుక్కీలు మరియు సైట్ డేటా +మీ పరికరంలో యాక్టివిటీని సేవ్ చేయకుండా బ్రౌజ్ చేయాలంటే, అజ్ఞాత మోడ్‌ను ట్రై చేసి చూడండి వీడియో ప్రివ్యూలు చిత్రం ప్రమాదకరమైన వెబ్‌సైట్‌లు, డౌన్‌లోడ్‌లు, ఎక్స్‌టెన్షన్‌ల నుండి మరింత వేగవంతమైన, క్రియాశీలమైన రక్షణ @@ -274,6 +277,7 @@ కార్డ్ సంఖ్య పాస్‌వర్డ్ కాపీ చేయబడింది ఆదా చేయబడింది +Chromeను మీ ఆటోమేటిక్ బ్రౌజర్‌గా సెట్ చేయడం ఎలాగో తెలుసుకోండి మీ కనెక్షన్ మీ డౌన్‌లోడ్‌ను నెమ్మదించవచ్చు భాషను జోడించు మీ బ్రౌజర్ ద్వారా మేనేజ్ చేయబడుతుంది @@ -358,6 +362,7 @@ ధరను ట్రాక్ చేయడం Chromeకు సైన్ ఇన్ చేయడానికి ప్రాంప్ట్‌లను చూపిస్తుంది తర్వాతిసారి ఈ సైట్‌కు త్వరగా చేరండి +బుక్‌మార్క్ తరలించబడింది స్థానం ఆఫ్ చేయబడింది; దీనిని Android సెట్టింగ్‌లులో ఆన్ చేయండి. {BOOKMARKS_COUNT,plural, =1{ బుక్‌మార్క్}other{ బుక్‌మార్క్‌లు}} Chromeలోని మీ అభిరుచులకు అనుగుణమైన కథనాలు @@ -386,6 +391,7 @@ పరికరానికి సేవ్ చేయండి 1 నిమిషం మిగిలి ఉంది స్టాండర్డ్ ప్రీ - లోడింగ్: +సూచించిన కథనాలను చూడటానికి కిందికి స్క్రోల్ చేయండి MM మీరు Chrome వినియోగ రిపోర్ట్‌లను కూడా షేర్ చేస్తున్నట్లయితే, ఆ రిపోర్ట్‌లలో మీరు సందర్శించే URLలు ఉంటాయి మీరు Wi-Fiకి కనెక్ట్ అయిన తర్వాత ఇమేజ్ వివరణలు కొనసాగించబడతాయి @@ -651,6 +657,7 @@ Chrome అభ్యర్థించిన వనరుకు యాక్సెస్ కలిగి లేదు. పేజీని ముద్రించడానికి ఎంపికలను తెరవండి పాస్‌వర్డ్ ఉత్పత్తి పాప్ అప్ చూపబడుతోంది +మీ వాయిస్‌తో సెర్చ్ చేయడానికి, మైక్రోఫోన్‌ను ట్యాప్ చేయండి వీక్షణ కాల్ చేయండి సైన్ ఇన్ అవుతోంది... @@ -697,6 +704,7 @@ పొడిగించిన డేటా వినియోగం ఒక ఎర్రర్ ఏర్పడింది. 1 గంట మిగిలి ఉంది +కు ఆసక్తులు అజ్ఞాత ట్యాబ్ మీ కార్డ్‌ను ధృవీకరించండి @@ -801,6 +809,7 @@ ఫైళ్లను డౌన్‌లోడ్ చేయడానికి Chromeకు నిల్వ యాక్సెస్ అవసరం. ఆఫ్ సిఫార్సు చేయబడదు GIFను మాత్రమే షేర్ చేయండి +Chromeలో సెర్చ్ చేయడానికి మీరు మీ వాయిస్‌ను ఉపయోగించవచ్చు Discoverను రిఫ్రెష్ చేయడం సాధ్యం కాదు అజ్ఞాత ట్యాబ్‌లు ఈ యాప్ URLను కాపీ చేయడానికి నొక్కండి @@ -1012,6 +1021,7 @@ Chromeకు సైన్ ఇన్ చేయండి, తెరవబడింది. మీరు Google తో ఏమి షేర్ చేస్తారు త్వరగా ఈ పేజీని షేర్ చేయండి. ఈ షార్ట్‌కట్‌ను ఎడిట్ చేయడానికి, నొక్కి, పట్టుకోండి. +మీ పరికరాలన్నింటిలో Google ప్రయోజనాలను పొందడానికి, సైన్ ఇన్ చేయండి CVC , ట్యాబ్‌ను ఎంచుకున్నారు ధరను ట్రాక్ చేయడాన్ని ఆపివేయండి @@ -1050,6 +1060,7 @@ రీస్టోర్ చేయబడింది QR కోడ్/బార్‌కోడ్‌ను ఈ ఫ్రేమ్‌లో ఉంచండి. పాస్‌వర్డ్‌లు +మీ Google ఖాతాతో Chromeకు సైన్ ఇన్ చేయండి chrome_image_ ఇమేజ్ వివరణలను పొందాలనుకుంటున్నారా? మళ్లింపు బ్లాక్ చేయబడింది: @@ -1404,6 +1415,7 @@ - ఈ భాషను డౌన్‌లోడ్ చేయడం సాధ్యపడదు. తర్వాత మళ్లీ ట్రై చేయండి. Chrome మీకు MB ఆదా చేసింది ఎగువకు తిరిగి వెళ్ళు +కొత్త అజ్ఞాత ట్యాబ్‌ను తెరవడానికి, మెనూను తెరవండి పెండింగ్‌లో ఉంది పఠనా లిస్ట్‌కు జోడించు {TAB_COUNT,plural, =1{ అజ్ఞాత ట్యాబ్, ఇంకా మరో ట్యాబ్ మూసివేయబడతాయి}other{ అజ్ఞాత ట్యాబ్, ఇంకా మరో ట్యాబ్‌లు మూసివేయబడతాయి}} 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 8b312c4045e1a4..c0c081566d336f 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 @@ -104,6 +104,7 @@ Копіювати ім’я користувача Стандартний захист: {NUM_SELECTED,plural, =1{Вилучити 1 вибраний елемент}one{Вилучити # вибраний елемент}few{Вилучити # вибрані елементи}many{Вилучити # вибраних елементів}other{Вилучити # вибраного елемента}} +Переглядайте новий контент на головній сторінці Chrome Безпечний перегляд Ви переглядаєте офлайн-копію цієї сторінки, створену Історія @@ -220,6 +221,7 @@ Перетягуйте повзунок, доки розмір тексту не стане зручним для читання. Якщо двічі торкнутись абзацу, розмір тексту має стати принаймні таким, як цей. Дані сайтів Не вдається ввійти +Поради щодо Chrome Не вдається відкрити камеру. Помилка. Щоб почати пошук, натисніть і утримуйте слово Усі дані, які використовує Chrome, зокрема облікові записи, закладки та збережені налаштування @@ -263,6 +265,7 @@ URL-адреси сторінок, які ви відвідуєте, надсилаються в Google Перегляд копії сторінки в режимі офлайн Файли cookie та дані із сайтів +Увімкніть анонімний режим, якщо не хочете зберігати історію активності на пристрої Анімовані значки відео ЗОБРАЖЕННЯ Швидший активний захист від небезпечних веб-сайтів, завантажень і розширень @@ -274,6 +277,7 @@ Номер картки Пароль скопійовано Збережено +Дізнайтеся, як зробити Chrome веб-переглядачем за умовчанням Завантаження через підключення може бути повільнішим Додати мову Вашим веб-переглядачем керує @@ -358,6 +362,7 @@ Ціна відстежується Показувати сповіщення для входу в Chrome Переходьте на цей сайт швидше +Закладку переміщено Геодані вимкнено. Увімкніть їх у налаштуваннях Android. {BOOKMARKS_COUNT,plural, =1{ закладка}one{ закладка}few{ закладки}many{ закладок}other{ закладки}} Статті на цікаві вам теми в Chrome @@ -386,6 +391,7 @@ Зберегти на пристрій Залишилась 1 хв Стандартне попереднє завантаження: +Прокрутіть униз, що переглянути рекомендовані статті ММ Якщо ви також будете надсилати звіти про використання Chrome, у них буде включено дані про відвідані URL-адреси Описи зображень з'являться знову, коли пристрій підключиться до мережі Wi-Fi @@ -651,6 +657,7 @@ Chrome не має доступу до потрібного ресурсу. Відкрити налаштування друку сторінки Показ спливаючих вікон для створення пароля +Щоб шукати за допомогою голосу, натисніть значок мікрофона Перегляд Зателефонувати Вхід… @@ -697,6 +704,7 @@ Розширені дані про використання Сталася помилка. Залишилась 1 година +в Інтереси Анонімна вкладка Підтвердьте дані картки @@ -801,6 +809,7 @@ Щоб завантажувати файли, Chrome потребує доступу до пам’яті. Вимкнено Не рекомендовано Поділитися лише файлом у форматі GIF +У Chrome можна шукати голосом Не вдається оновити рекомендації Анонімні вкладки Торкніться, щоб скопіювати URL-адресу цього додатка @@ -1012,6 +1021,7 @@ Вікно "Увійти в Chrome" відкрите. До якої інформації отримає доступ компанія Google Швидко діліться цією сторінкою. Щоб змінити функцію цієї кнопки, натисніть і втримуйте її. +Увійдіть в обліковий запис, щоб користуватися сервісами Google на кількох пристроях CVC Вибрано вкладку "" Зупинити відстеження ціни @@ -1050,6 +1060,7 @@ Відновлено об'єкт "" Розмістіть QR-код або штрих-код у цій рамці Паролі +Увійдіть у Chrome через обліковий запис Google chrome_image_ Отримувати описи зображень? Переадресацію заблоковано: @@ -1404,6 +1415,7 @@ – Не вдалося завантажити цю мову. Повторіть спробу пізніше. Chrome заощадив МБ На початок +Щоб відкрити нову анонімну вкладку, натисніть значок меню очікується Додати в список читання {TAB_COUNT,plural, =1{Анонімні () і ще вкладку буде закрито}one{Анонімні () і ще вкладку буде закрито}few{Анонімні () і ще вкладки буде закрито}many{Анонімні () і ще вкладок буде закрито}other{Анонімні () і ще вкладки буде закрито}} diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb index 26fe7304a7ddf8..ce8cc052c8a633 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb @@ -826,6 +826,7 @@ Tài khoản Google của bạn có thể có các dạng lịch sử duyệt we Không có số liệu thống kê hoặc báo cáo sự cố nào được gửi cho Google Tinh chỉnh: Đã xảy ra lỗi. Không thể cập nhật tính năng Theo dõi giá. +Bạn có thể bật hoặc tắt chế độ này trong phần cài đặt. Tắt Bật Để sử dụng các thẻ từ những thiết bị khác, hãy bật tính năng đồng bộ hóa @@ -1100,6 +1101,7 @@ Ví dụ: một số trang web có thể phản hồi yêu cầu này bằng cá Truy cập vào phương thức thanh toán Loại: Bạn có thể thấy kết quả phù hợp hơn khi dùng tính năng Chạm để tìm kiếm bằng cách bao gồm thêm nhiều văn bản của trang. Bạn có thể truy cập phần cài đặt để thay đổi lựa chọn này bất cứ lúc nào. +Đã có giao diện tối cho các trang web Trang web có kết nối an toàn, trừ phi Chrome thông báo cho bạn thông tin khác. . URL diff --git a/chrome/browser/ui/android/theme/BUILD.gn b/chrome/browser/ui/android/theme/BUILD.gn index 4fac4fb43815bd..36e61e785c0f23 100644 --- a/chrome/browser/ui/android/theme/BUILD.gn +++ b/chrome/browser/ui/android/theme/BUILD.gn @@ -9,6 +9,7 @@ android_library("java") { "java/src/org/chromium/chrome/browser/theme/ThemeColorProvider.java", "java/src/org/chromium/chrome/browser/theme/ThemeUtils.java", "java/src/org/chromium/chrome/browser/theme/TopUiThemeColorProvider.java", + "java/src/org/chromium/chrome/browser/ui/theme/BrandedColorScheme.java", ] deps = [ ":java_resources", diff --git a/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/ui/theme/BrandedColorScheme.java b/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/ui/theme/BrandedColorScheme.java new file mode 100644 index 00000000000000..eaada423c4c3e1 --- /dev/null +++ b/chrome/browser/ui/android/theme/java/src/org/chromium/chrome/browser/ui/theme/BrandedColorScheme.java @@ -0,0 +1,31 @@ +// 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. + +package org.chromium.chrome.browser.ui.theme; + +import androidx.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@IntDef({BrandedColorScheme.LIGHT_BRANDED_THEME, BrandedColorScheme.DARK_BRANDED_THEME, + BrandedColorScheme.INCOGNITO, BrandedColorScheme.APP_DEFAULT}) +@Retention(RetentionPolicy.SOURCE) +public @interface BrandedColorScheme { + /** + * Light branded color as defined by the website, unrelated to the app/OS dark theme setting. + */ + int LIGHT_BRANDED_THEME = 0; + /** + * Dark branded color as defined by the website, unrelated to the app/OS dark theme setting. + */ + int DARK_BRANDED_THEME = 1; + /** Incognito theme. */ + int INCOGNITO = 2; + /** + * Default theme with potentially dynamic colors that can be light or dark depending on user + * or system settings. + */ + int APP_DEFAULT = 3; +} diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java index cd596de6836831..d0632e7176bcf2 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java @@ -28,7 +28,6 @@ import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils; import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -import org.chromium.chrome.browser.omnibox.styles.OmniboxTheme; import org.chromium.chrome.browser.paint_preview.TabbedPaintPreview; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.profiles.Profile; @@ -36,6 +35,7 @@ import org.chromium.chrome.browser.tab.TrustedCdn; import org.chromium.chrome.browser.theme.ThemeUtils; import org.chromium.chrome.browser.ui.native_page.NativePage; +import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; @@ -306,16 +306,18 @@ && shouldEmphasizeUrl()) { ChromeAutocompleteSchemeClassifier chromeAutocompleteSchemeClassifier = new ChromeAutocompleteSchemeClassifier(getProfile()); - final @OmniboxTheme int omniboxTheme = OmniboxResourceProvider.getOmniboxTheme( - mContext, isIncognito(), getPrimaryColor()); + final @BrandedColorScheme int brandedColorScheme = + OmniboxResourceProvider.getBrandedColorScheme( + mContext, isIncognito(), getPrimaryColor()); final @ColorInt int nonEmphasizedColor = - OmniboxResourceProvider.getUrlBarSecondaryTextColor(mContext, omniboxTheme); + OmniboxResourceProvider.getUrlBarSecondaryTextColor( + mContext, brandedColorScheme); final @ColorInt int emphasizedColor = - OmniboxResourceProvider.getUrlBarPrimaryTextColor(mContext, omniboxTheme); + OmniboxResourceProvider.getUrlBarPrimaryTextColor(mContext, brandedColorScheme); final @ColorInt int dangerColor = - OmniboxResourceProvider.getUrlBarDangerColor(mContext, omniboxTheme); + OmniboxResourceProvider.getUrlBarDangerColor(mContext, brandedColorScheme); final @ColorInt int secureColor = - OmniboxResourceProvider.getUrlBarSecureColor(mContext, omniboxTheme); + OmniboxResourceProvider.getUrlBarSecureColor(mContext, brandedColorScheme); OmniboxUrlEmphasizer.emphasizeUrl(spannableDisplayText, chromeAutocompleteSchemeClassifier, getSecurityLevel(), isInternalPage, shouldEmphasizeHttpsScheme(), nonEmphasizedColor, emphasizedColor, dangerColor, diff --git a/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc index ef75e0c8e941db..fb17b4df7f11d5 100644 --- a/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc +++ b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc @@ -91,10 +91,13 @@ MicrophoneMuteNotificationDelegateImpl:: absl::optional MicrophoneMuteNotificationDelegateImpl::GetAppAccessingMicrophone() { apps::AppRegistryCache* reg_cache = GetActiveUserAppRegistryCache(); - DCHECK(reg_cache); apps::AppCapabilityAccessCache* cap_cache = GetActiveUserAppCapabilityAccessCache(); - DCHECK(cap_cache); + // A reg_cache and/or cap_cache of value nullptr is possible if we have + // no active user, e.g. the login screen, so we test and return nullopt + // in that case instead of using DCHECK(). + if (!reg_cache || !cap_cache) + return absl::nullopt; return GetAppAccessingMicrophone(cap_cache, reg_cache); } diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc index 443bd6303d4ebc..f751a4e3e5074e 100644 --- a/chrome/browser/ui/content_settings/content_setting_image_model.cc +++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc @@ -78,6 +78,8 @@ using content_settings::PageSpecificContentSettings; // ContentSettingMediaImageModel - media // ContentSettingFramebustBlockImageModel - blocked framebust +constexpr bool kNotifyAccessibility = true; + class ContentSettingBlockedImageModel : public ContentSettingSimpleImageModel { public: ContentSettingBlockedImageModel(ImageType image_type, @@ -508,7 +510,7 @@ bool ContentSettingBlockedImageModel::UpdateAndGetVisibility( // Geolocation ----------------------------------------------------------------- ContentSettingGeolocationImageModel::ContentSettingGeolocationImageModel() - : ContentSettingImageModel(ImageType::GEOLOCATION) {} + : ContentSettingImageModel(ImageType::GEOLOCATION, kNotifyAccessibility) {} bool ContentSettingGeolocationImageModel::UpdateAndGetVisibility( WebContents* web_contents) { @@ -581,6 +583,8 @@ bool ContentSettingGeolocationImageModel::UpdateAndGetVisibility( set_tooltip(l10n_util::GetStringUTF16(is_allowed ? IDS_ALLOWED_GEOLOCATION_MESSAGE : IDS_BLOCKED_GEOLOCATION_MESSAGE)); + set_explanatory_string_id(is_allowed ? IDS_ALLOWED_GEOLOCATION_MESSAGE + : IDS_BLOCKED_GEOLOCATION_MESSAGE); return true; } @@ -729,7 +733,7 @@ bool ContentSettingClipboardReadWriteImageModel::UpdateAndGetVisibility( // Media ----------------------------------------------------------------------- ContentSettingMediaImageModel::ContentSettingMediaImageModel() - : ContentSettingImageModel(ImageType::MEDIASTREAM) {} + : ContentSettingImageModel(ImageType::MEDIASTREAM, kNotifyAccessibility) {} bool ContentSettingMediaImageModel::UpdateAndGetVisibility( WebContents* web_contents) { @@ -834,6 +838,7 @@ bool ContentSettingMediaImageModel::UpdateAndGetVisibility( : IDS_MICROPHONE_ACCESSED; } set_tooltip(l10n_util::GetStringUTF16(id)); + set_explanatory_string_id(id); return true; } diff --git a/chrome/browser/ui/content_settings/content_setting_image_model_states.cc b/chrome/browser/ui/content_settings/content_setting_image_model_states.cc index 431bd4c93dfdf0..848691c55d85a0 100644 --- a/chrome/browser/ui/content_settings/content_setting_image_model_states.cc +++ b/chrome/browser/ui/content_settings/content_setting_image_model_states.cc @@ -32,8 +32,6 @@ bool ContentSettingImageModelStates::AnimationHasRun(ImageType type) const { void ContentSettingImageModelStates::SetAccessibilityNotified(ImageType type, bool notified) { VerifyType(type); - // Currently only NOTIFICATIONS_QUIET_PROMPT will notify accessibility. - DCHECK_EQ(ImageType::NOTIFICATIONS_QUIET_PROMPT, type); accessibility_notified_[static_cast(type)] = notified; } @@ -41,8 +39,6 @@ void ContentSettingImageModelStates::SetAccessibilityNotified(ImageType type, bool ContentSettingImageModelStates::GetAccessibilityNotified( ImageType type) const { VerifyType(type); - // Currently only NOTIFICATIONS_QUIET_PROMPT will notify accessibility. - DCHECK_EQ(ImageType::NOTIFICATIONS_QUIET_PROMPT, type); return accessibility_notified_[static_cast(type)]; } diff --git a/chrome/browser/ui/content_settings/content_setting_image_model_unittest.cc b/chrome/browser/ui/content_settings/content_setting_image_model_unittest.cc index 2a3a7a3306089d..bf68c6afba76d1 100644 --- a/chrome/browser/ui/content_settings/content_setting_image_model_unittest.cc +++ b/chrome/browser/ui/content_settings/content_setting_image_model_unittest.cc @@ -326,20 +326,23 @@ TEST_F(ContentSettingImageModelTest, GeolocationAccessPermissionsChanged) { content_settings->OnContentAllowed(ContentSettingsType::GEOLOCATION); UpdateModelAndVerifyStates( content_setting_image_model.get(), /* is_visible = */ true, - /* tooltip_empty = */ false, IDS_ALLOWED_GEOLOCATION_MESSAGE, 0); + /* tooltip_empty = */ false, IDS_ALLOWED_GEOLOCATION_MESSAGE, + IDS_ALLOWED_GEOLOCATION_MESSAGE); settings_map->SetDefaultContentSetting(ContentSettingsType::GEOLOCATION, CONTENT_SETTING_BLOCK); content_settings->OnContentBlocked(ContentSettingsType::GEOLOCATION); UpdateModelAndVerifyStates( content_setting_image_model.get(), /* is_visible = */ true, - /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, 0); + /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, + IDS_BLOCKED_GEOLOCATION_MESSAGE); geolocation_manager->SetSystemPermission( device::LocationSystemPermissionStatus::kDenied); UpdateModelAndVerifyStates( content_setting_image_model.get(), /* is_visible = */ true, - /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, 0); + /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, + IDS_BLOCKED_GEOLOCATION_MESSAGE); content_settings->OnContentAllowed(ContentSettingsType::GEOLOCATION); UpdateModelAndVerifyStates( @@ -392,7 +395,8 @@ TEST_F(ContentSettingImageModelTest, GeolocationAccessPermissionsUndetermined) { content_settings->OnContentBlocked(ContentSettingsType::GEOLOCATION); UpdateModelAndVerifyStates( content_setting_image_model.get(), /* is_visible = */ true, - /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, 0); + /* tooltip_empty = */ false, IDS_BLOCKED_GEOLOCATION_MESSAGE, + IDS_BLOCKED_GEOLOCATION_MESSAGE); } TEST_F(ContentSettingImageModelTest, GeolocationAccessDeniedExperiment) { diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java index 99d3736fc53cd9..d01675cf2340ed 100644 --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java @@ -268,7 +268,7 @@ private static int getBackgroundColor(View view, Snackbar snackbar) { private static int getTextAppearance(Snackbar snackbar) { if (snackbar.getTheme() == Snackbar.Theme.GOOGLE) { - return R.style.TextAppearance_TextMedium_Primary_Baseline_Inverse; + return R.style.TextAppearance_TextMedium_Primary_OnAccent1; } assert snackbar.getTheme() == Snackbar.Theme.BASIC; diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc index 875a4f77b86232..689e37226f88f7 100644 --- a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc +++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc @@ -52,7 +52,7 @@ constexpr gfx::Insets kExpandButtonBorderInsets{4, 8}; // Constant for DropdownButton const int kDropdownButtonIconSize = 15; -const int kDropdownButtonBackgroundRadius = 10; +const int kDropdownButtonBackgroundRadius = 15; constexpr gfx::Insets kDropdownButtonBorderInsets{4}; // The maximum number of audio devices to count when recording the @@ -507,6 +507,12 @@ bool MediaItemUIDeviceSelectorView::IsDeviceSelectorExpanded() { return is_expanded_; } +bool MediaItemUIDeviceSelectorView::OnMousePressed( + const ui::MouseEvent& event) { + // Stop the mouse click event from bubbling to parent views. + return true; +} + void MediaItemUIDeviceSelectorView::AddObserver( MediaItemUIDeviceSelectorObserver* observer) { observers_.AddObserver(observer); diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h index 384ed0e4c286e1..b6b609ab376da7 100644 --- a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h +++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h @@ -87,6 +87,9 @@ class MediaItemUIDeviceSelectorView void OnDropdownButtonClicked() override; bool IsDeviceSelectorExpanded() override; + // views::View + bool OnMousePressed(const ui::MouseEvent& event) override; + void AddObserver(MediaItemUIDeviceSelectorObserver* observer); views::Label* GetExpandDeviceSelectorLabelForTesting(); diff --git a/chrome/browser/ui/views/lens/lens_side_panel_controller_unittest.cc b/chrome/browser/ui/views/lens/lens_side_panel_controller_unittest.cc index 1a82b6b1f13a19..d46e5f87518ad0 100644 --- a/chrome/browser/ui/views/lens/lens_side_panel_controller_unittest.cc +++ b/chrome/browser/ui/views/lens/lens_side_panel_controller_unittest.cc @@ -29,9 +29,11 @@ class LensSidePanelControllerTest : public TestWithBrowserView { public: void SetUp() override { base::test::ScopedFeatureList features; - features.InitWithFeatures( - {features::kLensRegionSearch, ::features::kSidePanel, - reading_list::switches::kReadLater}, + features.InitWithFeaturesAndParameters( + {{features::kLensRegionSearch, + {{"region-search-enable-side-panel", "true"}}}, + {::features::kSidePanel, {}}, + {reading_list::switches::kReadLater, {}}}, {}); TestWithBrowserView::SetUp(); // Create the lens side panel controller in BrowserView. diff --git a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc index efa86e5aaa7bc4..348f26f13c29d4 100644 --- a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc +++ b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc @@ -113,6 +113,8 @@ void ContentSettingImageView::Update() { if (content_setting_image_model_->ShouldNotifyAccessibility(web_contents)) { GetViewAccessibility().OverrideName(l10n_util::GetStringUTF16( content_setting_image_model_->explanatory_string_id())); + GetViewAccessibility().OverrideDescription( + l10n_util::GetStringUTF16(IDS_A11Y_OMNIBOX_CHIP_HINT)); NotifyAccessibilityEvent(ax::mojom::Event::kAlert, true); content_setting_image_model_->AccessibilityWasNotified(web_contents); } diff --git a/chrome/browser/ui/web_applications/system_web_app_delegate_ui_impl.cc b/chrome/browser/ui/web_applications/system_web_app_delegate_ui_impl.cc index 83a50ac4e91954..e278eefc4d0da8 100644 --- a/chrome/browser/ui/web_applications/system_web_app_delegate_ui_impl.cc +++ b/chrome/browser/ui/web_applications/system_web_app_delegate_ui_impl.cc @@ -20,33 +20,6 @@ namespace web_app { -namespace { - -base::FilePath GetLaunchDirectory( - bool should_include_launch_directory, - const std::vector& launch_files) { - if (!should_include_launch_directory) - return base::FilePath(); - - // |launch_dir| is the directory that contains all |launch_files|. If - // there are no launch files, launch_dir is empty. - base::FilePath launch_dir = - launch_files.size() ? launch_files[0].DirName() : base::FilePath(); - -#if DCHECK_IS_ON() - // Check |launch_files| all come from the same directory. - if (!launch_dir.empty()) { - for (auto path : launch_files) { - DCHECK_EQ(launch_dir, path.DirName()); - } - } -#endif - - return launch_dir; -} - -} // namespace - Browser* SystemWebAppDelegate::LaunchAndNavigateSystemWebApp( Profile* profile, WebAppProvider* provider, @@ -105,8 +78,7 @@ Browser* SystemWebAppDelegate::LaunchAndNavigateSystemWebApp( if (provider->os_integration_manager().IsFileHandlingAPIAvailable( params.app_id)) { GURL app_scope = provider->registrar().GetAppScope(params.app_id); - base::FilePath launch_dir = - GetLaunchDirectory(ShouldIncludeLaunchDirectory(), params.launch_files); + base::FilePath launch_dir = GetLaunchDirectory(params); if (!launch_dir.empty() || !params.launch_files.empty()) { web_launch::WebLaunchFilesHelper::EnqueueLaunchParams( diff --git a/chrome/browser/ui/webui/access_code_cast/access_code_cast_ui.cc b/chrome/browser/ui/webui/access_code_cast/access_code_cast_ui.cc index 89677d05ad9b67..0a9d9ddd7b9965 100644 --- a/chrome/browser/ui/webui/access_code_cast/access_code_cast_ui.cc +++ b/chrome/browser/ui/webui/access_code_cast/access_code_cast_ui.cc @@ -118,6 +118,11 @@ AccessCodeCastUI::AccessCodeCastUI(content::WebUI* web_ui) {"cast", IDS_ACCESS_CODE_CAST_CAST}, {"close", IDS_CLOSE}, {"dialogTitle", IDS_ACCESS_CODE_CAST_DIALOG_TITLE}, + {"errorAccessCode", IDS_ACCESS_CODE_CAST_ERROR_ACCESS_CODE}, + {"errorNetwork", IDS_ACCESS_CODE_CAST_ERROR_NETWORK}, + {"errorPermission", IDS_ACCESS_CODE_CAST_ERROR_PERMISSION}, + {"errorTooManyRequests", IDS_ACCESS_CODE_CAST_ERROR_TOO_MANY_REQUESTS}, + {"errorUnknown", IDS_ACCESS_CODE_CAST_ERROR_UNKNOWN}, {"useCamera", IDS_ACCESS_CODE_CAST_USE_CAMERA}, }; diff --git a/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc b/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc index b7739d7a5d9073..7885bbd56e6275 100644 --- a/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc +++ b/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc @@ -26,6 +26,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source) { IDS_BLUETOOTH_PAIRING_PAIRING_AVAILABLE_DEVICES}, {"bluetoothNoAvailableDevices", IDS_BLUETOOTH_PAIRING_PAIRING_NO_AVAILABLE_DEVICES}, + {"bluetoothDisabled", IDS_BLUETOOTH_PAIRING_PAIRING_BLUETOOTH_DISABLED}, {"bluetoothAccept", IDS_BLUETOOTH_PAIRING_ACCEPT_PASSKEY}, {"bluetoothEnterKey", IDS_BLUETOOTH_PAIRING_ENTER_KEY}, {"bluetoothPair", IDS_BLUETOOTH_PAIRING_PAIR}, diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_handler.h b/chrome/browser/ui/webui/settings/chromeos/internet_handler.h index 80862b2d95bac4..52c567b150a342 100644 --- a/chrome/browser/ui/webui/settings/chromeos/internet_handler.h +++ b/chrome/browser/ui/webui/settings/chromeos/internet_handler.h @@ -15,10 +15,6 @@ class Profile; namespace chromeos { -namespace tether { -class GmsCoreNotificationsStateTracker; -} // namespace tether - namespace settings { // Chrome OS Internet settings page UI handler. diff --git a/chrome/browser/web_applications/app_registrar_observer.h b/chrome/browser/web_applications/app_registrar_observer.h index 9f3fa241d709c3..fdf1a29693e1cc 100644 --- a/chrome/browser/web_applications/app_registrar_observer.h +++ b/chrome/browser/web_applications/app_registrar_observer.h @@ -55,6 +55,10 @@ class AppRegistrarObserver : public base::CheckedObserver { // a given protocol. virtual void OnWebAppProtocolSettingsChanged() {} + // Called after the app's access to the File Handling API has changed, e.g. by + // a user selecting "always allow" in the prompt or after a policy update. + virtual void OnWebAppFileHandlerApprovalStateChanged(const AppId& app_id) {} + virtual void OnWebAppLocallyInstalledStateChanged(const AppId& app_id, bool is_locally_installed) { } diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.cc b/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.cc index 0bee03515d9392..6735e169827760 100644 --- a/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.cc +++ b/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.cc @@ -54,8 +54,9 @@ bool SystemWebAppDelegate::ShouldShowNewWindowMenuOption() const { return false; } -bool SystemWebAppDelegate::ShouldIncludeLaunchDirectory() const { - return false; +base::FilePath SystemWebAppDelegate::GetLaunchDirectory( + const apps::AppLaunchParams& params) const { + return base::FilePath(); } std::vector SystemWebAppDelegate::GetAdditionalSearchTerms() const { diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h b/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h index ff061c8bfec069..6360114e272e5d 100644 --- a/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h +++ b/chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h @@ -86,9 +86,11 @@ class SystemWebAppDelegate { // ShouldReuseExistingWindow() should return false at the same time. virtual bool ShouldShowNewWindowMenuOption() const; - // If true, when the app is launched through the File Handling Web API, we - // will include the file's directory in window.launchQueue as the first value. - virtual bool ShouldIncludeLaunchDirectory() const; + // Called when the app is launched with `params`. If the returned value is + // non-empty, it will be passed to the page as a FileSystemDirectoryHandle + // pre-pended to the `launchParams` list. + virtual base::FilePath GetLaunchDirectory( + const apps::AppLaunchParams& params) const; // Map from origin to enabled origin trial names for this app. For example, // "chrome://sample-web-app/" to ["Frobulate"]. If set, we will enable the @@ -176,10 +178,14 @@ class SystemWebAppDelegate { virtual bool IsUrlInSystemAppScope(const GURL& url) const; protected: + Profile* profile() const { return profile_; } + + // These should all be private. See + // https://google.github.io/styleguide/cppguide.html#Access_Control SystemAppType type_; std::string internal_name_; GURL install_url_; - raw_ptr profile_; + raw_ptr profile_; OriginTrialsMap origin_trials_map_; }; diff --git a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc index 7cc452ecebbfde..7f8a20c9136762 100644 --- a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc +++ b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.cc @@ -115,8 +115,13 @@ bool UnittestingSystemAppDelegate::ShouldReuseExistingWindow() const { bool UnittestingSystemAppDelegate::ShouldShowNewWindowMenuOption() const { return show_new_window_menu_option_; } -bool UnittestingSystemAppDelegate::ShouldIncludeLaunchDirectory() const { - return include_launch_directory_; +base::FilePath UnittestingSystemAppDelegate::GetLaunchDirectory( + const apps::AppLaunchParams& params) const { + // When set to include a launch directory, use the directory of the first + // file. + return include_launch_directory_ && !params.launch_files.empty() + ? params.launch_files[0].DirName() + : base::FilePath(); } std::vector UnittestingSystemAppDelegate::GetAdditionalSearchTerms() diff --git a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.h b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.h index 6491a3b17847ae..d46293a029367d 100644 --- a/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.h +++ b/chrome/browser/web_applications/system_web_apps/test/test_system_web_app_installation.h @@ -35,7 +35,8 @@ class UnittestingSystemAppDelegate : public SystemWebAppDelegate { gfx::Size GetMinimumWindowSize() const override; bool ShouldReuseExistingWindow() const override; bool ShouldShowNewWindowMenuOption() const override; - bool ShouldIncludeLaunchDirectory() const override; + base::FilePath GetLaunchDirectory( + const apps::AppLaunchParams& params) const override; std::vector GetAdditionalSearchTerms() const override; bool ShouldShowInLauncher() const override; bool ShouldShowInSearch() const override; diff --git a/chrome/browser/web_applications/web_app_registrar.cc b/chrome/browser/web_applications/web_app_registrar.cc index a3ce81c151e1d5..a2909e4e13a04d 100644 --- a/chrome/browser/web_applications/web_app_registrar.cc +++ b/chrome/browser/web_applications/web_app_registrar.cc @@ -77,6 +77,12 @@ void WebAppRegistrar::NotifyWebAppProtocolSettingsChanged() { observer.OnWebAppProtocolSettingsChanged(); } +void WebAppRegistrar::NotifyWebAppFileHandlerApprovalStateChanged( + const AppId& app_id) { + for (AppRegistrarObserver& observer : observers_) + observer.OnWebAppFileHandlerApprovalStateChanged(app_id); +} + void WebAppRegistrar::NotifyWebAppInstalled(const AppId& app_id) { for (AppRegistrarObserver& observer : observers_) observer.OnWebAppInstalled(app_id); diff --git a/chrome/browser/web_applications/web_app_registrar.h b/chrome/browser/web_applications/web_app_registrar.h index b3ac6b5c92f843..4d845bfbb8926e 100644 --- a/chrome/browser/web_applications/web_app_registrar.h +++ b/chrome/browser/web_applications/web_app_registrar.h @@ -252,6 +252,7 @@ class WebAppRegistrar : public ProfileManagerObserver { void NotifyWebAppManifestUpdated(const AppId& app_id, base::StringPiece old_name); void NotifyWebAppProtocolSettingsChanged(); + void NotifyWebAppFileHandlerApprovalStateChanged(const AppId& app_id); void NotifyWebAppsWillBeUpdatedFromSync( const std::vector& new_apps_state); void NotifyWebAppUninstalled(const AppId& app_id); diff --git a/chrome/browser/web_applications/web_app_sync_bridge.cc b/chrome/browser/web_applications/web_app_sync_bridge.cc index c47e5d09443fe5..03380919937b7b 100644 --- a/chrome/browser/web_applications/web_app_sync_bridge.cc +++ b/chrome/browser/web_applications/web_app_sync_bridge.cc @@ -425,10 +425,11 @@ void WebAppSyncBridge::RemoveDisallowedLaunchProtocol( void WebAppSyncBridge::SetAppFileHandlerApprovalState(const AppId& app_id, ApiApprovalState state) { - ScopedRegistryUpdate(this)->UpdateApp(app_id)->SetFileHandlerApprovalState( - state); - // TODO(estade): when needed for updating UIs, call - // NotifyWebAppFileHandlerApprovalStateChanged() here. + { + ScopedRegistryUpdate(this)->UpdateApp(app_id)->SetFileHandlerApprovalState( + state); + } + registrar_->NotifyWebAppFileHandlerApprovalStateChanged(app_id); } void WebAppSyncBridge::CheckRegistryUpdateData( diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 5fc9bc8ecdef1a..343a04d5614e04 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt @@ -1 +1 @@ -chrome-linux-main-1639504726-00818556d27ae6f0ca222d22829579a009d0b826.profdata +chrome-linux-main-1639526239-a0d881f0048d045d354f668c449f9cc1d5fb2651.profdata diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index ce96eb931e7452..d832a87f3b41ec 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt @@ -1 +1 @@ -chrome-mac-main-1639504726-fb9e43adc0e4760052265cf82e7db19c61befe33.profdata +chrome-mac-main-1639526239-f999c2751396f2d955909c0c12681befd8319247.profdata diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 37e8b846a5f69b..4500bf1e165218 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt @@ -1 +1 @@ -chrome-win32-main-1639504726-e7cdc104acb454455e958b92ea4ea0702a57e906.profdata +chrome-win32-main-1639515544-3861e0300d09429621942ad80a47946e7c2f9a70.profdata diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 48ccf98e16857e..1749f02dec1457 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt @@ -1 +1 @@ -chrome-win64-main-1639504726-a5cec93f623091d76267247a1ff888db818a2b02.profdata +chrome-win64-main-1639526239-4060e250163f1a3b9427ad3b4869e887f9a26e9c.profdata diff --git a/chrome/common/media/cdm_registration.cc b/chrome/common/media/cdm_registration.cc index 33b52d2cfd9f73..2edc662610e78c 100644 --- a/chrome/common/media/cdm_registration.cc +++ b/chrome/common/media/cdm_registration.cc @@ -11,7 +11,9 @@ #include "base/path_service.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" +#include "content/public/common/cdm_info.h" #include "media/cdm/cdm_capability.h" +#include "media/cdm/cdm_type.h" #include "third_party/widevine/cdm/buildflags.h" #if BUILDFLAG(ENABLE_LIBRARY_CDMS) @@ -57,7 +59,7 @@ std::unique_ptr CreateWidevineCdmInfo( return std::make_unique( kWidevineKeySystem, Robustness::kSoftwareSecure, std::move(capability), /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName, - kWidevineCdmType, version, cdm_library_path, kWidevineCdmFileSystemId); + kWidevineCdmType, version, cdm_library_path); } #if !BUILDFLAG(IS_CHROMEOS_ASH) @@ -282,14 +284,9 @@ void AddHardwareSecureWidevine(std::vector* cdms) { capability.session_types.insert(media::CdmSessionType::kTemporary); capability.session_types.insert(media::CdmSessionType::kPersistentLicense); - // TODO(crbug.com/1231162): This corresponds to `kChromeOsCdmFileSystemId` in - // content/browser/media/media_interface_proxy.cc. Consolidate these once an - // enum of CDM types is created. - const base::Token kChromeOsCdmType{0xa6ecd3fc63b3ded2ull, - 0x9306d3270227ce5full}; - cdms->push_back(content::CdmInfo(kWidevineKeySystem, - Robustness::kHardwareSecure, - std::move(capability), kChromeOsCdmType)); + cdms->push_back( + content::CdmInfo(kWidevineKeySystem, Robustness::kHardwareSecure, + std::move(capability), content::kChromeOsCdmType)); #endif // BUILDFLAG(USE_CHROMEOS_PROTECTED_MEDIA) } @@ -331,13 +328,12 @@ void AddExternalClearKey(std::vector* cdms) { Robustness::kSoftwareSecure, capability, /*supports_sub_key_systems=*/false, media::kClearKeyCdmDisplayName, media::kClearKeyCdmDifferentCdmType, base::Version("0.1.0.0"), - clear_key_cdm_path, media::kClearKeyCdmFileSystemId)); + clear_key_cdm_path)); cdms->push_back(content::CdmInfo( kExternalClearKeyKeySystem, Robustness::kSoftwareSecure, capability, /*supports_sub_key_systems=*/true, media::kClearKeyCdmDisplayName, - media::kClearKeyCdmType, base::Version("0.1.0.0"), clear_key_cdm_path, - media::kClearKeyCdmFileSystemId)); + media::kClearKeyCdmType, base::Version("0.1.0.0"), clear_key_cdm_path)); } #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) diff --git a/chrome/test/data/webui/access_code_cast/access_code_cast_browsertest.js b/chrome/test/data/webui/access_code_cast/access_code_cast_browsertest.js index 8af144d1ba2ec2..54181b87f722ef 100644 --- a/chrome/test/data/webui/access_code_cast/access_code_cast_browsertest.js +++ b/chrome/test/data/webui/access_code_cast/access_code_cast_browsertest.js @@ -59,3 +59,19 @@ var AccessCodeCastCodeInputElementTest = class extends AccessCodeCastBrowserTest TEST_F('AccessCodeCastCodeInputElementTest', 'All', function() { mocha.run(); }); + +// eslint-disable-next-line no-var +var AccessCodeCastErrorMessageElementTest = class extends AccessCodeCastBrowserTest { + /** @override */ + get browsePreload() { + return 'chrome://access-code-cast/test_loader.html?module=access_code_cast/error_message_test.js'; + } +}; + +/** + * This browsertest acts as a thin wrapper to run the unit tests found + * at code_input_test.js + */ +TEST_F('AccessCodeCastErrorMessageElementTest', 'All', function() { + mocha.run(); +}); diff --git a/chrome/test/data/webui/access_code_cast/access_code_cast_test.js b/chrome/test/data/webui/access_code_cast/access_code_cast_test.js index 354d539980ee89..9dbb1b765c30a1 100644 --- a/chrome/test/data/webui/access_code_cast/access_code_cast_test.js +++ b/chrome/test/data/webui/access_code_cast/access_code_cast_test.js @@ -162,4 +162,58 @@ suite('AccessCodeCastAppTest', () => { assertFalse(visited); } ); + + test('addSinkAndCast surfaces errors', async () => { + let testProxy = createTestProxy( + AddSinkResultCode.UNKNOWN_ERROR, + RouteRequestResultCode.OK, + () => {} + ); + BrowserProxy.setInstance(testProxy); + app.setAccessCodeForTest('qwerty'); + + assertEquals(0, app.$.errorMessage.getMessageCode()); + await app.addSinkAndCast(); + assertEquals(1, app.$.errorMessage.getMessageCode()); + + testProxy = createTestProxy( + AddSinkResultCode.INVALID_ACCESS_CODE, + RouteRequestResultCode.OK, + () => {} + ); + BrowserProxy.setInstance(testProxy); + + await app.addSinkAndCast(); + assertEquals(2, app.$.errorMessage.getMessageCode()); + + testProxy = createTestProxy( + AddSinkResultCode.SERVICE_NOT_PRESENT, + RouteRequestResultCode.OK, + () => {} + ); + BrowserProxy.setInstance(testProxy); + + await app.addSinkAndCast(); + assertEquals(3, app.$.errorMessage.getMessageCode()); + + testProxy = createTestProxy( + AddSinkResultCode.AUTH_ERROR, + RouteRequestResultCode.OK, + () => {} + ); + BrowserProxy.setInstance(testProxy); + + await app.addSinkAndCast(); + assertEquals(4, app.$.errorMessage.getMessageCode()); + + testProxy = createTestProxy( + AddSinkResultCode.TOO_MANY_REQUESTS, + RouteRequestResultCode.OK, + () => {} + ); + BrowserProxy.setInstance(testProxy); + + await app.addSinkAndCast(); + assertEquals(5, app.$.errorMessage.getMessageCode()); + }); }); diff --git a/chrome/test/data/webui/access_code_cast/error_message_test.js b/chrome/test/data/webui/access_code_cast/error_message_test.js new file mode 100644 index 00000000000000..44c34059560d16 --- /dev/null +++ b/chrome/test/data/webui/access_code_cast/error_message_test.js @@ -0,0 +1,88 @@ +// Copyright 2021 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://access-code-cast/error_message/error_message.js'; + +import {AddSinkResultCode} from 'chrome://access-code-cast/access_code_cast.mojom-webui.js'; +import {RouteRequestResultCode} from 'chrome://access-code-cast/route_request_result_code.mojom-webui.js'; + +suite('ErrorMessageElementTest', () => { + /** @type {!ErrorMessageElement} */ + let c2cErrorMessage; + + setup(() => { + PolymerTest.clearBody(); + + c2cErrorMessage = document.createElement('c2c-error-message'); + document.body.appendChild(c2cErrorMessage); + }); + + test('setAddSinkError', () => { + c2cErrorMessage.setNoError(); + + const testValues = [ + {addResult: AddSinkResultCode.UNKNOWN_ERROR, expectedMessage: 1}, + {addResult: AddSinkResultCode.OK, expectedMessage: 0}, + {addResult: AddSinkResultCode.AUTH_ERROR, expectedMessage: 4}, + { + addResult: AddSinkResultCode.HTTP_RESPONSE_CODE_ERROR, + expectedMessage: 3 + }, + {addResult: AddSinkResultCode.RESPONSE_MALFORMED, expectedMessage: 3}, + {addResult: AddSinkResultCode.EMPTY_RESPONSE, expectedMessage: 3}, + {addResult: AddSinkResultCode.INVALID_ACCESS_CODE, expectedMessage: 2}, + {addResult: AddSinkResultCode.ACCESS_CODE_NOT_FOUND, expectedMessage: 2}, + {addResult: AddSinkResultCode.TOO_MANY_REQUESTS, expectedMessage: 5}, + {addResult: AddSinkResultCode.SERVICE_NOT_PRESENT, expectedMessage: 3}, + {addResult: AddSinkResultCode.SERVER_ERROR, expectedMessage: 3}, + {addResult: AddSinkResultCode.SINK_CREATION_ERROR, expectedMessage: 1}, + ]; + + for (let i = 0; i < testValues.length; i++) { + c2cErrorMessage.setAddSinkError(testValues[i].addResult); + assertEquals(testValues[i].expectedMessage, c2cErrorMessage.messageCode); + c2cErrorMessage.setNoError(); + } + }); + + test('setCastError', () => { + c2cErrorMessage.setNoError(); + + const testValues = [ + {castResult: RouteRequestResultCode.UNKNOWN_ERROR, expectedMessage: 1}, + {castResult: RouteRequestResultCode.OK, expectedMessage: 0}, + {castResult: RouteRequestResultCode.TIMED_OUT, expectedMessage: 3}, + {castResult: RouteRequestResultCode.ROUTE_NOT_FOUND, expectedMessage: 3}, + {castResult: RouteRequestResultCode.SINK_NOT_FOUND, expectedMessage: 3}, + {castResult: RouteRequestResultCode.INVALID_ORIGIN, expectedMessage: 1}, + { + castResult: RouteRequestResultCode.OFF_THE_RECORD_MISMATCH, + expectedMessage: 1 + }, + { + castResult: RouteRequestResultCode.NO_SUPPORTED_PROVIDER, + expectedMessage: 1 + }, + {castResult: RouteRequestResultCode.CANCELLED, expectedMessage: 1}, + { + castResult: RouteRequestResultCode.ROUTE_ALREADY_EXISTS, + expectedMessage: 1 + }, + { + castResult: RouteRequestResultCode.DESKTOP_PICKER_FAILED, + expectedMessage: 1 + }, + { + castResult: RouteRequestResultCode.ROUTE_ALREADY_TERMINATED, + expectedMessage: 1 + }, + ]; + + for (let i = 0; i < testValues.length; i++) { + c2cErrorMessage.setCastError(testValues[i].castResult); + assertEquals(testValues[i].expectedMessage, c2cErrorMessage.messageCode); + c2cErrorMessage.setNoError(); + } + }); +}); \ No newline at end of file diff --git a/chrome/test/data/webui/chromeos/shimless_rma/reimaging_calibration_failed_page_test.js b/chrome/test/data/webui/chromeos/shimless_rma/reimaging_calibration_failed_page_test.js index aaf02b6e44cb83..b4aad6197ce6c7 100644 --- a/chrome/test/data/webui/chromeos/shimless_rma/reimaging_calibration_failed_page_test.js +++ b/chrome/test/data/webui/chromeos/shimless_rma/reimaging_calibration_failed_page_test.js @@ -8,7 +8,7 @@ import {FakeShimlessRmaService} from 'chrome://shimless-rma/fake_shimless_rma_se import {setShimlessRmaServiceForTesting} from 'chrome://shimless-rma/mojo_interface_provider.js'; import {ReimagingCalibrationFailedPage} from 'chrome://shimless-rma/reimaging_calibration_failed_page.js'; import {ShimlessRma} from 'chrome://shimless-rma/shimless_rma.js'; -import {CalibrationComponentStatus, CalibrationStatus} from 'chrome://shimless-rma/shimless_rma_types.js'; +import {CalibrationComponentStatus, CalibrationStatus, ComponentType} from 'chrome://shimless-rma/shimless_rma_types.js'; import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js'; import {flushTasks} from '../../test_util.js'; @@ -73,7 +73,6 @@ export function reimagingCalibrationFailedPageTest() { function clickComponentCameraToggle() { const cameraComponent = component.shadowRoot.querySelector('#componentCamera'); - assertFalse(cameraComponent.disabled); cameraComponent.click(); return flushTasks(); } @@ -96,39 +95,6 @@ export function reimagingCalibrationFailedPageTest() { return component.getComponentsList_(); } - /** - * @param {!Array} components - * @return {!Array} - */ - function getExpectedComponentsList(components) { - /** @type {!Array} */ - let expectedComponents = []; - components.forEach(componentStatus => { - let status = componentStatus.status; - if (status === CalibrationStatus.kCalibrationFailed) { - status = CalibrationStatus.kCalibrationWaiting; - } - expectedComponents.push({ - component: componentStatus.component, - status: status, - progress: 0.0 - }); - }); - return expectedComponents; - } - - /** - * @param {!Array} components - * @return {!Array} - */ - function getAllSkippedComponentsList(components) { - components.forEach(component => { - component.status = CalibrationStatus.kCalibrationSkip; - component.progress = 0.0; - }); - return components; - } - test('Initializes', async () => { await initializeCalibrationPage(fakeCalibrationComponents); @@ -144,48 +110,51 @@ export function reimagingCalibrationFailedPageTest() { const touchpadComponent = component.shadowRoot.querySelector('#componentTouchpad'); assertEquals('Camera', cameraComponent.componentName); - assertFalse(cameraComponent.disabled); - assertFalse(cameraComponent.skip); - assertFalse(cameraComponent.completed); + assertFalse(cameraComponent.checked); + assertFalse(cameraComponent.failed); assertEquals('Battery', batteryComponent.componentName); - assertTrue(batteryComponent.disabled); - assertFalse(batteryComponent.skip); - assertTrue(batteryComponent.completed); + assertFalse(batteryComponent.checked); + assertFalse(batteryComponent.failed); assertEquals( 'Base Accelerometer', baseAccelerometerComponent.componentName); - assertTrue(baseAccelerometerComponent.disabled); - assertFalse(baseAccelerometerComponent.skip); - assertFalse(baseAccelerometerComponent.completed); + assertFalse(baseAccelerometerComponent.checked); + assertFalse(baseAccelerometerComponent.failed); assertEquals('Lid Accelerometer', lidAccelerometerComponent.componentName); - assertFalse(lidAccelerometerComponent.disabled); - assertFalse(lidAccelerometerComponent.skip); - assertFalse(lidAccelerometerComponent.completed); + assertFalse(lidAccelerometerComponent.checked); + assertTrue(lidAccelerometerComponent.failed); assertEquals('Touchpad', touchpadComponent.componentName); - assertFalse(touchpadComponent.disabled); - assertTrue(touchpadComponent.skip); - assertFalse(touchpadComponent.completed); + assertFalse(touchpadComponent.checked); + assertFalse(touchpadComponent.failed); }); test('ToggleComponent', async () => { await initializeCalibrationPage(fakeCalibrationComponents); + getComponentsList().forEach( + component => + assertEquals(CalibrationStatus.kCalibrationSkip, component.status)); + + // Click the camera button to check it. + await clickComponentCameraToggle(); + // Camera should be the first entry in the list. + assertEquals( + CalibrationStatus.kCalibrationWaiting, getComponentsList()[0].status); + + // Click the camera button to check it. await clickComponentCameraToggle(); - let expectedComponents = - getExpectedComponentsList(fakeCalibrationComponents); - let components = getComponentsList(); - assertNotEquals(expectedComponents, components); // Camera should be the first entry in the list. - expectedComponents[0].status = CalibrationStatus.kCalibrationSkip; - assertDeepEquals(expectedComponents, components); + assertEquals( + CalibrationStatus.kCalibrationSkip, getComponentsList()[0].status); }); test('NextButtonTriggersCalibrationComplete', async () => { const resolver = new PromiseResolver(); await initializeCalibrationPage(fakeCalibrationComponents); - let expectedComponents = - getAllSkippedComponentsList(fakeCalibrationComponents); let startCalibrationCalls = 0; service.startCalibration = (components) => { - assertDeepEquals(expectedComponents, components); + assertEquals(5, components.length); + components.forEach( + component => assertEquals( + CalibrationStatus.kCalibrationSkip, component.status)); startCalibrationCalls++; return resolver.promise; }; @@ -205,11 +174,21 @@ export function reimagingCalibrationFailedPageTest() { test('RetryButtonTriggersCalibration', async () => { const resolver = new PromiseResolver(); await initializeCalibrationPage(fakeCalibrationComponents); - let expectedComponents = - getExpectedComponentsList(fakeCalibrationComponents); + + getComponentsList().forEach( + component => + assertEquals(CalibrationStatus.kCalibrationSkip, component.status)); + await clickComponentCameraToggle(); + let startCalibrationCalls = 0; service.startCalibration = (components) => { - assertDeepEquals(expectedComponents, components); + assertEquals(5, components.length); + components.forEach( + component => assertEquals( + component.component === ComponentType.kCamera ? + CalibrationStatus.kCalibrationWaiting : + CalibrationStatus.kCalibrationSkip, + component.status)); startCalibrationCalls++; return resolver.promise; }; diff --git a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_device_selection_page_test.js b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_device_selection_page_test.js index ca199d07e467c4..b1c095b569397e 100644 --- a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_device_selection_page_test.js +++ b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_device_selection_page_test.js @@ -36,6 +36,7 @@ suite('CrComponentsBluetoothPairingDeviceSelectionPageTest', function() { deviceSelectionPage = /** @type {?SettingsBluetoothPairingDeviceSelectionPageElement} */ ( document.createElement('bluetooth-pairing-device-selection-page')); + deviceSelectionPage.isBluetoothEnabled = true; document.body.appendChild(deviceSelectionPage); flush(); @@ -65,6 +66,9 @@ suite('CrComponentsBluetoothPairingDeviceSelectionPageTest', function() { const getDeviceListItems = () => deviceSelectionPage.shadowRoot.querySelectorAll( 'bluetooth-pairing-device-item'); + const getBasePage = () => + deviceSelectionPage.shadowRoot.querySelector('bluetooth-base-page'); + assertTrue(getBasePage().showScanProgress); const learnMoreLink = deviceSelectionPage.shadowRoot.querySelector('localized-link'); @@ -116,5 +120,17 @@ suite('CrComponentsBluetoothPairingDeviceSelectionPageTest', function() { await flushAsync(); assertEquals( getDeviceListItems()[0].deviceItemState, DeviceItemState.PAIRING); + + // Disable Bluetooth. + deviceSelectionPage.isBluetoothEnabled = false; + await flushAsync(); + + // Scanning progress should be hidden and the 'Bluetooth disabled' message + // shown. + assertFalse(getBasePage().showScanProgress); + assertFalse(!!getDeviceList()); + assertEquals( + deviceSelectionPage.i18n('bluetoothDisabled'), + getDeviceListTitle().textContent.trim()); }); }); diff --git a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js index 971b4108c368d8..904afbfafe2c95 100644 --- a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js +++ b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js @@ -33,6 +33,8 @@ suite('CrComponentsBluetoothPairingUiTest', function() { setup(async function() { bluetoothConfig = new FakeBluetoothConfig(); + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kEnabled); setBluetoothConfigForTesting(bluetoothConfig); }); @@ -264,6 +266,7 @@ suite('CrComponentsBluetoothPairingUiTest', function() { assertTrue(!!getSpinnerPage()); assertFalse(!!getDeviceSelectionPage()); await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); // Once we begin pairing we should still be in the spinner page. assertTrue(!!getSpinnerPage()); @@ -638,7 +641,7 @@ suite('CrComponentsBluetoothPairingUiTest', function() { // Simulate pressing 'Confirm'. let event = new CustomEvent('confirm-code'); getConfirmCodePage().dispatchEvent(event); - await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); // Spinner should be shown. assertTrue(!!getSpinnerPage()); @@ -669,6 +672,7 @@ suite('CrComponentsBluetoothPairingUiTest', function() { await simulateCancelation(); deviceHandler.completePairDevice(/*success=*/ false); await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); // The device selection page should be shown. assertTrue(!!getDeviceSelectionPage()); @@ -720,6 +724,9 @@ suite('CrComponentsBluetoothPairingUiTest', function() { /*opt_audioCapability=*/ mojom.AudioOutputCapability.kCapableOfAudioOutput, /*opt_deviceType=*/ mojom.DeviceType.kMouse); + bluetoothConfig.appendToDiscoveredDeviceList([device.deviceProperties]); + await flushTasks(); + const pairingCode = '123456'; // Try pairing. @@ -762,4 +769,102 @@ suite('CrComponentsBluetoothPairingUiTest', function() { assertTrue(!!getDeviceSelectionPage()); assertFalse(!!getDeviceSelectionPage().failedPairingDeviceId); }); + + test('Disable Bluetooth during pairing', async function() { + await init(); + assertTrue(!!getDeviceSelectionPage()); + assertTrue(getDeviceSelectionPage().isBluetoothEnabled); + + const deviceId = '123456'; + const device = createDefaultBluetoothDevice( + deviceId, + /*publicName=*/ 'BeatsX', + /*connectionState=*/ + chromeos.bluetoothConfig.mojom.DeviceConnectionState.kConnected, + /*opt_nickname=*/ 'device1', + /*opt_audioCapability=*/ + mojom.AudioOutputCapability.kCapableOfAudioOutput, + /*opt_deviceType=*/ mojom.DeviceType.kMouse); + bluetoothConfig.appendToDiscoveredDeviceList([device.deviceProperties]); + await flushTasks(); + + // Disable Bluetooth. + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kDisabled); + await flushTasks(); + + // This should propagate to the device selection page. + assertFalse(getDeviceSelectionPage().isBluetoothEnabled); + + // Re-enable and select the device. + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kEnabled); + await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); + + assertTrue(getDeviceSelectionPage().isBluetoothEnabled); + await selectDevice(device.deviceProperties); + await flushTasks(); + + const pairingCode = '123456'; + let deviceHandler = bluetoothConfig.getLastCreatedPairingHandler(); + deviceHandler.requireAuthentication( + PairingAuthType.CONFIRM_PASSKEY, pairingCode); + await flushTasks(); + + // Confirmation code page should be shown. + assertTrue(!!getConfirmCodePage()); + assertEquals(getConfirmCodePage().code, pairingCode); + + // Disable Bluetooth. + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kDisabled); + await flushTasks(); + + // We should be back to the device selection page again. + assertFalse(!!getConfirmCodePage()); + assertTrue(!!getDeviceSelectionPage()); + assertFalse(getDeviceSelectionPage().isBluetoothEnabled); + + // Re-enable. + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kEnabled); + await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); + + assertTrue(getDeviceSelectionPage().isBluetoothEnabled); + + // Error text shouldn't be showing because this pairing failed due to + // Bluetooth disabling. + assertEquals(getDeviceSelectionPage().failedPairingDeviceId, ''); + + // Select the device. + await selectDevice(device.deviceProperties); + await flushTasks(); + + // Simulate pairing failing. + deviceHandler = bluetoothConfig.getLastCreatedPairingHandler(); + deviceHandler.completePairDevice(/*success=*/ false); + await flushTasks(); + await waitAfterNextRender(bluetoothPairingUi); + + // Error text should be showing. + assertTrue(!!getDeviceSelectionPage()); + assertEquals(getDeviceSelectionPage().failedPairingDeviceId, deviceId); + + // Disable and re-enable. + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kDisabled); + await flushTasks(); + + assertFalse(getDeviceSelectionPage().isBluetoothEnabled); + bluetoothConfig.setSystemState( + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kEnabled); + await flushTasks(); + + assertTrue(getDeviceSelectionPage().isBluetoothEnabled); + + // Error text should no longer be showing. + assertEquals(getDeviceSelectionPage().failedPairingDeviceId, ''); + }); }); diff --git a/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_bluetooth_config.js b/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_bluetooth_config.js index 9ba121073263d5..65204deec2c91d 100644 --- a/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_bluetooth_config.js +++ b/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_bluetooth_config.js @@ -106,6 +106,8 @@ export class FakeBluetoothConfig { this.pendingForgetRequest_ = null; /** + * The last pairing handler created. If defined, indicates discovery in is + * progress. If null, indicates no discovery is occurring. * @private {?FakeDevicePairingHandler} */ this.lastPairingHandler_ = null; @@ -236,6 +238,21 @@ export class FakeBluetoothConfig { */ (Object.assign({}, this.systemProperties_)); this.notifyObserversPropertiesUpdated_(); + + // If discovery is in progress and Bluetooth is no longer enabled, stop + // discovery and any pairing that may be occurring. + if (!this.lastPairingHandler_) { + return; + } + + if (systemState === + chromeos.bluetoothConfig.mojom.BluetoothSystemState.kEnabled) { + return; + } + + this.lastPairingHandler_.rejectPairDevice(); + this.lastPairingHandler_ = null; + this.notifyDiscoveryStopped_(); } /** @@ -442,6 +459,14 @@ export class FakeBluetoothConfig { devicePairingHandlerReciever.$.bindNewPipeAndPassRemote()); } + /** + * @private + * Notifies the last delegate that device discovery has stopped. + */ + notifyDiscoveryStopped_() { + this.lastDiscoveryDelegate_.onBluetoothDiscoveryStopped(); + } + /** * @return {?FakeDevicePairingHandler} */ diff --git a/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_device_pairing_handler.js b/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_device_pairing_handler.js index e8fe62229ce55d..4ff6cbe17ef4aa 100644 --- a/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_device_pairing_handler.js +++ b/chrome/test/data/webui/cr_components/chromeos/bluetooth/fake_device_pairing_handler.js @@ -28,6 +28,11 @@ export class FakeDevicePairingHandler { */ this.pairDeviceCallback_ = null; + /** + * @private {?function()} + */ + this.pairDeviceRejectCallback_ = null; + /** @private {number} */ this.pairDeviceCalledCount_ = 0; @@ -47,6 +52,7 @@ export class FakeDevicePairingHandler { this.devicePairingDelegate_ = delegate; let promise = new Promise((resolve, reject) => { this.pairDeviceCallback_ = resolve; + this.pairDeviceRejectCallback_ = reject; }); return promise; } @@ -145,6 +151,16 @@ export class FakeDevicePairingHandler { }); } + /** + * Simulates pairing failing due to an exception, such as the Mojo pipe + * disconnecting. + */ + rejectPairDevice() { + if (this.pairDeviceRejectCallback_) { + this.pairDeviceRejectCallback_(); + } + } + /** * @return {number} */ diff --git a/chrome/updater/mac/keystone/ksadmin.mm b/chrome/updater/mac/keystone/ksadmin.mm index 030d57ea4d4182..312367ee3d74a7 100644 --- a/chrome/updater/mac/keystone/ksadmin.mm +++ b/chrome/updater/mac/keystone/ksadmin.mm @@ -7,7 +7,6 @@ #include #include -#include #include #include #include @@ -17,6 +16,7 @@ #include "base/callback.h" #include "base/command_line.h" #include "base/containers/contains.h" +#include "base/containers/flat_map.h" #include "base/files/file_path.h" #include "base/logging.h" #include "base/memory/scoped_refptr.h" @@ -52,6 +52,7 @@ constexpr char kCommandSystemStore[] = "system-store"; constexpr char kCommandUserInitiated[] = "user-initiated"; constexpr char kCommandUserStore[] = "user-store"; +constexpr char kCommandStorePath[] = "store"; constexpr char kCommandBrandKey[] = "brand-key"; constexpr char kCommandBrandPath[] = "brand-path"; constexpr char kCommandProductId[] = "productid"; @@ -68,8 +69,9 @@ // converts an argv set into a map of switch name to switch value; for example // `ksadmin --register --productid com.goog.chrome -v 1.2.3.4 e` to // `{"register": "", "productid": "com.goog.chrome", "v": "1.2.3.4", "e": ""}`. -std::map ParseCommandLine(int argc, char* argv[]) { - std::map result; +base::flat_map ParseCommandLine(int argc, + char* argv[]) { + base::flat_map result; std::string last_arg; for (int i = 1; i < argc; ++i) { std::string arg(argv[i]); @@ -95,10 +97,10 @@ } bool HasSwitch(const std::string& arg, - const std::map& switches) { + const base::flat_map& switches) { if (base::Contains(switches, arg)) return true; - const static std::map> aliases = { + const static base::flat_map> aliases = { {kCommandDelete, {"d"}}, {kCommandInstall, {"i"}}, {kCommandList, {"l"}}, {kCommandKsadminVersion, {"k"}}, {kCommandPrintTag, {"G"}}, {kCommandPrintTickets, {"print", "p"}}, @@ -114,14 +116,47 @@ bool HasSwitch(const std::string& arg, return false; } -UpdaterScope Scope(const std::map& switches) { - return HasSwitch(kCommandSystemStore, switches) ? UpdaterScope::kSystem - : UpdaterScope::kUser; +std::string SwitchValue( + const std::string& arg, + const base::flat_map& switches) { + if (base::Contains(switches, arg)) + return switches.at(arg); + const static base::flat_map aliases = { + {kCommandBrandKey, "b"}, {kCommandBrandPath, "B"}, + {kCommandProductId, "P"}, {kCommandTag, "g"}, + {kCommandTagKey, "K"}, {kCommandTagPath, "H"}, + {kCommandVersion, "v"}, {kCommandVersionKey, "e"}, + {kCommandVersionPath, "a"}, {kCommandXCPath, "x"}, + {kCommandStorePath, {"s"}}, + }; + if (!base::Contains(aliases, arg)) + return ""; + const std::string& alias = aliases.at(arg); + return base::Contains(switches, alias) ? switches.at(alias) : ""; +} + +std::string KeystoneTicketStorePath(UpdaterScope scope) { + return GetKeystoneFolderPath(scope) + ->Append(FILE_PATH_LITERAL("TicketStore")) + .Append(FILE_PATH_LITERAL("Keystone.ticketstore")) + .AsUTF8Unsafe(); +} + +UpdaterScope Scope(const base::flat_map& switches) { + if (HasSwitch(kCommandSystemStore, switches)) + return UpdaterScope::kSystem; + if (HasSwitch(kCommandUserStore, switches)) + return UpdaterScope::kUser; + + return SwitchValue(kCommandStorePath, switches) == + KeystoneTicketStorePath(UpdaterScope::kSystem) + ? UpdaterScope::kSystem + : UpdaterScope::kUser; } class KSAdminApp : public App { public: - explicit KSAdminApp(const std::map& switches) + explicit KSAdminApp(const base::flat_map& switches) : switches_(switches), service_proxy_(base::MakeRefCounted(Scope())) {} @@ -146,7 +181,7 @@ explicit KSAdminApp(const std::map& switches) NSDictionary* LoadTicketStore(); - const std::map switches_; + const base::flat_map switches_; scoped_refptr service_proxy_; }; @@ -255,19 +290,7 @@ explicit KSAdminApp(const std::map& switches) } std::string KSAdminApp::SwitchValue(const std::string& arg) const { - if (base::Contains(switches_, arg)) - return switches_.at(arg); - const static std::map aliases = { - {kCommandBrandKey, "b"}, {kCommandBrandPath, "B"}, - {kCommandProductId, "P"}, {kCommandTag, "g"}, - {kCommandTagKey, "K"}, {kCommandTagPath, "H"}, - {kCommandVersion, "v"}, {kCommandVersionKey, "e"}, - {kCommandVersionPath, "a"}, {kCommandXCPath, "x"}, - }; - if (!base::Contains(aliases, arg)) - return ""; - const std::string& alias = aliases.at(arg); - return base::Contains(switches_, alias) ? switches_.at(alias) : ""; + return updater::SwitchValue(arg, switches_); } UpdaterScope KSAdminApp::Scope() const { @@ -280,13 +303,9 @@ explicit KSAdminApp(const std::map& switches) } NSDictionary* KSAdminApp::LoadTicketStore() { - return [KSTicketStore - readStoreWithPath:base::SysUTF8ToNSString( - GetKeystoneFolderPath(Scope()) - ->Append(FILE_PATH_LITERAL("TicketStore")) - .Append( - FILE_PATH_LITERAL("Keystone.ticketstore")) - .AsUTF8Unsafe())]; + return + [KSTicketStore readStoreWithPath:base::SysUTF8ToNSString( + KeystoneTicketStorePath(Scope()))]; } int KSAdminApp::PrintKeystoneTag(const std::string& app_id) { @@ -390,7 +409,7 @@ explicit KSAdminApp(const std::map& switches) Shutdown(1); } } - const std::map commands = { + const base::flat_map commands = { {kCommandDelete, &KSAdminApp::Delete}, {kCommandInstall, &KSAdminApp::CheckForUpdates}, {kCommandList, &KSAdminApp::CheckForUpdates}, @@ -413,7 +432,7 @@ explicit KSAdminApp(const std::map& switches) int KSAdminAppMain(int argc, char* argv[]) { base::AtExitManager exit_manager; base::CommandLine::Init(argc, argv); - std::map command_line = + base::flat_map command_line = ParseCommandLine(argc, argv); updater::InitLogging(Scope(command_line), FILE_PATH_LITERAL("updater.log")); base::SingleThreadTaskExecutor main_task_executor(base::MessagePumpType::UI); diff --git a/chromecast/common/cast_content_client.cc b/chromecast/common/cast_content_client.cc index b119e04da6f66f..4839ceaf1c0bae 100644 --- a/chromecast/common/cast_content_client.cc +++ b/chromecast/common/cast_content_client.cc @@ -70,8 +70,7 @@ std::unique_ptr CreateWidevineCdmInfo( return std::make_unique( kWidevineKeySystem, content::CdmInfo::Robustness::kSoftwareSecure, std::move(capability), /*supports_sub_key_systems=*/false, - kWidevineCdmDisplayName, kWidevineCdmType, version, cdm_library_path, - kWidevineCdmFileSystemId); + kWidevineCdmDisplayName, kWidevineCdmType, version, cdm_library_path); } // On desktop Linux, given |cdm_base_path| that points to a folder containing diff --git a/chromeos/chromeos_strings.grd b/chromeos/chromeos_strings.grd index 76b227d30d56c7..994662f5372abb 100644 --- a/chromeos/chromeos_strings.grd +++ b/chromeos/chromeos_strings.grd @@ -2237,7 +2237,7 @@ Try tapping the mic to ask me anything. Finalizing repair - Progress $125%. + Finalizing the device. Do not turn off power. Complete. diff --git a/chromeos/components/multidevice/remote_device_ref.h b/chromeos/components/multidevice/remote_device_ref.h index 65047f365edef2..3a76b36e45d35d 100644 --- a/chromeos/components/multidevice/remote_device_ref.h +++ b/chromeos/components/multidevice/remote_device_ref.h @@ -15,7 +15,11 @@ namespace ash { class EasyUnlockServiceRegular; -} +namespace tether { +class TetherHostFetcherImpl; +class TetherHostFetcherImplTest; +} // namespace tether +} // namespace ash namespace chromeos { namespace multidevice_setup { @@ -27,11 +31,6 @@ class PresenceMonitorClientImpl; class SecureChannelClientImpl; } // namespace secure_channel -namespace tether { -class TetherHostFetcherImpl; -class TetherHostFetcherImplTest; -} // namespace tether - namespace multidevice { class ProximityAuthWebUIHandler; @@ -106,9 +105,9 @@ class RemoteDeviceRef { // TODO(crbug.com/752273): Remove these once clients have migrated to Device // Sync service. - friend class ash::EasyUnlockServiceRegular; - friend class tether::TetherHostFetcherImpl; - friend class tether::TetherHostFetcherImplTest; + friend class ::ash::EasyUnlockServiceRegular; + friend class ::ash::tether::TetherHostFetcherImplTest; + friend class ::ash::tether::TetherHostFetcherImpl; friend class ProximityAuthWebUIHandler; explicit RemoteDeviceRef(std::shared_ptr remote_device); diff --git a/chromeos/components/multidevice/remote_device_test_util.h b/chromeos/components/multidevice/remote_device_test_util.h index 8e4ae7c292b1f4..c5e3108e513a3b 100644 --- a/chromeos/components/multidevice/remote_device_test_util.h +++ b/chromeos/components/multidevice/remote_device_test_util.h @@ -67,8 +67,11 @@ bool IsSameDevice(const RemoteDevice& remote_device, // source migration is finished. namespace ash { namespace multidevice { +using ::chromeos::multidevice::CreateRemoteDeviceListForTest; +using ::chromeos::multidevice::CreateRemoteDeviceRefForTest; +using ::chromeos::multidevice::CreateRemoteDeviceRefListForTest; using ::chromeos::multidevice::RemoteDeviceRefBuilder; -} +} // namespace multidevice } // namespace ash #endif // CHROMEOS_COMPONENTS_MULTIDEVICE_REMOTE_DEVICE_TEST_UTIL_H_ diff --git a/chromeos/network/cellular_connection_handler.h b/chromeos/network/cellular_connection_handler.h index 8439c485416ecf..77f66f84ca617d 100644 --- a/chromeos/network/cellular_connection_handler.h +++ b/chromeos/network/cellular_connection_handler.h @@ -207,4 +207,9 @@ class COMPONENT_EXPORT(CHROMEOS_NETWORK) CellularConnectionHandler } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +using ::chromeos::CellularConnectionHandler; +} // namespace ash + #endif // CHROMEOS_NETWORK_CELLULAR_CONNECTION_HANDLER_H_ diff --git a/chromeos/network/managed_state.h b/chromeos/network/managed_state.h index 88dc8bfbfc84e2..54d8221abf0434 100644 --- a/chromeos/network/managed_state.h +++ b/chromeos/network/managed_state.h @@ -13,9 +13,15 @@ #include "base/compiler_specific.h" #include "base/component_export.h" +namespace ash { +namespace tether { +class NetworkListSorterTest; +} // namespace tether +} // namespace ash + namespace base { class Value; -} +} // namespace base namespace chromeos { @@ -23,10 +29,6 @@ class DeviceState; class NetworkState; class NetworkTypePattern; -namespace tether { -class NetworkListSorterTest; -} - // Base class for states managed by NetworkStateManger which are associated // with a Shill path (e.g. service path or device path). class COMPONENT_EXPORT(CHROMEOS_NETWORK) ManagedState { @@ -125,9 +127,9 @@ class COMPONENT_EXPORT(CHROMEOS_NETWORK) ManagedState { void set_type(const std::string& type) { type_ = type; } private: + friend class ::ash::tether::NetworkListSorterTest; friend class NetworkStateHandler; friend class NetworkStateTestHelper; - friend class chromeos::tether::NetworkListSorterTest; ManagedType managed_type_; @@ -147,4 +149,9 @@ class COMPONENT_EXPORT(CHROMEOS_NETWORK) ManagedState { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +using ::chromeos::ManagedState; +} // namespace ash + #endif // CHROMEOS_NETWORK_MANAGED_STATE_H_ diff --git a/chromeos/network/mock_managed_network_configuration_handler.h b/chromeos/network/mock_managed_network_configuration_handler.h index 2e78effa6e5458..19e1a8473debac 100644 --- a/chromeos/network/mock_managed_network_configuration_handler.h +++ b/chromeos/network/mock_managed_network_configuration_handler.h @@ -96,4 +96,9 @@ class COMPONENT_EXPORT(CHROMEOS_NETWORK) MockManagedNetworkConfigurationHandler } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +using ::chromeos::MockManagedNetworkConfigurationHandler; +} // namespace ash + #endif // CHROMEOS_NETWORK_MOCK_MANAGED_NETWORK_CONFIGURATION_HANDLER_H_ diff --git a/chromeos/network/network_connection_handler.h b/chromeos/network/network_connection_handler.h index 82a846f23010ca..542872cc9c173e 100644 --- a/chromeos/network/network_connection_handler.h +++ b/chromeos/network/network_connection_handler.h @@ -13,9 +13,17 @@ #include "base/component_export.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/cellular_connection_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/managed_network_configuration_handler.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_configuration_handler.h" #include "chromeos/network/network_connection_observer.h" #include "chromeos/network/network_handler.h" #include "chromeos/network/network_handler_callbacks.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/network_state_handler.h" namespace chromeos { @@ -37,11 +45,6 @@ namespace chromeos { enum class ConnectCallbackMode { ON_STARTED, ON_COMPLETED }; -class CellularConnectionHandler; -class NetworkStateHandler; -class NetworkConfigurationHandler; -class ManagedNetworkConfigurationHandler; - class COMPONENT_EXPORT(CHROMEOS_NETWORK) NetworkConnectionHandler { public: // Constants for |error_name| from |error_callback| for Connect. Whenever a @@ -256,6 +259,7 @@ class COMPONENT_EXPORT(CHROMEOS_NETWORK) NetworkConnectionHandler { // TODO(https://crbug.com/1164001): remove when moved to ash. namespace ash { using ::chromeos::ConnectCallbackMode; +using ::chromeos::NetworkConnectionHandler; } #endif // CHROMEOS_NETWORK_NETWORK_CONNECTION_HANDLER_H_ diff --git a/chromeos/network/network_state.h b/chromeos/network/network_state.h index 1a55e42eaa27f4..c8432110c3e4ca 100644 --- a/chromeos/network/network_state.h +++ b/chromeos/network/network_state.h @@ -18,14 +18,14 @@ #include "components/onc/onc_constants.h" #include "url/gurl.h" -namespace base { -class Value; -} - // TODO(https://crbug.com/1164001): remove when moved to ash. namespace ash { class MobileActivatorTest; -} +} // namespace ash + +namespace base { +class Value; +} // namespace base namespace chromeos { diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h index 31c6d24c48b0ce..b448a1b680c00a 100644 --- a/chromeos/network/network_state_handler.h +++ b/chromeos/network/network_state_handler.h @@ -31,7 +31,6 @@ class Value; namespace chromeos { class DeviceState; -class NetworkState; class NetworkStateHandlerObserver; class NetworkStateHandlerTest; diff --git a/chromeos/network/network_state_handler_observer.h b/chromeos/network/network_state_handler_observer.h index 703d40aa5ea26d..dcec5e03ade9b2 100644 --- a/chromeos/network/network_state_handler_observer.h +++ b/chromeos/network/network_state_handler_observer.h @@ -9,13 +9,13 @@ #include #include "base/component_export.h" +// TODO(https://crbug.com/1164001): move to forward declaration +#include "chromeos/network/device_state.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_type_pattern.h" namespace chromeos { -class DeviceState; - // Observer class for all network state changes, including changes to // active (connecting or connected) services. class COMPONENT_EXPORT(CHROMEOS_NETWORK) NetworkStateHandlerObserver { diff --git a/chromeos/network/shill_property_util.h b/chromeos/network/shill_property_util.h index 9a14ae93097ba7..b5559dd3dba8fb 100644 --- a/chromeos/network/shill_property_util.h +++ b/chromeos/network/shill_property_util.h @@ -100,4 +100,12 @@ bool IsLoggableShillProperty(const std::string& key); } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace shill_property_util { +using ::chromeos::shill_property_util::GetSSIDFromProperties; +using ::chromeos::shill_property_util::SetSSID; +} // namespace shill_property_util +} // namespace ash + #endif // CHROMEOS_NETWORK_SHILL_PROPERTY_UTIL_H_ diff --git a/chromeos/services/device_sync/cryptauth_device_manager.h b/chromeos/services/device_sync/cryptauth_device_manager.h index 89a0d749515cbe..0b1108de3ba493 100644 --- a/chromeos/services/device_sync/cryptauth_device_manager.h +++ b/chromeos/services/device_sync/cryptauth_device_manager.h @@ -123,4 +123,11 @@ class CryptAuthDeviceManager { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace device_sync { +using ::chromeos::device_sync::CryptAuthDeviceManager; +} // namespace device_sync +} // namespace ash + #endif // CHROMEOS_SERVICES_DEVICE_SYNC_CRYPTAUTH_DEVICE_MANAGER_H_ diff --git a/chromeos/services/device_sync/cryptauth_v2_device_manager.h b/chromeos/services/device_sync/cryptauth_v2_device_manager.h index d53c6fcb996543..2dc494f014dbae 100644 --- a/chromeos/services/device_sync/cryptauth_v2_device_manager.h +++ b/chromeos/services/device_sync/cryptauth_v2_device_manager.h @@ -91,4 +91,11 @@ class CryptAuthV2DeviceManager { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace device_sync { +using ::chromeos::device_sync::CryptAuthV2DeviceManager; +} // namespace device_sync +} // namespace ash + #endif // CHROMEOS_SERVICES_DEVICE_SYNC_CRYPTAUTH_V2_DEVICE_MANAGER_H_ diff --git a/chromeos/services/device_sync/fake_remote_device_provider.h b/chromeos/services/device_sync/fake_remote_device_provider.h index dcd0456bcf3a99..58c5ee1247cb36 100644 --- a/chromeos/services/device_sync/fake_remote_device_provider.h +++ b/chromeos/services/device_sync/fake_remote_device_provider.h @@ -39,4 +39,11 @@ class FakeRemoteDeviceProvider : public RemoteDeviceProvider { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace device_sync { +using ::chromeos::device_sync::FakeRemoteDeviceProvider; +} // namespace device_sync +} // namespace ash + #endif // CHROMEOS_SERVICES_DEVICE_SYNC_FAKE_REMOTE_DEVICE_PROVIDER_H_ diff --git a/chromeos/services/device_sync/remote_device_provider.h b/chromeos/services/device_sync/remote_device_provider.h index b2b6860e7b9ddc..7505527f9e27f8 100644 --- a/chromeos/services/device_sync/remote_device_provider.h +++ b/chromeos/services/device_sync/remote_device_provider.h @@ -44,4 +44,11 @@ class RemoteDeviceProvider { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace device_sync { +using ::chromeos::device_sync::RemoteDeviceProvider; +} // namespace device_sync +} // namespace ash + #endif // CHROMEOS_SERVICES_DEVICE_SYNC_REMOTE_DEVICE_PROVIDER_H_ diff --git a/chromeos/services/device_sync/remote_device_provider_impl.h b/chromeos/services/device_sync/remote_device_provider_impl.h index 9c991296216004..c5abced5939d5a 100644 --- a/chromeos/services/device_sync/remote_device_provider_impl.h +++ b/chromeos/services/device_sync/remote_device_provider_impl.h @@ -131,4 +131,11 @@ class RemoteDeviceProviderImpl : public RemoteDeviceProvider, } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace device_sync { +using ::chromeos::device_sync::RemoteDeviceProviderImpl; +} // namespace device_sync +} // namespace ash + #endif // CHROMEOS_SERVICES_DEVICE_SYNC_REMOTE_DEVICE_PROVIDER_IMPL_H_ diff --git a/chromeos/services/secure_channel/public/cpp/client/client_channel.h b/chromeos/services/secure_channel/public/cpp/client/client_channel.h index 35f0e8b09b4302..235057ff700d2b 100644 --- a/chromeos/services/secure_channel/public/cpp/client/client_channel.h +++ b/chromeos/services/secure_channel/public/cpp/client/client_channel.h @@ -98,4 +98,11 @@ class ClientChannel { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace secure_channel { +using ::chromeos::secure_channel::ClientChannel; +} // namespace secure_channel +} // namespace ash + #endif // CHROMEOS_SERVICES_SECURE_CHANNEL_PUBLIC_CPP_CLIENT_CLIENT_CHANNEL_H_ diff --git a/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h b/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h index c13c0e3f2b5cd0..38d3e141a5be60 100644 --- a/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h +++ b/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h @@ -53,4 +53,11 @@ class ConnectionAttempt { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace secure_channel { +using ::chromeos::secure_channel::ConnectionAttempt; +} // namespace secure_channel +} // namespace ash + #endif // CHROMEOS_SERVICES_SECURE_CHANNEL_PUBLIC_CPP_CLIENT_CONNECTION_ATTEMPT_H_ diff --git a/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h b/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h index f1394d20f57ebe..0fdd5ebad87f0b 100644 --- a/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h +++ b/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h @@ -73,4 +73,11 @@ class FakeClientChannel : public ClientChannel { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace secure_channel { +using ::chromeos::secure_channel::FakeClientChannel; +} // namespace secure_channel +} // namespace ash + #endif // CHROMEOS_SERVICES_SECURE_CHANNEL_PUBLIC_CPP_CLIENT_FAKE_CLIENT_CHANNEL_H_ diff --git a/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h b/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h index 914cc88ce45321..b010d8d4d967c1 100644 --- a/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h +++ b/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h @@ -51,4 +51,11 @@ class FakeConnectionAttempt : public ConnectionAttemptImpl { } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace secure_channel { +using ::chromeos::secure_channel::FakeConnectionAttempt; +} // namespace secure_channel +} // namespace ash + #endif // CHROMEOS_SERVICES_SECURE_CHANNEL_PUBLIC_CPP_CLIENT_FAKE_CONNECTION_ATTEMPT_H_ diff --git a/chromeos/services/secure_channel/public/cpp/shared/connection_priority.h b/chromeos/services/secure_channel/public/cpp/shared/connection_priority.h index e735701afa7284..f445ad4e82d2ee 100644 --- a/chromeos/services/secure_channel/public/cpp/shared/connection_priority.h +++ b/chromeos/services/secure_channel/public/cpp/shared/connection_priority.h @@ -41,4 +41,11 @@ std::ostream& operator<<(std::ostream& stream, } // namespace chromeos +// TODO(https://crbug.com/1164001): remove when this file is moved to ash. +namespace ash { +namespace secure_channel { +using ::chromeos::secure_channel::ConnectionPriority; +} // namespace secure_channel +} // namespace ash + #endif // CHROMEOS_SERVICES_SECURE_CHANNEL_PUBLIC_CPP_SHARED_CONNECTION_PRIORITY_H_ diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/ThrottlingNotificationScheduler.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/ThrottlingNotificationScheduler.java index 646a07f0d0336e..f8b773d150abe4 100644 --- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/ThrottlingNotificationScheduler.java +++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/ThrottlingNotificationScheduler.java @@ -25,9 +25,9 @@ * notifications to the NotificationManager. */ public class ThrottlingNotificationScheduler { - // To avoid notification updates being throttled by Android, using 250 ms as the interval - // so that no more than 5 updates are posted per second. - public static final long UPDATE_DELAY_MILLIS = 250; + // To avoid notification updates being throttled by Android, using 350 ms as the interval + // so that no more than 3 updates are posted per second. + public static final long UPDATE_DELAY_MILLIS = 350; // Priority queue hold all the pending notifications. private final PriorityQueue mPendingNotificationTasks = diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb index 1125974542d814..25c74a878bfe5a 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_az.xtb @@ -49,6 +49,7 @@ Kukilərə icazə verin tətbiqinə kameranıza giriş icazəsi vermək üçün Android Ayarlarında kameranı da aktiv edin. Sadəcə bir dəfə + Silin Sayt yaxınlıqdakı Bluetooth cihazlarını kəşf etmək istədikdə soruşun (tövsiyə edilir) Müştəri sayt sertifikatı seçimi əməliyyat sistemi tərəfindən dəstəklənmir. Davam edin diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb index d9450c2b905077..23d2d75b734c61 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_el.xtb @@ -49,6 +49,7 @@ Αποδοχή cookie Για να επιτρέψετε στην εφαρμογή να αποκτήσει πρόσβαση στην κάμερά σας, ενεργοποιήστε επίσης την κάμερα στις Ρυθμίσεις Android. Μόνο μία φορά + Κατάργηση Να γίνεται ερώτηση όταν ένας ιστότοπος επιθυμεί να εντοπίσει κοντινές συσκευες Bluetooth (συνιστάται) Η επιλογή πιστοποιητικού από τον πελάτη δεν υποστηρίζεται από το λειτουργικό σύστημα. Συνέχεια diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb index d002a082072e90..dad39d87fc5289 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb @@ -49,6 +49,7 @@ Allow cookies To let access your camera, also turn on camera in Android settings. Just once + Remove Ask when a site wants to discover nearby Bluetooth devices (recommended) Client side certificate selection is not supported by the operating system. Continue diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb index 99d18ef7c2b28a..dbaeb1e09253b5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb @@ -49,6 +49,7 @@ Cookies файлдарына уруксат берүү колдонмосуна камерага кирүүгө уруксат берүү үчүн, Android Жөндөөлөрүнөн камераны күйгүзүңүз. Бир гана жлу + өчүрүү Сайт жакын жердеги Bluetooth түзмөктөрүн колдонгону жатканда уруксат суралсын (сунушталат) Кардар тандаган тастыктама операциялык тутумда колдоого алынбайт. Улантуу diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb index e2ac7884ed41a7..263cc9d202afec 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb @@ -49,6 +49,7 @@ കുക്കികൾ അനുവദിക്കുക ആപ്പിനെ നിങ്ങളുടെ ക്യാമറ ആക്‌സസ് ചെയ്യാൻ അനുവദിക്കുന്നതിന്, Android ക്രമീകരണത്തിലും ക്യാമറ ഓണാക്കുക. ഒരിക്കൽ മാത്രം + നീക്കം ചെയ്യുക സമീപത്തുള്ള Bluetooth ഉപകരണങ്ങൾ കണ്ടെത്താൻ ഒരു സൈറ്റ് താൽപ്പര്യപ്പെടുമ്പോൾ ചോദിക്കുക (ശുപാർശചെയ്‌തത്) ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ക്ലയന്റിന്റെ സർട്ടിഫിക്കറ്റ് തിരഞ്ഞെടുക്കലിനെ പിന്തുണയ്‌ക്കുന്നില്ല. തുടരുക diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb index 5e11c9f41588b3..c5c31a7e5721ad 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb @@ -49,6 +49,7 @@ Permitir cookies Para permitir que o app acesse sua câmera, ative-a também nas configurações do Android. Apenas uma vez +Remover Perguntar quando um site quer descobrir dispositivos Bluetooth nas proximidades (recomendado) A seleção de certificado do cliente não é compatível com o sistema operacional. Continuar diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb index 89277fb364c95b..a083d6554889e2 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb @@ -49,6 +49,7 @@ Permitir cookies Para permitir que a app aceda à câmara, ative também a câmara nas Definições do Android. Apenas uma vez + Remover Perguntar quando um site pretende detetar dispositivos Bluetooth próximos (recomendado) O sistema operativo não suporta a seleção do certificado do lado do cliente. Continuar diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb index 8f5d53d11e3d42..52d40d8b4dd323 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb @@ -49,6 +49,7 @@ Povoliť súbory cookie Ak chcete povoliť aplikácii používať váš fotoaparát, zapnite ho aj v nastaveniach Androidu. Iba raz +Odobrať osobu alebo odstrániť položku Opýtať sa, keď chce web objavovať zariadenia Bluetooth v okolí (odporúčané) Operačný systém nepodporuje výber certifikátu na strane klienta. Pokračovať diff --git a/components/browser_ui/styles/android/BUILD.gn b/components/browser_ui/styles/android/BUILD.gn index 5b52da64e2d529..a8dcf9e4063068 100644 --- a/components/browser_ui/styles/android/BUILD.gn +++ b/components/browser_ui/styles/android/BUILD.gn @@ -33,6 +33,7 @@ android_resources("java_resources") { "java/res/color/default_text_color_hint_list.xml", "java/res/color/default_text_color_link_tint_list.xml", "java/res/color/default_text_color_list.xml", + "java/res/color/default_text_color_on_accent1_list.xml", "java/res/color/default_text_color_secondary_list.xml", "java/res/color/progress_bar_bg_color.xml", "java/res/color/selection_control_button_tint.xml", diff --git a/components/browser_ui/styles/android/java/res/color/default_text_color_on_accent1_list.xml b/components/browser_ui/styles/android/java/res/color/default_text_color_on_accent1_list.xml new file mode 100644 index 00000000000000..3cc6de85b59a65 --- /dev/null +++ b/components/browser_ui/styles/android/java/res/color/default_text_color_on_accent1_list.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/components/browser_ui/styles/android/java/res/values/semantic_colors_dynamic.xml b/components/browser_ui/styles/android/java/res/values/semantic_colors_dynamic.xml index fa0db4de1c55fe..4c1c5bfa36a554 100644 --- a/components/browser_ui/styles/android/java/res/values/semantic_colors_dynamic.xml +++ b/components/browser_ui/styles/android/java/res/values/semantic_colors_dynamic.xml @@ -13,6 +13,7 @@ ?attr/colorPrimary ?attr/colorOnSurface ?attr/colorPrimary + ?attr/colorOnPrimary ?attr/colorOutline ?attr/colorSurfaceVariant --> @@ -26,6 +27,7 @@ @color/default_icon_color_accent1_baseline @color/default_text_color_baseline @color/default_text_color_blue_baseline + @color/default_text_color_on_accent1_baseline @color/hairline_stroke_color_baseline @color/divider_line_bg_color_baseline diff --git a/components/browser_ui/styles/android/java/res/values/styles.xml b/components/browser_ui/styles/android/java/res/values/styles.xml index 9615ac9b111cb9..ab4e2a5b300019 100644 --- a/components/browser_ui/styles/android/java/res/values/styles.xml +++ b/components/browser_ui/styles/android/java/res/values/styles.xml @@ -273,6 +273,21 @@ @color/default_text_color_link_tint_list + + + + + + + + +
+
+ +
+
+ + diff --git a/third_party/blink/web_tests/platform/fuchsia/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt b/third_party/blink/web_tests/platform/fuchsia/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt deleted file mode 100644 index 5c808aa0a050a4..00000000000000 --- a/third_party/blink/web_tests/platform/fuchsia/external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent-expected.txt +++ /dev/null @@ -1,13 +0,0 @@ -This is a testharness.js-based test. -PASS Adding open to 'details' should fire a toggle event at the 'details' element -PASS Removing open from 'details' should fire a toggle event at the 'details' element -PASS Adding open to 'details' (display:none) should fire a toggle event at the 'details' element -PASS Adding open from 'details' (no children) should fire a toggle event at the 'details' element -PASS Calling open twice on 'details' fires only one toggle event -PASS Calling setAttribute('open', '') to 'details' should fire a toggle event at the 'details' element -PASS Calling removeAttribute('open') to 'details' should fire a toggle event at the 'details' element -FAIL Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element assert_true: expected true got false -PASS Setting open=false to closed 'details' element should not fire a toggle event at the 'details' element -PASS Adding open to 'details' (not in the document) should fire a toggle event at the 'details' element -Harness: the test ran to completion. - diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html b/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html index c5246a4b3a7b1b..f7d2c112194292 100644 --- a/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html +++ b/third_party/blink/web_tests/wpt_internal/webgpu/cts.https.html @@ -1301,8 +1301,7 @@ - - + diff --git a/third_party/widevine/cdm/DEPS b/third_party/widevine/cdm/DEPS index 0d6a1d5785b82d..12390aebca08b9 100644 --- a/third_party/widevine/cdm/DEPS +++ b/third_party/widevine/cdm/DEPS @@ -1,4 +1,5 @@ include_rules = [ "+base/token.h", "+build/build_config.h", + "+media/cdm/cdm_type.h" ] diff --git a/third_party/widevine/cdm/widevine_cdm_common.h b/third_party/widevine/cdm/widevine_cdm_common.h index eacd2dcfb6c22f..50a9e5666e6ff0 100644 --- a/third_party/widevine/cdm/widevine_cdm_common.h +++ b/third_party/widevine/cdm/widevine_cdm_common.h @@ -7,6 +7,7 @@ #include "base/token.h" #include "build/build_config.h" +#include "media/cdm/cdm_type.h" // nogncheck // Default constants common to all Widevine CDMs. @@ -35,23 +36,27 @@ const char kWidevineCdmLibraryName[] = "widevinecdm"; const char kWidevineCdmDisplayName[] = "Widevine Content Decryption Module"; -const base::Token kWidevineCdmType{0x05d908e5dcca9960ull, - 0xcd92d30eac98157aull}; - -// Identifier used by the PluginPrivateFileSystem to identify the files stored -// for the Widevine CDM. This is used to store persistent files. As the files -// were initially used by the CDM running as a pepper plugin, this ID is based -// on the pepper plugin MIME type. Changing this will result in any existing -// saved files becoming inaccessible. -const char kWidevineCdmFileSystemId[] = "application_x-ppapi-widevine-cdm"; +// TODO(crbug.com/1231162): Remove the string identifier once we've migrated off +// of the PluginPrivateFileSystem. +// Identifier used for both CDM process site isolation and by the +// PluginPrivateFileSystem to identify the files stored for the Widevine CDM. +// This is used to store persistent files. As the files were initially used by +// the CDM running as a pepper plugin, this ID is based on the pepper plugin +// MIME type. Changing this will result in any existing saved files becoming +// inaccessible. +const media::CdmType kWidevineCdmType{ + base::Token{0x05d908e5dcca9960ull, 0xcd92d30eac98157aull}, + "application_x-ppapi-widevine-cdm"}; // Constants specific to Windows MediaFoundation-based Widevine CDM library. #if defined(OS_WIN) const char kMediaFoundationWidevineCdmLibraryName[] = "Google.Widevine.CDM"; const char kMediaFoundationWidevineCdmDisplayName[] = "Google Widevine Windows CDM"; -const base::Token kMediaFoundationWidevineCdmType{0x8e73dec793bf5adcull, - 0x27e572c9a1fd930eull}; +// TODO(crbug.com/1231162): Remove the string identifier once we've migrated off +// of the PluginPrivateFileSystem. +const media::CdmType kMediaFoundationWidevineCdmType{ + base::Token{0x8e73dec793bf5adcull, 0x27e572c9a1fd930eull}, ""}; #endif // defined(OS_WIN) #endif // WIDEVINE_CDM_WIDEVINE_CDM_COMMON_H_ diff --git a/tools/determinism/compare_build_artifacts.py b/tools/determinism/compare_build_artifacts.py index 649b8e0173377c..85e900f1b63a63 100755 --- a/tools/determinism/compare_build_artifacts.py +++ b/tools/determinism/compare_build_artifacts.py @@ -311,6 +311,17 @@ def compare_build_artifacts(first_dir, second_dir, ninja_path, target_platform, first_list = get_files_to_compare(first_dir, recursive) second_list = get_files_to_compare(second_dir, recursive) + # Always check that the main ninja files are deterministic. + # Ideally we'd compare all of them, but that requires walking + # the clobbered build dir to find them. This is less code + # and gives most of the benefit. + # TODO(thakis): Add build.ninja once comments 9/11 on crbug.com/1278777 are figured out. + # TODO(thakis): Run this on non-win32 once we have some plan for handling differences + # in goma/non-goma (crbug.com/1278777 comments 14/15) -- maybe have the recipe run + # `gn gen` in two additional build dirs with goma off and compare ninja files there? + if sys.platform == 'win32': + first_list.update(['toolchain.ninja']) + second_list.update(['toolchain.ninja']) equals = [] expected_diffs = [] diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index bafdb587bdd5c8..b948f9b08de9ce 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml @@ -50159,6 +50159,7 @@ from previous Chrome versions. + @@ -54616,6 +54617,7 @@ from previous Chrome versions. + @@ -64677,9 +64679,17 @@ Called by update_net_trust_anchors.py.--> - - - + Suggest requests that were sent. + + Suggest requests that were invalidated, e.g., due to user starting to type. + + + Suggest responses that were received. Includes both those received directly + from the server and those loaded from the HTTP cache. + + + Subset of Suggest responses that were loaded from the HTTP cache. + @@ -70259,6 +70269,28 @@ Called by update_net_trust_anchors.py.--> label="[main frame send, main frame change, other send, other change]"/> + + + + + + + + + + + + + + + + + + + + + + Deprecated Dec 12 2014. diff --git a/tools/metrics/histograms/metadata/chromeos/histograms.xml b/tools/metrics/histograms/metadata/chromeos/histograms.xml index a3b5facdbe0eff..ccdd1b265c9462 100644 --- a/tools/metrics/histograms/metadata/chromeos/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos/histograms.xml @@ -553,7 +553,7 @@ incoming reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ChromeOSProcessTypeCollectionStatus" expires_after="2023-01-19"> aalexand@google.com cwp-team@google.com diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml index 0421eccea2e46f..12965af6e5e6ab 100644 --- a/tools/metrics/histograms/metadata/navigation/histograms.xml +++ b/tools/metrics/histograms/metadata/navigation/histograms.xml @@ -34,6 +34,21 @@ chromium-metrics-reviews@google.com. + + + + + + Base histogram. Use suffixes of this histogram instead. Non-suffix name + was removed in Nov 2021. + + + + + + @@ -1610,6 +1625,41 @@ chromium-metrics-reviews@google.com. + + lingqi@chromium.org + nhiroki@chromium.org + src/content/browser/prerender/OWNERS + + A breakdown metric for analyzing cross-origin redirection cases during + embedder-triggered prerendering. Recorded when a prerendering page was + redirected to a subdomain. + + Note that for now it is not used for prerendering that are triggered by + speculation rules. + + + + + + lingqi@chromium.org + nhiroki@chromium.org + src/content/browser/prerender/OWNERS + + A breakdown metric for analyzing cross-origin redirection cases during + embedder-triggered prerendering, Recorded when redirections were caused due + to HTTP protocol upgrades. + + Note that for now it is not used for prerendering that are triggered by + speculation rules. + + + + nhiroki@chromium.org @@ -1648,6 +1698,27 @@ chromium-metrics-reviews@google.com. + + lingqi@chromium.org + nhiroki@chromium.org + src/content/browser/prerender/OWNERS + + A breakdown metric for analyzing cross-origin redirection cases during + embedder-triggered prerendering. Recorded when the embedder-triggered + prerendering was redirected to another origin that differs from the initial + one. + + The cases are encoded into 3 bits(scheme mismatch, host mismatch, port + mismatch). + + Note that for now it is not used for prerendering that are triggered by + speculation rules. + + + + @@ -1682,7 +1753,8 @@ chromium-metrics-reviews@google.com. - nhiroki@chromium.org toyoshim@chromium.org @@ -1692,16 +1764,7 @@ chromium-metrics-reviews@google.com. Final status for a prerendering attempt. Recorded by PrerenderHost or PrerenderHostRegistry in the browser process when the attempt finishes. - - - - Base histogram. Use suffixes of this histogram instead. Non-suffix name - was removed in Dec 2021. - - - - - + + + No longer reported as of 2021-12. Omnibox.ZeroSuggestRequests.Prefetch and + Omnibox.ZeroSuggestRequests.NonPrefetch are being reported instead. + ender@chromium.org tommycli@chromium.org chrome-omnibox-team@google.com @@ -1256,6 +1260,54 @@ chromium-metrics-reviews@google.com. + + mahmadi@chromium.org + chrome-omnibox-team@google.com + + Counts the number of non-prefetch zero suggest requests (requests for + suggestions when the user has focused but not modified the omnibox) the + omnibox sent, requests that were invalidated, responses that were received, + and the subset of responses that were loaded from HTTP cache. + + + + + mahmadi@chromium.org + chrome-omnibox-team@google.com + + Records the time elapsed between non-prefetch zero suggest requests + (requests for suggestions when the user has focused but not modified the + omnibox) sent and the responses received; whether or not the response is + loaded from HTTP cache. + + + + + mahmadi@chromium.org + chrome-omnibox-team@google.com + + Counts the number of prefetch zero suggest requests (requests for + suggestions when the user opens a new tab or brings one to foreground) the + omnibox sent, requests that were invalidated, responses that were received, + and the subset of responses that were loaded from HTTP cache. + + + + + mahmadi@chromium.org + chrome-omnibox-team@google.com + + Records the time elapsed between prefetch zero suggest requests (requests + for suggestions when the user opens a new tab or brings one to foreground) + sent and the responses received; whether or not the response is loaded from + HTTP cache. + + + diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml index 5910cb12865dc6..94dbc8af9685ad 100644 --- a/tools/metrics/histograms/metadata/page/histograms.xml +++ b/tools/metrics/histograms/metadata/page/histograms.xml @@ -55,17 +55,6 @@ chromium-metrics-reviews@google.com. - - - - Base histogram. Use suffixes of this histogram instead. Non-suffix name - was removed in Nov 2021. - - - - - - @@ -720,7 +709,7 @@ chromium-metrics-reviews@google.com. ksakamoto@chromium.org asamidoi@chromium.org @@ -730,11 +719,15 @@ chromium-metrics-reviews@google.com. prerendered and were later activated. Note that prerendered page loads are excluded from PageLoad.InteractiveTiming.FirstInputDelay4. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -745,11 +738,15 @@ chromium-metrics-reviews@google.com. page loads are excluded from PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -759,11 +756,15 @@ chromium-metrics-reviews@google.com. were prerendered and were later activated. Note that prerendered page loads are excluded from PageLoad.LayoutInstability.CumulativeShiftScore. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -774,11 +775,15 @@ chromium-metrics-reviews@google.com. attribute of PerformanceNavigationTiming. Recorded when a prerendered page is activated. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -790,11 +795,15 @@ chromium-metrics-reviews@google.com. loads are excluded from PageLoad.PaintTiming.NavigationToFirstContentfulPaint. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -805,11 +814,15 @@ chromium-metrics-reviews@google.com. activation navigation start. Note that prerendered page loads are excluded from PageLoad.PaintTiming.NavigationToFirstPaint. - + + + ksakamoto@chromium.org asamidoi@chromium.org @@ -821,7 +834,11 @@ chromium-metrics-reviews@google.com. loads are excluded from PageLoad.PaintTiming.NavigationToLargestContentfulPaint2. - + + + + units="microseconds" expires_after="2023-01-12"> alexmt@chromium.org chrome-ads-histograms@google.com @@ -631,7 +631,7 @@ chromium-metrics-reviews@google.com. + units="microseconds" expires_after="2023-01-12"> alexmt@chromium.org chrome-ads-histograms@google.com @@ -709,7 +709,7 @@ chromium-metrics-reviews@google.com. + units="microseconds" expires_after="2023-01-12"> alexmt@chromium.org chrome-ads-histograms@google.com diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 06154e9c19d6c3..95cdffe7834dda 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json @@ -5,8 +5,8 @@ "remote_path": "perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "win": { - "hash": "2fa72448c613dfdf2546ba7988c6c1fd420ddee6", - "remote_path": "perfetto_binaries/trace_processor_shell/win/1357bd132733ccc23a295739e4bc432d7a53d120/trace_processor_shell.exe" + "hash": "e86a33a1d4a5e95146e8d502232aefa4d085cd28", + "remote_path": "perfetto_binaries/trace_processor_shell/win/f9abf9948a180a56a3595ec54ff9f2f5c2c9947c/trace_processor_shell.exe" }, "mac": { "hash": "851992a7ccb80791df659bcca23f47292cfce319", diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn index 2ccf84b7f5eddc..f146baea5f7023 100644 --- a/ui/accessibility/BUILD.gn +++ b/ui/accessibility/BUILD.gn @@ -285,6 +285,17 @@ test("accessibility_unittests") { "//ui/gfx:test_support", ] + if (is_fuchsia) { + sources += [ "platform/fuchsia/semantic_provider_test.cc" ] + + deps += [ + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.accessibility.semantics", + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.math", + "//third_party/fuchsia-sdk/sdk/pkg/scenic_cpp", + "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", + ] + } + if (has_native_accessibility) { # This test depends heavily on NativeViewAccessible, which is only # implemented on these platforms. diff --git a/ui/accessibility/ax_event_generator.cc b/ui/accessibility/ax_event_generator.cc index 24125ba70f0abf..ea9f7459323bf7 100644 --- a/ui/accessibility/ax_event_generator.cc +++ b/ui/accessibility/ax_event_generator.cc @@ -780,6 +780,14 @@ void AXEventGenerator::OnTreeDataChanged(AXTree* tree, void AXEventGenerator::OnNodeWillBeDeleted(AXTree* tree, AXNode* node) { live_region_tracker_->OnNodeWillBeDeleted(*node); + // TODO(accessibility): This should also handle firing MENU_POPUP_END when a + // node with the menu role is removed. The issue to be solved is that after we + // add MENU_POPUP_END here, the node gets removed from the tree. Then + // PostprocessEvents removes the events from that now-removed node, thus + // MENU_POPUP_END never gets fired. We work around this issue currently by + // firing the event from BrowserAccessibilityManager. Adding the ability to + // fire generated events immediately should make it possible to fire + // MENU_POPUP_END here. DCHECK_EQ(tree_, tree); tree_events_.erase(node->id()); } @@ -802,6 +810,14 @@ void AXEventGenerator::OnNodeReparented(AXTree* tree, AXNode* node) { AddEvent(node, Event::PARENT_CHANGED); } +void AXEventGenerator::OnNodeCreated(AXTree* tree, AXNode* node) { + DCHECK_EQ(tree_, tree); + if (node->GetRole() == ax::mojom::Role::kMenu && + !node->IsInvisibleOrIgnored()) { + AddEvent(node, Event::MENU_POPUP_START); + } +} + void AXEventGenerator::OnAtomicUpdateFinished( AXTree* tree, bool root_changed, diff --git a/ui/accessibility/ax_event_generator.h b/ui/accessibility/ax_event_generator.h index cd3ad791c47f76..75f9ef51c49fcb 100644 --- a/ui/accessibility/ax_event_generator.h +++ b/ui/accessibility/ax_event_generator.h @@ -300,6 +300,7 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver { void OnNodeWillBeReparented(AXTree* tree, AXNode* node) override; void OnSubtreeWillBeReparented(AXTree* tree, AXNode* node) override; void OnNodeReparented(AXTree* tree, AXNode* node) override; + void OnNodeCreated(AXTree* tree, AXNode* node) override; void OnAtomicUpdateFinished(AXTree* tree, bool root_changed, const std::vector& changes) override; diff --git a/ui/accessibility/platform/BUILD.gn b/ui/accessibility/platform/BUILD.gn index 20df50a688fc15..853cb4b9fd6e65 100644 --- a/ui/accessibility/platform/BUILD.gn +++ b/ui/accessibility/platform/BUILD.gn @@ -93,10 +93,17 @@ source_set("platform") { "fuchsia/accessibility_bridge_fuchsia.h", "fuchsia/accessibility_bridge_fuchsia_registry.cc", "fuchsia/accessibility_bridge_fuchsia_registry.h", + "fuchsia/semantic_provider.cc", + "fuchsia/semantic_provider.h", ] - public_deps += - [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.accessibility.semantics" ] + public_deps += [ + "//base", + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.accessibility.semantics", + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.accessibility.semantics", + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.math", + "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", + ] } if (has_native_accessibility) { diff --git a/ui/accessibility/platform/fuchsia/semantic_provider.cc b/ui/accessibility/platform/fuchsia/semantic_provider.cc new file mode 100644 index 00000000000000..dd0a9776fc5e3d --- /dev/null +++ b/ui/accessibility/platform/fuchsia/semantic_provider.cc @@ -0,0 +1,306 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/accessibility/platform/fuchsia/semantic_provider.h" + +#include + +#include "base/check.h" +#include "base/check_op.h" +#include "base/fuchsia/fuchsia_logging.h" +#include "base/fuchsia/process_context.h" + +namespace ui { +namespace { + +using fuchsia::accessibility::semantics::Node; + +constexpr uint32_t kFuchsiaRootNodeId = 0; +constexpr size_t kMaxOperationsPerBatch = 16; + +} // namespace + +AXFuchsiaSemanticProvider::Batch::Batch(Type type) : type_(type) {} +AXFuchsiaSemanticProvider::Batch::Batch(Batch&& other) = default; +AXFuchsiaSemanticProvider::Batch::~Batch() = default; + +bool AXFuchsiaSemanticProvider::Batch::IsFull() const { + return ( + (type_ == Type::kUpdate && updates_.size() >= kMaxOperationsPerBatch) || + (type_ == Type::kDelete && + delete_node_ids_.size() >= kMaxOperationsPerBatch)); +} + +void AXFuchsiaSemanticProvider::Batch::Append( + fuchsia::accessibility::semantics::Node node) { + DCHECK_EQ(type_, Type::kUpdate); + DCHECK(!IsFull()); + updates_.push_back(std::move(node)); +} + +void AXFuchsiaSemanticProvider::Batch::AppendDeletion(uint32_t delete_node_id) { + DCHECK_EQ(type_, Type::kDelete); + DCHECK(!IsFull()); + delete_node_ids_.push_back(delete_node_id); +} + +void AXFuchsiaSemanticProvider::Batch::Apply( + fuchsia::accessibility::semantics::SemanticTreePtr* semantic_tree) { + if (type_ == Type::kUpdate && !updates_.empty()) + (*semantic_tree)->UpdateSemanticNodes(std::move(updates_)); + else if (type_ == Type::kDelete && !delete_node_ids_.empty()) + (*semantic_tree)->DeleteSemanticNodes(std::move(delete_node_ids_)); +} + +AXFuchsiaSemanticProvider::NodeInfo ::NodeInfo() = default; +AXFuchsiaSemanticProvider::NodeInfo ::~NodeInfo() = default; + +AXFuchsiaSemanticProvider::Delegate::Delegate() = default; +AXFuchsiaSemanticProvider::Delegate::~Delegate() = default; + +AXFuchsiaSemanticProvider::AXFuchsiaSemanticProvider( + fuchsia::ui::views::ViewRef view_ref, + float pixel_scale, + Delegate* delegate) + : view_ref_(std::move(view_ref)), + pixel_scale_(pixel_scale), + delegate_(delegate), + semantic_listener_binding_(this) { + sys::ComponentContext* component_context = base::ComponentContextForProcess(); + DCHECK(component_context); + DCHECK(delegate_); + + component_context->svc() + ->Connect() + ->RegisterViewForSemantics(std::move(view_ref_), + semantic_listener_binding_.NewBinding(), + semantic_tree_.NewRequest()); + semantic_tree_.set_error_handler([this](zx_status_t status) { + ZX_LOG(ERROR, status) << "SemanticTree disconnected"; + delegate_->OnSemanticsManagerConnectionClosed(); + semantic_updates_enabled_ = false; + }); +} + +AXFuchsiaSemanticProvider::~AXFuchsiaSemanticProvider() = default; + +bool AXFuchsiaSemanticProvider::Update( + fuchsia::accessibility::semantics::Node node) { + if (!semantic_updates_enabled()) + return false; + + DCHECK(node.has_node_id()); + + if (node.node_id() != kFuchsiaRootNodeId) { + auto found_not_reachable = not_reachable_.find(node.node_id()); + const bool is_not_reachable = found_not_reachable != not_reachable_.end(); + const absl::optional parent_node_id = + GetParentForNode(node.node_id()); + if (is_not_reachable && parent_node_id) { + // Connection parent -> |node| exists now. + not_reachable_.erase(found_not_reachable); + nodes_[node.node_id()].parents.insert(*parent_node_id); + } else if (!parent_node_id) { + // No node or multiple nodes points to this one, so it is not reachable. + if (!is_not_reachable) + not_reachable_[node.node_id()] = {}; + } + } + + // If the node is not present in the map, the list of children will be empty + // so this is a no-op in the call below. + std::vector& children = nodes_[node.node_id()].children; + + // Before updating the node, update the list of children to be not reachable, + // in case the new list of children change. + MarkChildrenAsNotReachable(children, node.node_id()); + children = node.has_child_ids() ? node.child_ids() : std::vector(); + MarkChildrenAsReachable(children, node.node_id()); + + Batch& batch = GetCurrentUnfilledBatch(Batch::Type::kUpdate); + batch.Append(std::move(node)); + TryToCommit(); + return true; +} + +void AXFuchsiaSemanticProvider::TryToCommit() { + // Don't send out updates while the tree is mid-mutation. + if (commit_inflight_ || batches_.empty()) + return; + + // If a tree has nodes but no root, wait until the root is present or all + // nodes are deleted. + if (!nodes_.empty() && nodes_.find(kFuchsiaRootNodeId) == nodes_.end()) + return; + + if (!not_reachable_.empty()) + return; + + for (auto& batch : batches_) { + batch.Apply(&semantic_tree_); + } + + batches_.clear(); + semantic_tree_->CommitUpdates( + fit::bind_member(this, &AXFuchsiaSemanticProvider::OnCommitComplete)); + commit_inflight_ = true; +} + +bool AXFuchsiaSemanticProvider::Delete(uint32_t node_id) { + if (!semantic_updates_enabled()) + return false; + + auto it = nodes_.find(node_id); + if (it == nodes_.end()) + return false; + + if (it->second.parents.empty()) { + // No node points to this one, so it is safe to remove it from the tree. + not_reachable_.erase(node_id); + } else { + not_reachable_[node_id] = + it->second + .parents; // Zero or more parents can be pointing to this node. + } + MarkChildrenAsNotReachable(it->second.children, node_id); + + nodes_.erase(it); + + Batch& batch = GetCurrentUnfilledBatch(Batch::Type::kDelete); + batch.AppendDeletion(node_id); + TryToCommit(); + return true; +} + +void AXFuchsiaSemanticProvider::SendEvent( + fuchsia::accessibility::semantics::SemanticEvent event) { + semantic_tree_->SendSemanticEvent(std::move(event), [](auto...) {}); +} + +bool AXFuchsiaSemanticProvider::HasPendingUpdates() const { + return commit_inflight_ || !batches_.empty(); +} + +bool AXFuchsiaSemanticProvider::Clear() { + if (!semantic_updates_enabled()) + return false; + + batches_.clear(); + not_reachable_.clear(); + nodes_.clear(); + Batch& batch = GetCurrentUnfilledBatch(Batch::Type::kDelete); + batch.AppendDeletion(kFuchsiaRootNodeId); + TryToCommit(); + return true; +} + +void AXFuchsiaSemanticProvider::OnAccessibilityActionRequested( + uint32_t node_id, + fuchsia::accessibility::semantics::Action action, + fuchsia::accessibility::semantics::SemanticListener:: + OnAccessibilityActionRequestedCallback callback) { + if (delegate_->OnAccessibilityAction(node_id, action)) + callback(true); + + // The action was not handled. + callback(false); +} + +void AXFuchsiaSemanticProvider::HitTest(fuchsia::math::PointF local_point, + HitTestCallback callback) { + fuchsia::math::PointF point; + point.x = local_point.x * pixel_scale_; + point.y = local_point.y * pixel_scale_; + + delegate_->OnHitTest(point, std::move(callback)); + return; +} + +void AXFuchsiaSemanticProvider::OnSemanticsModeChanged( + bool update_enabled, + OnSemanticsModeChangedCallback callback) { + if (semantic_updates_enabled_ != update_enabled) + delegate_->OnSemanticsEnabled(update_enabled); + + semantic_updates_enabled_ = update_enabled; + callback(); +} + +void AXFuchsiaSemanticProvider::MarkChildrenAsNotReachable( + const std::vector& child_ids, + uint32_t parent_id) { + for (const uint32_t child_id : child_ids) { + const auto it = nodes_.find(child_id); + if (it != nodes_.end()) { + it->second.parents.erase(parent_id); + if (it->second.parents.empty()) + not_reachable_[child_id] = {}; + else + not_reachable_.erase(child_id); + } else { + auto not_reachable_it = not_reachable_.find(child_id); + // Child id is no longer in the regular map, deletes it also from + // not_reachable_ if no parent points to it anymore. + if (not_reachable_it != not_reachable_.end()) { + not_reachable_it->second.erase(parent_id); + if (not_reachable_it->second.empty()) + not_reachable_.erase(not_reachable_it); + } + } + } +} + +void AXFuchsiaSemanticProvider::MarkChildrenAsReachable( + const std::vector& child_ids, + uint32_t parent_id) { + for (const uint32_t child_id : child_ids) { + auto it = nodes_.find(child_id); + if (it == nodes_.end()) + not_reachable_[child_id].insert(parent_id); + else { + it->second.parents.insert(parent_id); + if (it->second.parents.size() == 1) + not_reachable_.erase(child_id); + else + not_reachable_[child_id].insert(parent_id); + } + } +} + +absl::optional AXFuchsiaSemanticProvider::GetParentForNode( + const uint32_t node_id) { + const auto it = nodes_.find(node_id); + if (it != nodes_.end()) { + if (it->second.parents.size() == 1) + return *it->second.parents.begin(); + else + return absl::nullopt; + } + + const auto not_reachable_it = not_reachable_.find(node_id); + if (not_reachable_it != not_reachable_.end()) { + if (not_reachable_it->second.size() == 1) + return *not_reachable_it->second.begin(); + else + return absl::nullopt; + } + + return absl::nullopt; +} + +AXFuchsiaSemanticProvider::Batch& +AXFuchsiaSemanticProvider::GetCurrentUnfilledBatch(Batch::Type type) { + if (batches_.empty() || batches_.back().type() != type || + batches_.back().IsFull()) + batches_.push_back(Batch(type)); + + return batches_.back(); +} + +void AXFuchsiaSemanticProvider::OnCommitComplete() { + commit_inflight_ = false; + TryToCommit(); +} + +} // namespace ui \ No newline at end of file diff --git a/ui/accessibility/platform/fuchsia/semantic_provider.h b/ui/accessibility/platform/fuchsia/semantic_provider.h new file mode 100644 index 00000000000000..dce679da8f466c --- /dev/null +++ b/ui/accessibility/platform/fuchsia/semantic_provider.h @@ -0,0 +1,229 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_ACCESSIBILITY_PLATFORM_FUCHSIA_SEMANTIC_PROVIDER_H_ +#define UI_ACCESSIBILITY_PLATFORM_FUCHSIA_SEMANTIC_PROVIDER_H_ + +#include +#include +#include + +#include +#include +#include + +#include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/accessibility/ax_export.h" + +namespace ui { + +// Manages the connection with the Fuchsia Semantics API. +// +// Clients instantiate this class, which connects to the Fuchsia semantics API. +// Semantic nodes can be added or deleted. When a batch of nodes would leave the +// Fuchsia semantic tree in a valid state, they are committed. Please see +// |fuchsia.accessibility.semantics| API for more documentation on valid +// semantic trees. +class AX_EXPORT AXFuchsiaSemanticProvider + : public fuchsia::accessibility::semantics::SemanticListener { + public: + // A delegate that can be registered by clients of this library to be notified + // about Semantic changes. + class Delegate { + public: + Delegate(); + virtual ~Delegate(); + + // Called when the FIDL channel to the Semantics Manager is closed. If this + // callback returns true, an attempt to reconnect will be made. + virtual bool OnSemanticsManagerConnectionClosed() = 0; + + // Processes an incoming accessibility action from Fuchsia. It + // receives the Fuchsia node ID and the action requested. If this + // method returns true, this means that the action will be handled. + virtual bool OnAccessibilityAction( + uint32_t node_id, + fuchsia::accessibility::semantics::Action action) = 0; + + // Processes an incoming hit test request from Fuchsia. It + // receives a point in Scenic View pixel coordinates and a callback to + // return the result when the hit test is done. Please see + // |fuchsia.accessibility.semantics.SemanticListener| for documentation on + // hit tests. + virtual void OnHitTest(fuchsia::math::PointF point, + HitTestCallback callback) = 0; + + // Called whenever Fuchsia enables / disables semantic updates. + virtual void OnSemanticsEnabled(bool enabled) = 0; + }; + + // Arguments: + // |view_ref|: identifies the view providing semantics. Please consult + // |fuchsia.accessibility.semantics| API documentation. + // |pixel_scale|: Scales Scenic view coordinates to pixel coordinates. + // |delegate|: Handles semantic requests, please see Delegate class for more + // documentation. Caller is responsible for ensuring that |delegate| outlives + // |this|. + // During construction, this class connects to + // |fuchsia.accessibility.semantics.SemanticsManager| to register itself as a + // semantic provider. + AXFuchsiaSemanticProvider(fuchsia::ui::views::ViewRef view_ref, + float pixel_scale, + Delegate* delegate); + ~AXFuchsiaSemanticProvider() override; + + // Returns true if Fuchsia has enabled semantics. + bool semantic_updates_enabled() const { return semantic_updates_enabled_; } + + // Adds a semantic node to be updated. It is mandatory that the node has at + // least an unique ID. + bool Update(fuchsia::accessibility::semantics::Node node); + + // Marks a semantic node to be deleted. Returns false if the node is not + // present in the list of semantic nodes known by this provider. + bool Delete(uint32_t node_id); + + // Clears the semantic tree. + bool Clear(); + + // Sends an accessibility event to Fuchsia. Please consult + // https://cs.opensource.google/fuchsia/fuchsia/+/master:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl + // for documentation on events. + void SendEvent(fuchsia::accessibility::semantics::SemanticEvent event); + + // Returns true if there are pending updates or deletions to be made. + bool HasPendingUpdates() const; + + private: + // Holds information about a Fuchsia Semantic Node. It contains only the + // fields needed to check that the resulting tree would be valid. + struct NodeInfo { + NodeInfo(); + ~NodeInfo(); + + // During a tree update a node may have multiple parents pointing to it, + // although after all updates are processed only one should be present. + std::set parents; + std::vector children; + }; + + // Represents a batch of nodes to be sent to Fuchsia. + // Batches can hold exactly one type: a series of updates or a series of + // deletions. + class Batch { + public: + enum class Type { kUpdate, kDelete }; + + Batch(Type type); + Batch(Batch&& other); + ~Batch(); + Batch(const Batch& other) = delete; + + Type type() const { return type_; } + + // Returns true if the batch has reached its size limit. + bool IsFull() const; + + // Adds an update or deletion to the batch. This fails if the batch is full + // or if the new item is not the same type of the batch. + void Append(fuchsia::accessibility::semantics::Node node); + void AppendDeletion(uint32_t delete_node_id); + + // Sends enqueued operations to SemanticsManager. + void Apply( + fuchsia::accessibility::semantics::SemanticTreePtr* semantic_tree); + + private: + Type type_; + std::vector updates_; + std::vector delete_node_ids_; + }; + + // Attempts to commit the pending updates to Fuchsia if the resulting updates + // would leave the final tree in a valid state. + void TryToCommit(); + + // Returns a batch that can receive an update or deletion depending on |type|. + Batch& GetCurrentUnfilledBatch(Batch::Type type); + + // Invoked whenever Fuchsia responds that a commit was received. This tries to + // commit again if there are pending upedates or deletions. + void OnCommitComplete(); + + // Mark all |child_ids| not reachable from |parent_id|, meaning: + // - If |parent_id| was the only parent, the children are now disconnected + // from the tree. + // - If |parent_id| was an additional parent, now the children are connected + // to a single parent in the tree. + // - If the children do not exist, remove them from the list of nodes waiting + // to be updated. + void MarkChildrenAsNotReachable(const std::vector& child_ids, + uint32_t parent_id); + + // Mark all |child_ids| reachable from |parent_id|, meaning: + // - If |parent_id| is the only parent, the children are now connected to the + // tree and are all reachable. + // - If |parent_id| is an additional parent, now the children are not + // connected to the tree as multiple parents point to them. + // - If the children do not exist, the parent waits for the nodes to be + // created. + void MarkChildrenAsReachable(const std::vector& child_ids, + uint32_t parent_id); + + // Returns the ID of the parent of this node if it has one. If it does not + // have a parent or it has multiple parents, returns absl::nullopt. + absl::optional GetParentForNode(const uint32_t node_id); + + // fuchsia::accessibility::semantics::SemanticListener: + void OnAccessibilityActionRequested( + uint32_t node_id, + fuchsia::accessibility::semantics::Action action, + fuchsia::accessibility::semantics::SemanticListener:: + OnAccessibilityActionRequestedCallback callback) override; + + // fuchsia::accessibility::semantics::SemanticListener: + void HitTest(::fuchsia::math::PointF local_point, + HitTestCallback callback) override; + + // fuchsia::accessibility::semantics::SemanticListener: + void OnSemanticsModeChanged(bool update_enabled, + OnSemanticsModeChangedCallback callback) override; + + fuchsia::ui::views::ViewRef view_ref_; + float pixel_scale_; + Delegate* const delegate_; + + fidl::Binding + semantic_listener_binding_; + + fuchsia::accessibility::semantics::SemanticTreePtr semantic_tree_; + + bool semantic_updates_enabled_ = true; + + // Nodes from this tree. If not empty, to be considered a valid tree, there + // must be: + // - A node which node id is equal to kFuchsiaRootNodeId; + // - Each node except the root has only one parent; + // - All children pointed by a parent exist in the tree. + // Only the node ID and the child IDs of the node are stored here because at + // this point we only check to see if the tree is valid. + std::map nodes_; + + // Key == the node ID that is not reachable from the root of the tree, value + // == 0 or more parents that point to this node. Note that nodes can be listed + // here but still be present in |nodes_|. This may happen, for example, if the + // parent of the node was deleted and there is no path from the root to it, so + // the node waits for a parent to connect to it. + std::map> not_reachable_; + + // Stores batches of node updates or deletions to be sent to Fuchsia. Note + // that a batch contains only updates or deletions, because they are pushed to + // Fuchsia differently. + std::vector batches_; + + bool commit_inflight_; +}; + +} // namespace ui +#endif // UI_ACCESSIBILITY_PLATFORM_FUCHSIA_SEMANTIC_PROVIDER_H_ diff --git a/ui/accessibility/platform/fuchsia/semantic_provider_test.cc b/ui/accessibility/platform/fuchsia/semantic_provider_test.cc new file mode 100644 index 00000000000000..ba5e469dba85cb --- /dev/null +++ b/ui/accessibility/platform/fuchsia/semantic_provider_test.cc @@ -0,0 +1,441 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "semantic_provider.h" + +#include +#include + +#include +#include + +#include "base/auto_reset.h" +#include "base/callback.h" +#include "base/fuchsia/process_context.h" +#include "base/fuchsia/scoped_service_binding.h" +#include "base/fuchsia/test_component_context_for_process.h" +#include "base/run_loop.h" +#include "base/test/bind.h" +#include "base/test/task_environment.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ui { +namespace { + +using fuchsia::accessibility::semantics::Node; + +class AXFuchsiaSemanticProviderDelegate + : public AXFuchsiaSemanticProvider::Delegate { + public: + AXFuchsiaSemanticProviderDelegate() = default; + ~AXFuchsiaSemanticProviderDelegate() override = default; + + bool OnSemanticsManagerConnectionClosed() override { + on_semantics_manager_connectionClosed_called_ = true; + return true; + } + + bool OnAccessibilityAction( + uint32_t node_id, + fuchsia::accessibility::semantics::Action action) override { + on_accessibility_action_called_ = true; + on_accessibility_action_node_id_ = node_id; + on_accessibility_action_action_ = std::move(action); + return true; + } + + void OnHitTest(fuchsia::math::PointF point, + AXFuchsiaSemanticProvider::HitTestCallback callback) override { + on_hit_test_called_ = true; + on_hit_test_point_ = std::move(point); + } + + void OnSemanticsEnabled(bool enabled) override { + on_semantics_enabled_called_ = true; + } + + bool on_semantics_manager_connectionClosed_called_; + bool on_accessibility_action_called_; + uint32_t on_accessibility_action_node_id_ = 10000000; + fuchsia::accessibility::semantics::Action on_accessibility_action_action_; + bool on_hit_test_called_; + fuchsia::math::PointF on_hit_test_point_; + bool on_semantics_enabled_called_; +}; + +// Returns a semantic tree of the form: +// (0 (1 2 (3 4 (5)))) +std::vector TreeNodes() { + Node node_0; + node_0.set_node_id(0u); + node_0.set_child_ids({1u, 2u}); + + Node node_1; + node_1.set_node_id(1u); + + Node node_2; + node_2.set_node_id(2u); + node_2.set_child_ids({3u, 4u}); + + Node node_3; + node_3.set_node_id(3u); + + Node node_4; + node_4.set_node_id(4u); + node_4.set_child_ids({5u}); + + Node node_5; + node_5.set_node_id(5u); + + std::vector update; + update.push_back(std::move(node_0)); + update.push_back(std::move(node_1)); + update.push_back(std::move(node_2)); + update.push_back(std::move(node_3)); + update.push_back(std::move(node_4)); + update.push_back(std::move(node_5)); + return update; +} + +class AXFuchsiaSemanticProviderTest + : public ::testing::Test, + public fuchsia::accessibility::semantics::SemanticsManager, + public fuchsia::accessibility::semantics::SemanticTree { + public: + AXFuchsiaSemanticProviderTest() + : semantics_manager_bindings_(test_context_.additional_services(), this), + semantic_tree_binding_(this) {} + ~AXFuchsiaSemanticProviderTest() override = default; + AXFuchsiaSemanticProviderTest(const AXFuchsiaSemanticProviderTest&) = delete; + AXFuchsiaSemanticProviderTest& operator=( + const AXFuchsiaSemanticProviderTest&) = delete; + void SetUp() override { + auto view_ref_pair = scenic::ViewRefPair::New(); + delegate_ = std::make_unique(); + + semantic_provider_ = std::make_unique( + std::move(view_ref_pair.view_ref), 2.0f, delegate_.get()); + } + + protected: + // fuchsia::accessibility::semantics::SemanticsManager implementation. + void RegisterViewForSemantics( + fuchsia::ui::views::ViewRef view_ref, + fidl::InterfaceHandle + listener, + fidl::InterfaceRequest + semantic_tree_request) final { + semantic_listener_ = listener.Bind(); + semantic_tree_binding_.Bind(std::move(semantic_tree_request)); + } + + // fuchsia::accessibility::semantics::SemanticTree implementation. + void UpdateSemanticNodes( + std::vector nodes) final { + num_update_semantic_nodes_called_++; + } + void DeleteSemanticNodes(std::vector node_ids) final { + num_delete_semantic_nodes_called_++; + } + void CommitUpdates(CommitUpdatesCallback callback) final { callback(); } + void SendSemanticEvent( + fuchsia::accessibility::semantics::SemanticEvent semantic_event, + SendSemanticEventCallback callback) override { + callback(); + } + + // Required because of |test_context_|. + base::test::SingleThreadTaskEnvironment task_environment_{ + base::test::SingleThreadTaskEnvironment::MainThreadType::IO}; + base::TestComponentContextForProcess test_context_; + // Binding to fake Semantics Manager Fuchsia service, implemented by this test + // class. + base::ScopedServiceBinding< + fuchsia::accessibility::semantics::SemanticsManager> + semantics_manager_bindings_; + + uint32_t num_update_semantic_nodes_called_ = 0; + uint32_t num_delete_semantic_nodes_called_ = 0; + + base::RepeatingClosure on_commit_; + + fuchsia::accessibility::semantics::SemanticListenerPtr semantic_listener_; + fidl::Binding + semantic_tree_binding_; + std::unique_ptr delegate_; + std::unique_ptr semantic_provider_; +}; + +TEST_F(AXFuchsiaSemanticProviderTest, HandlesOnSemanticsConnectionClosed) { + base::RunLoop loop; + loop.RunUntilIdle(); + semantic_tree_binding_.Close(ZX_ERR_PEER_CLOSED); + loop.RunUntilIdle(); + EXPECT_TRUE(delegate_->on_semantics_manager_connectionClosed_called_); +} + +TEST_F(AXFuchsiaSemanticProviderTest, HandlesOnAccessibilityAction) { + base::RunLoop loop; + loop.RunUntilIdle(); + bool action_handled = false; + semantic_listener_->OnAccessibilityActionRequested( + /*node_id=*/1u, fuchsia::accessibility::semantics::Action::DEFAULT, + [&action_handled](bool handled) { action_handled = handled; }); + loop.RunUntilIdle(); + EXPECT_TRUE(action_handled); + EXPECT_TRUE(delegate_->on_accessibility_action_called_); + EXPECT_EQ(delegate_->on_accessibility_action_node_id_, 1u); + EXPECT_EQ(delegate_->on_accessibility_action_action_, + fuchsia::accessibility::semantics::Action::DEFAULT); +} + +TEST_F(AXFuchsiaSemanticProviderTest, HandlesOnHitTest) { + base::RunLoop loop; + loop.RunUntilIdle(); + + // Note that the point is sent here and will be converted according to the + // device scale used. Only then it gets sent to the handler, which receives + // the value already with the proper scaling. + fuchsia::math::PointF point; + point.x = 4; + point.y = 6; + semantic_listener_->HitTest(std::move(point), [](auto...) {}); + loop.RunUntilIdle(); + EXPECT_TRUE(delegate_->on_hit_test_called_); + EXPECT_EQ(delegate_->on_hit_test_point_.x, 8.0); + EXPECT_EQ(delegate_->on_hit_test_point_.y, 12.0); +} + +TEST_F(AXFuchsiaSemanticProviderTest, HandlesOnSemanticsEnabled) { + base::RunLoop loop; + loop.RunUntilIdle(); + semantic_listener_->OnSemanticsModeChanged(false, [](auto...) {}); + loop.RunUntilIdle(); + EXPECT_TRUE(delegate_->on_semantics_enabled_called_); +} + +TEST_F(AXFuchsiaSemanticProviderTest, SendsRootOnly) { + base::RunLoop loop; + loop.RunUntilIdle(); + Node root; + root.set_node_id(0u); + EXPECT_TRUE(semantic_provider_->Update(std::move(root))); + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, SendsNodesFromRootToLeaves) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, SendsNodesFromLeavesToRoot) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto nodes = TreeNodes(); + std::reverse(nodes.begin(), nodes.end()); + for (auto& node : nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, + SendsNodesOnlyAfterParentNoLongerPointsToDeletedChild) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + // Deletes node 5, which is a child of 4. + EXPECT_TRUE(semantic_provider_->Delete(5u)); + loop.RunUntilIdle(); + + // Commit is pending, because the parent still points to the child. + EXPECT_TRUE(semantic_provider_->HasPendingUpdates()); + + Node node_4; + node_4.set_node_id(4u); + node_4.set_child_ids({}); + EXPECT_TRUE(semantic_provider_->Update(std::move(node_4))); + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 1u); + + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, + SendsNodesOnlyAfterDanglingChildIsDeleted) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + Node node_4; + node_4.set_node_id(4u); + node_4.set_child_ids({}); // This removes child 5. + EXPECT_TRUE(semantic_provider_->Update(std::move(node_4))); + loop.RunUntilIdle(); + EXPECT_TRUE(semantic_provider_->HasPendingUpdates()); + + EXPECT_TRUE(semantic_provider_->Delete(5u)); + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, ReparentsNodeWithADeletion) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + // Deletes node 4 to reparent its child (5). + EXPECT_TRUE(semantic_provider_->Delete(4u)); + loop.RunUntilIdle(); + EXPECT_TRUE(semantic_provider_->HasPendingUpdates()); + + // Add child 5 to another node. + Node node_1; + node_1.set_node_id(1u); + node_1.set_child_ids({5u}); + EXPECT_TRUE(semantic_provider_->Update(std::move(node_1))); + loop.RunUntilIdle(); + EXPECT_TRUE(semantic_provider_->HasPendingUpdates()); + + Node node_4; + node_4.set_node_id(4u); + node_4.set_child_ids({}); + EXPECT_TRUE(semantic_provider_->Update(std::move(node_4))); + loop.RunUntilIdle(); + + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, ReparentsNodeWithAnUpdate) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + // Add child 5 to another node. Note that 5 will have two parents, and the + // commit must be held until it has only one. + Node node_1; + node_1.set_node_id(1u); + node_1.set_child_ids({5u}); + EXPECT_TRUE(semantic_provider_->Update(std::move(node_1))); + loop.RunUntilIdle(); + EXPECT_TRUE(semantic_provider_->HasPendingUpdates()); + + // Updates node 4 to no longer point to 5. + Node node_4; + node_4.set_node_id(4u); + node_4.set_child_ids({}); + EXPECT_TRUE(semantic_provider_->Update(std::move(node_4))); + loop.RunUntilIdle(); + + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 0u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, ChangesRoot) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + Node new_root; + new_root.set_node_id(0u); + new_root.set_child_ids({1u, 2u}); + EXPECT_TRUE(semantic_provider_->Update(std::move(new_root))); + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 0u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, BatchesUpdates) { + base::RunLoop loop; + loop.RunUntilIdle(); + std::vector updates; + for (uint32_t i = 0; i < 30; ++i) { + Node node; + node.set_node_id(i); + node.set_child_ids({i + 1}); + updates.push_back(std::move(node)); + } + updates.back().clear_child_ids(); + + for (auto& node : updates) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + + // 30 nodes in batches of 16 (default value of maximum nodes per update call), + // should result in two update calls to the semantics API. + EXPECT_EQ(num_update_semantic_nodes_called_, 2u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +TEST_F(AXFuchsiaSemanticProviderTest, ClearsTree) { + base::RunLoop loop; + loop.RunUntilIdle(); + auto tree_nodes = TreeNodes(); + for (auto& node : tree_nodes) { + EXPECT_TRUE(semantic_provider_->Update(std::move(node))); + } + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); + + semantic_provider_->Clear(); + loop.RunUntilIdle(); + EXPECT_EQ(num_update_semantic_nodes_called_, 1u); + EXPECT_EQ(num_delete_semantic_nodes_called_, 1u); + EXPECT_FALSE(semantic_provider_->HasPendingUpdates()); +} + +} // namespace +} // namespace ui \ No newline at end of file diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn index 6e4e334bdebafa..6916cd4bce96b6 100644 --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn @@ -139,7 +139,7 @@ android_resources("ui_java_resources") { "java/res/color/default_text_color_inverse_list.xml", "java/res/color/default_text_color_light_list.xml", "java/res/color/default_text_color_list_baseline.xml", - "java/res/color/default_text_color_on_accent1_list.xml", + "java/res/color/default_text_color_on_accent1_baseline_list.xml", "java/res/color/default_text_color_secondary_light_list.xml", "java/res/color/default_text_color_secondary_list_baseline.xml", "java/res/color/filled_button_bg.xml", diff --git a/ui/android/java/res/color/default_text_color_on_accent1_list.xml b/ui/android/java/res/color/default_text_color_on_accent1_baseline_list.xml similarity index 74% rename from ui/android/java/res/color/default_text_color_on_accent1_list.xml rename to ui/android/java/res/color/default_text_color_on_accent1_baseline_list.xml index e126c523af4175..4752ad44d5d9ed 100644 --- a/ui/android/java/res/color/default_text_color_on_accent1_list.xml +++ b/ui/android/java/res/color/default_text_color_on_accent1_baseline_list.xml @@ -4,6 +4,6 @@ found in the LICENSE file. --> - - + + diff --git a/ui/android/java/res/values-night/colors.xml b/ui/android/java/res/values-night/colors.xml index 4f43bda39faa23..518bb081b9d728 100644 --- a/ui/android/java/res/values-night/colors.xml +++ b/ui/android/java/res/values-night/colors.xml @@ -12,8 +12,8 @@ @color/default_text_color_link_light @color/default_text_color_link_disabled_light @color/default_text_color_error_light - @color/default_text_color_on_accent1_dark - @color/default_text_color_disabled_light + @color/default_text_color_on_accent1_dark + @color/default_text_color_disabled_light @color/default_icon_color_light diff --git a/ui/android/java/res/values-v17/styles.xml b/ui/android/java/res/values-v17/styles.xml index 32dc9a019a11f3..46440fa0900b80 100644 --- a/ui/android/java/res/values-v17/styles.xml +++ b/ui/android/java/res/values-v17/styles.xml @@ -242,21 +242,6 @@ @color/default_text_color_disabled_dark - - - - - - - -
-
[[getDeviceListTitle_(devices.*)]]
-